Tank with Safety Valve

buoyantPimpleFoam, activePressureForceBaffleVelocity, meshing, topoSet, createPatch, createBaffle, function1, gap refinement, externalWallHeatFluxTemperature


Sponsored by the continuous support of «Andreas Mai» and hence, dedicated to «Andreas Mai»


The boundary condition named activePressureForceBaffleVelocity is a combination of a wall-type and cyclic-type patch. Therefore, we are able to model a kind of safety valve or rupture disc which can either close or open (only once). The combination of the wall-type and cyclic-type conditions does need special focus on the mesh generation. The goal of this tutorial is to demonstrate the usage of the activePressureForceBaffleVelocity mainly in terms of setting up the case / creating the mesh by using snappyHexMesh, topoSet, createBaffle, and createPatch.


Note: The boundary condition «activePressureForceBaffleVelocity» does contain a potential bug which opens the baffle after twice the user-defined threshold. See here for more information and possible merge to the code: Issue 2360.

The activePressureForceBaffleVelocity combines the wall-type and cyclic-type patch

The presented training case models a vessel that is headed at the bottom by using the boundary condition externalWallHeatFluxTemperature while applying a function1 table for the power supply. The safety valve, modeled by using the activePressureForceBaffleVelocity, will open after a defined pressure difference between the tank and the atmosphere is reached. After that, the valve opens based on the given parameters (fraction/opening-time). Hence, the wall-type condition switches to a cyclic-type patch which allows the release of the pressure tank. Thread at cfd-online.com.

Image: Refined pipe due to automatic gap refinement
Image: Pressure field and the drop at the safety valve
Image: The simulation analysis as presented in the video

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 »This email address is being protected from spambots. You need JavaScript enabled to view it.«. 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 www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks

Released on 11.02.2022 — Downloads:
Released on 11.02.2022 — Downloads: