HoPyFOAM is an OpenFOAM-like Python package written for a high-order finite volume method.
The code is intended to solve solid mechanics problems on 2D and 3D unstructured meshes.
It is based on numpy and petsc4py packages while the coding style and code structure
is similar to one from the OpenFOAM library.
- Ivan Batistić; ibatistic@fsb.hr
- Philip Cardiff; philip.cardiff@ucd.ie
-
Clone the directory with
git clone git@github.com:iBatistic/HoPyFoam.git
-
Required python are listed in
requirements.txt
and can be installed easily withvenv
:virtualenv venv-HoPyFoam source venv-HoPyFoam/bin/activate pip install -r requirements.txt
-
Install some of the OpenFOAM.COM distribution using the instructions on this link. OpenFOAM is required for mesh generation and post-processing functionalities.
-
To run cases, first source OpenFOAM shell session and then activate Python environment:
openfoam2312 source venv-HoPyFoam/bin/activate
All tutorial cases have a corresponding
./Allrun
script to run them.
This toolkit is released under the GNU General Public License (version 3). More details can be found in the LICENSE file.
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.
-
laplacianFoam1D
-
heatConduction.py
Python script for 1D heat conduction with linear temperature profile. -
heatConductionMMS.py
Python script for 1D heat conduction with variable source term obtained using MMS.
-
-
laplacianFoam
-
squareBlock2D
Laplace equation solved on 2D square domain ($1 x 1$ m), left and right patches have values of$0$ and$1$ , top and bottom patches are zero gradient.
-
-
elasticSolidFoam
-
cantilever2D
Rectangular beam$50$ x$2$ m with a Young’s modulus of$30000$ Pa and a Poisson’s ration of$0.3$ . The beam is fixed on the left boundary, and a uniform distributed traction of$(0,-2,0)$ Pa is applied to the right boundary; the top and bottom boundaries are traction-free. Example is taken from: Demirdžić, I. "A fourth-order finite volume method for structural analysis." Applied Mathematical Modelling, 2016. -
squareBlock2D
2D square domain ($1$ x$1$ m), left patch fixed, top and bottom are traction-free. The right patch have prescribed traction in$x$ direction. Poisson's value is$0$ resulting in linear distribution of displacement field. -
squareBlock2DMMS
2D square domain ($1$ x$1$ m), all patches have zero displacement. Body force calculated according to expected solution. Example is taken from: Aycock, Kenneth I., Nuno Rebelo, and Brent A. Craven. "Method of manufactured solutions code verification of elastostatic solid mechanics problems in a commercial finite element solver." Computers & Structures, 2020.
-
To contact the authors about HoPyFOAM, please use the issue tracker of the GitHub project. Bug reports and contributions to new features are welcome.