8.3
general documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Using CDO schemes for solving the Navier-Stokes system

Introduction

The Navier–Stokes equations can be solved using CDO face-based discretizations. Other space discretizations are not available. Up to now, there is no turbulence modelling when using CDO schemes. This is a work in progress.

The rationale to set up the computation in the case of the Navier-Stokes equations is the very near of the one explained for user-defined equations here. One only focuses on the specifities arising from the Navier-Stokes case.

Settings done in cs_user_model()

The activation of the NavSto module is done thanks to the function cs_navsto_system_activate For instance, here are two examples to activate and set the main parameters for the NavSto module

or

The first parameter is the structure managing the domain boundaries. An example of settings for the domain boundaries is described here.

The second parameter specifies the type of model to consider among the following choice:

The base model can be updated thanks to the third parameter which is a flag built from the following elemental bit (cs_navsto_param_model_bit_t):

The fourth parameter specifies which type of velocity-pressure algorithm will be used (cs_navsto_param_coupling_t). The choice is done among:

The last parameter specifies predefined post-processing operations. As the third parameter, this a flag built from the following elemental bit (cs_navsto_param_post_bit_t):

Predefined equations associated to the Navier–Stokes equations are

  • the momentum equation is automatically added when activated with a monolithic or artificial compressibility velocity-pressure coupling

In all cases, a vector-valued field named velocity and a scalar-valued field named _"pressure"_ are created. Moreover, several properties are added:

  • the property mass_density (a cs_property_t structure);
  • the property laminar viscosity (a cs_property_t structure);
  • the properties turbulent_viscosity and the total_viscosity are added if the model of turbulence is different from the laminar one (cf. cs_turb_model_t);
  • the property graddiv_coef (a cs_property_t structure) when the artificial compressibility is set;

along with the advection field mass_flux (a cs_adv_field_t structure)

Settings done in cs_user_finalize_setup()

Boundary conditions

In the case of the NavSto module, this is done as follows (One does not access to the equation directly since it depends on the way the velocity/pressure coupling is done).

where the function _vel_def is defined as follows

Definition of source terms

Since the equation on which this source term applies, depends on the choice of the velocity-pressure algorithm, the way to proceed varies slightly of the way used on a user-defined equation.

where the function _src_def is defined as follows

Settings done in cs_user_parameters()

The rationale is similar to the one detailed in this section.

Here are listed some specificities related to the NavSto module.

Set the strategy to solve the Navier-Stokes system when a monolithic coupling is used

When a monolithic velocity-pressure is set, the linear system to solve is a saddle-point problem. This class of linear systems needs specific choices of preconditioner/solver. The default settings is not always the optimal choice in terms of efficiency. The settings of saddle-point problems is detailed here

To go further

The detailed description of CDO schemes, the mathmatical analysis and numerical results on benchmarks are available in the following PhD thesis:

Additional publications :