version 0.6.0
How to build Notus

The following guidelines will help you to build Notus on your local machine or your cluster of choice.

  1. Change your working directory to the root of the Notus project. For instance:
     $ cd /home/$USER/notus
    
  2. Use the script build_notus.sh:

    By defaults, Notus is built with debug option (code is not optimized for speed), with Hypre and ADIOS third party libraries.

    Some system architectures are set to facilitate build process. For instance, to build on a workstation with GCC compilers and OpenMPI, use the following command:

    ./build_notus.sh --linux
    

    The Notus executable will be placed at the root of the Notus project. To build with an Intel compilers suite:

    ./build_notus.sh --intel
    

    You can build quicker by setting the number of threads used during the build process. 4 threads are used with the following command:

    ./build_notus.sh -j 4 --linux
    

    Build process can also be relative to a specific supercomputer environment:

    ./build_notus.sh -j 4 --irene-rome
    ./build_notus.sh -j 4 --curta-gnu
    ./build_notus.sh -j 4 --occigen
    

    You can use optional third party libraries (see Build Notus third-party libraries section to build them). For instance, to use MUMPS solver library:

    ./build_notus.sh -mj 4 --linux
    

    Finally, you may need to clean build directory before building Notus:

    ./build_notus.sh -cmj 4 --linux
    

    The full list of build_notus.sh script options are:

     ./build_notus.sh -h
     Usage : build_notus.sh [OPTIONS]
       -h          Print usage
    
     == build options"
       -c              Clean the build directory"
       -j NUMBER       Set the number of compilation jobs (default: 1)
       -o              Use OpenMP (default: false)
       -r              Release build (default: debug)
       -u              Build unit tests (default: false)
       --unpurify      Transform 'pure' subroutines to 'impure' for debug purpose"
       --with-score-p  Use Score-P measurement infrastructure (only with gcc compilers)
    
     == third party library options
       -a              use all libraries (except REFPROP) (default: false)
       -d              use HDF5    library (default: false)
       -l              use LIS     solvers (default: false)
       -m              use MUMPS   solver  (default: false)
       -p              use REFPROP library (default: false)
       -s              use ADIOS2  library (default: false)
       -t              use T3PIO   library (default: false)
       --third-party-lib-dir   DIRECTORY    set the third party library directory (default $HOME/usr)
    
     == compilers and mpi options
       --cc            C_COMPILER           set the C compiler (default gcc; option icc)
       --fc            FORTAN_COMPILER      set the Fortran compiler (default gfortran; option ifort)
       --mpicc         MPI_C_WRAPPER        set the C compiler (default mpicc; option mpiicc)
       --mpifc         MPI_FORTRAN_WRAPPER  set the Fortran compiler (default mpif90; option mpiifort)
       --compilers     COMPILER_COLLECTION  set the compiler collection (default gcc; option intel)
       --mpi           MPI_LIBRARY          set the mpi library (default openmpi; options: intelmpi)
    
     == system options (shortcut for compilers and mpi options)
       --linux         Workstation system           GCC compilers,   openmpi   library
       --intel         Intel system                 Intel compilers, Intel MPI library
       --curta         Curta supercomputer          Compiler and MPI version may vary with 'notus_third_party' module
       --irene-rome    Irene-rome supercomputer     Intel compilers, openmpi   library
       --irene-skylake Irene-skylake supercomputer  Intel compilers, openmpi   library
       --jean-zay      Jean Zay supercomputer       Intel compilers, Intel MPI library
       --occigen       Occigen supercomputer        Intel compilers, Intel MPI library