1.5. When to use pyoomph, and when better use something else

As every numerical framework, pyoomph has some strong points but of course also plenty of limitations.

You can consider using pyoomph

  • when you want to have a simple python interface, but still want to have high computational speed

  • you want to quickly setup a multi-physics problem

  • you are too lazy to nondimensionalize your equations by hand before implementation

  • you want to write equations only once and reuse them in different coordinate systems, potentially in combination with other equations

  • for problems involving multi-component & multi-phase flow, including Marangoni flow, mass transfer and surfactants

  • when you don’t want to code a lot of matrix filling routines by hand

  • when you want to track (azimuthal) bifurcations

  • when you want to use a monolithic sharp-interface moving mesh method

You should consider using something else

  • when you want to use all features of oomph-lib.

  • when you want to operate on a lower level for more flexibility

  • when you need highly parallelize computational power

  • for computationally expensive three-dimensional problems

  • for high Reynolds numbers (go for e.g. advanced finite differences as in AFiD)

  • for topological changes (the sharp-interface method is not well suited for this, go for VoF instead, e.g. Basilisk)

  • if you need more fancy finite-element spaces (go for FEniCS or NGSolve)

  • if you need spline basis functions (go for nutils)