programmer's documentation
Typedefs | Functions
cs_cdovb_diffusion.h File Reference
#include "cs_cdo.h"
#include "cs_param.h"
#include "cs_cdo_connect.h"
#include "cs_cdo_quantities.h"
Include dependency graph for cs_cdovb_diffusion.h:

Go to the source code of this file.

Typedefs

typedef struct _cs_cdovb_diff_t cs_cdovb_diff_t
 

Functions

cs_cdovb_diff_tcs_cdovb_diffusion_builder_init (const cs_cdo_connect_t *connect, bool is_uniform, const cs_param_hodge_t h_info, const cs_param_bc_enforce_t bc_enforce)
 Initialize a builder structure used to build the stiffness matrix. More...
 
cs_cdovb_diff_tcs_cdovb_diffusion_builder_free (cs_cdovb_diff_t *diff)
 Free a cs_cdovb_diff_t structure. More...
 
cs_locmat_tcs_cdovb_diffusion_build_local (cs_lnum_t c_id, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_lnum_t *vtag, const cs_real_3_t *tensor, cs_cdovb_diff_t *diff)
 Define the local (cellwise) stiffness matrix. More...
 
cs_locmat_tcs_cdovb_diffusion_ntrgrd_build (cs_lnum_t c_id, cs_lnum_t f_id, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_real_t matpty[3][3], cs_real_t eig_ratio, cs_real_t eig_max, cs_lnum_t *loc_v_ids, cs_real_t *v_coef, cs_cdovb_diff_t *diff)
 Define the local (cellwise) "normal trace gradient" matrix This local matrix is used in Nitsche method to weakly penalized Dirichlet boundary conditions. More...
 

Typedef Documentation

typedef struct _cs_cdovb_diff_t cs_cdovb_diff_t

Function Documentation

cs_locmat_t* cs_cdovb_diffusion_build_local ( cs_lnum_t  c_id,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_lnum_t vtag,
const cs_real_3_t tensor,
cs_cdovb_diff_t diff 
)

Define the local (cellwise) stiffness matrix.

Parameters
[in]c_idcurrent cell id
[in]connectpointer to a cs_cdo_connect_t struct.
[in]quantpointer to a cs_cdo_quantities_t struct.
[in]vtagpointer to a cs_cdovb_scaleq_t struct.
[in]tensor3x3 matrix attached to the diffusion property
[in,out]diffauxiliary structure used to build the diff. term
Returns
a pointer to a local stiffness matrix
cs_cdovb_diff_t* cs_cdovb_diffusion_builder_free ( cs_cdovb_diff_t diff)

Free a cs_cdovb_diff_t structure.

Parameters
[in,out]diffpointer to a cs_cdovb_diff_t struc.
Returns
NULL
cs_cdovb_diff_t* cs_cdovb_diffusion_builder_init ( const cs_cdo_connect_t connect,
bool  is_uniform,
const cs_param_hodge_t  h_info,
const cs_param_bc_enforce_t  bc_enforce 
)

Initialize a builder structure used to build the stiffness matrix.

Parameters
[in]connectpointer to a cs_cdo_connect_t struct.
[in]is_uniformdiffusion tensor is uniform ? (true or false)
[in]h_infocs_param_hodge_t struct.
[in]bc_enforcetype of boundary enforcement for Dirichlet values
Returns
a pointer to a new allocated cs_cdovb_diffusion_builder_t struc.
cs_locmat_t* cs_cdovb_diffusion_ntrgrd_build ( cs_lnum_t  c_id,
cs_lnum_t  f_id,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_real_t  matpty[3][3],
cs_real_t  eig_ratio,
cs_real_t  eig_max,
cs_lnum_t loc_v_ids,
cs_real_t v_coef,
cs_cdovb_diff_t diff 
)

Define the local (cellwise) "normal trace gradient" matrix This local matrix is used in Nitsche method to weakly penalized Dirichlet boundary conditions.

Parameters
[in]c_idcell id
[in]f_idface id (a border face attached to a Dir. BC)
[in]connectpointer to a cs_cdo_connect_t struct.
[in]quantpointer to a cs_cdo_quantities_t struct.
[in]matpty3x3 matrix related to the diffusion property
[in]eig_ratioeigenvalue_max/eigenvalue_min
[in]eig_maxeigenvalue with maximal value
[in,out]loc_v_idsstore local vertex ids
[in,out]v_coefstore local contribution on each border vertex
[in,out]diffauxiliary structure used to build the diff. term
Returns
a pointer to a local "normal trace gradient" matrix