My Project
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 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 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