pyoomph 0.1.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. pyoomph-0.1.9/.devcontainer/Dockerfile +34 -0
  2. pyoomph-0.1.9/.github/workflows/prebuild_static_ginac_cln.yml +131 -0
  3. pyoomph-0.1.9/.github/workflows/test_windows_wheel.yml +101 -0
  4. pyoomph-0.1.9/.github/workflows/wheels.yml +300 -0
  5. pyoomph-0.1.9/.gitignore +90 -0
  6. pyoomph-0.1.9/.readthedocs.yaml +34 -0
  7. pyoomph-0.1.9/AGENTS.md +374 -0
  8. pyoomph-0.1.9/AGENTS_ADVANCED.md +353 -0
  9. pyoomph-0.1.9/AGENTS_EXAMPLES.md +501 -0
  10. pyoomph-0.1.9/AGENTS_MATERIALS.md +293 -0
  11. pyoomph-0.1.9/CHANGELOG.md +104 -0
  12. pyoomph-0.1.9/CMakeLists.txt +283 -0
  13. pyoomph-0.1.9/COPYING +842 -0
  14. pyoomph-0.1.9/INSTALL.md +128 -0
  15. pyoomph-0.1.9/MANIFEST.in +3 -0
  16. pyoomph-0.1.9/PKG-INFO +989 -0
  17. pyoomph-0.1.9/README.md +104 -0
  18. pyoomph-0.1.9/build_for_develop.sh +13 -0
  19. pyoomph-0.1.9/citools/before_build_linux.sh +22 -0
  20. pyoomph-0.1.9/citools/build_static_ginac_cln.sh +121 -0
  21. pyoomph-0.1.9/citools/build_static_ginac_cln_msys2.sh +79 -0
  22. pyoomph-0.1.9/citools/compile_win_wheels_msys2.sh +157 -0
  23. pyoomph-0.1.9/citools/download_and_build_static_ginac.sh +130 -0
  24. pyoomph-0.1.9/citools/resolve_ginac_cln_versions.sh +37 -0
  25. pyoomph-0.1.9/citools/test_all_tutorial_scripts.py +86 -0
  26. pyoomph-0.1.9/citools/test_all_tutorial_scripts_mpirun_2.py +71 -0
  27. pyoomph-0.1.9/clean.sh +40 -0
  28. pyoomph-0.1.9/cmake/ThirdPartyGiNaC.cmake +220 -0
  29. pyoomph-0.1.9/cmake/generate_stubs.py +140 -0
  30. pyoomph-0.1.9/docs/Makefile +20 -0
  31. pyoomph-0.1.9/docs/make.bat +35 -0
  32. pyoomph-0.1.9/docs/requirements.txt +10 -0
  33. pyoomph-0.1.9/docs/source/_static/css/custom.css +30 -0
  34. pyoomph-0.1.9/docs/source/_static/favicon.ico +0 -0
  35. pyoomph-0.1.9/docs/source/conf.py +152 -0
  36. pyoomph-0.1.9/docs/source/index.rst +334 -0
  37. pyoomph-0.1.9/docs/source/latex_tutorial.rst +28 -0
  38. pyoomph-0.1.9/docs/source/pyoomph._pyoomph_core.rst +17 -0
  39. pyoomph-0.1.9/docs/source/pyoomph.equations.ALE.rst +6 -0
  40. pyoomph-0.1.9/docs/source/pyoomph.equations.NSCH.rst +6 -0
  41. pyoomph-0.1.9/docs/source/pyoomph.equations.SUPG.rst +6 -0
  42. pyoomph-0.1.9/docs/source/pyoomph.equations.advection_diffusion.rst +6 -0
  43. pyoomph-0.1.9/docs/source/pyoomph.equations.cahn_hilliard.rst +6 -0
  44. pyoomph-0.1.9/docs/source/pyoomph.equations.contact_angle.rst +7 -0
  45. pyoomph-0.1.9/docs/source/pyoomph.equations.darcy.rst +6 -0
  46. pyoomph-0.1.9/docs/source/pyoomph.equations.generic.rst +6 -0
  47. pyoomph-0.1.9/docs/source/pyoomph.equations.harmonic_oscillator.rst +6 -0
  48. pyoomph-0.1.9/docs/source/pyoomph.equations.helmholtz.rst +6 -0
  49. pyoomph-0.1.9/docs/source/pyoomph.equations.kuramoto_sivashinsky.rst +6 -0
  50. pyoomph-0.1.9/docs/source/pyoomph.equations.low_order_NSCH.rst +6 -0
  51. pyoomph-0.1.9/docs/source/pyoomph.equations.lubrication.rst +6 -0
  52. pyoomph-0.1.9/docs/source/pyoomph.equations.multi_component.rst +6 -0
  53. pyoomph-0.1.9/docs/source/pyoomph.equations.navier_stokes.rst +6 -0
  54. pyoomph-0.1.9/docs/source/pyoomph.equations.ode.rst +6 -0
  55. pyoomph-0.1.9/docs/source/pyoomph.equations.poisson.rst +6 -0
  56. pyoomph-0.1.9/docs/source/pyoomph.equations.potential_flow.rst +6 -0
  57. pyoomph-0.1.9/docs/source/pyoomph.equations.rst +38 -0
  58. pyoomph-0.1.9/docs/source/pyoomph.equations.solid.rst +6 -0
  59. pyoomph-0.1.9/docs/source/pyoomph.equations.stokes_stream_func.rst +6 -0
  60. pyoomph-0.1.9/docs/source/pyoomph.equations.topological_changes.rst +6 -0
  61. pyoomph-0.1.9/docs/source/pyoomph.equations.tracers.rst +6 -0
  62. pyoomph-0.1.9/docs/source/pyoomph.expressions.cb.rst +6 -0
  63. pyoomph-0.1.9/docs/source/pyoomph.expressions.coordsys.rst +6 -0
  64. pyoomph-0.1.9/docs/source/pyoomph.expressions.generic.rst +6 -0
  65. pyoomph-0.1.9/docs/source/pyoomph.expressions.interpol.rst +6 -0
  66. pyoomph-0.1.9/docs/source/pyoomph.expressions.phys_consts.rst +6 -0
  67. pyoomph-0.1.9/docs/source/pyoomph.expressions.rst +24 -0
  68. pyoomph-0.1.9/docs/source/pyoomph.expressions.tensor_funcs.rst +6 -0
  69. pyoomph-0.1.9/docs/source/pyoomph.expressions.units.rst +6 -0
  70. pyoomph-0.1.9/docs/source/pyoomph.expressions.utils.rst +6 -0
  71. pyoomph-0.1.9/docs/source/pyoomph.generic.assembly.rst +6 -0
  72. pyoomph-0.1.9/docs/source/pyoomph.generic.ccompiler.rst +6 -0
  73. pyoomph-0.1.9/docs/source/pyoomph.generic.codegen.rst +7 -0
  74. pyoomph-0.1.9/docs/source/pyoomph.generic.mpi.rst +6 -0
  75. pyoomph-0.1.9/docs/source/pyoomph.generic.problem.rst +8 -0
  76. pyoomph-0.1.9/docs/source/pyoomph.generic.rst +21 -0
  77. pyoomph-0.1.9/docs/source/pyoomph.jitbridge.rst +9 -0
  78. pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.aiomfac.rst +6 -0
  79. pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.dortmund.rst +6 -0
  80. pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.original.rst +6 -0
  81. pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.rst +19 -0
  82. pyoomph-0.1.9/docs/source/pyoomph.materials.activity.rst +6 -0
  83. pyoomph-0.1.9/docs/source/pyoomph.materials.default_materials.rst +6 -0
  84. pyoomph-0.1.9/docs/source/pyoomph.materials.generic.rst +7 -0
  85. pyoomph-0.1.9/docs/source/pyoomph.materials.mass_transfer.rst +6 -0
  86. pyoomph-0.1.9/docs/source/pyoomph.materials.rst +29 -0
  87. pyoomph-0.1.9/docs/source/pyoomph.materials.surfactant_isotherms.rst +7 -0
  88. pyoomph-0.1.9/docs/source/pyoomph.meshes.PFEM.rst +6 -0
  89. pyoomph-0.1.9/docs/source/pyoomph.meshes.bcs.rst +6 -0
  90. pyoomph-0.1.9/docs/source/pyoomph.meshes.curved_entities.rst +6 -0
  91. pyoomph-0.1.9/docs/source/pyoomph.meshes.droplet_meshes.rst +6 -0
  92. pyoomph-0.1.9/docs/source/pyoomph.meshes.gmsh.rst +6 -0
  93. pyoomph-0.1.9/docs/source/pyoomph.meshes.interpolator.rst +6 -0
  94. pyoomph-0.1.9/docs/source/pyoomph.meshes.mesh.rst +7 -0
  95. pyoomph-0.1.9/docs/source/pyoomph.meshes.meshdatacache.rst +6 -0
  96. pyoomph-0.1.9/docs/source/pyoomph.meshes.remesher.rst +6 -0
  97. pyoomph-0.1.9/docs/source/pyoomph.meshes.rst +27 -0
  98. pyoomph-0.1.9/docs/source/pyoomph.meshes.simplemeshes.rst +6 -0
  99. pyoomph-0.1.9/docs/source/pyoomph.meshes.zeta.rst +6 -0
  100. pyoomph-0.1.9/docs/source/pyoomph.output.generic.rst +6 -0
  101. pyoomph-0.1.9/docs/source/pyoomph.output.latex.rst +6 -0
  102. pyoomph-0.1.9/docs/source/pyoomph.output.meshio.rst +6 -0
  103. pyoomph-0.1.9/docs/source/pyoomph.output.plotting.rst +6 -0
  104. pyoomph-0.1.9/docs/source/pyoomph.output.rst +21 -0
  105. pyoomph-0.1.9/docs/source/pyoomph.output.states.rst +6 -0
  106. pyoomph-0.1.9/docs/source/pyoomph.rst +38 -0
  107. pyoomph-0.1.9/docs/source/pyoomph.solvers.generic.rst +6 -0
  108. pyoomph-0.1.9/docs/source/pyoomph.solvers.pardiso.rst +6 -0
  109. pyoomph-0.1.9/docs/source/pyoomph.solvers.precice_adapter.rst +6 -0
  110. pyoomph-0.1.9/docs/source/pyoomph.solvers.rst +20 -0
  111. pyoomph-0.1.9/docs/source/pyoomph.solvers.scipy.rst +6 -0
  112. pyoomph-0.1.9/docs/source/pyoomph.typings.rst +9 -0
  113. pyoomph-0.1.9/docs/source/pyoomph.utils.bifurcation_gui.rst +6 -0
  114. pyoomph-0.1.9/docs/source/pyoomph.utils.dropgeom.rst +6 -0
  115. pyoomph-0.1.9/docs/source/pyoomph.utils.lyapunov.rst +6 -0
  116. pyoomph-0.1.9/docs/source/pyoomph.utils.num_text_out.rst +6 -0
  117. pyoomph-0.1.9/docs/source/pyoomph.utils.paramscan.rst +6 -0
  118. pyoomph-0.1.9/docs/source/pyoomph.utils.periodic_driving_response.rst +6 -0
  119. pyoomph-0.1.9/docs/source/pyoomph.utils.rst +24 -0
  120. pyoomph-0.1.9/docs/source/pyoomph.utils.smallest_circle.rst +6 -0
  121. pyoomph-0.1.9/docs/source/refs.bib +650 -0
  122. pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rayleigh_benard_azimuthal_stability.py +129 -0
  123. pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rbconvect.rst +85 -0
  124. pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rising_bubble.py +241 -0
  125. pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rising_bubble.rst +88 -0
  126. pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal.rst +38 -0
  127. pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/rivulet.py +85 -0
  128. pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/rivulet.rst +77 -0
  129. pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/turing_dispersion.py +82 -0
  130. pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/turing_transient.py +63 -0
  131. pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/turingdispersion.rst +58 -0
  132. pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal.rst +17 -0
  133. pyoomph-0.1.9/docs/source/tutorial/advstab/deflation.rst +12 -0
  134. pyoomph-0.1.9/docs/source/tutorial/advstab/eigenbranch_continuation.py +144 -0
  135. pyoomph-0.1.9/docs/source/tutorial/advstab/eigenconti.rst +48 -0
  136. pyoomph-0.1.9/docs/source/tutorial/advstab/movmesh/dropdetach.rst +81 -0
  137. pyoomph-0.1.9/docs/source/tutorial/advstab/movmesh/hanging_droplet.py +122 -0
  138. pyoomph-0.1.9/docs/source/tutorial/advstab/movmesh.rst +10 -0
  139. pyoomph-0.1.9/docs/source/tutorial/advstab/response/dampedho.rst +61 -0
  140. pyoomph-0.1.9/docs/source/tutorial/advstab/response/drums.rst +51 -0
  141. pyoomph-0.1.9/docs/source/tutorial/advstab/response/linear_response_drum.py +111 -0
  142. pyoomph-0.1.9/docs/source/tutorial/advstab/response/linear_response_oscillator.py +105 -0
  143. pyoomph-0.1.9/docs/source/tutorial/advstab/response.rst +11 -0
  144. pyoomph-0.1.9/docs/source/tutorial/advstab.rst +18 -0
  145. pyoomph-0.1.9/docs/source/tutorial/ale/ALE_correction.py +64 -0
  146. pyoomph-0.1.9/docs/source/tutorial/ale/aledt.rst +86 -0
  147. pyoomph-0.1.9/docs/source/tutorial/ale/free_surface.py +86 -0
  148. pyoomph-0.1.9/docs/source/tutorial/ale/freesurf.rst +132 -0
  149. pyoomph-0.1.9/docs/source/tutorial/ale/gmshfields.rst +94 -0
  150. pyoomph-0.1.9/docs/source/tutorial/ale/lagrange.rst +8 -0
  151. pyoomph-0.1.9/docs/source/tutorial/ale/laplace_smoothed_mesh.py +64 -0
  152. pyoomph-0.1.9/docs/source/tutorial/ale/laplsmooth.rst +52 -0
  153. pyoomph-0.1.9/docs/source/tutorial/ale/rayleigh_plateau.py +174 -0
  154. pyoomph-0.1.9/docs/source/tutorial/ale/remesh.rst +57 -0
  155. pyoomph-0.1.9/docs/source/tutorial/ale/remeshing.py +66 -0
  156. pyoomph-0.1.9/docs/source/tutorial/ale/solid/cantilever.gif +0 -0
  157. pyoomph-0.1.9/docs/source/tutorial/ale/solid/cantilever.py +92 -0
  158. pyoomph-0.1.9/docs/source/tutorial/ale/solid/cantilever.rst +55 -0
  159. pyoomph-0.1.9/docs/source/tutorial/ale/solid/compressed_disc.py +91 -0
  160. pyoomph-0.1.9/docs/source/tutorial/ale/solid/compressed_disc.rst +51 -0
  161. pyoomph-0.1.9/docs/source/tutorial/ale/solid/solid_oscillations.gif +0 -0
  162. pyoomph-0.1.9/docs/source/tutorial/ale/solid/solid_oscillations.py +68 -0
  163. pyoomph-0.1.9/docs/source/tutorial/ale/solid/solid_oscillations.rst +36 -0
  164. pyoomph-0.1.9/docs/source/tutorial/ale/solid.rst +69 -0
  165. pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_3d.py +69 -0
  166. pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_free_slip.py +75 -0
  167. pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_hyperelastic_tangential_shift.py +133 -0
  168. pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_marangoni_and_gravity.py +138 -0
  169. pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_sliplength.py +66 -0
  170. pyoomph-0.1.9/docs/source/tutorial/ale/spread/free.rst +45 -0
  171. pyoomph-0.1.9/docs/source/tutorial/ale/spread/hyperelastic.rst +49 -0
  172. pyoomph-0.1.9/docs/source/tutorial/ale/spread/maraandgrav.rst +101 -0
  173. pyoomph-0.1.9/docs/source/tutorial/ale/spread/navier.rst +43 -0
  174. pyoomph-0.1.9/docs/source/tutorial/ale/spread/threedim.rst +49 -0
  175. pyoomph-0.1.9/docs/source/tutorial/ale/spread.rst +19 -0
  176. pyoomph-0.1.9/docs/source/tutorial/ale.rst +23 -0
  177. pyoomph-0.1.9/docs/source/tutorial/dg/advdiffu.rst +152 -0
  178. pyoomph-0.1.9/docs/source/tutorial/dg/convection_diffusion.py +92 -0
  179. pyoomph-0.1.9/docs/source/tutorial/dg/poisson_weak_dirichlet.py +88 -0
  180. pyoomph-0.1.9/docs/source/tutorial/dg/weakdirichlet.rst +68 -0
  181. pyoomph-0.1.9/docs/source/tutorial/dg.rst +23 -0
  182. pyoomph-0.1.9/docs/source/tutorial/generate_tutorial_zip.sh +36 -0
  183. pyoomph-0.1.9/docs/source/tutorial/installation/additional.rst +18 -0
  184. pyoomph-0.1.9/docs/source/tutorial/installation/compile.rst +12 -0
  185. pyoomph-0.1.9/docs/source/tutorial/installation/petscslepc.rst +105 -0
  186. pyoomph-0.1.9/docs/source/tutorial/installation/problems.rst +12 -0
  187. pyoomph-0.1.9/docs/source/tutorial/installation/pypa.rst +106 -0
  188. pyoomph-0.1.9/docs/source/tutorial/installation/source/linux.rst +61 -0
  189. pyoomph-0.1.9/docs/source/tutorial/installation/source/mac.rst +75 -0
  190. pyoomph-0.1.9/docs/source/tutorial/installation/wsl.rst +116 -0
  191. pyoomph-0.1.9/docs/source/tutorial/installation.rst +15 -0
  192. pyoomph-0.1.9/docs/source/tutorial/math/elementary.rst +37 -0
  193. pyoomph-0.1.9/docs/source/tutorial/math/keywords.rst +63 -0
  194. pyoomph-0.1.9/docs/source/tutorial/math.rst +11 -0
  195. pyoomph-0.1.9/docs/source/tutorial/mcflow/contact.rst +95 -0
  196. pyoomph-0.1.9/docs/source/tutorial/mcflow/freesurf/details.rst +60 -0
  197. pyoomph-0.1.9/docs/source/tutorial/mcflow/freesurf/evapmdl.rst +30 -0
  198. pyoomph-0.1.9/docs/source/tutorial/mcflow/freesurf.rst +66 -0
  199. pyoomph-0.1.9/docs/source/tutorial/mcflow/gcl.rst +110 -0
  200. pyoomph-0.1.9/docs/source/tutorial/mcflow/gcl_glycerol_water_capillary.py +115 -0
  201. pyoomph-0.1.9/docs/source/tutorial/mcflow/general.rst +27 -0
  202. pyoomph-0.1.9/docs/source/tutorial/mcflow/marainstab.rst +80 -0
  203. pyoomph-0.1.9/docs/source/tutorial/mcflow/marangoni_instability.py +105 -0
  204. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/gas.rst +38 -0
  205. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/gasmix.rst +71 -0
  206. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/liquid.rst +30 -0
  207. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/liquidmix.rst +26 -0
  208. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/materials_gas_mixture.py +125 -0
  209. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/materials_liquids.py +112 -0
  210. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/materials_pure_gas.py +98 -0
  211. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/ptdep.rst +52 -0
  212. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/solids.rst +6 -0
  213. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/temperature_and_pressure_dependency.py +68 -0
  214. pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib.rst +17 -0
  215. pyoomph-0.1.9/docs/source/tutorial/mcflow/rayleigh_taylor_instability.py +77 -0
  216. pyoomph-0.1.9/docs/source/tutorial/mcflow/rtinstab.rst +61 -0
  217. pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/define.rst +46 -0
  218. pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/insoluble.rst +27 -0
  219. pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/insoluble_surfactant_definition.py +91 -0
  220. pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/soluble.rst +74 -0
  221. pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/soluble_surfactants.py +107 -0
  222. pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact.rst +12 -0
  223. pyoomph-0.1.9/docs/source/tutorial/mcflow/unifac.rst +34 -0
  224. pyoomph-0.1.9/docs/source/tutorial/mcflow.rst +21 -0
  225. pyoomph-0.1.9/docs/source/tutorial/miscsettings/glorder.rst +13 -0
  226. pyoomph-0.1.9/docs/source/tutorial/miscsettings.rst +11 -0
  227. pyoomph-0.1.9/docs/source/tutorial/multidom/conduction.rst +94 -0
  228. pyoomph-0.1.9/docs/source/tutorial/multidom/evap.rst +114 -0
  229. pyoomph-0.1.9/docs/source/tutorial/multidom/evaporating_water_droplet.py +156 -0
  230. pyoomph-0.1.9/docs/source/tutorial/multidom/falling_droplet.py +184 -0
  231. pyoomph-0.1.9/docs/source/tutorial/multidom/falling_droplet_with_surfactants.py +60 -0
  232. pyoomph-0.1.9/docs/source/tutorial/multidom/icefront.rst +122 -0
  233. pyoomph-0.1.9/docs/source/tutorial/multidom/melting.rst +106 -0
  234. pyoomph-0.1.9/docs/source/tutorial/multidom/melting_ice_convection.py +137 -0
  235. pyoomph-0.1.9/docs/source/tutorial/multidom/simple_fsi.py +54 -0
  236. pyoomph-0.1.9/docs/source/tutorial/multidom/simple_fsi.rst +45 -0
  237. pyoomph-0.1.9/docs/source/tutorial/multidom/stokeslaw.rst +86 -0
  238. pyoomph-0.1.9/docs/source/tutorial/multidom/temperature_conduction.py +105 -0
  239. pyoomph-0.1.9/docs/source/tutorial/multidom/temperature_conduction_propagation.py +136 -0
  240. pyoomph-0.1.9/docs/source/tutorial/multidom/two_layer_flow.py +94 -0
  241. pyoomph-0.1.9/docs/source/tutorial/multidom/two_layer_flow_single_domain.py +108 -0
  242. pyoomph-0.1.9/docs/source/tutorial/multidom/twofluids.rst +128 -0
  243. pyoomph-0.1.9/docs/source/tutorial/multidom.rst +19 -0
  244. pyoomph-0.1.9/docs/source/tutorial/pde/continue.rst +16 -0
  245. pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/convdiffu_SUPG.py +94 -0
  246. pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/convdiffu_simple.py +91 -0
  247. pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/naive.rst +50 -0
  248. pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/supg.rst +77 -0
  249. pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu.rst +30 -0
  250. pyoomph-0.1.9/docs/source/tutorial/pde/lubric/coalesce.rst +35 -0
  251. pyoomph-0.1.9/docs/source/tutorial/pde/lubric/lubrication.py +60 -0
  252. pyoomph-0.1.9/docs/source/tutorial/pde/lubric/lubrication_coalescence.py +61 -0
  253. pyoomph-0.1.9/docs/source/tutorial/pde/lubric/lubrication_spreading.py +56 -0
  254. pyoomph-0.1.9/docs/source/tutorial/pde/lubric/relax.rst +32 -0
  255. pyoomph-0.1.9/docs/source/tutorial/pde/lubric/spread.rst +30 -0
  256. pyoomph-0.1.9/docs/source/tutorial/pde/lubric.rst +62 -0
  257. pyoomph-0.1.9/docs/source/tutorial/pde/navier/marainstab.rst +41 -0
  258. pyoomph-0.1.9/docs/source/tutorial/pde/navier/marangoni_instability.py +76 -0
  259. pyoomph-0.1.9/docs/source/tutorial/pde/navier/navier_stokes.py +77 -0
  260. pyoomph-0.1.9/docs/source/tutorial/pde/navier/navier_stokes_around_object.py +162 -0
  261. pyoomph-0.1.9/docs/source/tutorial/pde/navier/rayleigh_taylor_instability.py +66 -0
  262. pyoomph-0.1.9/docs/source/tutorial/pde/navier/rtinstab.rst +32 -0
  263. pyoomph-0.1.9/docs/source/tutorial/pde/navier/transientstokes.rst +73 -0
  264. pyoomph-0.1.9/docs/source/tutorial/pde/navier/womersley.rst +30 -0
  265. pyoomph-0.1.9/docs/source/tutorial/pde/navier.rst +47 -0
  266. pyoomph-0.1.9/docs/source/tutorial/pde/patterns/biftrack.rst +44 -0
  267. pyoomph-0.1.9/docs/source/tutorial/pde/patterns/eigen.rst +100 -0
  268. pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kse.rst +78 -0
  269. pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kuramoto_sivanshinsky.py +80 -0
  270. pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kuramoto_sivanshinsky_arclength_eigen.py +97 -0
  271. pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kuramoto_sivanshinsky_bifurcation.py +64 -0
  272. pyoomph-0.1.9/docs/source/tutorial/pde/patterns.rst +15 -0
  273. pyoomph-0.1.9/docs/source/tutorial/pde/wave/doubleslit.rst +60 -0
  274. pyoomph-0.1.9/docs/source/tutorial/pde/wave/drums.rst +43 -0
  275. pyoomph-0.1.9/docs/source/tutorial/pde/wave/onedim.rst +54 -0
  276. pyoomph-0.1.9/docs/source/tutorial/pde/wave/wave_eq.py +71 -0
  277. pyoomph-0.1.9/docs/source/tutorial/pde/wave/wave_eq_doubleslit.py +131 -0
  278. pyoomph-0.1.9/docs/source/tutorial/pde/wave/wave_eq_drums.py +78 -0
  279. pyoomph-0.1.9/docs/source/tutorial/pde/wave.rst +13 -0
  280. pyoomph-0.1.9/docs/source/tutorial/pde.rst +18 -0
  281. pyoomph-0.1.9/docs/source/tutorial/plotting/droplet.rst +84 -0
  282. pyoomph-0.1.9/docs/source/tutorial/plotting/eigendynamics.py +57 -0
  283. pyoomph-0.1.9/docs/source/tutorial/plotting/eigendynamics.rst +45 -0
  284. pyoomph-0.1.9/docs/source/tutorial/plotting/eigenfuncs.rst +41 -0
  285. pyoomph-0.1.9/docs/source/tutorial/plotting/evaporating_water_droplet.py +156 -0
  286. pyoomph-0.1.9/docs/source/tutorial/plotting/kuramoto_sivanshinsky.py +80 -0
  287. pyoomph-0.1.9/docs/source/tutorial/plotting/kuramoto_sivanshinsky_arclength_eigen.py +97 -0
  288. pyoomph-0.1.9/docs/source/tutorial/plotting/kuramoto_sivanshinsky_bifurcation.py +64 -0
  289. pyoomph-0.1.9/docs/source/tutorial/plotting/plotting_eigenmodes.py +106 -0
  290. pyoomph-0.1.9/docs/source/tutorial/plotting/plotting_evaporating_droplet.py +95 -0
  291. pyoomph-0.1.9/docs/source/tutorial/plotting/replotting.rst +39 -0
  292. pyoomph-0.1.9/docs/source/tutorial/plotting/rising_bubble.py +241 -0
  293. pyoomph-0.1.9/docs/source/tutorial/plotting.rst +15 -0
  294. pyoomph-0.1.9/docs/source/tutorial/precice/coupled_heat.rst +71 -0
  295. pyoomph-0.1.9/docs/source/tutorial/precice/coupled_heat_circle.rst +65 -0
  296. pyoomph-0.1.9/docs/source/tutorial/precice/partitioned_heat_conduction.py +137 -0
  297. pyoomph-0.1.9/docs/source/tutorial/precice/partitioned_heat_conduction_circle.py +109 -0
  298. pyoomph-0.1.9/docs/source/tutorial/precice.rst +18 -0
  299. pyoomph-0.1.9/docs/source/tutorial/preface/cite.rst +26 -0
  300. pyoomph-0.1.9/docs/source/tutorial/preface/general.rst +4 -0
  301. pyoomph-0.1.9/docs/source/tutorial/preface/license.rst +167 -0
  302. pyoomph-0.1.9/docs/source/tutorial/preface/motivation.rst +15 -0
  303. pyoomph-0.1.9/docs/source/tutorial/preface/whentouse.rst +27 -0
  304. pyoomph-0.1.9/docs/source/tutorial/preface.rst +18 -0
  305. pyoomph-0.1.9/docs/source/tutorial/references.rst +6 -0
  306. pyoomph-0.1.9/docs/source/tutorial/spatial/helmholtz.rst +169 -0
  307. pyoomph-0.1.9/docs/source/tutorial/spatial/helmholtz_pml.py +140 -0
  308. pyoomph-0.1.9/docs/source/tutorial/spatial/math/internals.rst +19 -0
  309. pyoomph-0.1.9/docs/source/tutorial/spatial/math/shape.rst +111 -0
  310. pyoomph-0.1.9/docs/source/tutorial/spatial/math.rst +15 -0
  311. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/byhand.rst +53 -0
  312. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/curvedline.rst +104 -0
  313. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/gmsh.rst +61 -0
  314. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_Lshape_by_hand.py +88 -0
  315. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_fish_dimensional_curved.py +113 -0
  316. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_gmsh_fish_mesh_modes.py +100 -0
  317. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_gmsh_fish_with_holes.py +114 -0
  318. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_helical_line.py +78 -0
  319. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/resolution.rst +53 -0
  320. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/unitsandmacro.rst +48 -0
  321. pyoomph-0.1.9/docs/source/tutorial/spatial/mesh.rst +18 -0
  322. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/adapt.rst +38 -0
  323. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/cauchy.rst +10 -0
  324. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/coordsys.rst +33 -0
  325. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/neumann.rst +41 -0
  326. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/onedimcoupled.rst +39 -0
  327. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/onedimdbc.rst +59 -0
  328. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson.py +66 -0
  329. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_2d.py +55 -0
  330. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_2d_adaptive.py +52 -0
  331. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_axisymm_adaptive.py +41 -0
  332. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_coupled.py +49 -0
  333. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_neumann.py +63 -0
  334. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_pure_neumann_nullspace.py +84 -0
  335. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_robin_via_lagrange.py +72 -0
  336. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_robin_via_neumann.py +54 -0
  337. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/pureneumann.rst +92 -0
  338. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/robin.rst +73 -0
  339. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/twodim.rst +43 -0
  340. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/weakform.rst +57 -0
  341. pyoomph-0.1.9/docs/source/tutorial/spatial/poisson.rst +23 -0
  342. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/cavity_forward_problem.py +65 -0
  343. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/cavity_inverse_problem.py +81 -0
  344. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/cr.rst +67 -0
  345. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/dimtraction.rst +81 -0
  346. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/implement.rst +54 -0
  347. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/inverse_problem.rst +136 -0
  348. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/nonnewton.rst +23 -0
  349. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/nonormalflow.rst +69 -0
  350. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/puredirichlet.rst +16 -0
  351. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes.py +87 -0
  352. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_dimensional.py +99 -0
  353. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_flow_around_object.py +140 -0
  354. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_no_normal_flow.py +112 -0
  355. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_nonnewtonian.py +58 -0
  356. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_pressure_fix.py +52 -0
  357. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokeslaw.rst +142 -0
  358. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/weakform.rst +25 -0
  359. pyoomph-0.1.9/docs/source/tutorial/spatial/stokes.rst +22 -0
  360. pyoomph-0.1.9/docs/source/tutorial/spatial.rst +16 -0
  361. pyoomph-0.1.9/docs/source/tutorial/temporal/changeparams.rst +87 -0
  362. pyoomph-0.1.9/docs/source/tutorial/temporal/coupled.rst +109 -0
  363. pyoomph-0.1.9/docs/source/tutorial/temporal/coupled_oscillators_method_1.py +66 -0
  364. pyoomph-0.1.9/docs/source/tutorial/temporal/coupled_oscillators_method_2.py +66 -0
  365. pyoomph-0.1.9/docs/source/tutorial/temporal/coupled_oscillators_method_3.py +76 -0
  366. pyoomph-0.1.9/docs/source/tutorial/temporal/custom_harmonic_oscillator.py +75 -0
  367. pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/custom_math_dimensional_tennis.py +122 -0
  368. pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/custom_math_driven_oscillator.py +75 -0
  369. pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/drivenho.rst +42 -0
  370. pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/multiret.rst +4 -0
  371. pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/tennis.rst +109 -0
  372. pyoomph-0.1.9/docs/source/tutorial/temporal/custommath.rst +14 -0
  373. pyoomph-0.1.9/docs/source/tutorial/temporal/dimensional_oscillator_with_units.py +74 -0
  374. pyoomph-0.1.9/docs/source/tutorial/temporal/lagrange.rst +117 -0
  375. pyoomph-0.1.9/docs/source/tutorial/temporal/nondimho.rst +90 -0
  376. pyoomph-0.1.9/docs/source/tutorial/temporal/nonlinho.rst +55 -0
  377. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/floquet.rst +93 -0
  378. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/hopf_switch.py +95 -0
  379. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/hopf_switch.rst +48 -0
  380. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/langford_floquet.py +125 -0
  381. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/langford_time_integration.py +57 -0
  382. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/manual_orbit.py +74 -0
  383. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/manual_orbit.rst +42 -0
  384. pyoomph-0.1.9/docs/source/tutorial/temporal/orbit.rst +45 -0
  385. pyoomph-0.1.9/docs/source/tutorial/temporal/ownho.rst +60 -0
  386. pyoomph-0.1.9/docs/source/tutorial/temporal/parallel_running.py +49 -0
  387. pyoomph-0.1.9/docs/source/tutorial/temporal/pendulum_generalized_coordinate.py +63 -0
  388. pyoomph-0.1.9/docs/source/tutorial/temporal/pendulum_lagrange_multiplier.py +100 -0
  389. pyoomph-0.1.9/docs/source/tutorial/temporal/predefined_harmonic_oscillator.py +53 -0
  390. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/arclength.rst +96 -0
  391. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/biftrack.rst +101 -0
  392. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_eigenvalues_transcritical.py +46 -0
  393. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_arclength.py +49 -0
  394. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_arclength_eigen.py +59 -0
  395. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_param_change.py +66 -0
  396. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_tracking.py +48 -0
  397. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_hopf_tracking_lorenz.py +91 -0
  398. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_pitchfork_arclength_eigen.py +146 -0
  399. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_pitchfork_tracking.py +48 -0
  400. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_stationary_transcritical.py +51 -0
  401. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_transcritital_arclength_eigen.py +75 -0
  402. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_transient_transcritical.py +66 -0
  403. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/constraints.rst +113 -0
  404. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/deflated_continuation.py +65 -0
  405. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/deflated_solve.py +55 -0
  406. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/deflation.rst +69 -0
  407. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/eigenvals.rst +20 -0
  408. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/globalparams.rst +62 -0
  409. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/jumponbif.rst +73 -0
  410. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/lorenz_lyapunov.py +77 -0
  411. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/lyapunov.rst +79 -0
  412. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/pendulum_gencoord_eigenvalues.py +62 -0
  413. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/pendulum_lagrange_eigenvalues.py +52 -0
  414. pyoomph-0.1.9/docs/source/tutorial/temporal/stability/stationary.rst +28 -0
  415. pyoomph-0.1.9/docs/source/tutorial/temporal/stability.rst +21 -0
  416. pyoomph-0.1.9/docs/source/tutorial/temporal/testfunc.rst +29 -0
  417. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/adaptive_lorenz_attractor.py +65 -0
  418. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/adaptivity.rst +71 -0
  419. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/higherorder.rst +7 -0
  420. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/implicit.rst +58 -0
  421. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/midpoint.rst +79 -0
  422. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/oscillator_TPZ_scheme.py +76 -0
  423. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/oscillator_fully_implicit_schemes.py +87 -0
  424. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/time_stepping_schemes.py +76 -0
  425. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/timescheme.rst +92 -0
  426. pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping.rst +19 -0
  427. pyoomph-0.1.9/docs/source/tutorial/temporal/units.rst +63 -0
  428. pyoomph-0.1.9/docs/source/tutorial/temporal/van_der_pol_method_1.py +61 -0
  429. pyoomph-0.1.9/docs/source/tutorial/temporal/van_der_pol_method_2.py +55 -0
  430. pyoomph-0.1.9/docs/source/tutorial/temporal.rst +27 -0
  431. pyoomph-0.1.9/docs/source/tutorial.rst +29 -0
  432. pyoomph-0.1.9/pyoomph/__init__.py +242 -0
  433. pyoomph-0.1.9/pyoomph/__main__.py +305 -0
  434. pyoomph-0.1.9/pyoomph/_version.py +1 -0
  435. pyoomph-0.1.9/pyoomph/equations/ALE.py +707 -0
  436. pyoomph-0.1.9/pyoomph/equations/NSCH.py +339 -0
  437. pyoomph-0.1.9/pyoomph/equations/SUPG.py +236 -0
  438. pyoomph-0.1.9/pyoomph/equations/__init__.py +26 -0
  439. pyoomph-0.1.9/pyoomph/equations/advection_diffusion.py +304 -0
  440. pyoomph-0.1.9/pyoomph/equations/cahn_hilliard.py +271 -0
  441. pyoomph-0.1.9/pyoomph/equations/contact_angle.py +802 -0
  442. pyoomph-0.1.9/pyoomph/equations/darcy.py +210 -0
  443. pyoomph-0.1.9/pyoomph/equations/generic.py +1013 -0
  444. pyoomph-0.1.9/pyoomph/equations/harmonic_oscillator.py +78 -0
  445. pyoomph-0.1.9/pyoomph/equations/helmholtz.py +81 -0
  446. pyoomph-0.1.9/pyoomph/equations/kuramoto_sivashinsky.py +93 -0
  447. pyoomph-0.1.9/pyoomph/equations/low_order_NSCH.py +302 -0
  448. pyoomph-0.1.9/pyoomph/equations/lubrication.py +427 -0
  449. pyoomph-0.1.9/pyoomph/equations/multi_component.py +1132 -0
  450. pyoomph-0.1.9/pyoomph/equations/navier_stokes.py +1139 -0
  451. pyoomph-0.1.9/pyoomph/equations/ode.py +56 -0
  452. pyoomph-0.1.9/pyoomph/equations/poisson.py +203 -0
  453. pyoomph-0.1.9/pyoomph/equations/potential_flow.py +459 -0
  454. pyoomph-0.1.9/pyoomph/equations/solid.py +367 -0
  455. pyoomph-0.1.9/pyoomph/equations/stokes_stream_func.py +170 -0
  456. pyoomph-0.1.9/pyoomph/equations/topological_changes.py +772 -0
  457. pyoomph-0.1.9/pyoomph/equations/tracers.py +170 -0
  458. pyoomph-0.1.9/pyoomph/expressions/__init__.py +598 -0
  459. pyoomph-0.1.9/pyoomph/expressions/cb.py +438 -0
  460. pyoomph-0.1.9/pyoomph/expressions/coordsys.py +1646 -0
  461. pyoomph-0.1.9/pyoomph/expressions/generic.py +1274 -0
  462. pyoomph-0.1.9/pyoomph/expressions/interpol.py +250 -0
  463. pyoomph-0.1.9/pyoomph/expressions/phys_consts.py +43 -0
  464. pyoomph-0.1.9/pyoomph/expressions/tensor_funcs.py +1932 -0
  465. pyoomph-0.1.9/pyoomph/expressions/units.py +333 -0
  466. pyoomph-0.1.9/pyoomph/expressions/utils.py +200 -0
  467. pyoomph-0.1.9/pyoomph/expressions/vtu_interpol.py +207 -0
  468. pyoomph-0.1.9/pyoomph/external_tools/basilisk/__init__.py +28 -0
  469. pyoomph-0.1.9/pyoomph/external_tools/basilisk/qcc_code_gen.py +80 -0
  470. pyoomph-0.1.9/pyoomph/generic/__init__.py +33 -0
  471. pyoomph-0.1.9/pyoomph/generic/assembly.py +368 -0
  472. pyoomph-0.1.9/pyoomph/generic/bifurcation_tools.py +1797 -0
  473. pyoomph-0.1.9/pyoomph/generic/ccompiler.py +310 -0
  474. pyoomph-0.1.9/pyoomph/generic/codegen.py +3373 -0
  475. pyoomph-0.1.9/pyoomph/generic/logging.py +55 -0
  476. pyoomph-0.1.9/pyoomph/generic/mpi.py +84 -0
  477. pyoomph-0.1.9/pyoomph/generic/problem.py +6332 -0
  478. pyoomph-0.1.9/pyoomph/jitbridge/NOTE_FOR_WINDOWS.txt +1 -0
  479. pyoomph-0.1.9/pyoomph/jitbridge/__init__.py +27 -0
  480. pyoomph-0.1.9/pyoomph/jitbridge/jitbridge.h +1 -0
  481. pyoomph-0.1.9/pyoomph/materials/UNIFAC/__init__.py +32 -0
  482. pyoomph-0.1.9/pyoomph/materials/UNIFAC/aiomfac.py +3491 -0
  483. pyoomph-0.1.9/pyoomph/materials/UNIFAC/dortmund.py +1051 -0
  484. pyoomph-0.1.9/pyoomph/materials/UNIFAC/original.py +877 -0
  485. pyoomph-0.1.9/pyoomph/materials/__init__.py +28 -0
  486. pyoomph-0.1.9/pyoomph/materials/activity.py +689 -0
  487. pyoomph-0.1.9/pyoomph/materials/csv_data/__init__.py +0 -0
  488. pyoomph-0.1.9/pyoomph/materials/csv_data/smooth.py +13 -0
  489. pyoomph-0.1.9/pyoomph/materials/default_materials.py +627 -0
  490. pyoomph-0.1.9/pyoomph/materials/generic.py +2222 -0
  491. pyoomph-0.1.9/pyoomph/materials/mass_transfer.py +514 -0
  492. pyoomph-0.1.9/pyoomph/materials/surfactant_isotherms.py +295 -0
  493. pyoomph-0.1.9/pyoomph/meshes/PFEM.py +245 -0
  494. pyoomph-0.1.9/pyoomph/meshes/__init__.py +31 -0
  495. pyoomph-0.1.9/pyoomph/meshes/bcs.py +944 -0
  496. pyoomph-0.1.9/pyoomph/meshes/curved_entities.py +59 -0
  497. pyoomph-0.1.9/pyoomph/meshes/droplet_meshes.py +224 -0
  498. pyoomph-0.1.9/pyoomph/meshes/gmsh.py +1879 -0
  499. pyoomph-0.1.9/pyoomph/meshes/interpolator.py +235 -0
  500. pyoomph-0.1.9/pyoomph/meshes/mesh.py +1776 -0
  501. pyoomph-0.1.9/pyoomph/meshes/meshdatacache.py +1540 -0
  502. pyoomph-0.1.9/pyoomph/meshes/remesher.py +616 -0
  503. pyoomph-0.1.9/pyoomph/meshes/simplemeshes.py +742 -0
  504. pyoomph-0.1.9/pyoomph/meshes/zeta.py +245 -0
  505. pyoomph-0.1.9/pyoomph/output/__init__.py +27 -0
  506. pyoomph-0.1.9/pyoomph/output/generic.py +1342 -0
  507. pyoomph-0.1.9/pyoomph/output/latex.py +182 -0
  508. pyoomph-0.1.9/pyoomph/output/meshio.py +627 -0
  509. pyoomph-0.1.9/pyoomph/output/plotting.py +2915 -0
  510. pyoomph-0.1.9/pyoomph/output/plotting3d.py +89 -0
  511. pyoomph-0.1.9/pyoomph/output/states.py +165 -0
  512. pyoomph-0.1.9/pyoomph/paraview/pyoomph_eigen_extrusion_filter.py +216 -0
  513. pyoomph-0.1.9/pyoomph/py.typed +0 -0
  514. pyoomph-0.1.9/pyoomph/solvers/__init__.py +27 -0
  515. pyoomph-0.1.9/pyoomph/solvers/accelerate.py +138 -0
  516. pyoomph-0.1.9/pyoomph/solvers/cktso.py +151 -0
  517. pyoomph-0.1.9/pyoomph/solvers/generic.py +437 -0
  518. pyoomph-0.1.9/pyoomph/solvers/mumps.py +97 -0
  519. pyoomph-0.1.9/pyoomph/solvers/pardiso.py +603 -0
  520. pyoomph-0.1.9/pyoomph/solvers/petsc.py +805 -0
  521. pyoomph-0.1.9/pyoomph/solvers/precice_adapter.py +651 -0
  522. pyoomph-0.1.9/pyoomph/solvers/scipy.py +227 -0
  523. pyoomph-0.1.9/pyoomph/typings/__init__.py +56 -0
  524. pyoomph-0.1.9/pyoomph/utils/__init__.py +27 -0
  525. pyoomph-0.1.9/pyoomph/utils/bifurcation_gui.py +1115 -0
  526. pyoomph-0.1.9/pyoomph/utils/dropgeom.py +662 -0
  527. pyoomph-0.1.9/pyoomph/utils/halleys_method.py +70 -0
  528. pyoomph-0.1.9/pyoomph/utils/lyapunov.py +328 -0
  529. pyoomph-0.1.9/pyoomph/utils/num_text_out.py +187 -0
  530. pyoomph-0.1.9/pyoomph/utils/paramscan.py +287 -0
  531. pyoomph-0.1.9/pyoomph/utils/periodic_driving_response.py +359 -0
  532. pyoomph-0.1.9/pyoomph/utils/rectangular_polar_mapping.py +183 -0
  533. pyoomph-0.1.9/pyoomph/utils/smallest_circle.py +137 -0
  534. pyoomph-0.1.9/pyoomph/utils/sympy.py +159 -0
  535. pyoomph-0.1.9/pyproject.toml +180 -0
  536. pyoomph-0.1.9/src/Makefile +93 -0
  537. pyoomph-0.1.9/src/Tmacroelements.hpp +107 -0
  538. pyoomph-0.1.9/src/bifurcation.cpp +6001 -0
  539. pyoomph-0.1.9/src/bifurcation.hpp +607 -0
  540. pyoomph-0.1.9/src/ccompiler.cpp +149 -0
  541. pyoomph-0.1.9/src/ccompiler.hpp +99 -0
  542. pyoomph-0.1.9/src/codegen.cpp +10232 -0
  543. pyoomph-0.1.9/src/codegen.hpp +1125 -0
  544. pyoomph-0.1.9/src/elements.cpp +13079 -0
  545. pyoomph-0.1.9/src/elements.hpp +3483 -0
  546. pyoomph-0.1.9/src/exception.cpp +53 -0
  547. pyoomph-0.1.9/src/exception.hpp +54 -0
  548. pyoomph-0.1.9/src/expressions.cpp +3811 -0
  549. pyoomph-0.1.9/src/expressions.hpp +461 -0
  550. pyoomph-0.1.9/src/ginac.hpp +32 -0
  551. pyoomph-0.1.9/src/hessian_tensor.cpp +133 -0
  552. pyoomph-0.1.9/src/hessian_tensor.hpp +103 -0
  553. pyoomph-0.1.9/src/jitbridge.h +1046 -0
  554. pyoomph-0.1.9/src/kdtree.cpp +408 -0
  555. pyoomph-0.1.9/src/kdtree.hpp +64 -0
  556. pyoomph-0.1.9/src/lagr_error_estimator.cpp +1953 -0
  557. pyoomph-0.1.9/src/lagr_error_estimator.hpp +193 -0
  558. pyoomph-0.1.9/src/logging.cpp +129 -0
  559. pyoomph-0.1.9/src/logging.hpp +36 -0
  560. pyoomph-0.1.9/src/mac_accelerate.cpp +339 -0
  561. pyoomph-0.1.9/src/mac_accelerate.hpp +135 -0
  562. pyoomph-0.1.9/src/mesh.cpp +5773 -0
  563. pyoomph-0.1.9/src/mesh.hpp +508 -0
  564. pyoomph-0.1.9/src/mesh1d.cpp +272 -0
  565. pyoomph-0.1.9/src/mesh1d.hpp +179 -0
  566. pyoomph-0.1.9/src/mesh2d.cpp +1163 -0
  567. pyoomph-0.1.9/src/mesh2d.hpp +331 -0
  568. pyoomph-0.1.9/src/mesh3d.cpp +436 -0
  569. pyoomph-0.1.9/src/mesh3d.hpp +337 -0
  570. pyoomph-0.1.9/src/meshtemplate.cpp +2853 -0
  571. pyoomph-0.1.9/src/meshtemplate.hpp +1009 -0
  572. pyoomph-0.1.9/src/missing_masters.hpp +1279 -0
  573. pyoomph-0.1.9/src/nodes.cpp +95 -0
  574. pyoomph-0.1.9/src/nodes.hpp +130 -0
  575. pyoomph-0.1.9/src/oomph_lib.hpp +35 -0
  576. pyoomph-0.1.9/src/periodic_bspline.cpp +380 -0
  577. pyoomph-0.1.9/src/periodic_bspline.hpp +76 -0
  578. pyoomph-0.1.9/src/problem.cpp +3526 -0
  579. pyoomph-0.1.9/src/problem.hpp +557 -0
  580. pyoomph-0.1.9/src/pybind/codegen.cpp +540 -0
  581. pyoomph-0.1.9/src/pybind/expressions.cpp +1302 -0
  582. pyoomph-0.1.9/src/pybind/geom_objects.cpp +148 -0
  583. pyoomph-0.1.9/src/pybind/mesh.cpp +1463 -0
  584. pyoomph-0.1.9/src/pybind/module.cpp +73 -0
  585. pyoomph-0.1.9/src/pybind/patch_stubs.py +55 -0
  586. pyoomph-0.1.9/src/pybind/problem.cpp +1169 -0
  587. pyoomph-0.1.9/src/pybind/solver.cpp +414 -0
  588. pyoomph-0.1.9/src/pybind/timestepper.cpp +110 -0
  589. pyoomph-0.1.9/src/pybind/vector.cpp +50 -0
  590. pyoomph-0.1.9/src/pyginacstruct.hpp +221 -0
  591. pyoomph-0.1.9/src/refineable_telements.cpp +1477 -0
  592. pyoomph-0.1.9/src/refineable_telements.hpp +300 -0
  593. pyoomph-0.1.9/src/thirdparty/INFO_delaunator +27 -0
  594. pyoomph-0.1.9/src/thirdparty/INFO_nanoflann +34 -0
  595. pyoomph-0.1.9/src/thirdparty/INFO_oomph-lib +59 -0
  596. pyoomph-0.1.9/src/thirdparty/delaunator.hpp +651 -0
  597. pyoomph-0.1.9/src/thirdparty/nanoflann.hpp +4094 -0
  598. pyoomph-0.1.9/src/thirdparty/oomph-lib/LICENCE +375 -0
  599. pyoomph-0.1.9/src/thirdparty/oomph-lib/Makefile +106 -0
  600. pyoomph-0.1.9/src/thirdparty/oomph-lib/cross_compile.sh +3 -0
  601. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelement_face_coordinate_translation_schemes.cc +268 -0
  602. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelement_face_coordinate_translation_schemes.h +166 -0
  603. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelements.cc +836 -0
  604. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelements.h +2295 -0
  605. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Telements.cc +986 -0
  606. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Telements.h +4111 -0
  607. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Vector.h +373 -0
  608. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/algebraic_elements.cc +422 -0
  609. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/algebraic_elements.h +892 -0
  610. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/assembly_handler.cc +5128 -0
  611. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/assembly_handler.h +1177 -0
  612. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/binary_tree.cc +875 -0
  613. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/binary_tree.h +354 -0
  614. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/communicator.cc +103 -0
  615. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/communicator.h +368 -0
  616. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/domain.cc +222 -0
  617. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/domain.h +387 -0
  618. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector.cc +2247 -0
  619. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector.h +503 -0
  620. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector_with_halo.cc +398 -0
  621. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector_with_halo.h +341 -0
  622. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_external_element.cc +847 -0
  623. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_external_element.h +626 -0
  624. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_moving_nodes.cc +675 -0
  625. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_moving_nodes.h +533 -0
  626. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/elements.cc +7547 -0
  627. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/elements.h +5269 -0
  628. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/error_estimator.cc +1935 -0
  629. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/error_estimator.h +647 -0
  630. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/explicit_timesteppers.cc +541 -0
  631. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/explicit_timesteppers.h +267 -0
  632. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/generalised_timesteppers.h +330 -0
  633. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/geom_objects.h +1243 -0
  634. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/integral.cc +849 -0
  635. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/integral.h +1680 -0
  636. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_algebra_distribution.cc +568 -0
  637. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_algebra_distribution.h +585 -0
  638. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_solver.cc +2831 -0
  639. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_solver.h +865 -0
  640. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element.cc +685 -0
  641. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element.h +440 -0
  642. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element_node_update_element.cc +116 -0
  643. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element_node_update_element.h +552 -0
  644. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/map_matrix.h +564 -0
  645. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/matrices.cc +5927 -0
  646. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/matrices.h +3707 -0
  647. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh.cc +9637 -0
  648. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh.h +2962 -0
  649. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh_as_geometric_object.cc +106 -0
  650. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh_as_geometric_object.h +453 -0
  651. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/missing_masters.cc +1604 -0
  652. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/missing_masters.h +241 -0
  653. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/missing_masters.template.cc +1285 -0
  654. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/nodes.cc +3824 -0
  655. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/nodes.h +2914 -0
  656. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/octree.cc +5934 -0
  657. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/octree.h +1019 -0
  658. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_definitions.cc +337 -0
  659. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_definitions.h +492 -0
  660. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_utilities.cc +1717 -0
  661. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_utilities.h +1248 -0
  662. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/orthpoly.cc +162 -0
  663. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/orthpoly.h +256 -0
  664. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/partitioning.cc +1392 -0
  665. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/partitioning.h +212 -0
  666. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/problem.cc +20168 -0
  667. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/problem.h +3173 -0
  668. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/quadtree.cc +1640 -0
  669. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/quadtree.h +494 -0
  670. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_brick_element.cc +2994 -0
  671. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_brick_element.h +487 -0
  672. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_elements.cc +1544 -0
  673. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_elements.h +1053 -0
  674. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_line_element.cc +891 -0
  675. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_line_element.h +253 -0
  676. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_mesh.cc +5333 -0
  677. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_mesh.h +1058 -0
  678. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_mesh.template.cc +765 -0
  679. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_quad_element.cc +2227 -0
  680. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_quad_element.h +469 -0
  681. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_container.cc +3987 -0
  682. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_container.h +1192 -0
  683. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_parameters.cc +50 -0
  684. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_parameters.h +502 -0
  685. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/shape.h +1387 -0
  686. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sparse_vector.h +146 -0
  687. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/timesteppers.cc +1306 -0
  688. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/timesteppers.h +1466 -0
  689. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/tree.cc +457 -0
  690. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/tree.h +485 -0
  691. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/tree.template.cc +242 -0
  692. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/unstructured_two_d_mesh_geometry_base.cc +4718 -0
  693. pyoomph-0.1.9/src/thirdparty/oomph-lib/include/unstructured_two_d_mesh_geometry_base.h +5626 -0
  694. pyoomph-0.1.9/src/timestepper.cpp +366 -0
  695. pyoomph-0.1.9/src/timestepper.hpp +139 -0
  696. pyoomph-0.1.9/src/tracers.cpp +656 -0
  697. pyoomph-0.1.9/src/tracers.hpp +117 -0
  698. pyoomph-0.1.9/src/wedges_and_pyramids.cpp +1226 -0
  699. pyoomph-0.1.9/src/wedges_and_pyramids.hpp +1584 -0
  700. pyoomph-0.1.9/tests/README.md +10 -0
  701. pyoomph-0.1.9/tests/test_adaptivity.py +61 -0
  702. pyoomph-0.1.9/tests/test_compilers.py +83 -0
  703. pyoomph-0.1.9/tests/test_linear_response.py +101 -0
  704. pyoomph-0.1.9/tests/test_stokes.py +140 -0
