Skip to main content

pyoomph - a multi-physics finite element framework based on oomph-lib and GiNaC

Project description

Description

pyoomph is a object-oriented multi-physics finite element framework. It is mainly a custom high level python frontend for the main functionalities (but by far not all) of the powerful C++ library oomph-lib.

For performance reasons, pyoomph uses GiNaC and CLN to automatically generate C code for the equations you have entered in python. It automatically generates C code for symbolically derived Jacobian matrices, parameter derivatives and Hessians. These even include the complicated derivatives with respect to the moving mesh coordinates on a symbolical level. The generated code is compiled and linked back to the running python script, either with the TinyC compiler (invoked by tccbox) or, when installed, with a more performant alternative like gcc, LLVM/clang or MSBuild.

If you want to use the full flexibility of oomph-lib, you are probably better suited using oomph-lib directly. If your want to use python to solve equations on a single static mesh, you might want to check out FEniCS instead. Also, have a look at NGSolve or nutils which have similar and complementary features. If you are looking for a python framework for multi-physics problems formulated on (potentially multiple) moving meshes, including the possibility of (azimuthal) bifurcation tracking, pyoomph might be the right choice for you.

pyoomph is still in an early stage of development: While most features work nicely, it is neither feature-complete, nor free of bugs.

Installation

Please consult the file INSTALL.md in the git repository for installation instructions. Alternatively, follow the instructions in our tutorial.

Documentation and Examples

Documentation of the API and tons of examples can be found at pyoomph.readthedocs.io. A PDF version of the tutorial is also available.

Some more examples can be found in our repository pyoomph_examples.

License

pyoomph itself is distributed as combined work under the GPL v3 license. However, mind the third-party licences stated below, in particular when distributing derived work or redistributing pyoomph. The full license file can be found in COPYING.

Third-Party-Licenses

The distribution of pyoomph contains code taken from other authors/projects:

The third-party licenses/acknowledgement files can be found in src/thirdparty. In the provided python wheels, these requirements are statically included.

During compilation, pyoomph includes/links against or makes use of the following libraries:

Beyond that, pyoomph makes use of the following libraries at runtime. During installation with pip, many (but not all) of these libraries are automatically fetched as requirements.

Be aware that some of these libraries can have further dependencies.

Authors and acknowledgements

pyoomph was founded in 2021 by Christian Diddens. Later, Duarte Rocha joined the team. Additional contributors are Vatsal Sanjay and Jnandeep Talukdar. Pyoomph is developed at the Physics of Fluids group of the University of Twente.

The authors gratefully acknowledge financial support by the Industrial Partnership Programme Fundamental Fluid Dynamics Challenges in Inkjet Printing of the Netherlands Organisation for Scientific Research (NWO) & High Tech Systems and Materials (HTSM), co-financed by Canon Production Printing Netherlands B.V., IamFluidics B.V., TNO Holst Centre, University of Twente, Eindhoven University of Technology and Utrecht University. This work was supported by an Industrial Partnership Programme, High Tech Systems and Materials (HTSM), of the Netherlands Organisation for Scientific Research (NWO); a funding for public-private partnerships (PPS) of the Netherlands Enterprise Agency (RVO) and the Ministry of Economic Affairs (EZ); Canon Production Printing Netherlands B.V.; and the University of Twente.

Contributing

If you want to contribute by e.g. adding new equations, meshes, problems, materials or additional features, get in contact with us or send us a pull request. If you encounter a bug, please also let us know at c.diddens@utwente.nl or d.rocha@utwente.nl.

How to cite

At the moment, just cite the following paper for pyoomph:

Christian Diddens and Duarte Rocha, Bifurcation tracking on moving meshes and with consideration of azimuthal symmetry breaking instabilities, J. Comput. Phys. 518, 113306, (2024), doi:10.1016/j.jcp.2024.113306.

Please mention that pyoomph is based on oomph-lib and GiNaC, i.e. also cite at least:

