Salome HOME
Updated expected values in python unit tests
[tools/solverlab.git] / README.md
index 9fff18e70b514c59ad88a079652766129149dbb7..b6b7c3aca0e80c7fde6e6b0a0726327a6c53cd94 100755 (executable)
--- a/README.md
+++ b/README.md
@@ -5,7 +5,10 @@
 | *SOLVERLAB* |
 
 </center>
-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 originates from [CDMATH](http://cdmath.jimdo.com), a collaborative workgroup with the same name. It 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. 
+
+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
 arising from the modeling of nuclear reactor cores which involves fluid dynamics, heat and neutron diffusion as well as solid elasticity. It
@@ -22,7 +25,8 @@ 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 developed for linux distributions and is maintained on Ubuntu 16.04 LTS and 18.04 LTS, as well as on Fedora 24, 26, 28, 30 and 32.
+The library is currently maintained and distributed by the SALOME developpement team on various linux distributions (Ubuntu, CentOS, Fedora, Debian) and on Windows10.
+The corresponding binary files can be found  [here](https://www.salome-platform.org/downloads/current-version).
 
 Examples of use
 ---------------
@@ -44,18 +48,21 @@ Create your source directory. For instance:
 * `mkdir ~/workspace/SOLVERLAB`
 * `cd ~/workspace/SOLVERLAB`
 
-Download from salome-platform.org
-* clone the git repository to a folder SOLVERLAB-master:  `git clone http://git.salome-platform.org/gitpub/modules/solverlab.git SOLVERLAB-master`
+Download 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`
 
 
 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).
  - `libcppunit-dev`, if you want to generate unit tests. Use the compilation option `-DSOLVERLAB_WITH_TESTS=ON` (optional).
@@ -73,15 +80,15 @@ Compile and install SOLVERLAB
 Simpler build for a minimum version:
 * `cmake ../SOLVERLAB-master/ -DCMAKE_INSTALL_PREFIX=../SOLVERLAB_install -DCMAKE_BUILD_TYPE=Release `  
 > This will download and build the following dependencies
-> - PETSc from http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.14.0.tar.gz
-> - SLEPc from https://slepc.upv.es/download/distrib/slepc-3.14.0.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.4.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  
 > See the instructions given in [the official documentation](http://www.mcs.anl.gov/petsc/documentation/installation.html)
@@ -95,7 +102,7 @@ Compile and install:
 * `make install`
 
 Run unit and example tests:
-* make example
+* make examples
 
 Run validation tests:
 * make validation
@@ -109,10 +116,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`