programmer's documentation
Data Structures | Enumerations | Functions
cs_navsto_param.h File Reference
#include "cs_equation_param.h"
Include dependency graph for cs_navsto_param.h:

Go to the source code of this file.

Data Structures

struct  cs_navsto_param_t
 Structure storing the parameters related to the resolution of the Navier-Stokes system. More...
 

Enumerations

enum  cs_navsto_param_model_t {
  CS_NAVSTO_MODEL_STOKES, CS_NAVSTO_MODEL_OSEEN, CS_NAVSTO_MODEL_INCOMPRESSIBLE_NAVIER_STOKES, CS_NAVSTO_MODEL_BOUSSINESQ_NAVIER_STOKES,
  CS_NAVSTO_N_MODELS
}
 Modelling related to the Navier-Stokes system of equations. More...
 
enum  cs_navsto_param_time_state_t { CS_NAVSTO_TIME_STATE_FULL_STEADY, CS_NAVSTO_TIME_STATE_LIMIT_STEADY, CS_NAVSTO_TIME_STATE_UNSTEADY, CS_NAVSTO_N_TIME_STATES }
 Status of the time for the Navier-Stokes system of equations. More...
 
enum  cs_navsto_param_coupling_t {
  CS_NAVSTO_COUPLING_UZAWA, CS_NAVSTO_COUPLING_ARTIFICIAL_COMPRESSIBILITY, CS_NAVSTO_COUPLING_ARTIFICIAL_COMPRESSIBILITY_VPP, CS_NAVSTO_COUPLING_PROJECTION,
  CS_NAVSTO_N_COUPLINGS
}
 Choice of algorithm for solving the system. More...
 
enum  cs_navsto_key_t {
  CS_NSKEY_DOF_REDUCTION, CS_NSKEY_GD_SCALE_COEF, CS_NSKEY_MAX_ALGO_ITER, CS_NSKEY_QUADRATURE,
  CS_NSKEY_RESIDUAL_TOLERANCE, CS_NSKEY_SPACE_SCHEME, CS_NSKEY_TIME_SCHEME, CS_NSKEY_TIME_THETA,
  CS_NSKEY_VERBOSITY, CS_NSKEY_N_KEYS
}
 List of available keys for setting the parameters of the Navier-Stokes system. More...
 

Functions

static bool cs_navsto_param_is_steady (cs_navsto_param_t *nsp)
 Ask cs_navsto_param_t structure if the settings correspond to a steady computation. More...
 
cs_navsto_param_tcs_navsto_param_create (cs_navsto_param_model_t model, cs_navsto_param_time_state_t time_state, cs_navsto_param_coupling_t algo_coupling)
 Create a new structure to store all numerical parameters related to the resolution of the Navier-Stokes (NS) system. More...
 
cs_navsto_param_tcs_navsto_param_free (cs_navsto_param_t *param)
 Free a cs_navsto_param_t structure. More...
 
void cs_navsto_param_set (cs_navsto_param_t *nsp, cs_navsto_key_t key, const char *keyval)
 Set a parameter attached to a keyname in a cs_navsto_param_t structure. More...
 
void cs_navsto_param_transfer (const cs_navsto_param_t *nsp, cs_equation_param_t *eqp)
 Apply the numerical settings defined for the Navier-Stokes system to an equation related to this system. More...
 
void cs_navsto_param_log (const cs_navsto_param_t *nsp)
 Summary of the main cs_navsto_param_t structure. More...
 
const char * cs_navsto_param_get_coupling_name (cs_navsto_param_coupling_t coupling)
 Retrieve the name of the coupling algorithm. More...
 
cs_xdef_tcs_navsto_add_velocity_ic_by_value (cs_navsto_param_t *nsp, const char *z_name, cs_real_t *val)
 Define the initial condition for the velocity unknowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set to a constant value. More...
 
cs_xdef_tcs_navsto_add_velocity_ic_by_analytic (cs_navsto_param_t *nsp, const char *z_name, cs_analytic_func_t *analytic, void *input)
 Define the initial condition for the velocity unkowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set according to an analytical function. More...
 
cs_xdef_tcs_navsto_add_pressure_ic_by_value (cs_navsto_param_t *nsp, const char *z_name, cs_real_t *val)
 Define the initial condition for the pressure unknowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set to a constant value. More...
 
cs_xdef_tcs_navsto_add_pressure_ic_by_analytic (cs_navsto_param_t *nsp, const char *z_name, cs_analytic_func_t *analytic, void *input)
 Define the initial condition for the pressure unkowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set according to an analytical function. More...
 
cs_xdef_tcs_navsto_add_source_term_by_analytic (cs_navsto_param_t *nsp, const char *z_name, cs_analytic_func_t *ana, void *input)
 Define a new source term structure defined by an analytical function. More...
 
