Skip to content

Commit

Permalink
Modifs
Browse files Browse the repository at this point in the history
  • Loading branch information
eliesaikali committed Jan 16, 2024
1 parent 33204a4 commit 0b455eb
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 37 deletions.
57 changes: 32 additions & 25 deletions RN/v1_9_3.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,40 @@ layout: page
---

This page details the major changes and new functionalities released with TRUST version 1.9.3!
The main points are the introduction of the new PolyMAC spatial discretisations, the updates concerning the porting to the GPU architectures, and the changes around the MED and LATA formats.
The main points are the introduction of the new PolyMAC spatial discretisations, the updates concerning the porting to the GPU architectures, and the changes around the MED and LATA post-processing formats.

## Physics and numerics
# Physics and numerics

- PolyMAC spatial discretisation family: three PolyMAC versions are now available in TRUST:
- PolyMAC, which corresponds to the initial PolyMAC implementation. It is not compatible with Pb_Multiphase but is used in several other applications.
- PolyMAC\_P0P1NC, compatible with Pb_Multiphase.
- and PolyMAC\_P0, compatible with Pb_Multiphase. Warning, this last one can be costly on tetrahedral meshes.
- **PolyMAC** spatial discretisation family: three PolyMAC versions are now available in TRUST

- Conversion to and from an enthalpy form of the energy equation (which is initially in temperature) is now facilitated: the 'fluide\_reel\_base' class contains now a public struct H\_to\_T that is useful to convert, using the chain law, enthalpy derivatives into temperature ones. For codes and application where all derivatives are expressed as a function of the enthalpy, this struct can be now used to safely convert all calls to TPPI methods and Pb_Multiphase fluids/saturation/correlation and source terms.
- **PolyMAC**, which corresponds to the initial PolyMAC implementation. It is not compatible with Pb_Multiphase but is used in several other applications.

- **PolyMAC_P0P1NC**, compatible with Pb_Multiphase.

## Code input/outputs
- **PolyMAC_P0**, compatible with Pb_Multiphase. Warning, this last one can be costly on tetrahedral meshes.

- Several improvements/changes have been done around the MED file format, notably the Read\_MED|Lire\_MED keyword:
- now relies exclusively on MED groups, not on families. The option 'exclude\_groups' can be used in Read_MED to avoid reading some undesired face groups.
- has a new option 'include\_additional\_face\_groups' to read a group of arbitrary faces from a MED file. This can be used with option 'face\_group' to apply Perte\_Charge\_Singuliere on this group of faces. See Perte\_Charge\_Singuliere validation form for example.
- Conversion to and from an enthalpy form of the energy equation (which is initially in temperature) is now facilitated: the `Fluide_Reel_base` class contains now a public struct H\_to\_T that is useful to convert, using the chain law, enthalpy derivatives into temperature ones. For codes and application where all derivatives are expressed as a function of the enthalpy, this struct can be now used to safely convert all calls to TPPI methods and Pb_Multiphase fluids/saturation/correlation and source terms.

- The LATA format has also been improved and TRUST can now produce single LATA file: the format "single\_lata" can be used, that dumps results in a single binary lata file (Not supported in 64 bits integer build for now). A new interpreter "lml\_to\_lata" has also been added, that can be used to convert lml files to single\_lata format.
# Code input/outputs

- Several improvements/changes have been done around the MED file format, notably the Read\_MED\|Lire\_MED keyword:

- now relies exclusively on MED groups, not on families. The option `exclude_groups` can be used in Read_MED to avoid reading some undesired face groups.

- has a new option `include_additional_face_groups` to read a group of arbitrary faces from a MED file. This can be used with option `face_group` to apply Perte_Charge_Singuliere on this group of faces. **See Perte_Charge_Singuliere validation form for example.**

