Intermediate version 3.2

Click here to dowload a 3.2.5 version.

Version 3.2, first released December 4 2013, is an intermediate development version. We recommend users who prefer a fully validated version to remain with 3.0. The current patch version is 3.2.5, released Dec 9, 2014, and is the last version of this series.

We encourage users of the version to migrate to 4.0.

The main improvements provided by Code_Saturne 3.2 as compared to the previous version (namely 3.1) are the following:

Physical modelling:

  • Remove deprecated uncoupled velocity solver (ivelco = 0).
  • Thermal model:
    • the thermal model is now defined by the "itherm" keyword/variable, which replaces iscsth(iscalt). In the case of temperature, the scale used is defined by a separate variable (itpscal). For additional user scalars, a new array iscacp is defined, such that iscacp(iscal) defines whether the scalar behaves like a temperature, so the possibility of modeling multiple passive "temperatures" is not lost. This change allows for better consistency between the standard and specific physics, as the thermal variable is now always a "model" scalar, and user scalars remain separate. It also allows querying the thermal model with one less indirection.
  • Atmospheric module:
    • add gazeous chemistry models.
    • plug the SIze REsolved Aerosol Model (SIREAM).
  • Turbomachinery modeling:
    • added a rotor-stator model based on mesh joining.
  • Particle tracking module:
    • add a modeling of the drying phase of the coal particle combustion
    • add a new boundary condition to simulate coal fouling mechanism
    • bug fixes related to radiative transfer
    • implementation of a particle discretization in the coal combustion model:
    • backwards compatibility is ensured (set nlayer = 1)
    • computation of intra-particle thermal gradients
    • adaptation of chemical source terms to temperature discretization
    • reworked of the particle injection for coal (clear difference between standard and user-defined coal composition)
    • adapted the particles and trajectories export routines to be able to output variable information for a specific layer.
  • Compressible module:
    • change the compressible algorithm from a density formulation to a pressure formulation
    • merge the compressible algorithm with the coupled velocity components algorithm
    • adapt standard bricks (codits, bilsc*) in order to make them compatible with the compressible algorithm
    • implement analytical flux boundary condition (plus a new total enthalpy / total pressure boundary condition with a fixed point algo, generalization of the subsonic outlet)
    • creation of a new set of BC coefficient for the convection operator for compressible flows
    • remove density in the variables array (rtp) and keep it only in the properties array.
  • Coal combustion module:
    • added new NOx model for coal combustion;
    • introduction of the coal thermal conductivity (for the calculation of intra particle gradients in particle-tracking module)
  • Boundary conditions:
    • Fix in the wall boundary conditions for the viscous boundary term (the viscous boundary term is not always parallel to the wall). This is mainly impactant for verification testcases.
    • add a new Boundary Condition type for free inlet, this BC can be used for natural convective flows in free atmosphere for instance (plumes, flame, etc.).
  • Turbulence:
    • Major change in Rij-epsilon models:
      • the Daly Harlow model on the diffusive term is now by default for SSG
      • the GGDH brick is used for all the models (LRR, SSG, EBRSM)
      • the "diffusivity_tensor" is added as a field key word
      • Rij-epsilon routines are cleaned up and doxygened.
Code structure:
  • For CFDSTUDY, use PARAVIS instead of VISU.
  • Only search for SCOTCH/PT-SCOTCH, Metis/ParMetis, Catalyst, and EOS if explicitely required to avoid detection of incorrect versions on clusters.
  • Added cs_c_bindings.f90 module for general definitions of C bindings. For large modules, it is recommended to use separate files (see field.f90 and post.f90 for example), but for smaller modules, this avoids requiring the definition of specific module files.
  • Added cs_field_pointer API for quick access to main fields from C.
  • Added experimental ParaView Catalyst co-processing output option.
  • Added new all-to-all infrastructure, allowing alternative algorithms such as Crystal Router to MPI_Altoall/MPI_alltoallv as an option.
  • Move the convection-diffusion balance (bilsc2.f90) to C.


  • moved tutorials outside the codebase, and into a separate base.
  • complete the Doxygen documentation of:
    • Fortran modules
    • user examples
    • Fortran routines
  • install Doxygen documentation from tarball (as built by "make dist").

Bug fixes:
  • Fixes in the wall boundary conditions (validation cases re-run for safety, and were not impacted by these changes):
    • for the velocity, when the wall velocity condition is non-zero, the gradient BC was wrong.
    • for the scalars, a term (proportional to the wall value) was missing in the gradient BC
    • for scalars with small molecular Prandtl number, the value in the viscous sub-layer was not consistent between the gradient BC and the flux BC.
  • Many bug fixes (see ChangeLog for details).