7.1
general documentation
cs_cdoeb_vecteq.h File Reference
#include "cs_base.h"
#include "cs_cdo_connect.h"
#include "cs_cdo_local.h"
#include "cs_cdo_quantities.h"
#include "cs_cdoeb_priv.h"
#include "cs_equation_common.h"
#include "cs_equation_param.h"
#include "cs_field.h"
#include "cs_matrix.h"
#include "cs_mesh.h"
#include "cs_restart.h"
#include "cs_source_term.h"
#include "cs_time_step.h"
+ Include dependency graph for cs_cdoeb_vecteq.h:

Go to the source code of this file.

Functions

bool cs_cdoeb_vecteq_is_initialized (void)
 Check if the generic structures for building a CDO-Eb scheme are allocated. More...
 
void cs_cdoeb_vecteq_init_common (const cs_cdo_quantities_t *quant, const cs_cdo_connect_t *connect, const cs_time_step_t *time_step, const cs_matrix_structure_t *ms)
 Allocate work buffers and general structures related to CDO edge-based schemes. Set shared pointers. More...
 
void cs_cdoeb_vecteq_get (cs_cell_sys_t **csys, cs_cell_builder_t **cb)
 Retrieve work buffers used for building a CDO system cellwise in case of scalar-valued edge-based scheme. More...
 
void cs_cdoeb_vecteq_finalize_common (void)
 Free work buffer and general structure related to CDO edge-based schemes. More...
 
void * cs_cdoeb_vecteq_init_context (const cs_equation_param_t *eqp, int var_id, int bflux_id, cs_equation_builder_t *eqb)
 Initialize a cs_cdoeb_vecteq_t structure storing data useful for building and managing such a scheme. More...
 
void * cs_cdoeb_vecteq_free_context (void *builder)
 Destroy a cs_cdoeb_vecteq_t structure. More...
 
void cs_cdoeb_vecteq_init_values (cs_real_t t_eval, const int field_id, const cs_mesh_t *mesh, const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context)
 Set the initial values of the variable field taking into account the boundary conditions. Case of scalar-valued CDO-Eb schemes. More...
 
void cs_cdoeb_vecteq_solve_steady_state (bool cur2prev, const cs_mesh_t *mesh, const int field_id, const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context)
 Build and solve the linear system arising from a scalar steady-state convection/diffusion/reaction equation with a CDO-Eb scheme. One works cellwise and then process to the assembly. More...
 
void cs_cdoeb_vecteq_current_to_previous (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context)
 Operate a current to previous operation for the field associated to this equation and potentially for related fields/arrays. More...
 
void cs_cdoeb_vecteq_extra_post (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context)
 Predefined extra-operations related to this equation. More...
 
cs_real_tcs_cdoeb_vecteq_get_edge_values (void *context, bool previous)
 Get the values at mesh edges (the DoFs) The lifecycle of this array is managed by the code. So one does not have to free the return pointer. More...
 
cs_real_tcs_cdoeb_vecteq_get_cell_values (void *context, bool previous)
 Get the values at mesh cells from a reconstruction of edge values. The lifecycle of this array is managed by the code. So one does not have to free the return pointer. More...
 
void cs_cdoeb_vecteq_read_restart (cs_restart_t *restart, const char *eqname, void *scheme_context)
 Read additional arrays (not defined as fields) but useful for the checkpoint/restart process. More...
 
void cs_cdoeb_vecteq_write_restart (cs_restart_t *restart, const char *eqname, void *scheme_context)
 Write additional arrays (not defined as fields) but useful for the checkpoint/restart process. More...
 

Function Documentation

◆ cs_cdoeb_vecteq_current_to_previous()

void cs_cdoeb_vecteq_current_to_previous ( const cs_equation_param_t eqp,
cs_equation_builder_t eqb,
void *  context 
)

Operate a current to previous operation for the field associated to this equation and potentially for related fields/arrays.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]contextpointer to cs_cdoeb_vecteq_t structure

◆ cs_cdoeb_vecteq_extra_post()

void cs_cdoeb_vecteq_extra_post ( const cs_equation_param_t eqp,
cs_equation_builder_t eqb,
void *  context 
)

Predefined extra-operations related to this equation.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]contextpointer to cs_cdoeb_vecteq_t structure

◆ cs_cdoeb_vecteq_finalize_common()

void cs_cdoeb_vecteq_finalize_common ( void  )

Free work buffer and general structure related to CDO edge-based schemes.

◆ cs_cdoeb_vecteq_free_context()

void* cs_cdoeb_vecteq_free_context ( void *  builder)

Destroy a cs_cdoeb_vecteq_t structure.

Parameters
[in,out]builderpointer to a cs_cdoeb_vecteq_t structure
Returns
a NULL pointer

◆ cs_cdoeb_vecteq_get()

void cs_cdoeb_vecteq_get ( cs_cell_sys_t **  csys,
cs_cell_builder_t **  cb 
)

