https://github.com/hpc-maths/GenEO
Revision 3881e864d0115355ab0398e22b489d3d1df7997a authored by gouarin on 30 March 2018, 12:29:37 UTC, committed by gouarin on 30 March 2018, 12:29:37 UTC
1 parent eb1bfe3
Tip revision: 3881e864d0115355ab0398e22b489d3d1df7997a authored by gouarin on 30 March 2018, 12:29:37 UTC
fix mpcg
fix mpcg
Tip revision: 3881e86
readme.md
This project solve the linear elasticity problem using PETSc in 2d and 3d for lamé coefficients which are constant or constant by cell on a cartesian grid.
# Installation
To install this package, you need first an installation of anaconda. If you don't have anaconda on your system, you can download miniconda for Python 3 (https://conda.io/miniconda.html).
Next, we will create an environment with all the needed packages using the following command.
conda env create -f environment.yml
To activate your environment
source activate petsc-elasticity
The final step is to install `petsc4py`. To do that, you have to specify the environment variable `PETSC_DIR`.
Run the following command in your terminal
conda env list
# conda environments:
#
...
petsc-elasticity * /home/loic/miniconda3/envs/petsc-elasticity
...
The path after the conda environment name `petsc-elasticity` is the path of `PETSC_DIR`.
export PETSC_DIR=/home/loic/miniconda3/envs/petsc-elasticity
You can know install `petsc4py`
pip install petsc4py
To install this project, you have to clone it
git clone https://gitlab.centralesupelec.fr/gouarin/elasticity.git
Then
cd elasticity
python setup.py install
It's important to be in the conda environment created previously. If it is not the case
source activate petsc-elasticity
# Execute demo file
In the directory of this project you have a `demos` directory with 2d and 3d examples.
This is an example of how to test one of them
python elasticity_2d.py -ksp_monitor -pc_type gamg
- `ksp_monitor` indicates to PETSc to print the residual at each step.
- `pc_type gamg` indicates to PETSc to use an algebric multigrid as a preconditioner.
And in parallel
mpiexec -n 4 python elasticity_2d.py -ksp_monitor -pc_type gamg
# Visualize the results
If the execution of `elasticity_2d.py` succeeded, you should have a file name `solution_2d.vts`.
To visualize this file, you have to install paraview (https://www.paraview.org/download/).
- Start `paraview` and select file->load state.
- Then select the file in the directory `paraview` of this project called `visu_2d.pvsm`.
- Then select the `vts` file.
You should see the results.
Computing file changes ...