This tool provides a solution method to solve the deformations of pressurized membrane structures. The steady-state is found with the method of kinetic dynamic relaxation which proved its effectiveness for a variety of membrane structures.
mem4py is written in cython which is a C-compliable python script. In benefits from C like speedup and can be called using a simple python script.
- Get eigen3 either with
sudo apt-get install libeigen3-dev
or download under http://eigen.tuxfamily.org.
- Clone mem4py to folder of choice
git clone https://github.com/pthedens/mem4py.git
-
If eigen3 is not located at
/usr/include/eigen3
orC:\Program Files\eigen3
changeEIGEN_PATH
to eigen3 insetup.py
-
Compile in mem4py/ with
"python setup.py build install"
or using pip
"pip install -e ."
Install a cython compatible compiler (Visual Studio/Windows SDK C/C++) if you don't already have a C/C++ compiler.
# Assuming you are running a recent python 3.x version
conda create --name mem4py cython numpy matplotlib scipy
# Run the build script
python setup.py build install
cd tutorials && python main.py
In ./tutorials run main.py
to test example cases.
You can set up your own problem using gmsh and a python script. In gmsh you define the geometry and boundary conditions, and the python script is used for material and solver properties.
A surface mesh in gmsh format has to be provided in the /msh folder.
-
Only 3 node triangular shells are implemented as membrane elements.
-
Boundary conditions are defined on physical surfaces, lines or points
In a python script the properties are defined in a dict
which is fed to the solver. Closely follow the example
case in the tutorials folder.
The software is licensed under MIT.
mem4py extensively uses a cython version of eigen3 which is originally based on https://github.com/strohel/Ceygen. Many thanks to the developers to make eigen3 cython compatible.
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Sklodowska-Curie grant agreement No 642682 (AWESCO).