programmer's documentation
Functions
cs_cdo_time.c File Reference
#include "cs_defs.h"
#include <assert.h>
#include <bft_mem.h>
#include "cs_cdo_time.h"
Include dependency graph for cs_cdo_time.c:

Functions

cs_cdo_time_scheme_tcs_cdo_time_get_scheme_function (const cs_flag_t sys_flag, const cs_equation_param_t *eqp)
 Retrieve a pointer to the associated cs_matrix_structure_t according to the space scheme. More...
 
void cs_cdo_time_update_rhs (const cs_equation_param_t *eqp, int stride, cs_lnum_t n_dofs, const cs_lnum_t *dof_ids, const cs_real_t *values, cs_real_t *rhs)
 Update the RHS with the previously computed array of values (for instance the previous source term evaluation) Do not use OpenMP inside this function since it may be called from an OpenMP block. More...
 
void cs_cdo_time_diag_imp (const cs_equation_param_t *eqp, const double tpty_val, const cs_sdm_t *mass_mat, const cs_flag_t system_flag, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Apply to the local system an implicit time discretization when a CDO scheme is used and the mass matrix related to the time discretization is diagonal (lumping or Voronoi Hodge) More...
 
void cs_cdo_time_imp (const cs_equation_param_t *eqp, const double tpty_val, const cs_sdm_t *mass_mat, const cs_flag_t system_flag, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Apply to the local system an implicit time discretization when a CDO scheme is used. More...
 
void cs_cdo_time_diag_exp (const cs_equation_param_t *eqp, const double tpty_val, const cs_sdm_t *mass_mat, const cs_flag_t system_flag, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Apply to the local system an explicit time discretization when a CDO scheme is used and the mass matrix related to the time discretization is diagonal (lumping or Voronoi Hodge) More...
 
void cs_cdo_time_exp (const cs_equation_param_t *eqp, const double tpty_val, const cs_sdm_t *mass_mat, const cs_flag_t system_flag, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Apply to the local system an explicit time discretization when a CDO scheme is used. More...
 
void cs_cdo_time_diag_theta (const cs_equation_param_t *eqp, const double tpty_val, const cs_sdm_t *mass_mat, const cs_flag_t system_flag, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Apply to the local system a "theta" time discretization when a CDO scheme is used and the mass matrix related to the time discretization is diagonal (lumping or Voronoi Hodge) More...
 
void cs_cdo_time_theta (const cs_equation_param_t *eqp, const double tpty_val, const cs_sdm_t *mass_mat, const cs_flag_t system_flag, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
 Apply to the local system a "theta" time discretization when a CDO scheme is used. More...
 

Function Documentation

◆ cs_cdo_time_diag_exp()

void cs_cdo_time_diag_exp ( const cs_equation_param_t eqp,
const double  tpty_val,
const cs_sdm_t *  mass_mat,
const cs_flag_t  system_flag,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Apply to the local system an explicit time discretization when a CDO scheme is used and the mass matrix related to the time discretization is diagonal (lumping or Voronoi Hodge)

Parameters
[in]eqppointer to a cs_equation_param_t
[in]tpty_valcurrent value of the time property
[in]system_flagindicate what is needed to build the system
[in]mass_matpointer to a discrete Hodge op.
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyspointer to a cs_sdm_t structure

◆ cs_cdo_time_diag_imp()

void cs_cdo_time_diag_imp ( const cs_equation_param_t eqp,
const double  tpty_val,
const cs_sdm_t *  mass_mat,
const cs_flag_t  system_flag,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Apply to the local system an implicit time discretization when a CDO scheme is used and the mass matrix related to the time discretization is diagonal (lumping or Voronoi Hodge)

Parameters
[in]eqppointer to a cs_equation_param_t
[in]tpty_valcurrent value of the time property
[in]mass_matpointer to a discrete Hodge op.
[in]system_flagindicate what is needed to build the system
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyspointer to a cs_sdm_t structure

◆ cs_cdo_time_diag_theta()

void cs_cdo_time_diag_theta ( const cs_equation_param_t eqp,
const double  tpty_val,
const cs_sdm_t *  mass_mat,
const cs_flag_t  system_flag,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Apply to the local system a "theta" time discretization when a CDO scheme is used and the mass matrix related to the time discretization is diagonal (lumping or Voronoi Hodge)

Parameters
[in]eqppointer to a cs_equation_param_t
[in]tpty_valcurrent value of the time property
[in]system_flagindicate what is needed to build the system
[in]mass_matpointer to a discrete Hodge op.
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyspointer to a cs_sdm_t structure

◆ cs_cdo_time_exp()

void cs_cdo_time_exp ( const cs_equation_param_t eqp,
const double  tpty_val,
const cs_sdm_t *  mass_mat,
const cs_flag_t  system_flag,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Apply to the local system an explicit time discretization when a CDO scheme is used.

Parameters
[in]eqppointer to a cs_equation_param_t
[in]tpty_valcurrent value of the time property
[in]system_flagindicate what is needed to build the system
[in]mass_matpointer to a discrete Hodge op.
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyspointer to a cs_sdm_t structure

◆ cs_cdo_time_get_scheme_function()

cs_cdo_time_scheme_t* cs_cdo_time_get_scheme_function ( const cs_flag_t  sys_flag,
const cs_equation_param_t eqp 
)

Retrieve a pointer to the associated cs_matrix_structure_t according to the space scheme.

Parameters
[in]sys_flagmetadata about how is set the algebraic system
[in]eqppointer to a cs_equation_param_t
Returns
a pointer to the function handling the time discretization

◆ cs_cdo_time_imp()

void cs_cdo_time_imp ( const cs_equation_param_t eqp,
const double  tpty_val,
const cs_sdm_t *  mass_mat,
const cs_flag_t  system_flag,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Apply to the local system an implicit time discretization when a CDO scheme is used.

Parameters
[in]eqppointer to a cs_equation_param_t
[in]tpty_valcurrent value of the time property
[in]mass_matpointer to a discrete Hodge op.
[in]system_flagindicate what is needed to build the system
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyspointer to a cs_sdm_t structure

◆ cs_cdo_time_theta()

void cs_cdo_time_theta ( const cs_equation_param_t eqp,
const double  tpty_val,
const cs_sdm_t *  mass_mat,
const cs_flag_t  system_flag,
cs_cell_builder_t cb,
cs_cell_sys_t csys 
)

Apply to the local system a "theta" time discretization when a CDO scheme is used.

Parameters
[in]eqppointer to a cs_equation_param_t
[in]tpty_valcurrent value of the time property
[in]system_flagindicate what is needed to build the system
[in]mass_matpointer to a discrete Hodge op.
[in,out]cbpointer to a cs_cell_builder_t structure
[in,out]csyspointer to a cs_sdm_t structure

◆ cs_cdo_time_update_rhs()

void cs_cdo_time_update_rhs ( const cs_equation_param_t eqp,
int  stride,
cs_lnum_t  n_dofs,
const cs_lnum_t dof_ids,
const cs_real_t values,
cs_real_t rhs 
)

Update the RHS with the previously computed array of values (for instance the previous source term evaluation) Do not use OpenMP inside this function since it may be called from an OpenMP block.

Parameters
[in]eqppointer to a cs_equation_param_t
[in]stridenumber of entries for each DoF
[in]n_dofsnumber of DoF to deal with
[in]dof_idslist of DoF ids or NULL if no indirection
[in]valuesarray of values
[in,out]rhsright-hand side to update