My Project
programmer's documentation
Functions
cs_cdo_advection.c File Reference

Build discrete advection operators for CDO vertex-based schemes. More...

#include "cs_defs.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <assert.h>
#include <bft_mem.h>
#include "cs_cdo_bc.h"
#include "cs_hodge.h"
#include "cs_math.h"
#include "cs_scheme_geometry.h"
#include "cs_cdo_advection.h"
Include dependency graph for cs_cdo_advection.c:

Functions

static double _get_upwind_weight (double criterion)
 Compute the weight of upwinding for an upwind scheme. More...
 
static double _get_samarskii_weight (double criterion)
 Compute the weight of upwinding for an Samarskii scheme. More...
 
static double _get_sg_weight (double criterion)
 Compute the weight of upwinding for an Sharfetter-Gummel scheme. More...
 
static _upwind_weight_t * _assign_weight_func (const cs_param_advection_scheme_t scheme)
 Retrieve the function related to the kind of upwind weighting. More...
 
static short int _set_fquant (const cs_cell_mesh_t *cm, short int e, short int f, const double *tef, double *wvf)
 Retrieve the face edge id from a given cell edge id. Compute the weights related to each vertex of face from pre-computed quantities. More...
 
static void _assemble_face (const cs_cell_mesh_t *cm, const cs_face_mesh_t *fm, const cs_sdm_t *af, cs_sdm_t *ac)
 Assemble a face matrix into a cell matrix. More...
 
static void _build_cell_epcd_upw (const cs_cell_mesh_t *cm, _upwind_weight_t *get_weight, const cs_real_t fluxes[], const cs_real_t upwcoef[], cs_sdm_t *adv)
 Define the local convection operator between primal vertices and dual faces. (Conservative formulation and Upwind flux) More...
 
static void _build_cell_epcd_cen (const cs_cell_mesh_t *cm, const cs_real_t fluxes[], cs_sdm_t *adv)
 Define the local convection operator between primal vertices and dual faces. (Non-conservative formulation and centered flux) More...
 
static void _build_cell_vpfd_upw (const cs_cell_mesh_t *cm, _upwind_weight_t *get_weight, const cs_real_t fluxes[], const cs_real_t upwcoef[], cs_sdm_t *adv)
 Define the local convection operator between primal vertices and dual faces. (Conservative formulation and Upwind flux) More...
 
static void _build_cell_vpfd_cen (const cs_cell_mesh_t *cm, const cs_real_t fluxes[], cs_sdm_t *adv)
 Define the local convection operator between primal vertices and dual faces. (Conservative formulation and centered flux) More...
 
static void _build_cell_vpfd_mcu (const cs_cell_mesh_t *cm, const cs_real_t upwp, const cs_real_t fluxes[], cs_sdm_t *adv)
 Define the local convection operator between primal vertices and dual faces. (Conservative formulation and mixed centered/upwind) More...
 
static void _update_vcb_system_with_bc (const cs_real_t beta_nf, const cs_face_mesh_t *fm, const cs_sdm_t *matf, cs_cell_sys_t *csys)
 Update the cellwise system with the contributions arising from the boundary conditions. More...
 
