![]() |
programmer's documentation
|
#include "cs_defs.h"
Go to the source code of this file.
Data Structures | |
struct | cs_param_itsol_t |
Structure storing all metadata related to the resolution of a linear system with an iterative solver. More... | |
Typedefs | |
typedef void() | cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool compact, void *input, cs_real_t *retval) |
Generic function pointer for an analytic function elt_ids is optional. If not NULL, it enables to access in coords at the right location and the same thing to fill retval if compact is set to false. More... | |
typedef cs_real_t() | cs_timestep_func_t(int time_iter, double time, void *input) |
Function which defines the time step according to the number of iteration already done, the current time and any structure given as a parameter. More... | |
Enumerations | |
enum | cs_param_space_scheme_t { CS_SPACE_SCHEME_LEGACY, CS_SPACE_SCHEME_CDOVB, CS_SPACE_SCHEME_CDOVCB, CS_SPACE_SCHEME_CDOFB, CS_SPACE_SCHEME_HHO_P0, CS_SPACE_SCHEME_HHO_P1, CS_SPACE_SCHEME_HHO_P2, CS_SPACE_N_SCHEMES } |
Type of numerical scheme for the discretization in space. More... | |
enum | cs_param_dof_reduction_t { CS_PARAM_REDUCTION_DERHAM, CS_PARAM_REDUCTION_AVERAGE, CS_PARAM_N_REDUCTIONS } |
Numerical settings for time discretization | |
enum | cs_param_time_scheme_t { CS_TIME_SCHEME_IMPLICIT, CS_TIME_SCHEME_EXPLICIT, CS_TIME_SCHEME_CRANKNICO, CS_TIME_SCHEME_THETA, CS_TIME_N_SCHEMES } |
Settings for the boundary conditions | |
enum | cs_param_bc_type_t { CS_PARAM_BC_HMG_DIRICHLET, CS_PARAM_BC_DIRICHLET, CS_PARAM_BC_HMG_NEUMANN, CS_PARAM_BC_NEUMANN, CS_PARAM_BC_ROBIN, CS_PARAM_N_BC_TYPES } |
enum | cs_param_bc_enforce_t { CS_PARAM_BC_ENFORCE_STRONG, CS_PARAM_BC_ENFORCE_WEAK_PENA, CS_PARAM_BC_ENFORCE_WEAK_NITSCHE, CS_PARAM_BC_ENFORCE_WEAK_SYM, CS_PARAM_N_BC_ENFORCEMENTS } |
typedef void() cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool compact, void *input, cs_real_t *retval) |
Generic function pointer for an analytic function elt_ids is optional. If not NULL, it enables to access in coords at the right location and the same thing to fill retval if compact is set to false.
[in] | time | when ? |
[in] | n_elts | number of elements to consider |
[in] | elt_ids | list of elements ids (to access coords and fill) |
[in] | coords | where ? |
[in] | compact | true:no indirection, false:indirection for filling |
[in] | input | pointer to a structure cast on-the-fly (may be NULL) |
[in,out] | retval | result of the function |
Function which defines the time step according to the number of iteration already done, the current time and any structure given as a parameter.
[in] | time_iter | current number of iterations |
[in] | time | value of the time at the end of the last iteration |
[in] | input | pointer to a structure cast on-the-fly |
Type of numerical scheme for the advection term
Enumerator | |
---|---|
CS_PARAM_ADVECTION_SCHEME_CENTERED | centered discretization |
CS_PARAM_ADVECTION_SCHEME_CIP | Continuous Interior Penalty discretization. Only available for CS_SPACE_SCHEME_CDOVCB |
CS_PARAM_ADVECTION_SCHEME_UPWIND | Low order upwind discretization |
CS_PARAM_ADVECTION_SCHEME_SAMARSKII | Weighting between an upwind and a centered discretization relying on the Peclet number. Weighting function = Samarskii |
CS_PARAM_ADVECTION_SCHEME_SG | Weighting between an upwind and a centered discretization relying on the Peclet number. Weighting function = Scharfetter-Gummel |
CS_PARAM_N_ADVECTION_SCHEMES |
Type of method for enforcing the boundary conditions. According to the type of numerical scheme, some enforcements are not available.
Enumerator | |
---|---|
CS_PARAM_BC_ENFORCE_STRONG | Strong enforcement of the boundary conditions. Degrees of freedom related to this boundary condition are removed from the algebraic system. |
CS_PARAM_BC_ENFORCE_WEAK_PENA | Weak enforcement of the boundary conditions (i.e. one keeps the degrees of freedom in the algebraic system) with a penalization technique using a huge value. |
CS_PARAM_BC_ENFORCE_WEAK_NITSCHE | Weak enforcement of the boundary conditions (i.e. one keeps the degrees of freedom in the algebraic system) with a Nitsche-like penalization technique. This technique does not increase the conditioning number as much as CS_PARAM_BC_ENFORCE_WEAK_PENA but is more computationally intensive. |
CS_PARAM_BC_ENFORCE_WEAK_SYM | Weak enforcement of the boundary conditions (i.e. one keeps the degrees of freedom in the algebraic system) with a Nitsche-like penalization technique. This variant enables to keep the symmetry of the algebraic contrary to CS_PARAM_BC_ENFORCE_WEAK_NITSCHE. |
CS_PARAM_N_BC_ENFORCEMENTS |
enum cs_param_bc_type_t |
Type of boundary condition to enforce.
Type of iterative solver to use to inverse the linear system. CS_PARAM_ITSOL_CR3 is available only inside the Code_Saturne framework.
Type of preconditionner to use with the iterative solver. Some preconditionners as CS_PARAM_PRECOND_ILU0, CS_PARAM_PRECOND_ICC0 or CS_PARAM_PRECOND_AS are available only with the PETSc interface.
Type of numerical scheme for the discretization in space.
How is defined the degree of freedom.
Type of numerical scheme for the discretization in time
const char* cs_param_get_bc_enforcement_name | ( | cs_param_bc_enforce_t | type | ) |
Get the name of the type of enforcement of the boundary condition.
[in] | type | type of enforcement of boundary conditions |
const char* cs_param_get_bc_name | ( | cs_param_bc_type_t | type | ) |
Get the name of the type of boundary condition.
[in] | type | type of boundary condition |
const char* cs_param_get_precond_name | ( | cs_param_precond_type_t | precond | ) |
Get the name of the preconditioner.
[in] | precond | type of preconditioner |
const char* cs_param_get_solver_name | ( | cs_param_itsol_type_t | solver | ) |
Get the name of the solver.
[in] | solver | type of iterative solver |
const char* cs_param_get_space_scheme_name | ( | cs_param_space_scheme_t | scheme | ) |
Get the name of the space discretization scheme.
[in] | scheme | type of space scheme |
const char* cs_param_get_time_scheme_name | ( | cs_param_time_scheme_t | scheme | ) |
Get the name of the time discretization scheme.
[in] | scheme | type of time scheme |