- The LATA format has also been improved and TRUST can now produce single LATA file: the format **single_lata** can be used, that dumps results in a single binary lata file (Not supported in 64 bits integer build for now). A new interpreter "lml\_to\_lata" has also been added, that can be used to convert lml files to single\_lata format.


Watch out for the future support of CGNS file format!

## Solvers and performance
# Solvers and performance

The following developments towards a more performant and more capable TRUST GPU version have been performed:

- Faster setup and less memory needed with option by default changed (HMIS->PMIS selector algorithm) for Nvidia (classical) algebric multigrid: `amgx cg { precond c-amg { } ... }`

- More options for linear solver on AMD: `rocALUTION cg { precond c-amg|sa-amg { [smoother jacobi|gs] [coarse\_grid\_solver LU|inversion|jacobi] [omega double] [coarse\_grids_host int] [impr] } rtol|atol double [ impr ] }`
- More options for linear solver on AMD: `rocALUTION cg { precond c-amg|sa-amg { [smoother jacobi|gs] [coarse_grid_solver LU|inversion|jacobi] [omega double] [coarse_grids_host int] [impr] } rtol|atol double [ impr ] }`

- More support in VEF for temperature equation (diffusion operator, boussinesq term) and periodic flow (source term + boundary condition in operators)

Expand All @@ -42,35 +47,35 @@ The following developments towards a more performant and more capable TRUST GPU

- Default for AmgX preconditionner may be overloaded in data file. Ex: `amgx gcp { precond c-amg { p:selector=PMIS p:strength_threshold=0.8 } ... }`

## Tools / Validation
# Tools / Validation

- A new method 'initBuildDirectory()' was added in Jupyter validation form Python API. It triggers the build directory creation and copy the 'src' content into it.

- A new tool for dataset Python maniupulation and reference doc generation was introduced -> trustpy. Check out the README.md file in Outils/trustpy/doc. It is used for the moment to


## Dataset changes
# Dataset changes

Here are all the syntax changes in the TRUST dataset:

- 'gravity' field is no more read and associated to a medium, syntax is obsolete. It should be read directly in the medium.

- the definition of the 'medium' (Fluid, solid, constituent, ...) can now only read in the problem, and the old syntax (read + association) is not supported anymore.

- Read\_MED|Lire\_MED, Write\_MED|Ecrire\_MED and Champ\_Fonc\_MED*: the old syntax of these keywords is not supported anymore. You now have to use the syntax with braces.
- Read\_MED\|Lire\_MED, Write\_MED\|Ecrire\_MED and Champ\_Fonc\_MED: the old syntax of these keywords is not supported anymore. You now have to use the syntax with braces.

## Prerequisites / portability
# Prerequisites / portability

- C++14 compilers are now mandatory so old GNU compilers (<5.0) are not supported anymore.

- The following prerequisite upgrades were performed:
- MEDCoupling upgraded to 9.12.0
- MEDCoupling upgraded to 9.12.0
- HDF5 upgraded to 1.14.2 -> this fixes a weird crash on a 32768 cores calculation during raffiner_isotrope_parallele operation
- rocALUTION upgraded to 3.0.3
- VisIt upgraded to v3.3.3 and 3rd party packages added except qt-everywhere-src 5.14.2
- ccache updated from 3.1.4 to 4.8.2 -> allows for faster (re)build with Nvidia compilers (nvc++, nvc, nvcc)

## Misc
# Misc

Here are the other less notable improvements/changes in this version:

Expand All @@ -84,16 +89,18 @@ Here are the other less notable improvements/changes in this version:

- the fluxes are not printed into an .out file by default anymore if the dedicated operator's output file is not set in the code. If a .out is desired, one must apply set\_fichier, else no file is written.

- the option 'table\_temps\_lue' was added to 'Champ\_Fonc\_MED\_Table\_Temps' keyword : Champ\_Fonc\_MED\_Table\_Temps { table\_temps\_lue file.txt | table\_temps { ... } ... }
- the option 'table\_temps\_lue' was added to 'Champ\_Fonc\_MED\_Table\_Temps' keyword : Champ\_Fonc\_MED\_Table\_Temps { table\_temps\_lue file.txt \| table\_temps { ... } ... }