oomph-lib: M. Heil, A. L. Hazel, oomph-lib - An Object-oriented multi-physics finite-element library, Lect. Notes Comput. Sci. Eng. 53, 19-49, (2006), doi:10.1007/3-540-34596-5_2.

GiNaC: C. Bauer, A. Frink, R. Kreckel, Introduction to the GiNaC framework for symbolic computation within the C++ programming language, J. Symb. Comput. 33(1), 1-12, (2002), doi:10.1006/jsco.2001.0494.

Citing of material properties and activity models

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyoomph-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyoomph-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pyoomph-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyoomph-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pyoomph-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyoomph-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pyoomph-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyoomph-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pyoomph-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyoomph-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file pyoomph-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 89ba5a6fdccf8f87fa82f58da56b6d098b2ec51963bafe78a96cea366dfd71f7
MD5 480bdc023b401900cb69c46fccd3f1c1
BLAKE2b-256 650b018d7208ba90af5f2d50ea9aacf3cbdac0bd14a6028ff3c213a91d74c660

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1b56309ead74b8bed9d0b028c68ec68752d34779ed6815c3e1781facf2f82ad4
MD5 6828f4e8c753f1c72ddd8237bc3aa37a
BLAKE2b-256 d0bae39138e1ab278e4fd527605fe3cf482d0b2eb3f3b924ad3e8c592ac11a73

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9052f2d8141c5cedadf9d1b35642276212b0800e87daf4aa18b79dc1fde6d33a
MD5 b8cbd4b99586f58a0442df37a9de6166
BLAKE2b-256 23d7d3dfd42fb98701cf255ad0672ec64c22b3f46b09e4a231d54f03786a858e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 8c72bffe425925c45fc84458b3a079aea91f65d4485e7347ffc69e62fcedb57c
MD5 79b26d58898f9df8696491c1c171d602
BLAKE2b-256 de5268bab969b4b408b54412aaa07aa607231b4418f83cf5e5bd0ecf037d2a85

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 edad896f12fd58bea1459cbdb52a1a9bdcd12595c6fc92a0bb9eb2220604425e
MD5 17c04600154035c6e3c8e8de44c4f7c8
BLAKE2b-256 1444b9cf04b4bbe5e561c533622e503104e22a97595795444c23bbf41498494f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 48df8ab1e5126cf82d6acc45c142c3543dbaab6f1e1adb2effb6b14a9425324d
MD5 3b708b7b05c8b7a587a00ca65ebf083c
BLAKE2b-256 b563c7ae436fa1a8ef9b41693178cc2912bb882d324bbd89d51f6482e83acb08

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed1355cfa71f93d462a5ab65e7addd30fca7983e67bc389d6d148f1eaee00bd6
MD5 2d60da14885bc38f53b6344183c5e50f
BLAKE2b-256 4cb96074bb3d0e347e066c8c7c855dfa2f6b724b0b172966743cdf8101ca9fce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 76aff5859421f995c4b82c0b68e8428df508cd7b321bd247ab8e8e1371f793ea
MD5 1825bf15d0754c76079074e128dfcb65
BLAKE2b-256 6c83572f74da8c0e7a6d291e8f52a8dffcdece03826ca74d36572cd1774da805

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1f09d803be9796b88a544a06a29ac11f193471a1c44c2fc76029bbfeba7dec8c
MD5 7af94f65c348042b34ad2e75dc985e1e
BLAKE2b-256 10d1c99ce3cace1d512537ff81e90a1f2d02d93e52859e13fbc883ed2612bfd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoomph-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 39bdf402537d13fc2563da6d5f2192ee02d6256ad0e9db235a8b3a3517d40e73
MD5 02160772106763ef8768b39a703e74c4
BLAKE2b-256 b378c13fff62dc7031fd30269e68da0f8c355af9df32d656c0b9a3773f67121a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoomph-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on pyoomph/pyoomph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page