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.
- pyoomph-0.1.9/.devcontainer/Dockerfile +34 -0
- pyoomph-0.1.9/.github/workflows/prebuild_static_ginac_cln.yml +131 -0
- pyoomph-0.1.9/.github/workflows/test_windows_wheel.yml +101 -0
- pyoomph-0.1.9/.github/workflows/wheels.yml +300 -0
- pyoomph-0.1.9/.gitignore +90 -0
- pyoomph-0.1.9/.readthedocs.yaml +34 -0
- pyoomph-0.1.9/AGENTS.md +374 -0
- pyoomph-0.1.9/AGENTS_ADVANCED.md +353 -0
- pyoomph-0.1.9/AGENTS_EXAMPLES.md +501 -0
- pyoomph-0.1.9/AGENTS_MATERIALS.md +293 -0
- pyoomph-0.1.9/CHANGELOG.md +104 -0
- pyoomph-0.1.9/CMakeLists.txt +283 -0
- pyoomph-0.1.9/COPYING +842 -0
- pyoomph-0.1.9/INSTALL.md +128 -0
- pyoomph-0.1.9/MANIFEST.in +3 -0
- pyoomph-0.1.9/PKG-INFO +989 -0
- pyoomph-0.1.9/README.md +104 -0
- pyoomph-0.1.9/build_for_develop.sh +13 -0
- pyoomph-0.1.9/citools/before_build_linux.sh +22 -0
- pyoomph-0.1.9/citools/build_static_ginac_cln.sh +121 -0
- pyoomph-0.1.9/citools/build_static_ginac_cln_msys2.sh +79 -0
- pyoomph-0.1.9/citools/compile_win_wheels_msys2.sh +157 -0
- pyoomph-0.1.9/citools/download_and_build_static_ginac.sh +130 -0
- pyoomph-0.1.9/citools/resolve_ginac_cln_versions.sh +37 -0
- pyoomph-0.1.9/citools/test_all_tutorial_scripts.py +86 -0
- pyoomph-0.1.9/citools/test_all_tutorial_scripts_mpirun_2.py +71 -0
- pyoomph-0.1.9/clean.sh +40 -0
- pyoomph-0.1.9/cmake/ThirdPartyGiNaC.cmake +220 -0
- pyoomph-0.1.9/cmake/generate_stubs.py +140 -0
- pyoomph-0.1.9/docs/Makefile +20 -0
- pyoomph-0.1.9/docs/make.bat +35 -0
- pyoomph-0.1.9/docs/requirements.txt +10 -0
- pyoomph-0.1.9/docs/source/_static/css/custom.css +30 -0
- pyoomph-0.1.9/docs/source/_static/favicon.ico +0 -0
- pyoomph-0.1.9/docs/source/conf.py +152 -0
- pyoomph-0.1.9/docs/source/index.rst +334 -0
- pyoomph-0.1.9/docs/source/latex_tutorial.rst +28 -0
- pyoomph-0.1.9/docs/source/pyoomph._pyoomph_core.rst +17 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.ALE.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.NSCH.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.SUPG.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.advection_diffusion.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.cahn_hilliard.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.contact_angle.rst +7 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.darcy.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.generic.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.harmonic_oscillator.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.helmholtz.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.kuramoto_sivashinsky.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.low_order_NSCH.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.lubrication.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.multi_component.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.navier_stokes.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.ode.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.poisson.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.potential_flow.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.rst +38 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.solid.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.stokes_stream_func.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.topological_changes.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.equations.tracers.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.cb.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.coordsys.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.generic.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.interpol.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.phys_consts.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.rst +24 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.tensor_funcs.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.units.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.expressions.utils.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.generic.assembly.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.generic.ccompiler.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.generic.codegen.rst +7 -0
- pyoomph-0.1.9/docs/source/pyoomph.generic.mpi.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.generic.problem.rst +8 -0
- pyoomph-0.1.9/docs/source/pyoomph.generic.rst +21 -0
- pyoomph-0.1.9/docs/source/pyoomph.jitbridge.rst +9 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.aiomfac.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.dortmund.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.original.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.UNIFAC.rst +19 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.activity.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.default_materials.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.generic.rst +7 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.mass_transfer.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.rst +29 -0
- pyoomph-0.1.9/docs/source/pyoomph.materials.surfactant_isotherms.rst +7 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.PFEM.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.bcs.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.curved_entities.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.droplet_meshes.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.gmsh.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.interpolator.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.mesh.rst +7 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.meshdatacache.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.remesher.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.rst +27 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.simplemeshes.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.meshes.zeta.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.output.generic.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.output.latex.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.output.meshio.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.output.plotting.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.output.rst +21 -0
- pyoomph-0.1.9/docs/source/pyoomph.output.states.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.rst +38 -0
- pyoomph-0.1.9/docs/source/pyoomph.solvers.generic.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.solvers.pardiso.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.solvers.precice_adapter.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.solvers.rst +20 -0
- pyoomph-0.1.9/docs/source/pyoomph.solvers.scipy.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.typings.rst +9 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.bifurcation_gui.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.dropgeom.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.lyapunov.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.num_text_out.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.paramscan.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.periodic_driving_response.rst +6 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.rst +24 -0
- pyoomph-0.1.9/docs/source/pyoomph.utils.smallest_circle.rst +6 -0
- pyoomph-0.1.9/docs/source/refs.bib +650 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rayleigh_benard_azimuthal_stability.py +129 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rbconvect.rst +85 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rising_bubble.py +241 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal/rising_bubble.rst +88 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/azimuthal.rst +38 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/rivulet.py +85 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/rivulet.rst +77 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/turing_dispersion.py +82 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/turing_transient.py +63 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal/turingdispersion.rst +58 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/cartesiannormal.rst +17 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/deflation.rst +12 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/eigenbranch_continuation.py +144 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/eigenconti.rst +48 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/movmesh/dropdetach.rst +81 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/movmesh/hanging_droplet.py +122 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/movmesh.rst +10 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/response/dampedho.rst +61 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/response/drums.rst +51 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/response/linear_response_drum.py +111 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/response/linear_response_oscillator.py +105 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab/response.rst +11 -0
- pyoomph-0.1.9/docs/source/tutorial/advstab.rst +18 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/ALE_correction.py +64 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/aledt.rst +86 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/free_surface.py +86 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/freesurf.rst +132 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/gmshfields.rst +94 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/lagrange.rst +8 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/laplace_smoothed_mesh.py +64 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/laplsmooth.rst +52 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/rayleigh_plateau.py +174 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/remesh.rst +57 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/remeshing.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/cantilever.gif +0 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/cantilever.py +92 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/cantilever.rst +55 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/compressed_disc.py +91 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/compressed_disc.rst +51 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/solid_oscillations.gif +0 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/solid_oscillations.py +68 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid/solid_oscillations.rst +36 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/solid.rst +69 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_3d.py +69 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_free_slip.py +75 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_hyperelastic_tangential_shift.py +133 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_marangoni_and_gravity.py +138 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/droplet_spread_sliplength.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/free.rst +45 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/hyperelastic.rst +49 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/maraandgrav.rst +101 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/navier.rst +43 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread/threedim.rst +49 -0
- pyoomph-0.1.9/docs/source/tutorial/ale/spread.rst +19 -0
- pyoomph-0.1.9/docs/source/tutorial/ale.rst +23 -0
- pyoomph-0.1.9/docs/source/tutorial/dg/advdiffu.rst +152 -0
- pyoomph-0.1.9/docs/source/tutorial/dg/convection_diffusion.py +92 -0
- pyoomph-0.1.9/docs/source/tutorial/dg/poisson_weak_dirichlet.py +88 -0
- pyoomph-0.1.9/docs/source/tutorial/dg/weakdirichlet.rst +68 -0
- pyoomph-0.1.9/docs/source/tutorial/dg.rst +23 -0
- pyoomph-0.1.9/docs/source/tutorial/generate_tutorial_zip.sh +36 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/additional.rst +18 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/compile.rst +12 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/petscslepc.rst +105 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/problems.rst +12 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/pypa.rst +106 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/source/linux.rst +61 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/source/mac.rst +75 -0
- pyoomph-0.1.9/docs/source/tutorial/installation/wsl.rst +116 -0
- pyoomph-0.1.9/docs/source/tutorial/installation.rst +15 -0
- pyoomph-0.1.9/docs/source/tutorial/math/elementary.rst +37 -0
- pyoomph-0.1.9/docs/source/tutorial/math/keywords.rst +63 -0
- pyoomph-0.1.9/docs/source/tutorial/math.rst +11 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/contact.rst +95 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/freesurf/details.rst +60 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/freesurf/evapmdl.rst +30 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/freesurf.rst +66 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/gcl.rst +110 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/gcl_glycerol_water_capillary.py +115 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/general.rst +27 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/marainstab.rst +80 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/marangoni_instability.py +105 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/gas.rst +38 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/gasmix.rst +71 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/liquid.rst +30 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/liquidmix.rst +26 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/materials_gas_mixture.py +125 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/materials_liquids.py +112 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/materials_pure_gas.py +98 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/ptdep.rst +52 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/solids.rst +6 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib/temperature_and_pressure_dependency.py +68 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/matlib.rst +17 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/rayleigh_taylor_instability.py +77 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/rtinstab.rst +61 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/define.rst +46 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/insoluble.rst +27 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/insoluble_surfactant_definition.py +91 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/soluble.rst +74 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact/soluble_surfactants.py +107 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/surfact.rst +12 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow/unifac.rst +34 -0
- pyoomph-0.1.9/docs/source/tutorial/mcflow.rst +21 -0
- pyoomph-0.1.9/docs/source/tutorial/miscsettings/glorder.rst +13 -0
- pyoomph-0.1.9/docs/source/tutorial/miscsettings.rst +11 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/conduction.rst +94 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/evap.rst +114 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/evaporating_water_droplet.py +156 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/falling_droplet.py +184 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/falling_droplet_with_surfactants.py +60 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/icefront.rst +122 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/melting.rst +106 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/melting_ice_convection.py +137 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/simple_fsi.py +54 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/simple_fsi.rst +45 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/stokeslaw.rst +86 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/temperature_conduction.py +105 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/temperature_conduction_propagation.py +136 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/two_layer_flow.py +94 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/two_layer_flow_single_domain.py +108 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom/twofluids.rst +128 -0
- pyoomph-0.1.9/docs/source/tutorial/multidom.rst +19 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/continue.rst +16 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/convdiffu_SUPG.py +94 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/convdiffu_simple.py +91 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/naive.rst +50 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu/supg.rst +77 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/convdiffu.rst +30 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric/coalesce.rst +35 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric/lubrication.py +60 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric/lubrication_coalescence.py +61 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric/lubrication_spreading.py +56 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric/relax.rst +32 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric/spread.rst +30 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/lubric.rst +62 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/marainstab.rst +41 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/marangoni_instability.py +76 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/navier_stokes.py +77 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/navier_stokes_around_object.py +162 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/rayleigh_taylor_instability.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/rtinstab.rst +32 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/transientstokes.rst +73 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier/womersley.rst +30 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/navier.rst +47 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns/biftrack.rst +44 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns/eigen.rst +100 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kse.rst +78 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kuramoto_sivanshinsky.py +80 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kuramoto_sivanshinsky_arclength_eigen.py +97 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns/kuramoto_sivanshinsky_bifurcation.py +64 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/patterns.rst +15 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave/doubleslit.rst +60 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave/drums.rst +43 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave/onedim.rst +54 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave/wave_eq.py +71 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave/wave_eq_doubleslit.py +131 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave/wave_eq_drums.py +78 -0
- pyoomph-0.1.9/docs/source/tutorial/pde/wave.rst +13 -0
- pyoomph-0.1.9/docs/source/tutorial/pde.rst +18 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/droplet.rst +84 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/eigendynamics.py +57 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/eigendynamics.rst +45 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/eigenfuncs.rst +41 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/evaporating_water_droplet.py +156 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/kuramoto_sivanshinsky.py +80 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/kuramoto_sivanshinsky_arclength_eigen.py +97 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/kuramoto_sivanshinsky_bifurcation.py +64 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/plotting_eigenmodes.py +106 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/plotting_evaporating_droplet.py +95 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/replotting.rst +39 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting/rising_bubble.py +241 -0
- pyoomph-0.1.9/docs/source/tutorial/plotting.rst +15 -0
- pyoomph-0.1.9/docs/source/tutorial/precice/coupled_heat.rst +71 -0
- pyoomph-0.1.9/docs/source/tutorial/precice/coupled_heat_circle.rst +65 -0
- pyoomph-0.1.9/docs/source/tutorial/precice/partitioned_heat_conduction.py +137 -0
- pyoomph-0.1.9/docs/source/tutorial/precice/partitioned_heat_conduction_circle.py +109 -0
- pyoomph-0.1.9/docs/source/tutorial/precice.rst +18 -0
- pyoomph-0.1.9/docs/source/tutorial/preface/cite.rst +26 -0
- pyoomph-0.1.9/docs/source/tutorial/preface/general.rst +4 -0
- pyoomph-0.1.9/docs/source/tutorial/preface/license.rst +167 -0
- pyoomph-0.1.9/docs/source/tutorial/preface/motivation.rst +15 -0
- pyoomph-0.1.9/docs/source/tutorial/preface/whentouse.rst +27 -0
- pyoomph-0.1.9/docs/source/tutorial/preface.rst +18 -0
- pyoomph-0.1.9/docs/source/tutorial/references.rst +6 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/helmholtz.rst +169 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/helmholtz_pml.py +140 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/math/internals.rst +19 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/math/shape.rst +111 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/math.rst +15 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/byhand.rst +53 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/curvedline.rst +104 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/gmsh.rst +61 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_Lshape_by_hand.py +88 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_fish_dimensional_curved.py +113 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_gmsh_fish_mesh_modes.py +100 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_gmsh_fish_with_holes.py +114 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/mesh_helical_line.py +78 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/resolution.rst +53 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh/unitsandmacro.rst +48 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/mesh.rst +18 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/adapt.rst +38 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/cauchy.rst +10 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/coordsys.rst +33 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/neumann.rst +41 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/onedimcoupled.rst +39 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/onedimdbc.rst +59 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_2d.py +55 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_2d_adaptive.py +52 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_axisymm_adaptive.py +41 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_coupled.py +49 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_neumann.py +63 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_pure_neumann_nullspace.py +84 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_robin_via_lagrange.py +72 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/poisson_robin_via_neumann.py +54 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/pureneumann.rst +92 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/robin.rst +73 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/twodim.rst +43 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson/weakform.rst +57 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/poisson.rst +23 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/cavity_forward_problem.py +65 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/cavity_inverse_problem.py +81 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/cr.rst +67 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/dimtraction.rst +81 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/implement.rst +54 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/inverse_problem.rst +136 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/nonnewton.rst +23 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/nonormalflow.rst +69 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/puredirichlet.rst +16 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes.py +87 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_dimensional.py +99 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_flow_around_object.py +140 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_no_normal_flow.py +112 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_nonnewtonian.py +58 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokes_pressure_fix.py +52 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/stokeslaw.rst +142 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes/weakform.rst +25 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial/stokes.rst +22 -0
- pyoomph-0.1.9/docs/source/tutorial/spatial.rst +16 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/changeparams.rst +87 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/coupled.rst +109 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/coupled_oscillators_method_1.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/coupled_oscillators_method_2.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/coupled_oscillators_method_3.py +76 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custom_harmonic_oscillator.py +75 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/custom_math_dimensional_tennis.py +122 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/custom_math_driven_oscillator.py +75 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/drivenho.rst +42 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/multiret.rst +4 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custommath/tennis.rst +109 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/custommath.rst +14 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/dimensional_oscillator_with_units.py +74 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/lagrange.rst +117 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/nondimho.rst +90 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/nonlinho.rst +55 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/floquet.rst +93 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/hopf_switch.py +95 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/hopf_switch.rst +48 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/langford_floquet.py +125 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/langford_time_integration.py +57 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/manual_orbit.py +74 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit/manual_orbit.rst +42 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/orbit.rst +45 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/ownho.rst +60 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/parallel_running.py +49 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/pendulum_generalized_coordinate.py +63 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/pendulum_lagrange_multiplier.py +100 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/predefined_harmonic_oscillator.py +53 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/arclength.rst +96 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/biftrack.rst +101 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_eigenvalues_transcritical.py +46 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_arclength.py +49 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_arclength_eigen.py +59 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_param_change.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_fold_tracking.py +48 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_hopf_tracking_lorenz.py +91 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_pitchfork_arclength_eigen.py +146 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_pitchfork_tracking.py +48 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_stationary_transcritical.py +51 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_transcritital_arclength_eigen.py +75 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/bifurcation_transient_transcritical.py +66 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/constraints.rst +113 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/deflated_continuation.py +65 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/deflated_solve.py +55 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/deflation.rst +69 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/eigenvals.rst +20 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/globalparams.rst +62 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/jumponbif.rst +73 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/lorenz_lyapunov.py +77 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/lyapunov.rst +79 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/pendulum_gencoord_eigenvalues.py +62 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/pendulum_lagrange_eigenvalues.py +52 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability/stationary.rst +28 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/stability.rst +21 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/testfunc.rst +29 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/adaptive_lorenz_attractor.py +65 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/adaptivity.rst +71 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/higherorder.rst +7 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/implicit.rst +58 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/midpoint.rst +79 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/oscillator_TPZ_scheme.py +76 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/oscillator_fully_implicit_schemes.py +87 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/time_stepping_schemes.py +76 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping/timescheme.rst +92 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/timestepping.rst +19 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/units.rst +63 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/van_der_pol_method_1.py +61 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal/van_der_pol_method_2.py +55 -0
- pyoomph-0.1.9/docs/source/tutorial/temporal.rst +27 -0
- pyoomph-0.1.9/docs/source/tutorial.rst +29 -0
- pyoomph-0.1.9/pyoomph/__init__.py +242 -0
- pyoomph-0.1.9/pyoomph/__main__.py +305 -0
- pyoomph-0.1.9/pyoomph/_version.py +1 -0
- pyoomph-0.1.9/pyoomph/equations/ALE.py +707 -0
- pyoomph-0.1.9/pyoomph/equations/NSCH.py +339 -0
- pyoomph-0.1.9/pyoomph/equations/SUPG.py +236 -0
- pyoomph-0.1.9/pyoomph/equations/__init__.py +26 -0
- pyoomph-0.1.9/pyoomph/equations/advection_diffusion.py +304 -0
- pyoomph-0.1.9/pyoomph/equations/cahn_hilliard.py +271 -0
- pyoomph-0.1.9/pyoomph/equations/contact_angle.py +802 -0
- pyoomph-0.1.9/pyoomph/equations/darcy.py +210 -0
- pyoomph-0.1.9/pyoomph/equations/generic.py +1013 -0
- pyoomph-0.1.9/pyoomph/equations/harmonic_oscillator.py +78 -0
- pyoomph-0.1.9/pyoomph/equations/helmholtz.py +81 -0
- pyoomph-0.1.9/pyoomph/equations/kuramoto_sivashinsky.py +93 -0
- pyoomph-0.1.9/pyoomph/equations/low_order_NSCH.py +302 -0
- pyoomph-0.1.9/pyoomph/equations/lubrication.py +427 -0
- pyoomph-0.1.9/pyoomph/equations/multi_component.py +1132 -0
- pyoomph-0.1.9/pyoomph/equations/navier_stokes.py +1139 -0
- pyoomph-0.1.9/pyoomph/equations/ode.py +56 -0
- pyoomph-0.1.9/pyoomph/equations/poisson.py +203 -0
- pyoomph-0.1.9/pyoomph/equations/potential_flow.py +459 -0
- pyoomph-0.1.9/pyoomph/equations/solid.py +367 -0
- pyoomph-0.1.9/pyoomph/equations/stokes_stream_func.py +170 -0
- pyoomph-0.1.9/pyoomph/equations/topological_changes.py +772 -0
- pyoomph-0.1.9/pyoomph/equations/tracers.py +170 -0
- pyoomph-0.1.9/pyoomph/expressions/__init__.py +598 -0
- pyoomph-0.1.9/pyoomph/expressions/cb.py +438 -0
- pyoomph-0.1.9/pyoomph/expressions/coordsys.py +1646 -0
- pyoomph-0.1.9/pyoomph/expressions/generic.py +1274 -0
- pyoomph-0.1.9/pyoomph/expressions/interpol.py +250 -0
- pyoomph-0.1.9/pyoomph/expressions/phys_consts.py +43 -0
- pyoomph-0.1.9/pyoomph/expressions/tensor_funcs.py +1932 -0
- pyoomph-0.1.9/pyoomph/expressions/units.py +333 -0
- pyoomph-0.1.9/pyoomph/expressions/utils.py +200 -0
- pyoomph-0.1.9/pyoomph/expressions/vtu_interpol.py +207 -0
- pyoomph-0.1.9/pyoomph/external_tools/basilisk/__init__.py +28 -0
- pyoomph-0.1.9/pyoomph/external_tools/basilisk/qcc_code_gen.py +80 -0
- pyoomph-0.1.9/pyoomph/generic/__init__.py +33 -0
- pyoomph-0.1.9/pyoomph/generic/assembly.py +368 -0
- pyoomph-0.1.9/pyoomph/generic/bifurcation_tools.py +1797 -0
- pyoomph-0.1.9/pyoomph/generic/ccompiler.py +310 -0
- pyoomph-0.1.9/pyoomph/generic/codegen.py +3373 -0
- pyoomph-0.1.9/pyoomph/generic/logging.py +55 -0
- pyoomph-0.1.9/pyoomph/generic/mpi.py +84 -0
- pyoomph-0.1.9/pyoomph/generic/problem.py +6332 -0
- pyoomph-0.1.9/pyoomph/jitbridge/NOTE_FOR_WINDOWS.txt +1 -0
- pyoomph-0.1.9/pyoomph/jitbridge/__init__.py +27 -0
- pyoomph-0.1.9/pyoomph/jitbridge/jitbridge.h +1 -0
- pyoomph-0.1.9/pyoomph/materials/UNIFAC/__init__.py +32 -0
- pyoomph-0.1.9/pyoomph/materials/UNIFAC/aiomfac.py +3491 -0
- pyoomph-0.1.9/pyoomph/materials/UNIFAC/dortmund.py +1051 -0
- pyoomph-0.1.9/pyoomph/materials/UNIFAC/original.py +877 -0
- pyoomph-0.1.9/pyoomph/materials/__init__.py +28 -0
- pyoomph-0.1.9/pyoomph/materials/activity.py +689 -0
- pyoomph-0.1.9/pyoomph/materials/csv_data/__init__.py +0 -0
- pyoomph-0.1.9/pyoomph/materials/csv_data/smooth.py +13 -0
- pyoomph-0.1.9/pyoomph/materials/default_materials.py +627 -0
- pyoomph-0.1.9/pyoomph/materials/generic.py +2222 -0
- pyoomph-0.1.9/pyoomph/materials/mass_transfer.py +514 -0
- pyoomph-0.1.9/pyoomph/materials/surfactant_isotherms.py +295 -0
- pyoomph-0.1.9/pyoomph/meshes/PFEM.py +245 -0
- pyoomph-0.1.9/pyoomph/meshes/__init__.py +31 -0
- pyoomph-0.1.9/pyoomph/meshes/bcs.py +944 -0
- pyoomph-0.1.9/pyoomph/meshes/curved_entities.py +59 -0
- pyoomph-0.1.9/pyoomph/meshes/droplet_meshes.py +224 -0
- pyoomph-0.1.9/pyoomph/meshes/gmsh.py +1879 -0
- pyoomph-0.1.9/pyoomph/meshes/interpolator.py +235 -0
- pyoomph-0.1.9/pyoomph/meshes/mesh.py +1776 -0
- pyoomph-0.1.9/pyoomph/meshes/meshdatacache.py +1540 -0
- pyoomph-0.1.9/pyoomph/meshes/remesher.py +616 -0
- pyoomph-0.1.9/pyoomph/meshes/simplemeshes.py +742 -0
- pyoomph-0.1.9/pyoomph/meshes/zeta.py +245 -0
- pyoomph-0.1.9/pyoomph/output/__init__.py +27 -0
- pyoomph-0.1.9/pyoomph/output/generic.py +1342 -0
- pyoomph-0.1.9/pyoomph/output/latex.py +182 -0
- pyoomph-0.1.9/pyoomph/output/meshio.py +627 -0
- pyoomph-0.1.9/pyoomph/output/plotting.py +2915 -0
- pyoomph-0.1.9/pyoomph/output/plotting3d.py +89 -0
- pyoomph-0.1.9/pyoomph/output/states.py +165 -0
- pyoomph-0.1.9/pyoomph/paraview/pyoomph_eigen_extrusion_filter.py +216 -0
- pyoomph-0.1.9/pyoomph/py.typed +0 -0
- pyoomph-0.1.9/pyoomph/solvers/__init__.py +27 -0
- pyoomph-0.1.9/pyoomph/solvers/accelerate.py +138 -0
- pyoomph-0.1.9/pyoomph/solvers/cktso.py +151 -0
- pyoomph-0.1.9/pyoomph/solvers/generic.py +437 -0
- pyoomph-0.1.9/pyoomph/solvers/mumps.py +97 -0
- pyoomph-0.1.9/pyoomph/solvers/pardiso.py +603 -0
- pyoomph-0.1.9/pyoomph/solvers/petsc.py +805 -0
- pyoomph-0.1.9/pyoomph/solvers/precice_adapter.py +651 -0
- pyoomph-0.1.9/pyoomph/solvers/scipy.py +227 -0
- pyoomph-0.1.9/pyoomph/typings/__init__.py +56 -0
- pyoomph-0.1.9/pyoomph/utils/__init__.py +27 -0
- pyoomph-0.1.9/pyoomph/utils/bifurcation_gui.py +1115 -0
- pyoomph-0.1.9/pyoomph/utils/dropgeom.py +662 -0
- pyoomph-0.1.9/pyoomph/utils/halleys_method.py +70 -0
- pyoomph-0.1.9/pyoomph/utils/lyapunov.py +328 -0
- pyoomph-0.1.9/pyoomph/utils/num_text_out.py +187 -0
- pyoomph-0.1.9/pyoomph/utils/paramscan.py +287 -0
- pyoomph-0.1.9/pyoomph/utils/periodic_driving_response.py +359 -0
- pyoomph-0.1.9/pyoomph/utils/rectangular_polar_mapping.py +183 -0
- pyoomph-0.1.9/pyoomph/utils/smallest_circle.py +137 -0
- pyoomph-0.1.9/pyoomph/utils/sympy.py +159 -0
- pyoomph-0.1.9/pyproject.toml +180 -0
- pyoomph-0.1.9/src/Makefile +93 -0
- pyoomph-0.1.9/src/Tmacroelements.hpp +107 -0
- pyoomph-0.1.9/src/bifurcation.cpp +6001 -0
- pyoomph-0.1.9/src/bifurcation.hpp +607 -0
- pyoomph-0.1.9/src/ccompiler.cpp +149 -0
- pyoomph-0.1.9/src/ccompiler.hpp +99 -0
- pyoomph-0.1.9/src/codegen.cpp +10232 -0
- pyoomph-0.1.9/src/codegen.hpp +1125 -0
- pyoomph-0.1.9/src/elements.cpp +13079 -0
- pyoomph-0.1.9/src/elements.hpp +3483 -0
- pyoomph-0.1.9/src/exception.cpp +53 -0
- pyoomph-0.1.9/src/exception.hpp +54 -0
- pyoomph-0.1.9/src/expressions.cpp +3811 -0
- pyoomph-0.1.9/src/expressions.hpp +461 -0
- pyoomph-0.1.9/src/ginac.hpp +32 -0
- pyoomph-0.1.9/src/hessian_tensor.cpp +133 -0
- pyoomph-0.1.9/src/hessian_tensor.hpp +103 -0
- pyoomph-0.1.9/src/jitbridge.h +1046 -0
- pyoomph-0.1.9/src/kdtree.cpp +408 -0
- pyoomph-0.1.9/src/kdtree.hpp +64 -0
- pyoomph-0.1.9/src/lagr_error_estimator.cpp +1953 -0
- pyoomph-0.1.9/src/lagr_error_estimator.hpp +193 -0
- pyoomph-0.1.9/src/logging.cpp +129 -0
- pyoomph-0.1.9/src/logging.hpp +36 -0
- pyoomph-0.1.9/src/mac_accelerate.cpp +339 -0
- pyoomph-0.1.9/src/mac_accelerate.hpp +135 -0
- pyoomph-0.1.9/src/mesh.cpp +5773 -0
- pyoomph-0.1.9/src/mesh.hpp +508 -0
- pyoomph-0.1.9/src/mesh1d.cpp +272 -0
- pyoomph-0.1.9/src/mesh1d.hpp +179 -0
- pyoomph-0.1.9/src/mesh2d.cpp +1163 -0
- pyoomph-0.1.9/src/mesh2d.hpp +331 -0
- pyoomph-0.1.9/src/mesh3d.cpp +436 -0
- pyoomph-0.1.9/src/mesh3d.hpp +337 -0
- pyoomph-0.1.9/src/meshtemplate.cpp +2853 -0
- pyoomph-0.1.9/src/meshtemplate.hpp +1009 -0
- pyoomph-0.1.9/src/missing_masters.hpp +1279 -0
- pyoomph-0.1.9/src/nodes.cpp +95 -0
- pyoomph-0.1.9/src/nodes.hpp +130 -0
- pyoomph-0.1.9/src/oomph_lib.hpp +35 -0
- pyoomph-0.1.9/src/periodic_bspline.cpp +380 -0
- pyoomph-0.1.9/src/periodic_bspline.hpp +76 -0
- pyoomph-0.1.9/src/problem.cpp +3526 -0
- pyoomph-0.1.9/src/problem.hpp +557 -0
- pyoomph-0.1.9/src/pybind/codegen.cpp +540 -0
- pyoomph-0.1.9/src/pybind/expressions.cpp +1302 -0
- pyoomph-0.1.9/src/pybind/geom_objects.cpp +148 -0
- pyoomph-0.1.9/src/pybind/mesh.cpp +1463 -0
- pyoomph-0.1.9/src/pybind/module.cpp +73 -0
- pyoomph-0.1.9/src/pybind/patch_stubs.py +55 -0
- pyoomph-0.1.9/src/pybind/problem.cpp +1169 -0
- pyoomph-0.1.9/src/pybind/solver.cpp +414 -0
- pyoomph-0.1.9/src/pybind/timestepper.cpp +110 -0
- pyoomph-0.1.9/src/pybind/vector.cpp +50 -0
- pyoomph-0.1.9/src/pyginacstruct.hpp +221 -0
- pyoomph-0.1.9/src/refineable_telements.cpp +1477 -0
- pyoomph-0.1.9/src/refineable_telements.hpp +300 -0
- pyoomph-0.1.9/src/thirdparty/INFO_delaunator +27 -0
- pyoomph-0.1.9/src/thirdparty/INFO_nanoflann +34 -0
- pyoomph-0.1.9/src/thirdparty/INFO_oomph-lib +59 -0
- pyoomph-0.1.9/src/thirdparty/delaunator.hpp +651 -0
- pyoomph-0.1.9/src/thirdparty/nanoflann.hpp +4094 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/LICENCE +375 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/Makefile +106 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/cross_compile.sh +3 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelement_face_coordinate_translation_schemes.cc +268 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelement_face_coordinate_translation_schemes.h +166 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelements.cc +836 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Qelements.h +2295 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Telements.cc +986 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Telements.h +4111 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/Vector.h +373 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/algebraic_elements.cc +422 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/algebraic_elements.h +892 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/assembly_handler.cc +5128 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/assembly_handler.h +1177 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/binary_tree.cc +875 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/binary_tree.h +354 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/communicator.cc +103 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/communicator.h +368 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/domain.cc +222 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/domain.h +387 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector.cc +2247 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector.h +503 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector_with_halo.cc +398 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/double_vector_with_halo.h +341 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_external_element.cc +847 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_external_element.h +626 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_moving_nodes.cc +675 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/element_with_moving_nodes.h +533 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/elements.cc +7547 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/elements.h +5269 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/error_estimator.cc +1935 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/error_estimator.h +647 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/explicit_timesteppers.cc +541 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/explicit_timesteppers.h +267 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/generalised_timesteppers.h +330 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/geom_objects.h +1243 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/integral.cc +849 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/integral.h +1680 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_algebra_distribution.cc +568 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_algebra_distribution.h +585 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_solver.cc +2831 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/linear_solver.h +865 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element.cc +685 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element.h +440 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element_node_update_element.cc +116 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/macro_element_node_update_element.h +552 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/map_matrix.h +564 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/matrices.cc +5927 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/matrices.h +3707 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh.cc +9637 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh.h +2962 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh_as_geometric_object.cc +106 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/mesh_as_geometric_object.h +453 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/missing_masters.cc +1604 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/missing_masters.h +241 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/missing_masters.template.cc +1285 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/nodes.cc +3824 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/nodes.h +2914 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/octree.cc +5934 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/octree.h +1019 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_definitions.cc +337 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_definitions.h +492 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_utilities.cc +1717 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/oomph_utilities.h +1248 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/orthpoly.cc +162 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/orthpoly.h +256 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/partitioning.cc +1392 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/partitioning.h +212 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/problem.cc +20168 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/problem.h +3173 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/quadtree.cc +1640 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/quadtree.h +494 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_brick_element.cc +2994 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_brick_element.h +487 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_elements.cc +1544 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_elements.h +1053 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_line_element.cc +891 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_line_element.h +253 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_mesh.cc +5333 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_mesh.h +1058 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_mesh.template.cc +765 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_quad_element.cc +2227 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/refineable_quad_element.h +469 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_container.cc +3987 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_container.h +1192 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_parameters.cc +50 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sample_point_parameters.h +502 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/shape.h +1387 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/sparse_vector.h +146 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/timesteppers.cc +1306 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/timesteppers.h +1466 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/tree.cc +457 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/tree.h +485 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/tree.template.cc +242 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/unstructured_two_d_mesh_geometry_base.cc +4718 -0
- pyoomph-0.1.9/src/thirdparty/oomph-lib/include/unstructured_two_d_mesh_geometry_base.h +5626 -0
- pyoomph-0.1.9/src/timestepper.cpp +366 -0
- pyoomph-0.1.9/src/timestepper.hpp +139 -0
- pyoomph-0.1.9/src/tracers.cpp +656 -0
- pyoomph-0.1.9/src/tracers.hpp +117 -0
- pyoomph-0.1.9/src/wedges_and_pyramids.cpp +1226 -0
- pyoomph-0.1.9/src/wedges_and_pyramids.hpp +1584 -0
- pyoomph-0.1.9/tests/README.md +10 -0
- pyoomph-0.1.9/tests/test_adaptivity.py +61 -0
- pyoomph-0.1.9/tests/test_compilers.py +83 -0
- pyoomph-0.1.9/tests/test_linear_response.py +101 -0
- 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
|
pyoomph-0.1.9/.gitignore
ADDED
|
@@ -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
|