static void _vcb_cellwise_consistent_part (const cs_nvec3_t adv_cell, const cs_cell_mesh_t *cm, const cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the consistent part of the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advection is considered as constant inside a cell. More...
 
static void _vcb_consistent_part (const cs_adv_field_t *adv_field, const cs_nvec3_t adv_cell, const cs_cell_mesh_t *cm, const cs_face_mesh_t *fm, cs_real_t t_eval, cs_cell_builder_t *cb)
 Compute the consistent part of the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advection field is not considered constant inside the current cell. More...
 
static void _vcb_stabilization_part1 (const cs_cell_mesh_t *cm, const cs_face_mesh_t *fm, const double stab_coef, cs_cell_builder_t *cb)
 Compute the stabilization part of the convection operator attached to a cell with a CDO vertex+cell-based scheme (inside pfc) More...
 
static void _vcb_stabilization_part2 (const cs_cell_mesh_t *cm, const double stab_coef, cs_cell_builder_t *cb)
 Compute the stabilization part of the convection operator attached to a cell with a CDO vertex+cell-based scheme (between pfc) More...
 
void cs_cdo_advection_set_cip_coef (double new_value)
 Set the value of the stabilization coefficient used in CIP scheme. More...
 
double cs_cdo_advection_get_cip_coef (void)
 Get the value of the stabilization coefficient used in CIP scheme. More...
 
void cs_cdofb_advection_build (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_cdofb_advection_t *build_func, cs_cell_builder_t *cb)
 Build the cellwise advection operator for CDO-Fb schemes The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_fb_bc (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (without diffusion) More...
 
void cs_cdo_advection_fb_bc_wdi (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (with a diffusion term activated) More...
 
void cs_cdo_advection_fb_bc_v (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (without diffusion). Vector-valued case. More...
 
void cs_cdo_advection_fb_bc_wdi_v (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (with a diffusion term activated). Vector-valued case. More...
 
void cs_cdo_advection_fb_upwcsv (const cs_cell_mesh_t *cm, const cs_real_t fluxes[], cs_sdm_t *adv)
 Compute the convection operator attached to a cell with a CDO face-based scheme in the conservative formulation. More...
 
void cs_cdo_advection_fb_upwcsv_di (const cs_cell_mesh_t *cm, const cs_real_t fluxes[], cs_sdm_t *adv)
 Compute the convection operator attached to a cell with a CDO face-based scheme in the conservative formulation. More...
 
void cs_cdo_advection_fb_upwnoc (const cs_cell_mesh_t *cm, const cs_real_t fluxes[], cs_sdm_t *adv)
 Compute the convection operator attached to a cell with a CDO face-based scheme in the non-conservative formulation. More...
 
void cs_cdo_advection_fb_upwnoc_di (const cs_cell_mesh_t *cm, const cs_real_t fluxes[], cs_sdm_t *adv)
 Compute the convection operator attached to a cell with a CDO face-based scheme in the non-conservative formulation. More...
 
void cs_cdo_advection_vb_upwcsv_di (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme when diffusion is activated and an upwind scheme and a conservative formulation is used The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vb_upwcsv (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme without diffusion and an upwind scheme and a conservative formulation is used. The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vb_cencsv (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme when a centered scheme and a conservative formulation is used. The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vb_mcucsv (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme when a mixed centered/upwind scheme with a conservative formulation is used. The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vb_upwnoc_di (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme when diffusion is activated and an upwind scheme and a conservative formulation is used The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vb_upwnoc (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme without diffusion when an upwind scheme and a conservative formulation is used. The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vb_cennoc (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex-based scheme when a centered scheme and a non-conservative formulation is used. The local matrix related to this operator is stored in cb->loc. More...
 
void cs_cdo_advection_vcb_cw_cst (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advection field is cellwise constant. More...
 
void cs_cdo_advection_vcb (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
 Compute the convection operator attached to a cell with a CDO vertex+cell-based scheme. More...
 
void cs_cdo_advection_vb_bc (const cs_cell_mesh_t *cm, const cs_equation_param_t *eqp, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Compute the BC contribution for the convection operator. More...
 
void cs_cdo_advection_vcb_bc (const cs_cell_mesh_t *cm, const cs_equation_param_t *eqp, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Compute the BC contribution for the convection operator with CDO V+C schemes. More...
 
void cs_cdo_advection_cell_upwind_coef (const cs_cdo_quantities_t *cdoq, cs_param_advection_scheme_t scheme, cs_real_t coefval[])
 Compute the value of the upwinding coefficient in each cell knowing the related Peclet number. More...
 

Detailed Description

Build discrete advection operators for CDO vertex-based schemes.

Function Documentation

◆ _assemble_face()

static void _assemble_face ( const cs_cell_mesh_t cm,
const cs_face_mesh_t fm,
const cs_sdm_t *  af,
cs_sdm_t *  ac 
)
static

Assemble a face matrix into a cell matrix.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fmpointer to a cs_face_mesh_t structure
[in]afpointer to a cs_sdm_t structure related to a face
[in,out]acpointer to a cs_sdm_t structure related to a cell

◆ _assign_weight_func()

static _upwind_weight_t* _assign_weight_func ( const cs_param_advection_scheme_t  scheme)
inlinestatic

Retrieve the function related to the kind of upwind weighting.

Parameters
[in]schemescheme used for discretizing the advection term
Returns
a function pointer

◆ _build_cell_epcd_cen()

static void _build_cell_epcd_cen ( const cs_cell_mesh_t cm,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)
static

Define the local convection operator between primal vertices and dual faces. (Non-conservative formulation and centered flux)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fluxesarray of fluxes on dual faces
[in,out]advpointer to a cs_sdm_t structure

◆ _build_cell_epcd_upw()

static void _build_cell_epcd_upw ( const cs_cell_mesh_t cm,
_upwind_weight_t *  get_weight,
const cs_real_t  fluxes[],
const cs_real_t  upwcoef[],
cs_sdm_t *  adv 
)
static

Define the local convection operator between primal vertices and dual faces. (Conservative formulation and Upwind flux)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]get_weightpointer to a function for evaluating upw. weight
[in]fluxesarray of fluxes on dual faces
[in]upwcoefarray of coefficient to the weight the upwinding
[in,out]advpointer to a cs_sdm_t structure

◆ _build_cell_vpfd_cen()

static void _build_cell_vpfd_cen ( const cs_cell_mesh_t cm,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)
static

Define the local convection operator between primal vertices and dual faces. (Conservative formulation and centered flux)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fluxesarray of fluxes on dual faces
[in,out]advpointer to a cs_sdm_t structure

◆ _build_cell_vpfd_mcu()

static void _build_cell_vpfd_mcu ( const cs_cell_mesh_t cm,
const cs_real_t  upwp,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)
static

Define the local convection operator between primal vertices and dual faces. (Conservative formulation and mixed centered/upwind)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]upwpportion of upwinding to apply
[in]fluxesarray of fluxes on dual faces
[in,out]advpointer to a cs_sdm_t structure

◆ _build_cell_vpfd_upw()

static void _build_cell_vpfd_upw ( const cs_cell_mesh_t cm,
_upwind_weight_t *  get_weight,
const cs_real_t  fluxes[],
const cs_real_t  upwcoef[],
cs_sdm_t *  adv 
)
static

Define the local convection operator between primal vertices and dual faces. (Conservative formulation and Upwind flux)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]get_weightpointer to a function for evaluating upw. weight
[in]fluxesarray of fluxes on dual faces
[in]upwcoefarray of coefficient to the weight the upwinding
[in,out]advpointer to a cs_sdm_t structure

◆ _get_samarskii_weight()

static double _get_samarskii_weight ( double  criterion)
inlinestatic

Compute the weight of upwinding for an Samarskii scheme.

Parameters
[in]criteriondot product between advection and normal vectors or estimation of a local Peclet number
Returns
the weight value

◆ _get_sg_weight()

static double _get_sg_weight ( double  criterion)
inlinestatic

Compute the weight of upwinding for an Sharfetter-Gummel scheme.

Parameters
[in]criteriondot product between advection and normal vectors or estimation of a local Peclet number
Returns
the weight value

◆ _get_upwind_weight()

static double _get_upwind_weight ( double  criterion)
inlinestatic

Compute the weight of upwinding for an upwind scheme.

Parameters
[in]criteriondot product between advection and normal vectors or estimation of a local Peclet number
Returns
the weight value

◆ _set_fquant()

static short int _set_fquant ( const cs_cell_mesh_t cm,
short int  e,
short int  f,
const double *  tef,
double *  wvf 
)
inlinestatic

Retrieve the face edge id from a given cell edge id. Compute the weights related to each vertex of face from pre-computed quantities.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]eedge id in the cell numbering
[in]fface id in the cell numbering
[in]tefvalue of the area of the triangles tef
[in,out]wvfweights of vertices for the current face
Returns
the face edge id

◆ _update_vcb_system_with_bc()

static void _update_vcb_system_with_bc ( const cs_real_t  beta_nf,
const cs_face_mesh_t fm,
const cs_sdm_t *  matf,
cs_cell_sys_t csys 
)
static

Update the cellwise system with the contributions arising from the boundary conditions.

Parameters
[in]beta_nfadvection field coefficient
[in]fmpointer to a cs_face_mesh_t structure
[in]matfpointer to a local dense matrix related to a face
[in,out]csyspointer to a cs_cell_sys_t structure

◆ _vcb_cellwise_consistent_part()

static void _vcb_cellwise_consistent_part ( const cs_nvec3_t  adv_cell,
const cs_cell_mesh_t cm,
const cs_face_mesh_t fm,
cs_cell_builder_t cb 
)
static

Compute the consistent part of the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advection is considered as constant inside a cell.

Parameters
[in]adv_cellconstant vector field inside the current cell
[in]cmpointer to a cs_cell_mesh_t structure
[in]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ _vcb_consistent_part()

static void _vcb_consistent_part ( const cs_adv_field_t adv_field,
const cs_nvec3_t  adv_cell,
const cs_cell_mesh_t cm,
const cs_face_mesh_t fm,
cs_real_t  t_eval,
cs_cell_builder_t cb 
)
static

Compute the consistent part of the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advection field is not considered constant inside the current cell.

Parameters
[in]adv_fieldpointer to a cs_adv_field_t structure
[in]adv_cellconstant vector field inside the current cell
[in]cmpointer to a cs_cell_mesh_t structure
[in]fmpointer to a cs_face_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]cbpointer to a cs_cell_builder_t structure

◆ _vcb_stabilization_part1()

static void _vcb_stabilization_part1 ( const cs_cell_mesh_t cm,
const cs_face_mesh_t fm,
const double  stab_coef,
cs_cell_builder_t cb 
)
static

Compute the stabilization part of the convection operator attached to a cell with a CDO vertex+cell-based scheme (inside pfc)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fmpointer to a cs_face_mesh_t structure
[in]stab_coefdefault value of the stabilization coefficient
[in,out]cbpointer to a cs_cell_builder_t structure

◆ _vcb_stabilization_part2()

static void _vcb_stabilization_part2 ( const cs_cell_mesh_t cm,
const double  stab_coef,
cs_cell_builder_t cb 
)
static

Compute the stabilization part of the convection operator attached to a cell with a CDO vertex+cell-based scheme (between pfc)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]stab_coefvalue of the stabilization coefficient
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_cell_upwind_coef()

void cs_cdo_advection_cell_upwind_coef ( const cs_cdo_quantities_t cdoq,
cs_param_advection_scheme_t  scheme,
cs_real_t  coefval[] 
)

Compute the value of the upwinding coefficient in each cell knowing the related Peclet number.

Parameters
[in]cdoqpointer to the cdo quantities structure
[in]schemetype of scheme used for the advection term
[in,out]coefvalpointer to the pointer of real numbers to fill in: Peclet number in each cell out: value of the upwind coefficient

◆ cs_cdo_advection_fb_bc()

void cs_cdo_advection_fb_bc ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (without diffusion)

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in,out]cbpointer to a convection builder structure
[in,out]csyscell-wise structure storing the local system

◆ cs_cdo_advection_fb_bc_v()

void cs_cdo_advection_fb_bc_v ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (without diffusion). Vector-valued case.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in,out]cbpointer to a convection builder structure
[in,out]csyscell-wise structure storing the local system

◆ cs_cdo_advection_fb_bc_wdi()

void cs_cdo_advection_fb_bc_wdi ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (with a diffusion term activated)

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in,out]cbpointer to a convection builder structure
[in,out]csyscell-wise structure storing the local system

◆ cs_cdo_advection_fb_bc_wdi_v()

void cs_cdo_advection_fb_bc_wdi_v ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Add the contribution of the boundary conditions to the local system in CDO-Fb schemes (with a diffusion term activated). Vector-valued case.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in,out]cbpointer to a convection builder structure
[in,out]csyscell-wise structure storing the local system

◆ cs_cdo_advection_fb_upwcsv()

void cs_cdo_advection_fb_upwcsv ( const cs_cell_mesh_t cm,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)

Compute the convection operator attached to a cell with a CDO face-based scheme in the conservative formulation.

  • upwind scheme
  • no diffusion is present Rely on the article: Di Pietro, Droniou, Ern (2015) A discontinuous-skeletal method for advection-diffusion-reaction on general meshes The local matrix related to this operator is stored in cb->loc
Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fluxesarray of computed fluxes across cell faces
[in,out]advpointer to a local matrix to build

◆ cs_cdo_advection_fb_upwcsv_di()

void cs_cdo_advection_fb_upwcsv_di ( const cs_cell_mesh_t cm,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)

Compute the convection operator attached to a cell with a CDO face-based scheme in the conservative formulation.

  • upwind scheme
  • diffusion is present Rely on the article: Di Pietro, Droniou, Ern (2015) A discontinuous-skeletal method for advection-diffusion-reaction on general meshes The local matrix related to this operator is stored in cb->loc
Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fluxesarray of computed fluxes across cell faces
[in,out]advpointer to a local matrix to build

◆ cs_cdo_advection_fb_upwnoc()

void cs_cdo_advection_fb_upwnoc ( const cs_cell_mesh_t cm,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)

Compute the convection operator attached to a cell with a CDO face-based scheme in the non-conservative formulation.

  • upwind scheme
  • no diffusion is present Rely on the article: Di Pietro, Droniou, Ern (2015) A discontinuous-skeletal method for advection-diffusion-reaction on general meshes The local matrix related to this operator is stored in cb->loc
Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fluxesarray of computed fluxes across cell faces
[in,out]cbpointer to a local matrix to build

◆ cs_cdo_advection_fb_upwnoc_di()

void cs_cdo_advection_fb_upwnoc_di ( const cs_cell_mesh_t cm,
const cs_real_t  fluxes[],
cs_sdm_t *  adv 
)

Compute the convection operator attached to a cell with a CDO face-based scheme in the non-conservative formulation.

  • upwind scheme
  • diffusion is present Rely on the article: Di Pietro, Droniou, Ern (2015) A discontinuous-skeletal method for advection-diffusion-reaction on general meshes The local matrix related to this operator is stored in cb->loc
Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]fluxesarray of computed fluxes across cell faces
[in,out]cbpointer to a local matrix to build

◆ cs_cdo_advection_get_cip_coef()

double cs_cdo_advection_get_cip_coef ( void  )

Get the value of the stabilization coefficient used in CIP scheme.

Returns
the value the stabilization coefficient

◆ cs_cdo_advection_set_cip_coef()

void cs_cdo_advection_set_cip_coef ( double  new_value)

Set the value of the stabilization coefficient used in CIP scheme.

(DOXYGEN_SHOULD_SKIP_THIS)

Parameters
[in]new_valuevalue of the stabilization coefficient

◆ cs_cdo_advection_vb_bc()

void cs_cdo_advection_vb_bc ( const cs_cell_mesh_t cm,
const cs_equation_param_t eqp,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Compute the BC contribution for the convection operator.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]eqppointer to a cs_equation_param_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a convection builder structure
[in,out]csyscell-wise structure storing the local system

◆ cs_cdo_advection_vb_cencsv()

void cs_cdo_advection_vb_cencsv ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme when a centered scheme and a conservative formulation is used. The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vb_cennoc()

void cs_cdo_advection_vb_cennoc ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme when a centered scheme and a non-conservative formulation is used. The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vb_mcucsv()

void cs_cdo_advection_vb_mcucsv ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme when a mixed centered/upwind scheme with a conservative formulation is used. The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vb_upwcsv()

void cs_cdo_advection_vb_upwcsv ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme without diffusion and an upwind scheme and a conservative formulation is used. The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vb_upwcsv_di()

void cs_cdo_advection_vb_upwcsv_di ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme when diffusion is activated and an upwind scheme and a conservative formulation is used The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vb_upwnoc()

void cs_cdo_advection_vb_upwnoc ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme without diffusion when an upwind scheme and a conservative formulation is used. The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vb_upwnoc_di()

void cs_cdo_advection_vb_upwnoc_di ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex-based scheme when diffusion is activated and an upwind scheme and a conservative formulation is used The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vcb()

void cs_cdo_advection_vcb ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex+cell-based scheme.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdo_advection_vcb_bc()

void cs_cdo_advection_vcb_bc ( const cs_cell_mesh_t cm,
const cs_equation_param_t eqp,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Compute the BC contribution for the convection operator with CDO V+C schemes.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]eqppointer to a cs_equation_param_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyscell-wise structure storing the local system

◆ cs_cdo_advection_vcb_cw_cst()

void cs_cdo_advection_vcb_cw_cst ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_face_mesh_t fm,
cs_cell_builder_t cb 
)

Compute the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advection field is cellwise constant.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in,out]fmpointer to a cs_face_mesh_t structure
[in,out]cbpointer to a cs_cell_builder_t structure

◆ cs_cdofb_advection_build()

void cs_cdofb_advection_build ( const cs_equation_param_t eqp,
const cs_cell_mesh_t cm,
cs_real_t  t_eval,
cs_cdofb_advection_t build_func,
cs_cell_builder_t cb 
)

Build the cellwise advection operator for CDO-Fb schemes The local matrix related to this operator is stored in cb->loc.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]cmpointer to a cs_cell_mesh_t structure
[in]t_evaltime at which one evaluates the advection field
[in]build_funcpointer to the function building the system
[in,out]cbpointer to a cs_cell_builder_t structure