YALES2 public page

From www.coria-cfd.fr
Revision as of 20:11, 1 October 2011 by Moureauv (Talk | contribs)

Jump to: navigation, search

Motivation

YALES2 aims at the solving of two-phase combustion from primary atomization to pollutant prediction on massive complex meshes. It is able to handle efficiently unstructured meshes with several billions of elements, thus enabling the Direct Numerical Simulation of laboratory and semi-industrial configurations.

YALES2 was developed from 2007 to 2010 by V. Moureau and is maintained since 2011 by V. Moureau, G. Lartigue and D. Taieb at CORIA and several other people in research laboratories.

Solvers

YALES2 is based on a large numerical library to handle partitioned meshes, various differential operators or linear solvers, and on a series of simple or more complex solvers.

  • Scalar solver (SCS)
  • Level set solver (LSS)
  • Incompressible solver (ICS)
  • Variable density solver (VDS)
  • Spray solver (SPS = ICS + LSS + Ghost-Fluid Method)
  • Lagrangian solver (LGS)
  • Compressible solver (ECS)
  • Magneto-hydrodynamic solver (MHD)
  • Mesh movement solver (MMS)
  • Radiative solver (RDS)
  • Linear acoustics solver (ACS)
  • Heat transfers solver (HTS)
  • Immersed boundary solver (IBS)

Models

  • Turbulence (Large-Eddy Simulation)
    • Constant Smagorinsky
    • Localized dynamic Smagorinsky
    • WALE
    • SIGMA
  • Mixing
    • Constant Schmidt number
    • Dynamic Schmidt number
  • Combustion
    • Boger’s model for premixed combustion
    • Infinitely fast chemistry with rho and T from 1D tables
    • Realistic chemistry: PCM-FPI with arbitrary number of dimensions and spacing + automatic chemtable builder in HDF5 based on Cantera
  • Two-phase
    • Primary atomization: Ghost-Fluid Method + Conservative level set
    • Spray transport: Lagrangian particles with two-way coupling through drag and single-component evaporation.
    • Wall splashing: Lagrangian spray + Ghost-Fluid Method + Conservative level set

Numerics

  • Spatial: 2nd- and 4th-order finite-volume schemes
  • Temporal:
    • 4th-order explicit time integration (RK4 and TFV4A) of convective terms
    • explicit and implicit diffusion and source terms
  • Stabilization: Cook & Cabot 4th-order artificial viscosity
  • Linear solvers:
    • PCG
    • BICGSTAB, BICGSTAB2, BICGSTAB(2)
    • Deflated PCG
    • Deflated BICGSTAB(2)
    • Residual recycling

Data Structures

  • 1D, 2D, 3D unstructured solver
  • Full dual decomposition based on METIS
  • Data registration (int, real, char, node, elem, face, pair, scalar, vector, tensor)
  • Optimized non-blocking MPI communications
  • Parallel load balancing
  • Automatic reconnection of periodic boundaries
  • Automatic homogeneous mesh refinement
  • IO formats: Gambit (Fluent), Ensight, prepartionned HDF5 (XDMF) with compression
  • Cartesian mesh generator
  • Partitioned mesh support for HDF5 independent of the number of processors
  • Parallel interpolator for partitioned HDF5 meshes
  • Automatic sponge layers
  • Built-in Gaussian filters of arbitrary size

Software engineering

  • 185,000 lines of code
  • Object-oriented fortran with modules (f90)
  • Version management with SVN
  • Inline documentation in the source code (XML + Latex)
  • GUI with client/server mode (wxwidgets, C++)
  • Automatic validation tests (AQAT, AVVT)
  • Automatic dependency of f90 modules in makefiles
  • Keyword-based input file
  • Easy profiling with timers

Gallery

Some computation examples are given in the gallery.

Performances

Thanks to highly efficient linear solvers, the speed-up of YALES2 is almost linear for meshes with several billion elements. These measures up to 21 billion elements were performed at IDRIS in France and at the Juelich Supercomputing Center in Germany.

YALES2 scale-up on Blue Gene/P machines