cs_xdef_tcs_navsto_add_source_term_by_val (cs_navsto_param_t *nsp, const char *z_name, cs_real_t *val)
 Define a new source term structure defined by a constant value. More...
 
cs_xdef_tcs_navsto_add_source_term_by_array (cs_navsto_param_t *nsp, const char *z_name, cs_flag_t loc, cs_real_t *array, cs_lnum_t *index)
 Define a new source term structure defined by an array. More...
 

Enumeration Type Documentation

◆ cs_navsto_key_t

List of available keys for setting the parameters of the Navier-Stokes system.

Enumerator
CS_NSKEY_DOF_REDUCTION 

Set how the DoFs are defined (similar to CS_EQKEY_DOF_REDUCTION) Enable to set this type of DoFs definition for all related equations

CS_NSKEY_GD_SCALE_COEF 

Set the scaling of the grad-div term when an artificial compressibility algorithm or an Uzawa - Augmented Lagrangian method is used

CS_NSKEY_MAX_ALGO_ITER 

Set the maximal number of iteration of the coupling algorithm. Not useful for a monolithic approach. In this case, only the maximal number of iterations for the iterative solver is taken into account

CS_NSKEY_QUADRATURE 

Set the type to use in all routines involving quadrature (similar to CS_EQKEY_BC_QUADRATURE)

CS_NSKEY_RESIDUAL_TOLERANCE 

Tolerance at which the Navier–Stokes is resolved (apply to the residual of the coupling algorithm chosen to solve the Navier–Stokes system)

CS_NSKEY_SPACE_SCHEME 

Numerical scheme for the space discretization

CS_NSKEY_TIME_SCHEME 

Numerical scheme for the time discretization

CS_NSKEY_TIME_THETA 

Set the value of theta. Only useful if CS_NSKEY_TIME_SCHEME is set to "theta_scheme"

  • Example: "0.75" (keyval must be between 0 and 1)
CS_NSKEY_VERBOSITY 

Set the level of details for the specific part related to the Navier-Stokes system

CS_NSKEY_N_KEYS 

◆ cs_navsto_param_coupling_t

Choice of algorithm for solving the system.

Enumerator
CS_NAVSTO_COUPLING_UZAWA 

The system is solved without decoupling the equations using a Uzawa algorithm and an Augmented Lagrangian approach inside each sub-iteration.

CS_NAVSTO_COUPLING_ARTIFICIAL_COMPRESSIBILITY 

The system is solved using an artificial compressibility algorithm. One vectorial equation is solved followed by a pressure update.

CS_NAVSTO_COUPLING_ARTIFICIAL_COMPRESSIBILITY_VPP 

The system is solved using an artificial compressibility algorithm with a Vector Penalty Projection splitting. Two vectorial equations are solved: a momentum-like one and another one involving a grad-div operator.

CS_NAVSTO_COUPLING_PROJECTION 

The system is solved using an incremental projection algorithm

CS_NAVSTO_N_COUPLINGS 

◆ cs_navsto_param_model_t

Modelling related to the Navier-Stokes system of equations.

Enumerator
CS_NAVSTO_MODEL_STOKES 

Stokes equations (mass and momentum) with the classical choice of variables i.e. velocity and pressure

CS_NAVSTO_MODEL_OSEEN 

Like the incompressible Navier-Stokes equations (mass and momentum) but with a velocity field which is given. Thus the advection term in the momentum equation is linear. Unknowns: velocity and pressure

CS_NAVSTO_MODEL_INCOMPRESSIBLE_NAVIER_STOKES 

Navier-Stokes equations: mass and momentum with a constant mass density

CS_NAVSTO_MODEL_BOUSSINESQ_NAVIER_STOKES 

Navier-Stokes equations: mass and momentum with a constant mass density The gradient of temperature is assumed to have a small norm and the mass density variates in a small range. In this case, an additional equation related to the energy is considered.

CS_NAVSTO_N_MODELS 

◆ cs_navsto_param_time_state_t

Status of the time for the Navier-Stokes system of equations.

Enumerator
CS_NAVSTO_TIME_STATE_FULL_STEADY 

The Navier-Stokes system of equations is solved without taking into account the time effect

CS_NAVSTO_TIME_STATE_LIMIT_STEADY 

The Navier-Stokes system of equations is solved as a limit of a unsteady process

CS_NAVSTO_TIME_STATE_UNSTEADY 

The Navier-Stokes system of equations is time-dependent

CS_NAVSTO_N_TIME_STATES 

Function Documentation

◆ cs_navsto_add_pressure_ic_by_analytic()

cs_xdef_t* cs_navsto_add_pressure_ic_by_analytic ( cs_navsto_param_t nsp,
const char *  z_name,
cs_analytic_func_t analytic,
void *  input 
)