Retrieve work buffers used for building a CDO system cellwise in case of scalar-valued edge-based scheme.

Parameters
[out]csyspointer to a pointer on a cs_cell_sys_t structure
[out]cbpointer to a pointer on a cs_cell_builder_t structure

◆ cs_cdoeb_vecteq_get_cell_values()

cs_real_t* cs_cdoeb_vecteq_get_cell_values ( void *  context,
bool  previous 
)

Get the values at mesh cells from a reconstruction of edge values. The lifecycle of this array is managed by the code. So one does not have to free the return pointer.

Parameters
[in,out]contextpointer to a data structure cast on-the-fly
[in]previousretrieve the previous state (true/false)
Returns
a pointer to an array of cs_real_t (size: n_cells)

◆ cs_cdoeb_vecteq_get_edge_values()

cs_real_t* cs_cdoeb_vecteq_get_edge_values ( void *  context,
bool  previous 
)

Get the values at mesh edges (the DoFs) The lifecycle of this array is managed by the code. So one does not have to free the return pointer.

Parameters
[in,out]contextpointer to a data structure cast on-the-fly
[in]previousretrieve the previous state (true/false)
Returns
a pointer to an array of cs_real_t (size: n_edges)

◆ cs_cdoeb_vecteq_init_common()

void cs_cdoeb_vecteq_init_common ( const cs_cdo_quantities_t quant,
const cs_cdo_connect_t connect,
const cs_time_step_t time_step,
const cs_matrix_structure_t ms 
)

Allocate work buffers and general structures related to CDO edge-based schemes. Set shared pointers.

Parameters
[in]quantadditional mesh quantities struct.
[in]connectpointer to a cs_cdo_connect_t struct.
[in]time_steppointer to a time step structure
[in]mspointer to a cs_matrix_structure_t structure

◆ cs_cdoeb_vecteq_init_context()

void* cs_cdoeb_vecteq_init_context ( const cs_equation_param_t eqp,
int  var_id,
int  bflux_id,
cs_equation_builder_t eqb 
)

Initialize a cs_cdoeb_vecteq_t structure storing data useful for building and managing such a scheme.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]var_idid of the variable field
[in]bflux_idid of the boundary flux field
[in,out]eqbpointer to a cs_equation_builder_t structure
Returns
a pointer to a new allocated cs_cdoeb_vecteq_t structure

◆ cs_cdoeb_vecteq_init_values()

void cs_cdoeb_vecteq_init_values ( cs_real_t  t_eval,
const int  field_id,
const cs_mesh_t mesh,
const cs_equation_param_t eqp,
cs_equation_builder_t eqb,
void *  context 
)

Set the initial values of the variable field taking into account the boundary conditions. Case of scalar-valued CDO-Eb schemes.

Parameters
[in]t_evaltime at which one evaluates BCs
[in]field_idid related to the variable field of this equation
[in]meshpointer to a cs_mesh_t structure
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]contextpointer to the scheme context (cast on-the-fly)

◆ cs_cdoeb_vecteq_is_initialized()

bool cs_cdoeb_vecteq_is_initialized ( void  )

Check if the generic structures for building a CDO-Eb scheme are allocated.

Returns
true or false

DOXYGEN_SHOULD_SKIP_THIS

Returns
true or false

◆ cs_cdoeb_vecteq_read_restart()

void cs_cdoeb_vecteq_read_restart ( cs_restart_t restart,
const char *  eqname,
void *  scheme_context 
)

Read additional arrays (not defined as fields) but useful for the checkpoint/restart process.

Parameters
[in,out]restartpointer to cs_restart_t structure
[in]eqnamename of the related equation
[in]scheme_contextpointer to a data structure cast on-the-fly

◆ cs_cdoeb_vecteq_solve_steady_state()

void cs_cdoeb_vecteq_solve_steady_state ( bool  cur2prev,
const cs_mesh_t mesh,
const int  field_id,
const cs_equation_param_t eqp,
cs_equation_builder_t eqb,
void *  context 
)

Build and solve the linear system arising from a scalar steady-state convection/diffusion/reaction equation with a CDO-Eb scheme. One works cellwise and then process to the assembly.

Parameters
[in]cur2prevtrue="current to previous" operation is performed
[in]meshpointer to a cs_mesh_t structure
[in]field_idid of the variable field related to this equation
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]contextpointer to cs_cdoeb_vecteq_t structure

◆ cs_cdoeb_vecteq_write_restart()

void cs_cdoeb_vecteq_write_restart ( cs_restart_t restart,
const char *  eqname,
void *  scheme_context 
)

Write additional arrays (not defined as fields) but useful for the checkpoint/restart process.

Parameters
[in,out]restartpointer to cs_restart_t structure
[in]eqnamename of the related equation
[in]scheme_contextpointer to a data structure cast on-the-fly