My Project
programmer's documentation
|
#include "cs_defs.h"
Go to the source code of this file.
Data Structures | |
struct | cs_param_sles_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 void() | cs_time_func_t(int time_iter, double time, void *input, cs_real_t *retval) |
Function which defines the evolution of a quantity 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_STEADY, CS_TIME_SCHEME_EULER_IMPLICIT, CS_TIME_SCHEME_EULER_EXPLICIT, CS_TIME_SCHEME_CRANKNICO, CS_TIME_SCHEME_THETA, CS_TIME_N_SCHEMES } |
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 evolution of a quantity 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 |
[in] | retval | result of the evaluation |
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_CIP_CW | Continuous Interior Penalty discretization. Only available for CS_SPACE_SCHEME_CDOVCB Variant with a cellwise constant approximation of the advection field |
CS_PARAM_ADVECTION_SCHEME_MIX_CENTERED_UPWIND | Centered discretization with a portion between [0,1] of upwinding. The portion is specified thanks to CS_EQKEY_ADV_UPWIND_PORTION If the portion is equal to 0, then one recovers CS_PARAM_ADVECTION_SCHEME_CENTERED. If the portion is equal to 1, then one recovers CS_PARAM_ADVECTION_SCHEME_UPWIND |
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_ADVECTION_SCHEME_UPWIND | Low order upwind discretization |
CS_PARAM_N_ADVECTION_SCHEMES |
enum cs_param_amg_type_t |
Type of AMG (Algebraic MultiGrid) algorithm to use (either as a preconditionnerwith or a solver).
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_ALGEBRAIC | Weak enforcement of the boundary conditions (i.e. one keeps the degrees of freedom in the algebraic system) with an algebraic manipulation of the linear system |
CS_PARAM_BC_ENFORCE_PENALIZED | 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_PENALIZED but is more computationally intensive. The computation of the diffusion term should be activated with this choice. |
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. The computation of the diffusion term should be activated with this choice. |
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, CS_PARAM_PRECOND_AS and CS_PARAM_PRECOND_AMG_BLOCK are available only with the PETSc interface.
Way to renormalize (or not) the residual arising during the resolution of linear systems
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_amg_type_name | ( | cs_param_amg_type_t | type | ) |
Get the name of the type of algebraic multigrid (AMG)
[in] | type | type of AMG |
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 |