TRUST Release Note - V1.9.6

This page details the major changes and new functionalities released with TRUST version 1.9.6! See more details in the RELEASE_NOTES file located at the root of TRUST code.

We highlight notably the handling of 32-64b integers, the integration of PDI and the introduction of Discontinous Galerkin methods.

Physics and numerics

The main changes concerning physics and numerics are as follows:

  • Add new PolyMAC option “Maillage_VDF” or “VDF_Mesh” that can be used when using a PolyMAC scheme with a orthogonal equivalent faces. It is recommanded when using a non-uniform hexaedral mesh with varying porosity
  • A new boundary-condition “Echange_externe_radiatif” is now available for both VDF and VEF discretizations. It can be used to evacuate heat from a conduction problem via radiation without any coupling. It is a generalisation of the “Echange_externe_imposee” boundary condition
  • A new postprocessing field “wall_temperature” is now available for both VDF and VEF discretizations. It can be used to visualize the temperature at the wall for a thermal problem. It is not an interpolation but determined from a Newton algorithm in VDF case.
  • Integration of the IMUSIG algorithm from Baltik SCONE considering a constant Sauter diameter per class.
  • New Discontinous Galerkin discretization (order 1-2), limited to conduction 2D for now.
  • Isotrope, Anisotrope, Circular and Directional pressure-loss sources are available for the VDF discretization. There are compatible with or without multiphase problem.
  • Flux_parietal correlation for Pb_Multiphase can be used with the VDF discretization.

Code input / outputs

  • TRUST (and its baltiks) is now built with 64b support by default! Old 32b mode can still be built with ‘-with-32-bit-indices’. However, this options will soon become obselete.
  • Backup files can be written in HDF5 format using the PDI library. With this keyword, there is no longer a single backup file for every processor, but one file per NUMA node. The syntax to use is as follows: “sauvegarde reprise pdi filename”. All the necessary YAML files to initialize PDI are automatically generated and the user does not need to provide it. However, if one wants to use a personal YAML file to initialize PDI, the syntax is: “sauvegarde reprise pdi_expert { checkpoint_fname … yaml_fname … }”. The “pdi” keyword (but not the “pdi_expert” keyword) is also available with Champ_Fonc_Reprise. The “single_hdf” keyword is still available but is deprecated.
  • Option -journal_shared (to dump log in a single HDF file) is no longer available.
  • Convection/Diffusion contributions for all species are added to a seperate .out file when using the mass source term in a weakly-compressible simulation.
  • Create new Pb_XXX_IBM problems and XXX_IBM equations to be used when using a Source_PDF model for immersed boundary methods.
  • Algebric Multigrid preconditioned solver keyword which select a good choice for CPU/GPU/MPI: solver AMG GCP { rtol atol value [impr] }.

GPU porting

An effort regarding the GPU partiotioning on cluster has been conducted:

  • MI300A partition on Adastra supported with ./configure -rocm=gfx942.
  • H100 partition on JeanZay supported with ./configure -cuda=cc90.
  • A100 partition is supported on JeanZay, A100 and H100 partitions on orcus.
  • Ada Nvidia architecture card with compute capability 89 (e.g. RTX 4070) and gfx1100 AMD cards supported. Porting of VEF continues:
  • Lot of performance improvements in VEF kernels and more VEF features available (y_plus field, source terms for dilatable fluid, time-dependent boundary conditions).
  • Several VEF source terms ported (constituant and puissance_thermique for incompressible/quasi-compressible flows).

Prerequisites / portability

  • Configure option -force_provided_openmpi now use OpenMPI 4.1.6 and -force_latest_openmpi now use OpenMPI 5.0.5.
  • PETSc updated from 3.20 to 3.22 to benefit from GPU solver improvements (Hypre, STRUMPACK).

Bug fixes

Finally, various bugs have been fixed :

  • In PolyMAC and PolyMAC_P0P1NC, bug fix regarding nonzero Neumann conditions in the diffusive terms.
  • PolyMAC_P0 calculations crashed with out of memory. Better memory allocation which leads to performance improvement.
  • Pressure initial conditions can now be set in VEF P0.