Define the initial condition for the pressure unkowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set according to an analytical function.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" if all cells are considered)
[in]analyticpointer to an analytic function
[in]inputNULL or pointer to a structure cast on-the-fly
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_add_pressure_ic_by_value()

cs_xdef_t* cs_navsto_add_pressure_ic_by_value ( cs_navsto_param_t nsp,
const char *  z_name,
cs_real_t val 
)

Define the initial condition for the pressure unknowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set to a constant value.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" if all cells are considered)
[in]valpointer to the value
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_add_source_term_by_analytic()

cs_xdef_t* cs_navsto_add_source_term_by_analytic ( cs_navsto_param_t nsp,
const char *  z_name,
cs_analytic_func_t ana,
void *  input 
)

Define a new source term structure defined by an analytical function.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" all cells are considered)
[in]anapointer to an analytical function
[in]inputNULL or pointer to a structure cast on-the-fly
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_add_source_term_by_array()

cs_xdef_t* cs_navsto_add_source_term_by_array ( cs_navsto_param_t nsp,
const char *  z_name,
cs_flag_t  loc,
cs_real_t array,
cs_lnum_t index 
)

Define a new source term structure defined by an array.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" all cells are considered)
[in]locinformation to know where are located values
[in]arraypointer to an array
[in]indexoptional pointer to the array index
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_add_source_term_by_val()

cs_xdef_t* cs_navsto_add_source_term_by_val ( cs_navsto_param_t nsp,
const char *  z_name,
cs_real_t val 
)

Define a new source term structure defined by a constant value.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" all cells are considered)
[in]valpointer to the value to set
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_add_velocity_ic_by_analytic()

cs_xdef_t* cs_navsto_add_velocity_ic_by_analytic ( cs_navsto_param_t nsp,
const char *  z_name,
cs_analytic_func_t analytic,
void *  input 
)

Define the initial condition for the velocity unkowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set according to an analytical function.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" if all cells are considered)
[in]analyticpointer to an analytic function
[in]inputNULL or pointer to a structure cast on-the-fly
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_add_velocity_ic_by_value()

cs_xdef_t* cs_navsto_add_velocity_ic_by_value ( cs_navsto_param_t nsp,
const char *  z_name,
cs_real_t val 
)

Define the initial condition for the velocity unknowns. This definition can be done on a specified mesh location. By default, the unknown is set to zero everywhere. Here the initial value is set to a constant value.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in]z_namename of the associated zone (if NULL or "" if all cells are considered)
[in]valpointer to the value
Returns
a pointer to the new cs_xdef_t structure

◆ cs_navsto_param_create()

cs_navsto_param_t* cs_navsto_param_create ( cs_navsto_param_model_t  model,
cs_navsto_param_time_state_t  time_state,
cs_navsto_param_coupling_t  algo_coupling 
)

Create a new structure to store all numerical parameters related to the resolution of the Navier-Stokes (NS) system.

Parameters
[in]modelmodel related to the NS system to solve
[in]time_statestate of the time for the NS equations
[in]algo_couplingalgorithm used for solving the NS system
Returns
a pointer to a new allocated structure

◆ cs_navsto_param_free()

cs_navsto_param_t* cs_navsto_param_free ( cs_navsto_param_t param)

Free a cs_navsto_param_t structure.

Parameters
[in,out]parampointer to a cs_navsto_param_t structure
Returns
a NULL pointer

◆ cs_navsto_param_get_coupling_name()

const char* cs_navsto_param_get_coupling_name ( cs_navsto_param_coupling_t  coupling)

Retrieve the name of the coupling algorithm.

Parameters
[in]couplingA cs_navsto_param_coupling_t
Returns
the name

◆ cs_navsto_param_is_steady()

static bool cs_navsto_param_is_steady ( cs_navsto_param_t nsp)
inlinestatic

Ask cs_navsto_param_t structure if the settings correspond to a steady computation.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
Returns
true or false

◆ cs_navsto_param_log()

void cs_navsto_param_log ( const cs_navsto_param_t nsp)

Summary of the main cs_navsto_param_t structure.

Parameters
[in]nsppointer to a cs_navsto_param_t structure

◆ cs_navsto_param_set()

void cs_navsto_param_set ( cs_navsto_param_t nsp,
cs_navsto_key_t  key,
const char *  keyval 
)

Set a parameter attached to a keyname in a cs_navsto_param_t structure.

Parameters
[in,out]nsppointer to a cs_navsto_param_t structure to set
[in]keykey related to the member of eq to set
[in]keyvalaccessor to the value to set

◆ cs_navsto_param_transfer()

void cs_navsto_param_transfer ( const cs_navsto_param_t nsp,
cs_equation_param_t eqp 
)

Apply the numerical settings defined for the Navier-Stokes system to an equation related to this system.

Parameters
[in]nsppointer to a cs_navsto_param_t structure
[in,out]eqppointer to a cs_equation_param_t structure