The python library HO-homog is designed for:
- Implementation of higher order homogenization scheme based on asymptotic expansion (the equivalent medium can be a generalized continuum);
- Geometry modelling and mesh generation for periodic microstructures with high control of the mesh refinement;
- Application of these homogenization scheme to the designed microstructures;
- Comparison of the homogenization results with Direct Numerical Simulations (DNS).
The HO_homog project is developped on Ubuntu 18.04 with the programming language Python3.
The current stable release of the HO_homog Python library can be downloaded from this repository.
Before using the HO_homog tools FEniCS and pip
(or setuptools) must be installed.
To install the FEniCS on Ubuntu, run the following commands:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:fenics-packages/fenics
sudo apt-get update
sudo apt-get install --no-install-recommends fenics
For more information about installation or instructions for other platforms see the fenicsproject website and the FEniCS reference manual.
Using a virtual environment for Python projects is recommended. HO_homog and Gmsh can be installed inside a virtual environment but FEniCS cannot.
Make a new virtual environment :
python3 -m venv /path/to/project/project_name
Then activate it :
source /path/to/project/project_name/bin/activate
Now, the HO_homog package and its dependencies can be installed inside this virtual environment (see instructions below).
Supposing FEniCS has been already installed on the system, the settings of the virtual environment should be modified to make it accessible. In /path/to/project/project_name/pyenv.cfg
: include-system-site-packages = true
.
The HO_homog Python package can be installed with pip
.
- Install it directly from the gitlab repository :
pip3 install git+https://[email protected]/baptiste.durand/HO_homog.git#egg=ho_homog
- Or (recommended) download / clone the HO_homog repository, then move to the HO_homog directory and use
pip
:
pip install --editable .
For designing microstructures and generating meshes with HO_homog features, gmsh and its SDK (Software Development Kit) must be installed.\
The gmsh SDK that containt gmsh and the python API can be downloaded from the official gmsh website. The files should then be put into the right directories by hand. In this case, make sure that the gmsh-4.6.0-Linux64-sdk/lib
sub-folder is reachable by python (e.g. move this subfolder to a suitable directory by hand).\
Alternatively, both gmsh and its SDK can be downloaded and installed with pip (recommended solution) :
pip install --upgrade gmsh
The fenicstools toolbox can be useful for field reconstructions when the RVE mesh and the full_scale mesh do not match.
With the function interpolate_nonmatching_mesh_any it is possible to interpolate from a Function of any space on one mesh to a Function of any space on a different mesh.
This python package can be install with pip :
pip install cppimport
pip install git+https://github.com/mikaem/fenicstools.git --prefix=/.../lib/python3.6[or other version]/site-packages/
The HO_homog tools have been developped with Python 3.6.7. They make use of the following applications. The numbers in brackets represent the versions used for the development.
- Python 3 (3.6.7);
- Gmsh - Used to generate finite element meshes, by means of its API for Python (4.0.6);
- FEniCS - Finite element computing platform (2018.1.0)
- Baptiste Durand - PhD student - Laboratoire NAVIER, UMR 8205 - @baptiste.durand - [email protected] - Student page on Laboratoire Navier website
- Arthur Lebée - Researcher - Laboratoire NAVIER, UMR 8205 - @arthur.lebee - Researcher page on Laboratoire Navier website
See also the graphs of all contributions to this project.
The authors acknowledge the support of the French Agence Nationale de la Recherche (ANR), under grant ANR-17-CE08-0039 (project ArchiMatHOS).