YALES2 public page

From www.coria-cfd.fr
Jump to: navigation, search
 
(10 intermediate revisions by 4 users not shown)
Line 10: Line 10:
 
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 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 [[User:Moureauv|V. Moureau]] and is maintained since 2011 by [[User:Moureauv|V. Moureau]] and [[User:Lartigue|G. Lartigue]] at CORIA and several other [[User|people]] in research laboratories.
+
YALES2 was developed from 2007 to 2010 by [[User:Moureauv|V. Moureau]] and is maintained since 2011 by [[User:Moureauv|V. Moureau]] and [[User:Lartigue|G. Lartigue]], joined later by P. Bénard and [[User:Bioche|K. Bioche]] at CORIA and several other [[User|people]] in research laboratories.
  
 
More information may be found in the following presentation: [[media:yales2_course.pdf | YALES2 presentation]]
 
More information may be found in the following presentation: [[media:yales2_course.pdf | YALES2 presentation]]
  
== Team ==
+
== Community ==
  
[[File:team_y2.jpg | center | thumb | 500px | Yales2 users and developers at CORIA, December 2017 [[User | (Users page) ]] ]]
+
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.
  
== Solvers ==
+
[[File:Network.jpg | center | thumb | 700px | YALES2 network]]
  
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 ==
+
== Commitments ==
* 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 ==
+
The YALES2 team is committed to supporting code users through training, meetings, projects or events.
* 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 ==
+
[[File:Commitment.jpg | center | thumb | 700px | YALES2 team commitment]]
* 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 ==
+
Here an example of event you can participate to:
* 280,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 ==
+
[[File:Extreme CFD.jpg | center | thumb | 700px | Extreme CFD event, https://ecfd.coria-cfd.fr/index.php/Ecfd:ecfd_4th_edition]]
Some computation examples are given in the [[YALES2_Gallery|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.
 
  
[[File:YALES2 2010 Scale up.png|left|thumb|600px|YALES2 scale-up on Blue Gene/P machines]]
+
== YALES2 Library and solvers ==
 +
 
 +
The numerical library YALES2LIB consists of all the numerical methods required to develop solvers:
 +
 
 +
[[File:Library.jpg | center | thumb | 800px | YALES2 library]]
 +
 
 +
We have plenty of solvers today, here are the principals:
 +
 
 +
[[File:Solvers.jpg | center | thumb | 700px | YALES2 solvers]]
 +
 
 +
 
 +
== 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, 1m15s to compile 850'000 lines of fortran
 +
* easy debugging: 2 compilation modes (optim, debug), many helpers (memory consumption, number of arrays, ...)
 +
 
 +
A few figures:
 +
* 16 major releases since 2007
 +
* 850 000 object-oriented Fortran 2008 lines for YALES2_2023.04
 +
* 15 600+ commits
 +
* 200+ active branches
 +
* 1000+ merge requests
 +
* 600+ members on the gitlab projects
 +
* 100+ contributors
 +
 
 +
 
 +
== Gallery ==
 +
Some computation examples are given in the [[YALES2_Gallery|gallery]] and on the Youtube video channel [https://www.youtube.com/@CoriaCFD]

Latest revision as of 23:15, 24 March 2024

PRECCINSTA burner with YALES2

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

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.

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:


YALES2 Library and solvers

The numerical library YALES2LIB consists of all the numerical methods required to develop solvers:

YALES2 library

We have plenty of solvers today, here are the principals:

YALES2 solvers


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, 1m15s to compile 850'000 lines of fortran
  • easy debugging: 2 compilation modes (optim, debug), many helpers (memory consumption, number of arrays, ...)

A few figures:

  • 16 major releases since 2007
  • 850 000 object-oriented Fortran 2008 lines for YALES2_2023.04
  • 15 600+ commits
  • 200+ active branches
  • 1000+ merge requests
  • 600+ members on the gitlab projects
  • 100+ contributors


Gallery

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