YALES2 public page

From www.coria-cfd.fr
Revision as of 09:18, 5 September 2026 by Moureauv (Talk | contribs) (Refresh page: updated features/flower diagram, solver list, agile-dev stats (prepared with Claude Code, published by the page maintainer))

Jump to: navigation, search

PRECCINSTA burner with YALES2
Y2 banner.png

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 and G. Lartigue, joined later by P. Bénard and K. Bioche at CORIA and several other people in research laboratories.

More information may be found in the following presentation: YALES2 presentation

YALES2 objectives:

  • Fast, agile and open development for innovation
  • High-performance computing for multi-physics & multi-scale problems
  • Large documentation resources and test cases for a minimal training effort — everyone can contribute!
  • Fast industrialization, even for simulations using 10'000+ cores

Key features

YALES2 is a massively parallel, unstructured-mesh, finite-volume platform built around a shared numerical library (YALES2LIB) and some 45 dedicated physics solvers. Its main features are organized below by domain.

Core numerics & HPC infrastructure

  • Unstructured meshes with adaptive grid refinement, suited for massively parallel computing (tested beyond 32'000 cores)
  • Hybrid MPI/OpenMP communications with a 4-level domain decomposition
  • Object-oriented, parallel data structures; dynamic load balancing
  • Highly efficient linear solvers for system inversion (PCG, DPCG, ...)
  • 4th-order central pair-based finite-volume method
  • 4th-order time integration (hybrid Lax-Wendroff / Taylor scheme)
  • Differential operators library, look-up table management
  • Parallel I/Os and automatic post-processing

Mesh generation & adaptation

  • Fully parallel meshing
  • Automatic (isotropic and anisotropic) mesh refinement
  • Dynamic mesh adaptation, coupled to the solvers, for moving fronts and interfaces
  • Mesh management tools: boundary displacement, grid deformation, rigid body motion
  • Automatic boundary-layer generation

Physical models

  • Low-Mach number Navier-Stokes equations (incompressible and variable density)
  • Turbulence models: LES (dynamic Smagorinsky, WALE, SIGMA), RANS/URANS (k-epsilon, k-omega), PANS
  • Combustion modeling: tabulated or finite-rate chemistry, stiff integrators, NOx model
  • Two-phase flows: Lagrangian particle transport, spray and atomization (level-set / ghost-fluid method)
  • Heat & mass transfer, radiative transfer (discrete ordinates method)
  • Discrete Element Method for granular flows
  • Structural mechanics and fluid-structure interaction

Digital-twin & workflow tools

  • y2_workflow.py for the management of heavy workflows (500+ coupled simulations, e.g. for machine-learning datasets)
  • Coupling with data-analysis tools: uncertainty quantification, parameter-space exploration, topological optimization
  • Coupling with LAGUN/NEXTSTEP (https://gitlab.com/drti/lagun)
  • External coupling with third-party codes
The YALES2 modular platform: the YALES2LIB numerical core (center) and the modules built around it

45 solvers

Built on top of the library, YALES2 currently ships 45 different solvers, covering incompressible/variable-density/compressible flows, spray, ALE, multifluid, heat transfer, MHD, structural mechanics, fluid-structure interaction, phase change/boiling, biomedical flows (thrombosis, endovascular, heart, red blood cells), acoustics, and more.

Some of the main YALES2 solvers

Full list of the 45 solvers (click to expand)

Full YALES2 solver list

Community

YALES2 is developed by a large community with more than 500 researchers/engineers who were trained by the CORIA laboratory since 2009. The community regroups academic partners, HPC centers, industrial partners, HPC experts, SMEs and more. The code is also used for CFD training in academic courses at INSA of Rouen in the Energy and Propulsion department.

Academic developers & users include CORIA Rouen, LEGI Grenoble, EM2C Saclay, IMAG Montpellier, MSME Marne-la-Vallée, IMFT Toulouse, PPRIME Poitiers, PRISME Orléans, LAAS Toulouse, LGC Toulouse, LMFA Lyon, ONERA and INERIS. About 10% of the code is written by industrial partners (SAFRAN, ARIANE GROUP, SIEMENS) and 10% by CIFRE PhD students.

YALES2 network


Commitments

The YALES2 team is committed to supporting code users through training, meetings, projects or events.

YALES2 team commitment

Here an example of event you can participate to:


Agile development

The fast development of the YALES2 platform comes mainly from the agile development project management methodology. It relies on a number of tools:

  • programming: modular structure of the code with more than 200 objects and 420 modules
  • non-regression and testing: private gitlab forge, nightly pipelines with more than 300 automatic jobs
  • fast compiling: automatic dependencies, two pass compiling
  • easy debugging: 2 compilation modes (optim, debug), many helpers (memory consumption, number of arrays, ...)
  • dedicated forge since 2010: gitlab.coria-cfd.fr, mattermost.coria-cfd.fr, y2training.coria.fr, yales2.coria-cfd.fr (sphinx documentation), available from Irene, Topaze, Adastra, ... with full access to the community

A few figures:

  • 20 major releases since 2007
  • 1.2M+ object-oriented Fortran 2008 lines
  • 30 000+ commits (15+ commits per day)
  • 300+ active branches
  • 2 000+ merge requests
  • 700+ members on the gitlab projects, 250+ active users
  • 120+ contributors


Gallery

Some computation examples are given in the gallery and on the Youtube video channel [1]