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.

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.

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 preprint for pyoomph:

Christian Diddens and Duarte Rocha, Bifurcation tracking on moving meshes and with consideration of azimuthal symmetry breaking instabilities, arXiv:2312.11416, (2023).

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

pyoomph-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

pyoomph-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

pyoomph-0.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

pyoomph-0.1.2-cp312-cp312-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

pyoomph-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-cp312-cp312-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pyoomph-0.1.2-cp311-cp311-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

pyoomph-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-cp311-cp311-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyoomph-0.1.2-cp310-cp310-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

pyoomph-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-cp310-cp310-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyoomph-0.1.2-cp39-cp39-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

pyoomph-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-cp39-cp39-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyoomph-0.1.2-cp38-cp38-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

pyoomph-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyoomph-0.1.2-cp38-cp38-macosx_10_9_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file pyoomph-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f79207a6e4ee9624476a4efb4bdf3f11289a1cc5404b9acfaf5d2de14421afa
MD5 3f76f17494549da0c9a3bbde4e9e5a77
BLAKE2b-256 985973e29211462e959c39ee11f1a4fa5ca98b0fe2de4b9689768f2e1f5391dc

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 767a58c55034a4467f724b19fb44c6f2b2ab1197d0ff53cebde731509bdb3487
MD5 1d2edef0c634f20b338382f38896e492
BLAKE2b-256 e36379e6a61d360f8050875a614c04faebdac7dd17f48a817d644e00d31f6639

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb2b7684d9dc44755498a43329645696d653b41dda074e88cde2305dbae5e54f
MD5 3fc8a88059d94547cb54abc14b7c7ce2
BLAKE2b-256 d196993350d45a6f93f2acaee44fe23974018db580bb18be15980ee22b34d3c1

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 09743c0bfafed71df3e93031c464f38643ed7b14f1256a18be0c687386082dc9
MD5 0c987817939166885bfba57fabfd62ff
BLAKE2b-256 6c7a5e056a9d96618853bb7f95924d38deb54394b856b2307f23618ce8a3e222

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 951432de873b995284da6c9564df0a61f771d4cc44af9e9a94276617b141baf9
MD5 b000dba2e0bddfe7f72f46e09b72245a
BLAKE2b-256 7caebd458c60dbc5d2c5af24addfbe5f4b72fd13f236135f250e0f66604a4345

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a7436064b5e18c64c296468b6bbe7590a29ff22341880d358e6d6ea4f16ed78d
MD5 956318afcb3768c233084311005bbb91
BLAKE2b-256 da581fec6de4780b1b9b60d3ad9c585b76bc5a0c2f2707dc6da323e9f574a650

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyoomph-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyoomph-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 897fbfded8d2324f76fe25c74bb7e9000ef0cbcf0f5aef7b025cb9a0d5f649c9
MD5 4ce2a95229ffce0fff00b4953ab23b67
BLAKE2b-256 a5c6165afda72e55f78d57248197c2ac4d7c2270e89f426b7e857d15acb9832e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5faa76ca5311aa03dfca9e7af2d58eef89f957b02c53445e7650ea08e45fcac9
MD5 9c9732fe5e6920914407de0ed10e02a3
BLAKE2b-256 f35bb17ca6d28ab3e2f25d58976bcb3b98038a095030b32be49067be8a9f2556

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 027407e13015314c3d932a4ffa0fd2df0bc2271f03a27976716d03e7bc90fac5
MD5 49ede3780ab4326e80de54562e7d786d
BLAKE2b-256 43bb1e7a96d1c11e525bdc2453f4c2ccff6bd4da67d717a67e1bf287aeac31c0

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyoomph-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyoomph-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 70a3589cd7bf0cfd6d225e6795b4f39250a365a8c7afa74e3379a00007a71bcf
MD5 c1fc6f14d043d19178bae8a5f3ef6695
BLAKE2b-256 dda8794f22412d32b4f01f1f62967431ba4c65ee1d261951d5c918170674c903

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5e2786b4cfbd62581079d14fe1c533a6ac9f29f5d8e5fdad762bdfeedd4b7f8
MD5 398e6d8d78fa33dc547ce6a8a6aa529d
BLAKE2b-256 d70bb7e244f163d024e9b6cc09bd75ced677261f60c01728915200fbbe39e3e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5f8028aad0b663ae23657c3fe38c4a76ae7bd9a9efa2c8c3ccaae5d1e4b9e03d
MD5 be7e256d05251444f7fcfd119cceb6fa
BLAKE2b-256 57915307079e4f7f88a9a524e120d6f9883f7bdca0f532bcc26c97bdd4e6dd43

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyoomph-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyoomph-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2bfce5b31f5f3381dedef9ae08fb06d06094220c9cb658033c4f25d8e4e6ead5
MD5 b6e6a73f330f8050d24d222aeea53c7a
BLAKE2b-256 5b250f8169f597703548b3ebcb83c5048255c03f5386c7bea497f915094517a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f232283eb2711e253d5e5a49b8f30c5db800f27fb153d9f42b19bdebcef01476
MD5 5a944147173aa2a49a5535b7c8f2a304
BLAKE2b-256 9216d240996b5bc83df491b02282c01f0424a3e801ad234694d8b15a708e03a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3f9e9d4cff79fbcb017d414cae2ee4dd3b82f5a84fdf64bdbc68d93686df0cdb
MD5 727dd090018372dd7fcb84e90dd5e02f
BLAKE2b-256 3028efbea197687acb84121d1adee9aa14f8cc612a0aedb886a3bb8f13b976ac

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyoomph-0.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyoomph-0.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1d04ae0d09af4955a21536851417f8aa2df3303a1b4c1159b23e9aa1dc367a85
MD5 da61f84b374426b45d6836d8cc3682ad
BLAKE2b-256 823ec64d11ca4e6d432111c7f765e0152db2781e2ea6119210d6ca3d57cf5ce5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d72b51f3a0587ea4b03513c7f4c748e88243d804034e10fd9dad4c9e8ca8a12e
MD5 bc24d5677d3a80d7816bccfa67eaef3a
BLAKE2b-256 5de338b59f442403cd98f21b98109b84b2a71313a0f5899f1522bf2318e6d7e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 07954ddb7a08ec921e477cc96ec9e7dd61eb80bcc060469e2799e5ad79d8c764
MD5 3ba86bc283c8809057b24ace11f6cf75
BLAKE2b-256 f2e8de7a92ffbd36fd8d8464404996c21f7a94ebd8c7696e5a92fae4f4c23eac

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyoomph-0.1.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyoomph-0.1.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 93f4e7f910b60af2f00ce2efdfbd33f9296fc717f72f7e32a99e383a960f4c03
MD5 322b1ff91785c57404496e1e89b1b97f
BLAKE2b-256 036e5e30b893872cfd1ce074f32545ab8b2719695c6152f3d2cc7c8e1eefd338

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86318c9a4fca4f74a3c286620648ba72f9dd11418a24bbdda8ad5e756b6ce56b
MD5 a2573e0c9289aab85400d6a71f71a197
BLAKE2b-256 ac1ef5e6cb2d9d13d88416355d512df8b4b5837cad0c7b8669670c45054f7140

See more details on using hashes here.

File details

Details for the file pyoomph-0.1.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyoomph-0.1.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0424e0ed69ee9f8b3497fd59df9d2d1d45f976e8e0aae4296eff3974907aef6c
MD5 292c62d297a0a8da73a74c899bd0670c
BLAKE2b-256 866b2e4a74b037130c539c213ffaa3b60800a2b574430f876635427578ac321a

See more details on using hashes here.

Supported by

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