#include "cs_defs.h"#include <stdio.h>#include <stdlib.h>#include <math.h>#include <float.h>#include <assert.h>#include <string.h>#include <bft_mem.h>#include "cs_array.h"#include "cs_cdo_diffusion.h"#include "cs_cdo_toolbox.h"#include "cs_cdo_solve.h"#include "cs_evaluate.h"#include "cs_reco.h"#include "cs_cdoeb_vecteq.h" Include dependency graph for cs_cdoeb_vecteq.c:
 Include dependency graph for cs_cdoeb_vecteq.c:| 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_sharing (const cs_cdo_quantities_t *quant, const cs_cdo_connect_t *connect, const cs_time_step_t *time_step) | 
| 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_sharing (void) | 
| Free work buffer and general structure related to CDO edge-based schemes.  More... | |
| void * | cs_cdoeb_vecteq_init_context (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_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.  More... | |
| 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.  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... | |
| 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.
| [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_cdoeb_vecteq_t structure | 
| 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.
| [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_cdoeb_vecteq_t structure | 
| void cs_cdoeb_vecteq_finalize_sharing | ( | void | ) | 
Free work buffer and general structure related to CDO edge-based schemes.
| void* cs_cdoeb_vecteq_free_context | ( | void * | builder | ) | 
Destroy a cs_cdoeb_vecteq_t structure.
| [in,out] | builder | pointer to a cs_cdoeb_vecteq_t structure | 
| 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.
| [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_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.
| [in,out] | context | pointer to a data structure cast on-the-fly | 
| [in] | previous | retrieve the previous state (true/false) | 
| 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.
| [in,out] | context | pointer to a data structure cast on-the-fly | 
| [in] | previous | retrieve the previous state (true/false) | 
| void* cs_cdoeb_vecteq_init_context | ( | 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.
| [in,out] | eqp | set of parameters related an equation | 
| [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_cdoeb_vecteq_init_sharing | ( | const cs_cdo_quantities_t * | quant, | 
| const cs_cdo_connect_t * | connect, | ||
| const cs_time_step_t * | time_step | ||
| ) | 
Allocate work buffers and general structures related to CDO edge-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_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.
| [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_cdoeb_vecteq_is_initialized | ( | void | ) | 
Check if the generic structures for building a CDO-Eb scheme are allocated.
DOXYGEN_SHOULD_SKIP_THIS
| 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.
| [in,out] | restart | pointer to cs_restart_t structure | 
| [in] | eqname | name of the related equation | 
| [in] | scheme_context | pointer to a data structure cast on-the-fly | 
| 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.
| [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_cdoeb_vecteq_t structure | 
| 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.
| [in,out] | restart | pointer to cs_restart_t structure | 
| [in] | eqname | name of the related equation | 
| [in] | scheme_context | pointer to a data structure cast on-the-fly |