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.