Arbitrary Water Pumpe

interFoam, multiphase, cyclic fan/fixedJump boundary condition


Simplifications to the numerical continuum are used in numerical investigations almost in every scenario. In most cases, particular regions are not of primary interest. An example is given in the following training case, in which a water pump (which is just generating a pressure drop) is removed and replaced by a 1D cyclic boundary condition. The simplification leads to less numerical cells and, therefore, a reduction of computational costs.

OpenFOAM® offers a wide range of different boundary conditions

The generation of cyclic boundary patches can be used for periodic analysis as well as for particular applications such as modeling a fan or pump. Here, a pressure drop is applied between the cyclic patches. Based on the pressure momentum coupling, the fluid will accelerate based on the set-up. The case has the standard bash script, which explains the single steps needed to build the cyclic patches as well as the set-up of the appropriate boundary condition. The case runs in two different modes. After meshing, the filling stage starts for a defined time. In manner two, the boundary conditions are changed, and the pressure drop is applied, resulting in pumping the fluid up.




Image: Water injection
Image: Pressure gradient activation
Image: Water acceleration due to cyclic boundary condition

Published under the GNU General Public License 3

Over the last ten years, Tobias tried to publish a wide range of different materials related to OpenFOAM® and CFD. You know it much better than he does if the content is worth to be supported. If you want to thank Tobias for the work he did, feel free to tell the community your opinion about the work Tobias Holzmann is doing or you can email your thoughts directly to »«. Keep in mind that the work that was done here took much time, and it is not self-evident that Tobias Holzmann shares all his work, knowledge, and attitude for free and keep the data up to date. Hosting the material, updating the data, and keeping up interesting work for the community does take much time and also money. Supporting Tobias is greatly welcomed and can be done easily by donating any amount you would like to give to support his projects shared on his website.

Support the work of Tobias Holzmann

The available OpenFOAM® training cases are tested and built for different OpenFOAM® versions (not distributions) on a Linux machine. During the tests, only the OpenFOAM Foundation version of OpenFOAM® was used. Furthermore, the following software packages are required for most of the training cases: Salome®, ParaView®, and for optimization tasks, one also needs the open-source software DAKOTA®. The OpenFOAM® cases might work with the ESI version of OpenFOAM® but it is not supported. For the OpenFOAM® extend project, the training cases will probably not work as the code diverged too much. Additionally, there is no support for Windows-based and MAC-based OpenFOAM® versions.


This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via, and owner of the OPENFOAM® and OpenCFD® trade marks

Share the work on Your social network

Tobias would be grateful if you share his work on your social network in order to keep the OpenFOAM® community up to date. Furthermore, sharing the work will avoid that people investigate into topics, that are already prepared for your study such as the examples provided by Tobias Holzmann.

Release notes

OpenFOAM® v8 Since this version, the boundary condition »fixedJump« is used to create the pressure jump across the cyclic patches
OpenFOAM® v2112

Changes compared to OpenFOAM® v9:

  • changed residual function object
  • Added a more comfortable version of changing the inlet velocity rather than using codedFixedValue (still inside for comparison reasons)
  • No restart is needed anymore as the boundary conditions are taking care of everything (p and U)
  • Simplified the run script due to p/U condition changes (no sed, no two runs)
  • Added a cell limiter for the linearUpwind divergence scheme (limiting the gradient by 0.2)
  • Updated the mesh quality parameter, minVol, to generate a better volume mesh at the inlet which allows us to speed up the simulation
  • Added various function objects namely, surfaceFieldValue to calculate the average pressure at both sides of the cyclic patch, multiFieldValue, to calculate the pressure jump at the baffles, solverInfo for residual control analysis and the CoNumber function object was added

Released on 04.01.2021 — Downloads:
Released on 04.01.2021 — Downloads:
Released on 04.01.2021 — Downloads:
Released on 14.01.2021 — Downloads:
Released on 13.09.2021 — Downloads:
Released on 14.02.2022 — Downloads: