#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_boundary_zone.h"#include "cs_cdo_advection.h"#include "cs_cdo_assembly.h"#include "cs_cdo_bc.h"#include "cs_cdo_diffusion.h"#include "cs_hho_builder.h"#include "cs_hodge.h"#include "cs_log.h"#include "cs_math.h"#include "cs_mesh_location.h"#include "cs_post.h"#include "cs_quadrature.h"#include "cs_reco.h"#include "cs_scheme_geometry.h"#include "cs_search.h"#include "cs_sdm.h"#include "cs_source_term.h"#include "cs_hho_vecteq.h" Include dependency graph for cs_hho_vecteq.c:
 Include dependency graph for cs_hho_vecteq.c:| Macros | |
| #define | CS_HHO_VECTEQ_DBG 0 | 
| #define | _dp3 cs_math_3_dot_product | 
| Functions | |
| static cs_cell_builder_t * | _cell_builder_create (cs_param_space_scheme_t space_scheme, const cs_cdo_connect_t *connect) | 
| Initialize the local builder structure used for building the system cellwise.  More... | |
| static void | _vhho_init_cell_system (const cs_cell_mesh_t *cm, const cs_equation_param_t *eqp, const cs_equation_builder_t *eqb, const cs_hho_vecteq_t *eqc, cs_hho_builder_t *hhob, cs_cell_sys_t *csys, cs_cell_builder_t *cb) | 
| Initialize the local structures for the current cell. Case of vector-valued HHO schemes.  More... | |
| static void | _condense_and_store (const cs_adjacency_t *c2f, cs_hho_vecteq_t *eqc, cs_cell_builder_t *cb, cs_cell_sys_t *csys) | 
| Proceed to a static condensation of the local system and keep information inside the builder to be able to compute the values at cell centers.  More... | |
| void | cs_hho_vecteq_init_sharing (cs_flag_t scheme_flag, 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 HHO schemes Set shared pointers.  More... | |
| void | cs_hho_vecteq_get (cs_cell_sys_t **csys, cs_cell_builder_t **cb, cs_hho_builder_t **hhob) | 
| Retrieve work buffers used for building a CDO system cellwise.  More... | |
| void | cs_hho_vecteq_finalize_sharing (void) | 
| Free buffers and generic structures related to HHO schemes.  More... | |
| void * | cs_hho_vecteq_init_context (cs_equation_param_t *eqp, int var_id, int bflux_id, cs_equation_builder_t *eqb) | 
| Initialize a cs_hho_vecteq_t structure storing data useful for managing such a scheme.  More... | |
| void * | cs_hho_vecteq_free_context (void *data) | 
| Destroy a cs_hho_vecteq_t structure.  More... | |
| void | cs_hho_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 HHO schemes.  More... | |
| void | cs_hho_vecteq_compute_source (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *data) | 
| Compute the contributions of source terms (store inside builder)  More... | |
| void | cs_hho_vecteq_build_system (const cs_mesh_t *mesh, const cs_real_t *field_val, const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context) | 
| Build the linear system arising from a scalar convection/diffusion equation with a HHO scheme. One works cellwise and then process to the assembly.  More... | |
| void | cs_hho_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 required for hybrid discretization.  More... | |
| cs_real_t * | cs_hho_vecteq_get_face_values (void *data, bool previous) | 
| Get the computed values at faces (DoF used in the linear system are located at primal faces)  More... | |
| cs_real_t * | cs_hho_vecteq_get_cell_values (void *data, bool previous) | 
| Get the computed values at cells (DoF used in the linear system are located at primal faces)  More... | |
| void | cs_hho_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_hho_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_hho_vecteq_extra_post (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *context) | 
| Predefined extra-operations related to this equation.  More... | |
| Variables | |
| static cs_cell_sys_t ** | cs_hho_cell_sys = NULL | 
| static cs_cell_builder_t ** | cs_hho_cell_bld = NULL | 
| static cs_hho_builder_t ** | cs_hho_builders = NULL | 
| static const cs_cdo_quantities_t * | cs_shared_quant | 
| static const cs_cdo_connect_t * | cs_shared_connect | 
| static const cs_time_step_t * | cs_shared_time_step | 
| #define _dp3 cs_math_3_dot_product | 
| #define CS_HHO_VECTEQ_DBG 0 | 
| 
 | static | 
Initialize the local builder structure used for building the system cellwise.
| [in] | space_scheme | discretization scheme | 
| [in] | connect | pointer to a cs_cdo_connect_t structure | 
| 
 | static | 
Proceed to a static condensation of the local system and keep information inside the builder to be able to compute the values at cell centers.
| [in] | c2f | pointer to a cs_adjacency_t structure | 
| [in,out] | eqc | pointer to a cs_hho_vecteq_t structure | 
| [in,out] | cb | pointer to a cs_cell_builder_t structure | 
| [in,out] | csys | pointer to a cs_cell_sys_t structure | 
| 
 | static | 
Initialize the local structures for the current cell. Case of vector-valued HHO schemes.
| [in] | cm | pointer to a cellwise view of the mesh | 
| [in] | eqp | pointer to a cs_equation_param_t structure | 
| [in] | eqb | pointer to a cs_equation_builder_t structure | 
| [in] | eqc | pointer to a cs_hho_vecteq_t structure | 
| [in,out] | hhob | pointer to a cs_hho_builder_t structure | 
| [in,out] | csys | pointer to a cellwise view of the system | 
| [in,out] | cb | pointer to a cellwise builder | 
| void cs_hho_vecteq_build_system | ( | const cs_mesh_t * | mesh, | 
| const cs_real_t * | field_val, | ||
| const cs_equation_param_t * | eqp, | ||
| cs_equation_builder_t * | eqb, | ||
| void * | context | ||
| ) | 
Build the linear system arising from a scalar convection/diffusion equation with a HHO scheme. One works cellwise and then process to the assembly.
| [in] | mesh | pointer to a cs_mesh_t structure | 
| [in] | field_val | pointer to the current value of the field | 
| [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_hho_vecteq_t structure | 
| void cs_hho_vecteq_compute_source | ( | const cs_equation_param_t * | eqp, | 
| cs_equation_builder_t * | eqb, | ||
| void * | data | ||
| ) | 
Compute the contributions of source terms (store inside builder)
| [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 a cs_hho_vecteq_t structure | 
| void cs_hho_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_hho_vecteq_t structure | 
| void cs_hho_vecteq_finalize_sharing | ( | void | ) | 
Free buffers and generic structures related to HHO schemes.
| void* cs_hho_vecteq_free_context | ( | void * | data | ) | 
Destroy a cs_hho_vecteq_t structure.
| [in,out] | data | pointer to a cs_hho_vecteq_t structure | 
| void cs_hho_vecteq_get | ( | cs_cell_sys_t ** | csys, | 
| cs_cell_builder_t ** | cb, | ||
| cs_hho_builder_t ** | hhob | ||
| ) | 
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 | 
| [out] | hhob | pointer to a pointer on a cs_hho_builder_t structure | 
| cs_real_t* cs_hho_vecteq_get_cell_values | ( | void * | data, | 
| bool | previous | ||
| ) | 
Get the computed values at cells (DoF used in the linear system are located at primal faces)
| [in,out] | data | pointer to a data structure cast-on-fly | 
| [in] | previous | retrieve the previous state (true/false) | 
| cs_real_t* cs_hho_vecteq_get_face_values | ( | void * | data, | 
| bool | previous | ||
| ) | 
Get the computed values at faces (DoF used in the linear system are located at primal faces)
| [in,out] | data | pointer to a data structure cast-on-fly | 
| [in] | previous | retrieve the previous state (true/false) | 
| void* cs_hho_vecteq_init_context | ( | cs_equation_param_t * | eqp, | 
| int | var_id, | ||
| int | bflux_id, | ||
| cs_equation_builder_t * | eqb | ||
| ) | 
Initialize a cs_hho_vecteq_t structure storing data useful for 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_hho_vecteq_init_sharing | ( | cs_flag_t | scheme_flag, | 
| 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 HHO schemes Set shared pointers.
| [in] | scheme_flag | flag to identify which kind of numerical scheme is requested to solve the computational domain | 
| [in] | quant | pointer to a cs_cdo_quantities_t struct. | 
| [in] | connect | pointer to a cs_cdo_connect_t struct. | 
| [in] | time_step | pointer to a cs_time_step_t struct. | 
| void cs_hho_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 HHO 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) | 
| void cs_hho_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_hho_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 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_hho_vecteq_t structure | 
| [in,out] | field_val | pointer to the current value of the field | 
| void cs_hho_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 | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static |