CIAO performs DNS and LES with multiphysics effects (multiphase, combustion, soot, spark, …). It is a structured, arbitrary order, finite difference code with compressible and incompressible/low-Mach solvers. Moving meshes are supported and overset meshes can be used for local mesh refinement. Spatial and temporal staggering is used to increase the accuracy of stencils. The sub-filter model for the momentum equations is an eddy viscosity concept in form of the dynamic Smagorinsky model with Lagrangian averaging along fluid particle trajectories.The compressible solver uses a low-storage five-stage, explicit Runge-Kutta method for time integration. The low-Mach solver uses Crank-Nicolson time advancement along with an iterative predictor corrector scheme. The Poisson equation for the pressure is solved by the multi-grid HYPRE solver. Momentum equations are spatially discretized with central schemes of arbitrary order, while for scalar equations various different schemes (WENO, HOUC, QUICK, BQUICK, …) are available. Temperature and species equations are advanced by utilizing a Strang operator splitting. The chemistry operator uses a time-implicit backward difference method (CVODE).
OpenFOAM is a C++ object-oriented numerical simulation platform, which has a modular code-design suitable to be extended with new functionalities through additional libraries. OpenFOAM uses the unstructured grid formulation with a collocated cell-centred variable arrangement, which allows handling arbitrarily complex geometries and it can be applied in different fluid dynamic problems. For turbulent reacting and multi-phase flows, OpenFOAM provides a wide runtime-selectable flexibility in terms of turbulence models, e.g. RANS and LES, with several turbulence closures, and combustion models, such as tabulated chemistry with presumed PDF, ATF (TU Darmstadt in-house extension), and finite-rate chemistry.
Multi-phase problems as liquid sprays can either be treated using a fully coupled Lagrangian point-particle method or within an Eulerian framework as Volume of Fluid Method. OpenFOAM can be easily coupled with external libraries, as for example the Quadrature-based Method of Moments (QMOM) library developed at TU Darmstadt to account for the soot particle size distribution.
Alya is a high performance computational mechanics code to solve complex coupled multi-physics / multi-scale / multi-domain problems, which are mostly coming from the engineering realm. Among the different physics solved by Alya we can mention: incompressible/compressible flows, non-linear solid mechanics, chemistry, particle transport, heat transfer, turbulence modeling, electrical propagation, etc.
From scratch, Alya was specially designed for massively parallel supercomputers, and the parallelization embraces four levels of the computer hierarchy. 1) A substructuring technique with MPI as the message passing library is used for distributed memory supercomputers. 2) At the node level, both loop and task parallelisms are considered using OpenMP as an alternative to MPI. Dynamic load balance techniques have been introduced as well to better exploit computational resources at the node level. 3) At the CPU level, some kernels are also designed to enable vectorization. 4) Finally, accelerators like GPU are also exploited through OpenACC pragmas or with CUDA to further enhance the performance of the code on heterogeneous computers.
Multiphysics coupling is achieved following a multi-code strategy, relating different instances of Alya. MPI is used to communicate between the different instances, where each instance solves a particular physics. This powerful technique enables asynchronous execution of the different physics. Thanks to a careful programming strategy, coupled problems can be solved retaining the scalability properties of the individual instances.
The code is one of the two CFD codes of the Unified European Applications Benchmark Suite (UEBAS) as well as the Accelerator benchmark suite of PRACE.