@@ -0,0 +1,34 @@
1
+ FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
2
+
3
+ # System dependencies for building pyoomph from source (see INSTALL.md)
4
+ RUN apt-get update && apt-get install -y --no-install-recommends \
5
+ build-essential \
6
+ cmake \
7
+ ccache \
8
+ git \
9
+ python3 \
10
+ python3-dev \
11
+ python3-pip \
12
+ python3-venv \
13
+ libopenmpi-dev \
14
+ gfortran \
15
+ libblas-dev \
16
+ liblapack-dev \
17
+ pybind11-dev \
18
+ libginac-dev \
19
+ libcln-dev \
20
+ libgmp-dev \
21
+ libglu1-mesa \
22
+ libxcursor1 \
23
+ libopengl0 \
24
+ pkg-config \
25
+ && rm -rf /var/lib/apt/lists/*
26
+
27
+ USER vscode
28
+
29
+ RUN python3 -m venv /home/vscode/venv
30
+ ENV PATH="/home/vscode/venv/bin:${PATH}"
31
+
32
+ RUN pip install --no-cache-dir \
33
+ gmsh mkl mpi4py matplotlib numpy petsc4py pybind11 pygmsh scipy meshio \
34
+ pybind11-stubgen scikit-build-core pytest
@@ -0,0 +1,131 @@
1
+ name: Prebuild static CLN/GiNaC
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ workflow_call:
6
+
7
+ jobs:
8
+ prebuild:
9
+ name: ${{ matrix.label }}
10
+ runs-on: ${{ matrix.runner }}
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ include:
15
+ - label: linux-x86_64
16
+ runner: ubuntu-latest
17
+ platform: linux
18
+ artifact: static-ginac-cln-linux-x86_64
19
+ - label: macos-intel-x86_64
20
+ runner: macos-15-intel
21
+ platform: macos
22
+ artifact: static-ginac-cln-macos-intel-x86_64
23
+ - label: macos-arm64
24
+ runner: macos-14
25
+ platform: macos
26
+ artifact: static-ginac-cln-macos-arm64
27
+ - label: windows-msys2-ucrt64
28
+ runner: windows-latest
29
+ platform: windows
30
+ artifact: static-ginac-cln-windows-msys2-ucrt64
31
+
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+
35
+ - name: Install build dependencies (Linux)
36
+ if: matrix.platform == 'linux'
37
+ run: |
38
+ sudo apt-get update
39
+ sudo apt-get install -y \
40
+ autoconf automake libtool pkg-config \
41
+ make g++ m4 bison flex texinfo \
42
+ curl wget tar xz-utils
43
+
44
+ - name: Install build dependencies (macOS)
45
+ if: matrix.platform == 'macos'
46
+ run: |
47
+ brew update
48
+ brew install autoconf automake libtool pkg-config texinfo wget
49
+
50
+ - name: Build static CLN/GiNaC (Linux/macOS)
51
+ if: matrix.platform != 'windows'
52
+ shell: bash
53
+ run: |
54
+ chmod +x ./citools/build_static_ginac_cln.sh
55
+ ./citools/build_static_ginac_cln.sh
56
+
57
+ - name: Set up MSYS2 (Windows)
58
+ if: matrix.platform == 'windows'
59
+ uses: msys2/setup-msys2@v2
60
+ with:
61
+ msystem: UCRT64
62
+ update: true
63
+ install: >-
64
+ autoconf
65
+ automake
66
+ libtool
67
+ make
68
+ pkgconf
69
+ m4
70
+ bison
71
+ flex
72
+ patch
73
+ git
74
+ base-devel
75
+ wget
76
+ tar
77
+ mingw-w64-ucrt-x86_64-toolchain
78
+
79
+ - name: Build static CLN/GiNaC (Windows/MSYS2)
80
+ if: matrix.platform == 'windows'
81
+ shell: msys2 {0}
82
+ run: |
83
+ chmod +x ./citools/build_static_ginac_cln_msys2.sh
84
+ ./citools/build_static_ginac_cln_msys2.sh
85
+
86
+ - name: Collect metadata (Linux/macOS)
87
+ if: matrix.platform != 'windows'
88
+ shell: bash
89
+ run: |
90
+ mkdir -p build-metadata
91
+ {
92
+ echo "runner=${{ matrix.label }}"
93
+ echo "cln_version=1.3.7"
94
+ echo "ginac_version=1.8.10"
95
+ echo "utc_build_time=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
96
+ } > build-metadata/info.txt
97
+
98
+ if command -v pkg-config >/dev/null 2>&1; then
99
+ PKG_CONFIG_PATH="$PWD/GiNaC_static/install/lib/pkgconfig:${PKG_CONFIG_PATH:-}" \
100
+ pkg-config --static --libs ginac > build-metadata/pkg_config_static_libs.txt || true
101
+ fi
102
+
103
+ find GiNaC_static/install -type f > build-metadata/install_tree.txt
104
+
105
+ - name: Collect metadata (Windows/MSYS2)
106
+ if: matrix.platform == 'windows'
107
+ shell: msys2 {0}
108
+ run: |
109
+ mkdir -p build-metadata
110
+ {
111
+ echo "runner=${{ matrix.label }}"
112
+ echo "cln_version=1.3.7"
113
+ echo "ginac_version=1.8.10"
114
+ echo "utc_build_time=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
115
+ } > build-metadata/info.txt
116
+
117
+ if command -v pkg-config >/dev/null 2>&1; then
118
+ PKG_CONFIG_PATH="$PWD/GiNaC_static/install/lib/pkgconfig:${PKG_CONFIG_PATH:-}" \
119
+ pkg-config --static --libs ginac > build-metadata/pkg_config_static_libs.txt || true
120
+ fi
121
+
122
+ find GiNaC_static/install -type f > build-metadata/install_tree.txt
123
+
124
+ - name: Upload static prebuild artifact
125
+ uses: actions/upload-artifact@v4
126
+ with:
127
+ name: ${{ matrix.artifact }}
128
+ path: |
129
+ GiNaC_static/install
130
+ build-metadata
131
+ if-no-files-found: error
@@ -0,0 +1,101 @@
1
+ name: Test Windows wheel
2
+
3
+ # Manual, on-demand smoke test: installs the windows-msys2-ucrt64 wheel built by a
4
+ # Wheels workflow run (see wheels.yml) on an actual windows-latest runner, then runs
5
+ # `python -m pyoomph check all`. Meant to catch things that only show up on real
6
+ # Windows (e.g. WinError 32 file-in-use errors from a still-open log/output/DLL
7
+ # handle) without needing to boot into Windows manually.
8
+
9
+ on:
10
+ workflow_dispatch:
11
+ inputs:
12
+ wheels_run_id:
13
+ description: Wheels workflow run id to pull the windows wheel artifact from (defaults to the latest successful run)
14
+ required: false
15
+ type: string
16
+ python_version:
17
+ description: Python version to test with (must match one of the built cp3XX wheels)
18
+ required: false
19
+ type: string
20
+ default: "3.12"
21
+
22
+ jobs:
23
+ test_windows_wheel:
24
+ runs-on: windows-latest
25
+ steps:
26
+ - name: Resolve Wheels run id
27
+ id: resolve
28
+ env:
29
+ GH_TOKEN: ${{ github.token }}
30
+ MANUAL_RUN_ID: ${{ github.event.inputs.wheels_run_id }}
31
+ shell: bash
32
+ run: |
33
+ if [[ -n "${MANUAL_RUN_ID}" ]]; then
34
+ RUN_ID="${MANUAL_RUN_ID}"
35
+ else
36
+ RUN_ID="$(gh run list \
37
+ --workflow wheels.yml \
38
+ --repo "${GITHUB_REPOSITORY}" \
39
+ --status success \
40
+ --limit 1 \
41
+ --json databaseId \
42
+ --jq '.[0].databaseId')"
43
+ fi
44
+
45
+ if [[ -z "${RUN_ID}" || "${RUN_ID}" == "null" ]]; then
46
+ echo "Could not resolve a successful Wheels run id" >&2
47
+ exit 1
48
+ fi
49
+
50
+ echo "Using Wheels run id ${RUN_ID}"
51
+ echo "run_id=${RUN_ID}" >> "${GITHUB_OUTPUT}"
52
+
53
+ - name: Download windows wheel artifact
54
+ env:
55
+ GH_TOKEN: ${{ github.token }}
56
+ shell: bash
57
+ run: |
58
+ rm -rf wheelhouse
59
+ mkdir -p wheelhouse
60
+ gh run download "${{ steps.resolve.outputs.run_id }}" \
61
+ --repo "${GITHUB_REPOSITORY}" \
62
+ --name wheels-windows-msys2-ucrt64 \
63
+ --dir wheelhouse
64
+ ls -la wheelhouse
65
+
66
+ - name: Set up Python
67
+ uses: actions/setup-python@v5
68
+ with:
69
+ python-version: ${{ github.event.inputs.python_version }}
70
+
71
+ - name: Install the built wheel
72
+ shell: bash
73
+ run: |
74
+ python -m pip install --upgrade pip
75
+ # Pick the one wheel in wheelhouse matching this interpreter's own ABI
76
+ # tag out of the downloaded cp310..cp315 set, and install that exact
77
+ # file directly (rather than --no-index --find-links, which would also
78
+ # block pip from reaching PyPI for pyoomph's own dependencies).
79
+ PYTAG="cp$(python -c 'import sys; print(f"{sys.version_info.major}{sys.version_info.minor}")')"
80
+ WHEEL=$(ls wheelhouse/pyoomph-*-"${PYTAG}"-*win_amd64.whl)
81
+ echo "Installing ${WHEEL}"
82
+ python -m pip install "${WHEEL}"
83
+
84
+ - name: Run pyoomph check all
85
+ shell: bash
86
+ run: |
87
+ python -m pyoomph check all 2>&1 | tee check_output.log
88
+ echo "----------------------------------------"
89
+ if grep -q "WinError 32" check_output.log; then
90
+ echo "::error::WinError 32 (file/DLL still in use) detected in 'pyoomph check all' output -- see check_output.log above"
91
+ exit 1
92
+ fi
93
+ echo "No WinError 32 detected."
94
+
95
+ - name: Upload check output
96
+ if: always()
97
+ uses: actions/upload-artifact@v4
98
+ with:
99
+ name: pyoomph-check-output-windows
100
+ path: check_output.log
101
+ if-no-files-found: warn
@@ -0,0 +1,300 @@
1
+ name: Wheels
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ prebuild_run_id:
7
+ description: Optional prebuild workflow run id to download CLN/GiNaC artifacts from
8
+ required: false
9
+ type: string
10
+ workflow_run:
11
+ workflows:
12
+ - Prebuild static CLN/GiNaC
13
+ types:
14
+ - completed
15
+ release:
16
+ types:
17
+ - published
18
+
19
+ env:
20
+ # Add/remove Python versions here to build wheels for them on every platform below.
21
+ # cibuildwheel builds every matching version within a single job.
22
+ # 3.15 is not yet a stable release; CIBW_ENABLE=cpython-prerelease below lets
23
+ # cibuildwheel pick up its current pre-release build (requires cibuildwheel >= 4.0,
24
+ # which is when cp315 build identifiers were added). Drop 3.15 from this list once
25
+ # it's stable if you don't also want to drop the enable flag.
26
+ PYTHON_VERSIONS: "3.10 3.11 3.12 3.13 3.14 3.15"
27
+
28
+ jobs:
29
+ build_wheels:
30
+ if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success'
31
+ name: ${{ matrix.label }}
32
+ runs-on: ${{ matrix.runner }}
33
+ strategy:
34
+ fail-fast: false
35
+ matrix:
36
+ include:
37
+ - label: linux-x86_64
38
+ runner: ubuntu-latest
39
+ platform: linux
40
+ prebuild_artifact: static-ginac-cln-linux-x86_64
41
+ - label: macos-intel-x86_64
42
+ runner: macos-15-intel
43
+ platform: macos
44
+ prebuild_artifact: static-ginac-cln-macos-intel-x86_64
45
+ - label: macos-arm64
46
+ runner: macos-14
47
+ platform: macos
48
+ prebuild_artifact: static-ginac-cln-macos-arm64
49
+ - label: windows-msys2-ucrt64
50
+ runner: windows-latest
51
+ platform: windows
52
+ prebuild_artifact: static-ginac-cln-windows-msys2-ucrt64
53
+
54
+ steps:
55
+ - uses: actions/checkout@v4
56
+
57
+ - name: Set up Python
58
+ uses: actions/setup-python@v5
59
+ with:
60
+ python-version: '3.14'
61
+
62
+ - name: Compute cibuildwheel build selector
63
+ id: cibw
64
+ shell: bash
65
+ run: |
66
+ SELECTOR=""
67
+ for v in ${PYTHON_VERSIONS}; do
68
+ SELECTOR="${SELECTOR:+$SELECTOR }cp${v//./}-*"
69
+ done
70
+ echo "build_selector=${SELECTOR}" >> "${GITHUB_OUTPUT}"
71
+
72
+ - name: Resolve prebuild run id
73
+ id: prebuild
74
+ env:
75
+ GH_TOKEN: ${{ github.token }}
76
+ EVENT_NAME: ${{ github.event_name }}
77
+ WORKFLOW_RUN_ID: ${{ github.event.workflow_run.id }}
78
+ MANUAL_RUN_ID: ${{ github.event.inputs.prebuild_run_id }}
79
+ shell: bash
80
+ run: |
81
+ if [[ "${EVENT_NAME}" == "workflow_run" ]]; then
82
+ RUN_ID="${WORKFLOW_RUN_ID}"
83
+ elif [[ -n "${MANUAL_RUN_ID}" ]]; then
84
+ RUN_ID="${MANUAL_RUN_ID}"
85
+ else
86
+ RUN_ID="$(gh run list \
87
+ --workflow prebuild_static_ginac_cln.yml \
88
+ --repo "${GITHUB_REPOSITORY}" \
89
+ --status success \
90
+ --limit 1 \
91
+ --json databaseId \
92
+ --jq '.[0].databaseId')"
93
+ fi
94
+
95
+ if [[ -z "${RUN_ID}" || "${RUN_ID}" == "null" ]]; then
96
+ echo "Could not resolve a successful prebuild run id" >&2
97
+ exit 1
98
+ fi
99
+
100
+ echo "run_id=${RUN_ID}" >> "${GITHUB_OUTPUT}"
101
+
102
+ - name: Download matching static prebuild artifact
103
+ env:
104
+ GH_TOKEN: ${{ github.token }}
105
+ shell: bash
106
+ run: |
107
+ rm -rf prebuilt
108
+ mkdir -p prebuilt
109
+ gh run download "${{ steps.prebuild.outputs.run_id }}" \
110
+ --repo "${GITHUB_REPOSITORY}" \
111
+ --name "${{ matrix.prebuild_artifact }}" \
112
+ --dir prebuilt
113
+
114
+ - name: Show downloaded artifact layout
115
+ shell: bash
116
+ run: |
117
+ find prebuilt -maxdepth 5 -type d | sort
118
+ find prebuilt -maxdepth 5 -type f | sort | head -n 200
119
+
120
+ - name: Install build dependencies (Linux)
121
+ if: matrix.platform == 'linux'
122
+ run: |
123
+ sudo apt-get update
124
+ sudo apt-get install -y libglu1-mesa-dev libxcursor-dev libopengl0
125
+
126
+ - name: Build wheel with cibuildwheel (Linux/macOS)
127
+ if: matrix.platform != 'windows'
128
+ env:
129
+ CIBW_BUILD: ${{ steps.cibw.outputs.build_selector }}
130
+ CIBW_SKIP: "*-musllinux_*"
131
+ CIBW_ENABLE: "cpython-prerelease"
132
+ CIBW_ARCHS: native
133
+ CIBW_BUILD_FRONTEND: build
134
+ CIBW_BEFORE_ALL_LINUX: >
135
+ bash -lc 'if command -v dnf >/dev/null 2>&1; then dnf -y install wget bzip2 patch;
136
+ elif command -v yum >/dev/null 2>&1; then yum -y install wget bzip2 patch;
137
+ elif command -v apk >/dev/null 2>&1; then apk add --no-cache wget bzip2 patch;
138
+ elif command -v apt-get >/dev/null 2>&1; then apt-get update && apt-get install -y wget bzip2 patch;
139
+ else echo "No supported package manager for before-all" >&2; exit 1; fi'
140
+ CIBW_BEFORE_TEST_LINUX: >
141
+ bash -lc 'if command -v dnf >/dev/null 2>&1; then dnf -y install mesa-libGLU libXcursor libglvnd-opengl libXinerama;
142
+ elif command -v yum >/dev/null 2>&1; then yum -y install mesa-libGLU libXcursor libglvnd-opengl libXinerama;
143
+ elif command -v apk >/dev/null 2>&1; then apk add --no-cache glu libxcursor libxinerama || apk add --no-cache mesa libxcursor libxinerama || true;
144
+ elif command -v apt-get >/dev/null 2>&1; then apt-get update && apt-get install -y libglu1-mesa libxcursor1 libopengl0 libxinerama1;
145
+ else echo "No supported package manager for before-test" >&2; exit 1; fi'
146
+ CIBW_ENVIRONMENT: >
147
+ PYOOMPH_GINAC_INCLUDE_DIR=$PWD/prebuilt/GiNaC_static/install/include
148
+ PYOOMPH_GINAC_LIB_DIR=$PWD/prebuilt/GiNaC_static/install/lib
149
+ PYOOMPH_CLN_INCLUDE_DIR=$PWD/prebuilt/GiNaC_static/install/include
150
+ PYOOMPH_CLN_LIB_DIR=$PWD/prebuilt/GiNaC_static/install/lib
151
+ CIBW_CONFIG_SETTINGS: >
152
+ cmake.define.PYOOMPH_DOWNLOAD_CLN=OFF
153
+ cmake.define.PYOOMPH_DOWNLOAD_GINAC=OFF
154
+ cmake.define.PYOOMPH_USE_MPI=OFF
155
+ cmake.define.PYOOMPH_PARANOID=OFF
156
+ uses: pypa/cibuildwheel@v4.1.0
157
+ with:
158
+ output-dir: wheelhouse
159
+
160
+ - name: Set up MSYS2
161
+ if: matrix.platform == 'windows'
162
+ uses: msys2/setup-msys2@v2
163
+ with:
164
+ msystem: UCRT64
165
+ update: true
166
+ install: >-
167
+ make
168
+ patch
169
+ git
170
+ pkgconf
171
+ base-devel
172
+ mingw-w64-ucrt-x86_64-toolchain
173
+
174
+ - name: Build wheel with cibuildwheel (Windows/MSYS2)
175
+ if: matrix.platform == 'windows'
176
+ shell: msys2 {0}
177
+ env:
178
+ CC: gcc
179
+ CXX: g++
180
+ run: |
181
+ export PATH="$(cygpath -u "$pythonLocation"):$PATH"
182
+ python -m pip install --upgrade pip
183
+ python -m pip install --upgrade "cibuildwheel==4.1.0" delvewheel
184
+
185
+ PREBUILT_WIN="$(cygpath -m "$PWD/prebuilt/GiNaC_static/install")"
186
+
187
+ BUILD_SELECTOR=""
188
+ for v in ${PYTHON_VERSIONS}; do
189
+ BUILD_SELECTOR="${BUILD_SELECTOR:+$BUILD_SELECTOR }cp${v//./}-win_amd64"
190
+ done
191
+
192
+ export CIBW_BUILD="${BUILD_SELECTOR}"
193
+ export CIBW_ENABLE="cpython-prerelease"
194
+ export CIBW_ARCHS="AMD64"
195
+ export CIBW_BUILD_FRONTEND="build"
196
+ export CIBW_ENVIRONMENT_WINDOWS="CC=gcc CXX=g++ CXXFLAGS='-static-libgcc -static-libstdc++' LDFLAGS='-static-libgcc -static-libstdc++' PYOOMPH_GINAC_INCLUDE_DIR=${PREBUILT_WIN}/include PYOOMPH_GINAC_LIB_DIR=${PREBUILT_WIN}/lib PYOOMPH_CLN_INCLUDE_DIR=${PREBUILT_WIN}/include PYOOMPH_CLN_LIB_DIR=${PREBUILT_WIN}/lib"
197
+ export CIBW_REPAIR_WHEEL_COMMAND_WINDOWS="delvewheel repair --add-path C:/msys64/ucrt64/bin -w {dest_dir} {wheel}"
198
+ export CIBW_CONFIG_SETTINGS="cmake.args=-GUnix\ Makefiles cmake.define.PYOOMPH_DOWNLOAD_CLN=OFF cmake.define.PYOOMPH_DOWNLOAD_GINAC=OFF cmake.define.PYOOMPH_USE_MPI=OFF cmake.define.PYOOMPH_PARANOID=OFF"
199
+
200
+ mkdir -p wheelhouse
201
+ python -m cibuildwheel --output-dir wheelhouse
202
+
203
+ - name: Verify NO_MPI marker in wheel
204
+ shell: bash
205
+ run: |
206
+ python - <<'PY'
207
+ import pathlib
208
+ import sys
209
+ import zipfile
210
+
211
+ wheels = sorted(pathlib.Path("wheelhouse").glob("*.whl"))
212
+ if not wheels:
213
+ print("No wheels found in wheelhouse", file=sys.stderr)
214
+ sys.exit(1)
215
+
216
+ missing = []
217
+ for wheel in wheels:
218
+ with zipfile.ZipFile(wheel) as zf:
219
+ names = set(zf.namelist())
220
+ if "pyoomph/NO_MPI" not in names:
221
+ missing.append(wheel.name)
222
+
223
+ if missing:
224
+ print("NO_MPI marker missing in:", ", ".join(missing), file=sys.stderr)
225
+ sys.exit(1)
226
+
227
+ print("NO_MPI marker verified in", len(wheels), "wheel(s)")
228
+ PY
229
+
230
+ - name: Upload built wheel
231
+ uses: actions/upload-artifact@v4
232
+ with:
233
+ name: wheels-${{ matrix.label }}
234
+ path: wheelhouse/*.whl
235
+ if-no-files-found: error
236
+
237
+ build_sdist:
238
+ if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success'
239
+ name: sdist
240
+ runs-on: ubuntu-latest
241
+
242
+ steps:
243
+ - uses: actions/checkout@v4
244
+
245
+ - name: Set up Python
246
+ uses: actions/setup-python@v5
247
+ with:
248
+ python-version: '3.13'
249
+
250
+ - name: Build sdist
251
+ run: |
252
+ python -m pip install --upgrade build
253
+ python -m build --sdist --outdir dist
254
+
255
+ - name: Install build dependencies (Linux)
256
+ run: |
257
+ sudo apt-get update
258
+ sudo apt-get install -y wget bzip2 patch libglu1-mesa-dev libxcursor-dev libopengl0
259
+
260
+ - name: Test sdist install in a fresh venv
261
+ run: |
262
+ python -m venv /tmp/sdist-test-venv
263
+ /tmp/sdist-test-venv/bin/pip install --upgrade pip
264
+ /tmp/sdist-test-venv/bin/pip install "$PWD"/dist/*.tar.gz
265
+ # Run from outside the checkout: cwd is implicitly on sys.path, and
266
+ # this repo's own pyoomph/ source directory would otherwise shadow
267
+ # the installed package in site-packages.
268
+ cd /tmp
269
+ /tmp/sdist-test-venv/bin/python -c "import pyoomph._version as v; print('pyoomph', v.__version__, 'installed from sdist OK')"
270
+
271
+ - name: Upload sdist
272
+ uses: actions/upload-artifact@v4
273
+ with:
274
+ name: sdist
275
+ path: dist/*.tar.gz
276
+ if-no-files-found: error
277
+
278
+ upload_pypi:
279
+ name: Upload to PyPI
280
+ needs: [build_wheels, build_sdist]
281
+ if: github.event_name == 'release' && github.event.action == 'published'
282
+ runs-on: ubuntu-latest
283
+ environment: release
284
+
285
+ permissions:
286
+ id-token: write # mandatory for trusted publishing
287
+
288
+ steps:
289
+ - uses: actions/download-artifact@v4
290
+ with:
291
+ pattern: wheels-*
292
+ path: dist
293
+ merge-multiple: true
294
+
295
+ - uses: actions/download-artifact@v4
296
+ with:
297
+ name: sdist
298
+ path: dist
299
+
300
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,90 @@
1
+ build/
2
+ docs/build
3
+ wheelhouse/
4
+ tmp/
5
+ GiNaC_static/
6
+ .eggs/
7
+ pyoomph.egg-info/
8
+ _pyoomph-stubs/_pyoomph.pyi
9
+ pyoomph/_pyoomph_core.pyi
10
+ pytest/
11
+ __pycache__
12
+ *.pyc
13
+ *.geo_unrolled
14
+ *.geo
15
+ *.msh
16
+ *.vtu
17
+ *.vtk
18
+ *.pvd
19
+ *.txt
20
+ !CMakeLists.txt
21
+ !docs/requirements.txt
22
+ !pyoomph/jitbridge/NOTE_FOR_WINDOWS.txt
23
+ *.c
24
+ *.so
25
+ *.o
26
+ *.a
27
+ *.d
28
+ *.dll
29
+ *.dylib
30
+ *.def
31
+ *.pl
32
+ *.S
33
+ *.expect
34
+ _pyoomph_run_.txt
35
+ *.png
36
+ *.pdf
37
+ *.jpg
38
+ *.jpeg
39
+ *.eps
40
+ *.dump
41
+ *.state
42
+ *.mk
43
+ *.ini
44
+ *.aux
45
+ *.bbl
46
+ *.blg
47
+ *.log
48
+ *.toc
49
+ *.out
50
+ *.zip
51
+ *.mp4
52
+ *.mpg
53
+ *.csv
54
+ *.rar
55
+ *.exe
56
+ *.avi
57
+ *.mat
58
+ *.dat
59
+ *.pvsm
60
+ *.curved
61
+ *.pptx
62
+ *.pptx#
63
+ *.synctex.gz
64
+ *.prof
65
+ *.xml
66
+ *.plt
67
+ *.pos
68
+ *.m
69
+ *.xlsx
70
+ .DS_Store
71
+ .idea/
72
+ *.whl
73
+ *.code-workspace
74
+ *.json
75
+ *.layout
76
+ *.cbp
77
+ .vscode/
78
+ src/lib/
79
+ src/thirdparty/tinycc/config-extra.mak
80
+ src/thirdparty/tinycc/config.h
81
+ src/thirdparty/tinycc/config.mak
82
+ src/thirdparty/tinycc/config.texi
83
+ src/thirdparty/tinycc/tcc
84
+ src/thirdparty/tinycc/tcc-doc.html
85
+ src/thirdparty/tinycc/tcc-doc.info
86
+ src/thirdparty/tinycc/tcc.1
87
+ src/thirdparty/tinycc/tccdefs_.h
88
+ typings/_pyoomph-stubs/__init__.pyi
89
+ pyoomph/NO_MPI
90
+ citools/pyoomph_tutorial_scripts/
@@ -0,0 +1,34 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the OS, Python version and other tools you might need
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: "3.12"
13
+ # You can also specify other tool versions:
14
+ # nodejs: "19"
15
+ # rust: "1.64"
16
+ # golang: "1.19"
17
+ apt_packages:
18
+ - libgmsh-dev
19
+
20
+ # Build documentation in the "docs/" directory with Sphinx
21
+ sphinx:
22
+ configuration: docs/source/conf.py
23
+
24
+ # Optionally build your docs in additional formats such as PDF and ePub
25
+ formats:
26
+ - pdf
27
+ # - epub
28
+
29
+ # Optional but recommended, declare the Python requirements required
30
+ # to build your documentation
31
+ # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
32
+ python:
33
+ install:
34
+ - requirements: docs/requirements.txt