## Bug fixes
# Bug fixes

- Various bugs have been fixed :
- Incomplete save (for HDF5 and .xyz files) when diffusion-implicited scheme did not converge

- Incomplete save (for HDF5 and .xyz files) when diffusion-implicited scheme did not converge
- When diffusive-implicited scheme diverges, backup wasn't done
- Fluxes are not printed into an .out file if the dedicated operator's output file is not set in the code, this avoids confusions.
- Bug fix with lambda keyword in Perte\_Charge\_Circulaire in PolyMAC discretisation
- When using Vorticity in Definition\_champ to extract the max value for exemple in a probe, not all times were written in the .son file
- Bug fix with lambda keyword in Perte_Charge_Circulaire in PolyMAC discretisation
- When using Vorticity in Definition_champ to extract the max value for exemple in a probe, not all times were written in the .son file

- A performance issue has been fixed too: fixed a performance regression (switch from Mkl to OpenBlas) for several solvers (MUMPS, GCP) on irene and topaze clusters


Expand Down
24 changes: 12 additions & 12 deletions news.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,33 @@ layout: page
description: news
---

This page is dedicated to the TRUST breaking news and announcements.
This page is dedicated to the TRUST's breaking news, release notes, tags and announcements.

# Github Discussions and Announcements
# Breaking news and new features

Please post your issues/discussions on **[this](https://github.com/cea-trust-platform/trust-code/discussions)** page !
- **November 2023 :** TRUST's Documentation page is is available **[here](https://cea-trust-platform.readthedocs.io/en/latest/)** ! It contains a link towards the TRUST Generic Guide, Keyword Reference Manual, TRUST Tools Documentation (jupyter and stats packages) and the C++ API doxygen documentation.

- **Mai 2023 :** TRUST's Generic Guide Documentation is available in an html Sphinx format.

- **Avril 2023 :** In the next version (coming soon), it will be possible to call CoolProp from TRUST! Stay tuned for more information.

# Version Release
# Version Release & tags

- **November 2023 :** Release of TRUST-V1.9.3 (click **[here](https://github.com/cea-trust-platform/trust-code/releases/tag/v1.9.3)**).

- **Mai 2023 :** Release of TRUST-V1.9.2 (click **[here](https://github.com/cea-trust-platform/trust-code/releases/tag/v1.9.2)**).

- **December 2022 :** Release of TRUST-V1.9.1 (click **[here](https://github.com/cea-trust-platform/trust-code/releases/tag/v1.9.1)**).

# Release Notes
# DetailedRelease Notes

Here is a detailed list of the TRUST RELEASE\_NOTES by version (new features, BUG fixes, improvements, ...)
Have a look to this section if you are interested in the detailed version of the TRUST RELEASE\_NOTES. You can find here all the code new features, BUG fixes, improvements, ...

- **[TRUST-V1.9.3](RN/v1_9_3.md)**

# Breaking news and new features

- **November 2023 :** TRUST's Documentation page is is available **[here](https://cea-trust-platform.readthedocs.io/en/latest/)** ! It contains a link towards the TRUST Generic Guide, Keyword Reference Manual, TRUST Tools Documentation (jupyter and stats packages) and the C++ API doxygen documentation.

- **Mai 2023 :** TRUST's Generic Guide Documentation is available in an html Sphinx format.
# Github Discussions and Announcements

- **Avril 2023 :** In the next version (coming soon), it will be possible to call CoolProp from TRUST! Stay tuned for more information.
Please post your issues/discussions on **[this](https://github.com/cea-trust-platform/trust-code/discussions)** page !

# Seminars

Expand Down

0 comments on commit 0b455eb

Please sign in to comment.