SOLVERLAB is a geometrical and numerical C++/Python library designed for numerical analysts who work on the discretisation of partial differential equations on general shapes and meshes and would rather focus on high-level scripting.
The goal is to provide simple MATLAB style functions for the generation and manipulation of meshes, fields and matrices. The library is based on MEDcoupling, and C++/python library of the SALOME project for the handling of meshes and fields, and on the C++ library PETSC for the handling of matrices and linear solvers.
SOLVERLAB includes PDE systems arising from the modeling of nuclear reactor cores which involves fluid dynamics, heat and neutron diffusion as well as solid elasticity.
It is a simple environment meant at students and researchers for teaching and promote new numerical methods on general geometries with unstructured meshes.
The main research objectives of SOLVERLAB are the study of :
The library is currently maintained and distributed by the SALOME developpement team on various linux distributions (Ubuntu, CentOS, Fedora, Debian) and on Windows-10. The corresponding binary files can be found here.
The user guide is organized as follows :
The easiest way to run SOLVERLAB is to launch the SOLVERLAB module of the SALOME platform :
mySALOME
(for example).mySALOME/salome
in a terminal to launch SALOMEThe new GUI of SOLVERLAB is based on the library PACKAGESPY developped in the framework of SALOME.
If you are not in the SALOME console you first need to load the SOLVERLAB environment in your terminal using the command
source /path/to/SOLVERLAB_install/env_SOLVERLAB.sh
Then to run SOLVERLAB with your Python code main.py
, simply type in your terminal or your SALOME console
python3 main.py
If you are not in a SALOME console you first need to load the SALOME environment in your terminal using the command
source /path/to/SALOME/env_launch.sh
Then to use the Graphical User Interface of SOLVERLAB, simply type in your terminal
python3 $SOLVERLABGUI -g
If performance or parallelism is an issue for your simulations and python is too slow for your needs, you can link your C++ or Fortran code with SOLVERLAB librairies :
export LD_LIBRARY_PATH=/path/to/SOLVERLAB_install/lib
-lmedC -lmedloader -lmedcoupling -lbase -lmesh -llinearsolver
, plus -lmpi
if you are using a parallel version of SOLVERLAB.The SOLVERLAB environment variables consist in :
/path/to/SOLVERLAB_install/lib
/path/to/SOLVERLAB_install/lib/SOLVERLAB:/path/to/SOLVERLAB_install/bin/SOLVERLAB
${PETSC_DIR}/${PETSC_ARCH}/lib
${MEDFILE_ROOT_DIR}/lib
${MEDCOUPLING_ROOT_DIR}/lib
However the SALOME binary file can be very large (up to 5GB). Compilation of SOLVERLAB from source files can provide a faster alternative using less disk and memory space.
In order to build SOLVERLAB on your system you will need
Detailed instructions for compilation and use of standalone SOLVERLAB can be found in the page Standalone compilation from sources.