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).
Table of contents
- How to install?
- How to run preinstalled version?
- TRUST Release notes
- TRUST Developer notes
- externalpackages Release notes
- Version tested on several OS
- 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.4
cd TRUST-1.9.4
wget ftp://ftp.cea.fr/pub/TRUST/externalpackages/externalpackages-1.9.4.tar
# or :
# wget "https://drive.usercontent.google.com/download?id=1cQiXm8Qd8UsxxrFdX6nIAaGD4jgE-yxJ&export=download&authuser=2&confirm=t" -O externalpackages-1.9.4.tar
# Unzip the downloaded external packages folder
tar xf externalpackages-1.9.4.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.3/TRUST-1.9.3.tar.gz
tar xzf TRUST-1.9.3.tar.gz
cd TRUST-1.9.3
./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.4-int64.sh -
for TOPAZE and IRENE (AMD Rome) supercomputers (64-bit integers GPU version):
source /ccc/cont002/home/den/triou/env_TRUST-1.9.4-gpu.sh -
for CINES (Adastra) supercomputer (64-bit integers version):
source /opt/software/USERS_SOFTWARES/TRIOU/env_TRUST-1.9.4-int64.sh -
for CINES (Adastra) supercomputer (64-bit integers GPU version):
source /opt/software/USERS_SOFTWARES/TRIOU/env_TRUST-1.9.4-gpu.sh -
for IDRIS (jean-zay) supercomputer (64-bit integers version):
source /gpfswork/rech/aih/ume72pt/env_TRUST-1.9.4-int64.sh
3. TRUST Release notes version 1.9.4 : Enhancements, modifications and corrected bugs since version 1.9.3 :
17/05/24
(TRUST) Minor change : In Jupyter validation form Python API, method 'run.description()' is not available anymore. A MarkDown block should be used instead
17/05/24
(TRUST) Keyword : Champ_front_parametrique (boundary fields list) and Champ_parametrique (fields list) to chain multi-stationary or stationary-transient scenarios (see V&V sheets under Verification/Champs). Experimental, only tested with Flica5
16/05/24
(TRUST) Tools : Upgrade to MEDCoupling 9.13.0
13/05/24
(TRUST) New feature : New LES Smago/WALE models developped for Pb_Multiphase. To be used in TrioCFD (CMFD module !)
06/05/24
(TRUST) New feature : Performance logs (TU files): XX_comm.TU and XX_detail.TU have been replaced by XX_csv.TU which contains a CSV formated logs of the computation times. Keyword 'stat_per_proc_perf_log' can be used to obtain detailed performance logs per processor. See validation form 'HowTo/Post_treatment_performance' for detailed explanation on how global TU information are computed.
30/04/24
(TRUST) New Keywords : 'Fields_file', 'Statistics_file', 'Serial_statistics_file', 'Mobile_Probes_file', 'Int_Probes_file' and 'Int_Arrays_file' can now be used to define post-processing blocs in an annex datafile. See 'postpro_annex_file' test case
12/04/24
(TRUST) Keyword : .xyz file may be written in ASCII format with "EcritureLectureSpecial EcrFicPartage" keyword. Fields are written in "x(i) y(i) z(i) value(i)" format
10/04/24
(TRUST) Fix : Element-wall distance is now correctly calculated in the diffusion-operator for multi-component cases
10/04/24
(TRUST) New feature : Add series of problems XXX_List_Concenration & XXX_List_Concenration_Turbulent that can be used to dolve a list of N concentration equations. Possible to define different diffusion coefficients for each cloned equation (which is not the case of list_scalaire_passif problem !!!)
10/04/24
(TRUST) New feature : Add series of problems XXX_Cloned_Concenration & XXX_Cloned_Concenration_Turbulent that can be used to state only a single concentration equation in the .data but clone N equations. We assume here that the same BC are used. Possible to define different diffusion coefficients for each cloned equation.
08/04/24
(TRUST) Keyword : Keyword 'ecrire_fichier_xyz_valeur' is now used in a single block, with attributes 'dt', 'fields' and 'boundaries'
20/03/24
(TRUST) New feature : CoolProp and EOS can now be used with Dilatable flows problems
07/03/24
(TRUST) New feature : New syntax available for facsec with Euler implicit scheme, more options allowed in datafile to monitor facsec behavior: facsec { [facsec_ini] [facsec_max] [rapport_residus] [nb_ite_sans_accel_max] }. It can also be a function of time, as follows: facsec expression(t)
07/03/24
(TRUST) Keyword : Obsolete syntax for Champ_Fonc_Fonction, Champ_Fonc_Fonction_txyz, and Sutherland (pre v1.8.4) is not accepted anymore.
07/03/24
(TRUST) Keyword : Obsolete syntax for Champ_Fonc_tabule (pre v1.8.4) is not accepted anymore. Syntax should be on the form Champ_fonc_tabule { pb field } nbcomp { table }
07/03/24
(TRUST) Change : EcritureLectureSpecial is forced to 0 for PolyMAC_P0 simulations; ie: for resuming a simulation, only binary sauv files are accepted for this discretization.
07/03/24
(TRUST) New Keyword : Possible to use "Unite" keyword in Definition_champs with Transformation and Morceau_Equation to specify the unit of the field (specified unit will be written in post-processing files instead of "??")
06/03/24
(TRUST) New feature : Implementing ICoCo resetTime() method allowing to reset the time origin during the computation. For now previous post files are overwritten by default.
04/03/24
(TRUST) New feature : New option 'trust -quiet jdd.data' can be used to run a dataset with not output on the console.
04/03/24
(TRUST) New feature : It is now possible to resume Pb_Multiphase simulations (both via last time or champ_fonc_reprise).
29/02/24
(TRUST) Tools : Patched MEDCoupling to correct tetrahedrons remapping (fix will be included in next release of MEDCoupling)
26/02/24
(TRUST) New feature : Fallback to coarse solver if the IJK-multigrid has not reached convergence during current timestep (this concerns IJK discretization only)
05/02/24
(TRUST) New feature : New post-processing format introduced in TRUST : CGNS (CFD General Notation System). Not yet available for FT interface mesh (will be soon !)
02/02/24
(TRUST) Fix : Fixed bug in post-processing fields on nodes (SOM) in MED Format (internal MEDCouplingUMesh was not always in sync with Domaine)
31/01/24
(TRUST) Fix : Fixed handling of empty domains in VEF, PolyMAC_P0, and other related areas.
31/01/24
(TRUST) Fix : Bug fix in pb_couple on the same domain with missing APPEND for fields.
31/01/24
(TRUST) Fix : Resolved the issue in Perte_Charge_VEF with non-uniform, non-xyz viscosity.
31/01/24
(TRUST) Fix : Replaced deprecated Pandas append with concat in Jupyter notebooks.
31/01/24
(TRUST) New feature : himp and Text in Terme_Puissance_Thermique_Echange_Impose can now be champ_fonc fields.
31/01/24
(TRUST) New feature : Addition of new methods for face/element interpolation with DoubleTab in Discretization Tools.
31/01/24
(TRUST) New feature : DP_Impose and regulated pressure loses compatible with VEF discretizations
31/01/24
(TRUST) New feature : Champ_Fonc_Interp can be used now with OverlapDEC (for parallel cases)
31/01/24
(TRUST) Portability : Lots of portability stuff for mac: extension .so => dylib, linker, NB_PHYSICAL_CORES, awk ...
11/01/24
(TRUST) Change : OpenBLAS version updated to 0.3.25, this may result into some numerical differences in tests using this library
18/01/24
(TRUST) New keyword : Add mesh_numbering multi-scalar field to plot {node,cell,face} numerotation for visualization
18/01/24
(TRUST) Fix : Refine keywords (eg: Raffiner_simplexes, Raffiner_isotrope_parallele) were not refining sub_zones
18/01/24
(TRUST) New feature : Partition_tool Fichier_MED can read now the partition MED file from a previous partitionned domain to create a conform partitioned mesh
18/01/24
(TRUST) New option : Add ecrire_med option to Partition tools to write partition field into a MED file
12/01/24
(TRUST) Portability : cmake 3.21.0 or newer is necessary to install petsc and so TRUST.
12/01/24
(TRUST) New keyword : Add "petsc LU_Strumpack { }" as direct solver from STRUMPACK library
12/01/24
(TRUST) New keyword : Add two ILU preconditioners based on Block Low Ranking parametrized (epsilon) compression: petsc gcp|gmres { precond ilu_mumps|ilu_strumpack { epsilon value } ... }. May be useful on problems with solver slow convergence.
12/01/24
(TRUST) Library : Update PETSc to 3.20.0 (dependancies like MUMPS,... not updated yet)
11/01/24
(TRUST) Tools : Git repository of 'externalpackages' was reset to start fresh from version 1.9.3
10/01/24
(TRUST) Minor change : TRUST can be linked to a pre-compiled static library of CoolProp 6.6.0 version
10/01/24
(TRUST) Fix : Nusselt.face file was not updated at the end of computation if this latter is stopped by putting 1 in .stop file
19/12/23
(TRUST) Fix : The new post-processing format "single_lata" can be used with a TRUST 64 bit integers version.
18/12/23
(TRUST) New feature : Add option "write_singlelata" to lata_analyzer : useful to merge multiple binary lata files in a single one ! To resplit into multiple files, use "writelata".
4. TRUST Developer notes version 1.9.4 : Changes since version 1.9.3 :
27/05/24
(TRUST) New feature : New BALTIK_project_directory environment variable exported in env_BALTIK.sh
23/05/24
(TRUST) Change : configure option '-linker=' can be used to override linker, otherwise mold will be used if found (only with gcc>12.1.0 and clang compilers). if need to use default linker, than -linker=default will force default linker (ld for gnu, ...).
17/05/24
(TRUST) Minor change : Methods Gpoint() and Gpoint(t1,t2) renamed derivee_en_temps() and calculer_derivee_en_temps(t1,t2)
14/05/24
(TRUST) Debug : configure option '-enable-kokkos-debug' can be used to compile (and link only with $exec_debug) Kokkos library in Debug mode.
30/04/24
(TRUST) Debug : configure option '-enable-mc-debug' can be used to compile (and link only with $exec_debug) MEDCoupling library in Debug mode.
24/04/24
(TRUST) NR Tests : make check_mode and make ctest_mode does not scan validation forms if no validation form has been modified since last check.
11/04/24
(TRUST) NR Tests : Environment variable TRUST_CREATE_TESTS_FROM_VALIDATION_FORMS removed, make ctest_MODE does now a smart check of tests issued from validation forms.
22/03/24
(TRUST) Major change : mklibs script now generates only what is necessary for CMake. Old building mode (autotools) not supported anymore. File make.liba not generated anymore.
15/03/24
(TRUST) Major change : make.include files are not necessary anymore. Include directories lists are automatically generated (keeping the principle of spatial discretisation independence)
12/03/24
(TRUST) Tools : Kokkos (portability performance library) may be used for GPU acceleration and SIMD vectorization (use ./configure -kokkos_simd for the last case). In both cases, C++17 compiler is mandatory.
27/02/24
(TRUST) New feature : make ctest_optim and debug shows now skipped test cases as make check_optim and debug
18/12/23
(TRUST) Baltiks : project_directory is now determined from the location of env_BALTIK.sh, first step to make baltiks relocatables.
5. externalpackages Release notes version 1.9.4 : Enhancements, modifications and corrected bugs since version 1.9.3 :
16/05/24
(externalpackages) Minor change: MEDCoupling upgraded to 9.13.0
12/03/24
(externalpackages) New package: Kokkos 3.7.02 for C++14 and 4.2 (C++17) for GPU
05/02/24
(externalpackages) New package: CGNS Library can be linked with TRUST
12/01/24
(externalpackages) Portability: PETSc updated to 3.20.0 (dependencies not all updated for instance MUMPS)
11/01/24
(externalpackages) New package: MPICH 3.4.2 added to externalpackages (installed instead of MPICH 3.2 if gcc>=11.0.0)
11/01/24
(externalpackages) Git repository of 'externalpackages' was reset to start fresh from version 1.9.3
6. Version tested on several OS
Debian GNU/Linux 12
Fedora release 30
Fedora release 32
Fedora release 34
Fedora release 36
Fedora release 38
Red Hat Enterprise Linux release 8.4
Red Hat Enterprise Linux release 8.5
Red Hat Enterprise Linux release 8.6
Red Hat Enterprise Linux release 8.8
Rocky Linux release 9.1
Rocky Linux release 9.3
Ubuntu 18.04.6 LTS
Ubuntu 20.04.6 LTS
Ubuntu 22.04.3 LTS
Ubuntu 22.04 LTS
7. Version portability with several compilers
clang++ 18.1.1
clang++ 16.0.0
clang++ 12.0.0
clang++ 10.0.0
g++ 14.1.1
g++ 13.2.0-23ubuntu4)
g++ 13.0.1
g++ 12.2.0-14)
g++ 11.4.1
g++ 11.4.0
g++ 11.2.0
g++ 11.0.1
g++ 10.3.0
g++ 10.0.1
g++ 9.4.0
g++ 9.0.1
g++ 8.5.0
g++ 8.4.1
g++ 8.3.0
g++ 7.5.0-3ubuntu1~18.04)
icpx 2023.2.0
icpx 2021.4.0
icpc 19.0.5.281
nvc++ 23.5-0
nvc++ 22.7-0
crayCC 17.0.0