Skip to content
Snippets Groups Projects
Select Git revision
  • 53c9a20c2461150471d5164a83d4e860ad3ead64
  • develop default protected
  • origin/stage/bouguettaia
  • feature/variational-hydro
  • feature/gmsh-reader
  • feature/reconstruction
  • save_clemence
  • feature/kinetic-schemes
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

README.md

Blame
  • README.md 7.09 KiB

    The pugs framework

    pugs stands for Parallel Unstructured Grid Solvers.

    It aims at providing a collection of numerical methods and utilities that are assembled together by a user friendly language.

    Building pugs

    Requirements

    For the most basic build, pugs only requires

    • a C++-17 compiler.
      • g++-10 or higher versions
      • clang-10 or higher versions
    • CMake (at least 3.16)

    Warning:
    Building pugs in its source directory is forbidden. Trying to do so will result in a failure. However it generally leaves some garbage files in the source directory, namely the CMakeCache.txt and the CMakeFiles directory. CMake itself is not able to remove them, to avoid the risk of compilation issues, one has to dot it manually...

    In the build directory, one for instance launches

    cmake path-to-pugs-source

    and then

    make -j nb_jobs

    Specifying the compiler is done for instance as

    CXX=g++ CC=gcc cmake path-to-pugs-source

    When compilation is done, pugs binary is produce. Additionally, one can run unit tests by

    make check

    Optional packages

    pugs can benefit from additional packages to gain more functionalities or development tools.

    Optional numerical tools

    MPI support

    pugs integrates MPI support and should compile with any MPI-3 implementation. However in order to dispatch meshes on MPI processes pugs requires ParMETIS. Without, MPI support will be automatically deactivated.

    The easiest way to enable MPI support on Debian-like systems is to run

    apt install libparmetis-dev

    PETSc

    pugs can use PETSc to solve linear systems. In pugs the PETSc support requires MPI support.

    To install PETSc on Debian-like systems

    apt install petsc-dev

    SLEPc

    SLEPc is an eigenvalue problem solver based on PETSc. It requires PETSc.

    To install SLEPc on Debian-like systems

    apt install slepc-dev

    Documentation

    User documentation

    To build documentation one requires emacs, gmsh and gnuplot, additionally since examples results are generated, the documentation can only be produced after the compilation of pugs itself.

    To install emacs on Debian-like systems

    apt install emacs

    To install gmsh on Debian-like systems

    apt install gmsh

    To install gnuplot one can either use

    apt install gnuplot-nox

    or

    apt install gnuplot-x11

    Warning:
    When building the documentation for the first time, a local emacs configuration is generated. This requires an internet connection.

    These packages are enough to build the html documentation. To build the pdf documentation one requires a few more packages: pdflatex (actually a fresh texlive installation is probably necessary) and pygmentize

    On Debian-like systems these two packages are installed after

    apt install texlive-full

    Running the command

    make doc

    produces both the html and pdf documentation. Additional targets are

    • userdoc, userdoc-pdf and userdoc-html.