#include "cs_base.h"
#include "cs_cdo_connect.h"
#include "cs_cdo_local.h"
#include "cs_cdo_quantities.h"
#include "cs_equation_builder.h"
#include "cs_equation_param.h"
#include "cs_field.h"
#include "cs_matrix.h"
#include "cs_mesh.h"
#include "cs_source_term.h"
#include "cs_time_step.h"
Go to the source code of this file.
Functions | |
bool | cs_cdovb_vecteq_is_initialized (void) |
Check if the generic structures for building a CDO-Vb scheme are allocated. More... | |
void | cs_cdovb_vecteq_init_sharing (const cs_cdo_quantities_t *quant, const cs_cdo_connect_t *connect, const cs_time_step_t *time_step) |
Allocate work buffer and general structures related to CDO vector-valued vertex-based schemes Set shared pointers. More... | |
void | cs_cdovb_vecteq_get (cs_cell_sys_t **csys, cs_cell_builder_t **cb) |
Retrieve work buffers used for building a CDO system cellwise. More... | |
void | cs_cdovb_vecteq_finalize_sharing (void) |
Free work buffer and general structure related to CDO vertex-based schemes. More... | |
void * | cs_cdovb_vecteq_init_context (const cs_equation_param_t *eqp, int var_id, int bflux_id, cs_equation_builder_t *eqb) |
Initialize a cs_cdovb_vecteq_t structure storing data useful for building and managing such a scheme. More... | |
void * | cs_cdovb_vecteq_free_context (void *builder) |
Destroy a cs_cdovb_vecteq_t structure. More... | |
void | cs_cdovb_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 vector-valued CDO-Vb schemes. More... | |
void | cs_cdovb_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 vector steady-state convection/diffusion/reaction equation with a CDO-Vb scheme. One works cellwise and then process to the assembly. More... | |
void | cs_cdovb_vecteq_update_field (const cs_real_t *solu, const cs_real_t *rhs, const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *data, cs_real_t *field_val) |
Store solution(s) of the linear system into a field structure Update extra-field values if required (for hybrid discretization) More... | |
cs_real_t * | cs_cdovb_vecteq_get_vertex_values (void *context, bool previous) |
Retrieve an array of values at mesh vertices for the variable field associated to the given context The lifecycle of this array is managed by the code. So one does not have to free the return pointer. More... | |
cs_real_t * | cs_cdovb_vecteq_get_cell_values (void *context, bool previous) |
Compute an array of values at mesh cells by interpolating the variable field associated to the given context located at mesh vertices The lifecycle of this array is managed by the code. So one does not have to free the return pointer. More... | |
void | cs_cdovb_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_cdovb_vecteq_extra_post (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context) |
Predefined extra-operations related to this equation. More... | |
void cs_cdovb_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.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in,out] | eqb | pointer to a cs_equation_builder_t structure |
[in,out] | context | pointer to cs_cdovb_vecteq_t structure |
void cs_cdovb_vecteq_extra_post | ( | const cs_equation_param_t * | eqp, |
cs_equation_builder_t * | eqb, | ||
void * | context | ||
) |
Predefined extra-operations related to this equation.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in,out] | eqb | pointer to a cs_equation_builder_t structure |
[in,out] | context | pointer to cs_cdovb_vecteq_t structure |
void cs_cdovb_vecteq_finalize_sharing | ( | void | ) |
Free work buffer and general structure related to CDO vertex-based schemes.
void* cs_cdovb_vecteq_free_context | ( | void * | builder | ) |
Destroy a cs_cdovb_vecteq_t structure.
[in,out] | builder | pointer to a cs_cdovb_vecteq_t structure |
void cs_cdovb_vecteq_get | ( | cs_cell_sys_t ** | csys, |
cs_cell_builder_t ** | cb | ||
) |
Retrieve work buffers used for building a CDO system cellwise.
[out] | csys | pointer to a pointer on a cs_cell_sys_t structure |
[out] | cb | pointer to a pointer on a cs_cell_builder_t structure |
cs_real_t* cs_cdovb_vecteq_get_cell_values | ( | void * | context, |
bool | previous | ||
) |
Compute an array of values at mesh cells by interpolating the variable field associated to the given context located at mesh vertices The lifecycle of this array is managed by the code. So one does not have to free the return pointer.
[in,out] | context | pointer to a data structure cast on-the-fly |
[in] | previous | retrieve the previous state (true/false) |
cs_real_t* cs_cdovb_vecteq_get_vertex_values | ( | void * | context, |
bool | previous | ||
) |
Retrieve an array of values at mesh vertices for the variable field associated to the given context The lifecycle of this array is managed by the code. So one does not have to free the return pointer.
[in,out] | context | pointer to a data structure cast on-the-fly |
[in] | previous | retrieve the previous state (true/false) |
void* cs_cdovb_vecteq_init_context | ( | const cs_equation_param_t * | eqp, |
int | var_id, | ||
int | bflux_id, | ||
cs_equation_builder_t * | eqb | ||
) |
Initialize a cs_cdovb_vecteq_t structure storing data useful for building and managing such a scheme.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in] | var_id | id of the variable field |
[in] | bflux_id | id of the boundary flux field |
[in,out] | eqb | pointer to a cs_equation_builder_t structure |
void cs_cdovb_vecteq_init_sharing | ( | const cs_cdo_quantities_t * | quant, |
const cs_cdo_connect_t * | connect, | ||
const cs_time_step_t * | time_step | ||
) |
Allocate work buffer and general structures related to CDO vector-valued vertex-based schemes Set shared pointers.
[in] | quant | additional mesh quantities struct. |
[in] | connect | pointer to a cs_cdo_connect_t struct. |
[in] | time_step | pointer to a time step structure |
void cs_cdovb_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 vector-valued CDO-Vb schemes.
[in] | t_eval | time at which one evaluates BCs |
[in] | field_id | id related to the variable field of this equation |
[in] | mesh | pointer to a cs_mesh_t structure |
[in] | eqp | pointer to a cs_equation_param_t structure |
[in,out] | eqb | pointer to a cs_equation_builder_t structure |
[in,out] | context | pointer to the scheme context (cast on-the-fly) |
bool cs_cdovb_vecteq_is_initialized | ( | void | ) |
Check if the generic structures for building a CDO-Vb scheme are allocated.
DOXYGEN_SHOULD_SKIP_THIS
void cs_cdovb_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 vector steady-state convection/diffusion/reaction equation with a CDO-Vb scheme. One works cellwise and then process to the assembly.
[in] | cur2prev | true="current to previous" operation is performed |
[in] | mesh | pointer to a cs_mesh_t structure |
[in] | field_id | id of the variable field related to this equation |
[in] | eqp | pointer to a cs_equation_param_t structure |
[in,out] | eqb | pointer to a cs_equation_builder_t structure |
[in,out] | context | pointer to cs_cdovb_vecteq_t structure |
void cs_cdovb_vecteq_update_field | ( | const cs_real_t * | solu, |
const cs_real_t * | rhs, | ||
const cs_equation_param_t * | eqp, | ||
cs_equation_builder_t * | eqb, | ||
void * | data, | ||
cs_real_t * | field_val | ||
) |
Store solution(s) of the linear system into a field structure Update extra-field values if required (for hybrid discretization)
[in] | solu | solution array |
[in] | rhs | rhs associated to this solution array |
[in] | eqp | pointer to a cs_equation_param_t structure |
[in,out] | eqb | pointer to a cs_equation_builder_t structure |
[in,out] | data | pointer to cs_cdovb_vecteq_t structure |
[in,out] | field_val | pointer to the current value of the field |