Skip to content

Release V1.9.5

Latest
Compare
Choose a tag to compare
@trust-tma trust-tma released this 29 Nov 17:27

TRUST is a thermalhydraulic software package for CFD simulations (https://cea-trust-platform.github.io).
It was originally designed for incompressible single-phase and Low Mach Number
flows, but now also allows simulating real compressible multi-phase flows.
TRUST is also being progressively ported to support GPU acceleration (NVidia/AMD).
This software is OpenSource (BSD license).

You can visit the TRUST website https://cea-trust-platform.github.io which contains
a preliminary documentation of the numerical methods implemented in TRUST (space
discretizations for the moment), and that will be completed progressively.


Table of contents

  1. How to install?
  2. How to run preinstalled version?
  3. TRUST Release notes
  4. TRUST Developer notes
  5. externalpackages Release notes
  6. Version tested on several OS
  7. Version portability with several compilers

TRUST support team: [email protected]
Website: https://cea-trust-platform.github.io


How to install?

First method:

git clone https://github.com/cea-trust-platform/trust-code.git TRUST-1.9.5
cd TRUST-1.9.5
wget ftp://ftp.cea.fr/pub/TRUST/externalpackages/externalpackages-1.9.5.tar
# or :  
# wget "https://drive.usercontent.google.com/download?id=1YrG36uK5cJoQ9gHAnilJSUjfTWnFBboJ&export=download&authuser=0&confirm=t" -O externalpackages-1.9.5.tar
# Unzip the downloaded external packages folder
tar xf externalpackages-1.9.5.tar
./configure -help # To see the possible configure options.
./configure $OPTIONS # where $OPTIONS is the list of selected options.
make

Second method:

wget ftp://ftp.cea.fr/pub/TRUST/TRUST/Version1.9.5/TRUST-1.9.5.tar.gz
tar xzf TRUST-1.9.5.tar.gz
cd TRUST-1.9.5
./configure -help # To see the possible configure options.
./configure $OPTIONS # where $OPTIONS is the list of selected options.
make

Warning: Check carefully the MPI version you want to use for parallel computing before installing the code, especially onto a HPC cluster.
The command mpicxx should be found into the bin directory of the MPI version you plan to use, to check that, run:
type mpicxx

NB: If you cannot get externalpackages, please contact TRUST support team


2. How to run preinstalled version?

  • for TOPAZE and IRENE (Skylake & AMD Rome) supercomputers (64-bit integers version):
    source /ccc/cont002/home/den/triou/env_TRUST-1.9.5-int64.sh

  • for TOPAZE supercomputer (64-bit integers GPU version, experimental):
    source /ccc/cont002/home/den/triou/env_TRUST-1.9.5-gpu.sh

  • for IRENE (AMD Rome) supercomputer (32-bit integers GPU version, experimental):
    source /ccc/cont002/home/den/triou/env_TRUST-1.9.5-gpu.sh

  • for IDRIS (jean-zay) supercomputer (64-bit integers version):
    source /lustre/fswork/projects/rech/aih/ume72pt/env_TRUST-1.9.5-int64.sh

  • for IDRIS (jean-zay) supercomputer (64-bit integers GPU version, experimental):
    source /lustre/fswork/projects/rech/aih/ume72pt/env_TRUST-1.9.5-gpu.sh

  • for CINES (adastra) supercomputer (64-bit integers version):
    source /opt/software/USERS_SOFTWARES/TRIOU/env_TRUST-1.9.5-int64.sh


3. TRUST Release notes version 1.9.5 : Enhancements, modifications and corrected bugs since version 1.9.4 :

20/11/24 (TRUST) Tools : 'trustpy' now becomes 'trustify'. Check the syntax of your dataset with 'trust -trustify my_case.data'. See a more complete usage example in Outils/trustify/doc/examples/hello_world.
28/10/24 (TRUST) New feature : Support for Cathare FORT21 format in lata tools and plugins.
28/10/24 (TRUST) Build : TRUST is now configured by default with Kokkos SIMD (if C++17) backend enabled
21/10/24 (TRUST) Bug fix : In VEF, Viscous forces on boundaries (printed in _Contrainte_visqueuse.out files) in incompressible Navier-Stokes equations were computed as Integral(-mu*grad(u)ndS). It is now computed as Integral(-mu(grad(u) +grad(u)^T)*ndS).
18/10/24 (TRUST) Minor change : To force C++14 build of TRUST, you should add configure option -std=c++14. Else by default, it will use C++17 as TRUST features from Kokkos (GPU, SIMD, OpenMP) are not available with C++14
18/10/24 (TRUST) Fix : .out files were not closed at the end of the calculation leaving opened file descriptors
17/10/24 (TRUST) GPU : Upgrade AmgX multigrid solvers with a better performance (10-15%) noticed on benchmarks
17/10/24 (TRUST) GPU : When enabling GPU communications with MPI GPU-aware library, fix KSP_DIVERGED produced by PETSc GPU solvers (especially when using classical multigrid preconditioners) by using OpenMPI 5.x instead of OpenMPI 4.x
07/10/24 (TRUST) New Keyword : Added a new correlation for Nusselt heat flux, including Nusselt parser with Reynolds (Re) and Prandtl (Pr) number dependency.
07/10/24 (TRUST) New Feature : Move correlation structures from Pb_Multiphase to Probleme_base (allow to use CMFD type turbulence or parietal heat transfer correlations with (thermo)hydraulic problems for example). TrioCFD needed for turbulence equations.
07/10/24 (TRUST) Tools : Patched MEDCoupling to add crackAlong() functionality.
26/09/24 (TRUST) Change : cmake upgraded from 3.22 to 3.30.
26/09/24 (TRUST) Change : python upgraded from 3.7 to 3.12.
26/09/24 (TRUST) Change : mpi4py upgraded from 3.0.3 to 4.0.0.
03/09/24 (TRUST) GPU : A1000, A2000, H100 GPUs and Cuda 12.x supported. Add ./configure -kokkos_hip option to build on AMD with HIP Kokkos backend (still buggy) so default is still OpenMP-target backend (with performance issue on MI250)
03/09/24 (TRUST) GPU : VEF convection schemes muscl_new and EF_stab available
03/09/24 (TRUST) GPU : Complete porting for VEF dicretization of Quasi-compressible module and wall laws for turbulence models. Optimization with a lot H2D&D2H copies suppressed
25/07/24 (TRUST) Bug fix : Performance regression fixed in IJK (seen in FT application in TrioCFD)
18/07/24 (TRUST) Fix : Possible to visualize surface fields issued from Champ_post_extraction with VisIt
12/07/24 (TRUST) GPU : Enable HIP support in PETSc to get Hypre multigrid available on AMD GPU with: petsc_gpu gcp|gmres { precond boomeramg { } ... }
12/07/24 (TRUST) GPU : New available features for VEF discretization: Quasi-compressible (partial), Wale and Smagorinski turbulence models, Semi-implicit scheme, Sources term (Boussinesq, Canal_perio)
09/07/24 (TRUST) New feature : Add new problem/equation Pb_Multiphase_Enthalpie/Energie_Multiphase_Enthalpie : resolution in h not in T


4. TRUST Developer notes version 1.9.5 : Changes since version 1.9.4 :

29/10/24 (TRUST) Major change : No more try/catch in get_champ. Virtual methods has_champ added and can be used !
28/10/24 (TRUST) Kokkos : Add -kokkos_openmp configure option to build Kokkos with OpenMP backend instead of serial backend
18/10/24 (TRUST) Fix : .son,.out,.lata files were not re-initialized after pb.resetTime() call during calculations run into a same directory
17/10/24 (TRUST) Minor change : -force_provided_openmpi use 5.0.5 instead of old 2.0.4 OpenMPI version
08/10/24 (TRUST) Major change : No more REF MACRO. USE OBS_PTR!
08/10/24 (TRUST) Major change : Introducing OWN_PTR macro for polymorphic class members. DERIV() can not be inherited anymore, and will disappear to move towards a logic similar to smart-pointer. Soon the end of '.valeur()'!
07/10/24 (TRUST) New feature : ICoCo Python interface (module 'trusticoco') now accepts MPI communicator created on the Python side via mpi4py module.
10/09/24 (TRUST) Major change : No more classes deriving from OWN_PTR of a base classe. This should only be used in private/protected attributes. Thus no more forwarded calls
10/09/24 (TRUST) Major change : Previous DERIV macros are now deprecated. Use OWN_PTR instead
06/09/24 (TRUST) New feature : Introducing the new type 'trustIdType' to represent entity indices that can exceed 32b, and starting the set-up of the code to be 64b ready


5. externalpackages Release notes version 1.9.5 : Enhancements, modifications and corrected bugs since version 1.9.4 :

17/10/2024 (externalpackages) Minor change: gmsh upgraded to 4.13.1 and fltk to commit a5f28b3984
07/10/2024 (externalpackages) Minor change: valgrind upgraded from 3.18.1 to 3.23.0
26/09/2024 (externalpackages) New package : Pydantic package added
26/09/2024 (externalpackages) Major change: Python upgraded to 3.12.3, cmake to 3.30.3 and switch to Miniforge


6. Version tested on several OS

Debian GNU/Linux 11
Debian GNU/Linux 12
Fedora release 30
Fedora release 32
Fedora release 34
Fedora release 36
Fedora release 38
Fedora release 40
Fedora release 41
Red Hat Enterprise Linux release 8.4
Red Hat Enterprise Linux release 8.5
Red Hat Enterprise Linux release 8.8
Red Hat Enterprise Linux release 8.10
Red Hat Enterprise Linux release 9.2
Red Hat Enterprise Linux release 9.4
Rocky Linux release 9.3
Rocky Linux release 9.4
Rocky Linux release 9.5
Ubuntu 20.04 LTS
Ubuntu 22.04 LTS
Ubuntu 24.04 LTS


7. Version portability with several compilers

clang++ 10.0.0
clang++ 14.0.0
clang++ 16.0.0
clang++ 19.1.0
crayCC 18.0.0
g++ 8.3.0
g++ 8.4.1
g++ 8.5.0
g++ 9.0.1
g++ 9.4.0
g++ 10.0.1
g++ 10.2.1
g++ 10.3.0
g++ 11.0.1
g++ 11.2.0
g++ 11.4.0
g++ 11.4.1
g++ 11.5.0
g++ 12.0.1
g++ 12.2.0
g++ 13.0.1
g++ 13.2.0
g++ 13.3.0
g++ 14.0.1
g++ 14.2.1
icpx 2021.4.0
icpx 2022.1.0
icpx 2023.2.0
nvc++ 23.1-0
nvc++ 23.5-0
nvc++ 23.7-0