X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=README.md;h=d9eaa9c5804fff7379ba45e37b925c5e19671974;hb=HEAD;hp=1e3b043a683a7edc62fa4abe07649d1fca842cca;hpb=4117b8d5ed88bfa09c2387da2eb02c54e6242505;p=tools%2Fsolverlab.git diff --git a/README.md b/README.md index 1e3b043..d9eaa9c 100755 --- a/README.md +++ b/README.md @@ -5,6 +5,9 @@ | *SOLVERLAB* | + +Introduction +------------ 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 the [MEDcoupling](https://docs.salome-platform.org/latest/dev/MEDCoupling/tutorial/index.html) C++/python library of the [SALOME](http://www.salome-platform.org/) project for the handling of meshes and fields, and on the C++ library [PETSC](https://www.mcs.anl.gov/petsc/) for the handling of matrices and linear solvers. SOLVERLAB includes PDE systems @@ -22,7 +25,7 @@ The main research objectives of SOLVERLAB are the study of - New preconditioners for implicit methods for two phase flows - The coupling of fluid models or multiphysics coupling (eg thermal hydraulics and neutronics or thermal hydraulics and solid thermics) -The library is currently maintained and distributed by the SALOME developpement team on various linux distributions (Ubuntu, CentOS, Fedora, Debian) and on Windows10. +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](https://www.salome-platform.org/downloads/current-version). Examples of use @@ -38,14 +41,16 @@ Examples of use - [Surface Finite elements for the Poisson-Beltrami problem on a sphere in 3D (by M. Nguemfouo, PhD student)](CDMATH/tests/doc/3DPoissonSphereEF/SynthesisConvergenceFESphere.pdf) - [Surface Finite elements for the Poisson-Beltrami problem on a torus in 3D (by M. Nguemfouo, PhD student)](CDMATH/tests/doc/3DPoissonTorusEF/SynthesisConvergenceFETorus.pdf) -Download SOLVERLAB sources to compile +Download SOLVERLAB sources for compilation ---------------------------------- +The easiest way to use SOLVERLAB is to download the SALOME binary file corresponding to your operating system [here](https://www.salome-platform.org/downloads/current-version). +However the binary file can be very large (up to 5GB). Compilation of SOLVERLAB from source files can provide a better alternative using less disk and memory space. -Create your source directory. For instance: +To compile SOLVERLAB source, first create a source directory, for instance with: * `mkdir ~/workspace/SOLVERLAB` * `cd ~/workspace/SOLVERLAB` -Download from GitHub +Download SOLVERLAB source from GitHub * click on the following link : `https://github.com/ndjinga/SOLVERLAB/archive/master.zip`, then unzip the file in a directory SOLVERLAB-master * or type the following in a terminal : `wget https://github.com/ndjinga/SOLVERLAB/archive/master.zip`, then unzip the file in a directory SOLVERLAB-master * or clone the git repository to a folder SOLVERLAB-master: `git clone https://github.com/ndjinga/SOLVERLAB.git SOLVERLAB-master` @@ -53,14 +58,15 @@ Download from GitHub Set the environment for the compilation of SOLVERLAB --------------------------------------------- -Dependencies. The following package list is sufficient on Ubuntu 14.04, Ubuntu 16.04, Ubuntu 18.04 : +Dependencies. The following package list is sufficient on Ubuntu 20.04 : - `cmake3` (mandatory) - `g++` or another C++ compiler (mandatory) - - `python-dev`, `python-numpy` and `swig3`for python scripts (mandatory) - - `python-matplotlib` and `paraview` for postprocessing tools such as plotting curves (matplotlib) or generating 3D view images (paraview) (mandatory) + - `python3-dev`, `python3-numpy` and `swig3`for python scripts (mandatory) + - `pyqt5-dev-tools` to generate the Graphical User Interface (optional) + - `python3-matplotlib`, `paraview-dev`, `libnetcdf-dev` (on Ubuntu 20.04) and `python3-paraview` for postprocessing tools such as plotting curves (matplotlib) or generating 3D view images (paraview) (optional) - `ffmpeg` and `ffmpeg-devel` to generate an animation from a set of curves (optional) - - `doxygen`, `graphviz` and `mscgen`, if you want to generate a nice source code documentation in `~/workspace/SOLVERLAB/SOLVERLAB_install/share/doc/`. Use the compilation option `-DSOLVERLAB_WITH_DOCUMENTATION=ON` (optional). + - `python3-sphinx` for the GUI documentation, and `doxygen`, `graphviz` and `mscgen` to generate a developper documentation. Use the compilation option `-DSOLVERLAB_WITH_DOCUMENTATION=ON` (optional). - `libcppunit-dev`, if you want to generate unit tests. Use the compilation option `-DSOLVERLAB_WITH_TESTS=ON` (optional). - `rpm`, if you want to generate RPM installation packages. Use the compilation option `-DSOLVERLAB_WITH_PACKAGE=ON` (optional). @@ -74,22 +80,22 @@ Directories. Create the suggested build and installation folders: Compile and install SOLVERLAB -------------------------- Simpler build for a minimum version: -* `cmake ../SOLVERLAB-master/ -DCMAKE_INSTALL_PREFIX=../SOLVERLAB_install -DCMAKE_BUILD_TYPE=Release ` +* `cmake ../SOLVERLAB-master/ -DCMAKE_INSTALL_PREFIX=../SOLVERLAB_install -DCMAKE_BUILD_TYPE=Release -DSOLVERLAB_WITH_GUI=ON -DSOLVERLAB_WITH_DOCUMENTATION=ON ` > This will download and build the following dependencies -> - PETSc from http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.14.2.tar.gz -> - SLEPc from https://slepc.upv.es/download/distrib/slepc-3.14.1.tar.gz +> - PETSc from http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.16.0.tar.gz +> - SLEPc from https://slepc.upv.es/download/distrib/slepc-3.16.0.tar.gz > - F2CBLASLAPACK from http://ftp.mcs.anl.gov/pub/petsc/externalpackages/f2cblaslapack-3.4.2.q4.tar.gz > - HDF5 https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.3/src/hdf5-1.10.3.tar.gz > - MEDFILE from http://files.salome-platform.org/Salome/other/med-4.1.0.tar.gz -> - MEDCOUPLING from http://files.salome-platform.org/Salome/other/medCoupling-9.6.0.tar.gz +> - MEDCOUPLING from http://files.salome-platform.org/Salome/other/medCoupling-9.7.0.tar.gz -If you already have an installation of PETSC, MED and MEDCoupling, you may save computational time and memory by using the advanced build version: -* `cmake ../SOLVERLAB-master -DCMAKE_INSTALL_PREFIX=../SOLVERLAB_install -DCMAKE_BUILD_TYPE=Release -G"Eclipse CDT4 - Unix Makefiles" -D_ECLIPSE_VERSION=4.3 -DSOLVERLAB_WITH_DOCUMENTATION=ON -DPETSC_DIR=${PETSC_DIR} -DPETSC_ARCH=${PETSC_ARCH} -DMEDFILE_ROOT_DIR=${MEDFILE_ROOT_DIR} -DMEDCOUPLING_ROOT_DIR=${MEDCOUPLING_ROOT_DIR}` +If you already have an installation of PETSC, MED and MEDCoupling, you may save computational time and memory by using the following cmake instruction: +* `cmake ../SOLVERLAB-master -DCMAKE_INSTALL_PREFIX=../SOLVERLAB_install -DCMAKE_BUILD_TYPE=Release -G"Eclipse CDT4 - Unix Makefiles" -D_ECLIPSE_VERSION=4.3 -DSOLVERLAB_WITH_DOCUMENTATION=ON -DPETSC_DIR=${PETSC_DIR} -DPETSC_ARCH=${PETSC_ARCH} -DMEDFILE_ROOT_DIR=${MEDFILE_ROOT_DIR} -DMEDCOUPLING_ROOT_DIR=${MEDCOUPLING_ROOT_DIR} -DSOLVERLAB_WITH_GUI=ON` > This assumes that you have an existing -> - install of PETSc (with submodules SLEPC and HDF5) at the location given by the environment variable PETSC_DIR and the architecture variable PETSC_ARCH +> - installation of PETSc (with submodules SLEPC and HDF5) at the location given by the environment variable PETSC_DIR and the architecture variable PETSC_ARCH > See the instructions given in [the official documentation](http://www.mcs.anl.gov/petsc/documentation/installation.html) -> - install of MED at the location given by the environment variable MEDFILE_ROOT_DIR -> - install of MEDCOUPLING at the location given by the environment variable MEDCOUPLING_ROOT_DIR +> - installation of MED at the location given by the environment variable MEDFILE_ROOT_DIR +> - installation of MEDCOUPLING at the location given by the environment variable MEDCOUPLING_ROOT_DIR The 3 dependencies PETSC, MED and MEDCOUPLING should have been compiled with the same version of HDF5 Warning : the linux package libhdf5-dev is generally not compatible with the libraries MED and MEDCoupling @@ -98,7 +104,7 @@ Compile and install: * `make install` Run unit and example tests: -* make example +* make examples Run validation tests: * make validation @@ -112,10 +118,15 @@ Generate documentation of CoreFlows module Use of SOLVERLAB ------------- -To use SOLVERLAB with your Python code, you can load the SOLVERLAB environment in your terminal using the command +To use SOLVERLAB in your Python code `main.py `, you can load the SOLVERLAB environment in your terminal using the command + * source `~/workspace/SOLVERLAB/SOLVERLAB_install/env_SOLVERLAB.sh` +Then in your terminal simply type +- `python3 main.py ` + +To use the Graphical User Interface of SOLVERLAB, you can load the SOLVERLAB environment in your terminal using the command * source `~/workspace/SOLVERLAB/SOLVERLAB_install/env_SOLVERLAB.sh` Then in your terminal simply type -- `python main.py ` +- `python3 $SOLVERLABGUI ` If performance or parallelism is an issue for your simulations, you can use SOLVERLAB librairies with your C++ code : * C++ libraries: `export LD_LIBRARY_PATH=~/workspace/SOLVERLAB/SOLVERLAB_install/lib`