Implementation of the Discrete Unified Gas Kinetic Scheme in Code_Saturne targeting Exascale
ARCHER2-eCSE05-09
PI: Dr Jianping Meng (STFC – Daresbury Laboratory, now University of Liverpool)
Co-I(s): Dr Charles Moulinec (STFC – Daresbury Laboratory)
Technical staff: Dr Chrysovalantis Tsinginos (STFC – Daresbury Laboratory)
Subject Area:
Published : 2025-03-06
Many industrial transport processes may exceed the limits of continuum theory. For instance, clean energy pathway technologies, such as fuel cells and CO2 storage in shales involve gas flows at the micro/nano level. Some clean energy pathway technologies even extend into the quantum realm, such as solar energy (radiative heat transfer) and neutron transfer in nuclear power plants. To accurately address these challenges, the Boltzmann equation and/or similar transport equations need to be solved. However, directly solving the Boltzmann equation is computationally intensive and memory demanding. This is because the numerical solution requires discretizing the physical space along with an additional space, the molecular velocity space. After discretizing the molecular velocity space, the Boltzmann equation transforms into a set of scalar transport equations, solvable only in the physical space. The number of equations increases with the Knudsen number, defined as the ratio of the molecular mean free path to a representative length scale. Therefore, it is not uncommon to have over 1,000 such transport equations for gas flows at the micro/nano level or at high altitudes.
In this project, a new module, CS_DUGKS, is developed for extending the modelling capabilities of Code_Saturne, an open-source finite volume based CFD code, to the mesoscale. To achieve this goal, a deterministic solver of the Boltzmann equation is implemented in full. Uniform grids are used for the discretization of the molecular velocity space, in conjunction of potential unstructured grids in the physical space. The developed module adapts the discrete unified gas kinetic scheme for the reconstruction of the fluxes of the distribution function at interior faces. For transient problems, an iterative scheme is adopted in order to treat the non-linearity induced by the kinetic boundary conditions and the imposed algebraic transformation induced to the distribution function by the reconstruction scheme. Several test cases (cavity, Couette flows, etc. (see an example in the figure)) are carried out to demonstrate that the new CS_DUGKS is very accurate to provide the solution. Scaling tests are performed on ARCHER2 for different mesh sizes and molecular velocity grids including simulations of 700 million cells and 1000 molecular velocities per point, exhibiting a nearly perfect performance up to 256 fully populated nodes of the machine.
Information about the code
Discussions are currently happening with EDF R&D (the main developer of the whole Code_Saturne) to have a public GitHub repository linked to their official release. This is where this development will be made publicly available in the future. However, CS_DUGKS is already available to ARCHER2 community by accessing the following tarball /work/c01/c01/shared/cs_dugks73.tar.gz