#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_equation_priv.h"#include "cs_hho_builder.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_stokes.h"Macros | |
| #define | CS_HHO_STOKES_DBG 1 |
| #define | CS_HHO_STOKES_MODULO 4 |
| #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. | |
| void | cs_hho_stokes_initialize (cs_flag_t scheme_flag, const cs_cdo_quantities_t *quant, const cs_cdo_connect_t *connect, const cs_time_step_t *time_step, const cs_matrix_assembler_t *ma0, const cs_matrix_assembler_t *ma1, const cs_matrix_assembler_t *ma2, const cs_matrix_structure_t *ms0, const cs_matrix_structure_t *ms1, const cs_matrix_structure_t *ms2) |
| Allocate work buffer and general structures related to HHO schemes Set shared pointers. | |
| void | cs_hho_stokes_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. | |
| void | cs_hho_stokes_finalize (void) |
| Free buffers and generic structures related to HHO schemes. | |
| void * | cs_hho_stokes_init_context (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb) |
| Initialize a cs_hho_stokes_t structure storing data useful for managing such a scheme. | |
| void * | cs_hho_stokes_free_context (void *data) |
| Destroy a cs_hho_stokes_t structure. | |
| void | cs_hho_stokes_compute_source (const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *data) |
| Compute the contributions of source terms (store inside builder) | |
| void | cs_hho_stokes_build_system (const cs_mesh_t *mesh, const cs_real_t *field_val, double dt_cur, const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *data) |
| Build the linear system arising from a scalar convection/diffusion equation with a HHO scheme. One works cellwise and then process to the assembly. | |
| void | cs_hho_stokes_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. | |
| double * | cs_hho_stokes_get_face_values (const void *data) |
| Get the computed values at faces (DoF used in the linear system are located at primal faces) | |
| double * | cs_hho_stokes_get_cell_values (const void *data) |
| Get the computed values at cells (DoF used in the linear system are located at primal faces) | |
| void | cs_hho_stokes_extra_op (const char *eqname, const cs_field_t *field, const cs_equation_param_t *eqp, cs_equation_builder_t *eqb, void *data) |
| Predefined extra-operations related to this equation. | |
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 |
| static const cs_matrix_assembler_t * | cs_shared_ma0 |
| static const cs_matrix_structure_t * | cs_shared_ms0 |
| static const cs_matrix_assembler_t * | cs_shared_ma1 |
| static const cs_matrix_structure_t * | cs_shared_ms1 |
| static const cs_matrix_assembler_t * | cs_shared_ma2 |
| static const cs_matrix_structure_t * | cs_shared_ms2 |
| #define _dp3 cs_math_3_dot_product |
| #define CS_HHO_STOKES_DBG 1 |
| #define CS_HHO_STOKES_MODULO 4 |
|
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 |
| void cs_hho_stokes_build_system | ( | const cs_mesh_t * | mesh, |
| const cs_real_t * | field_val, | ||
| double | dt_cur, | ||
| const cs_equation_param_t * | eqp, | ||
| cs_equation_builder_t * | eqb, | ||
| void * | data ) |
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] | dt_cur | current value of the time step |
| [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_stokes_t structure |
| void cs_hho_stokes_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_stokes_t structure |
| void cs_hho_stokes_extra_op | ( | const char * | eqname, |
| const cs_field_t * | field, | ||
| const cs_equation_param_t * | eqp, | ||
| cs_equation_builder_t * | eqb, | ||
| void * | data ) |
Predefined extra-operations related to this equation.
| [in] | eqname | name of the equation |
| [in] | field | pointer to a field structure |
| [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_stokes_t structure |
| void cs_hho_stokes_finalize | ( | void | ) |
Free buffers and generic structures related to HHO schemes.
| void * cs_hho_stokes_free_context | ( | void * | data | ) |
Destroy a cs_hho_stokes_t structure.
| [in,out] | data | pointer to a cs_hho_stokes_t structure |
| void cs_hho_stokes_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 |
| double * cs_hho_stokes_get_cell_values | ( | const void * | data | ) |
Get the computed values at cells (DoF used in the linear system are located at primal faces)
| [in] | data | pointer to a data structure |
| double * cs_hho_stokes_get_face_values | ( | const void * | data | ) |
Get the computed values at faces (DoF used in the linear system are located at primal faces)
| [in] | data | pointer to a data structure |
| void * cs_hho_stokes_init_context | ( | const cs_equation_param_t * | eqp, |
| cs_equation_builder_t * | eqb ) |
Initialize a cs_hho_stokes_t structure storing data useful for managing such a scheme.
| [in] | eqp | pointer to a cs_equation_param_t structure |
| [in,out] | eqb | pointer to a cs_equation_builder_t structure |
| void cs_hho_stokes_initialize | ( | cs_flag_t | scheme_flag, |
| const cs_cdo_quantities_t * | quant, | ||
| const cs_cdo_connect_t * | connect, | ||
| const cs_time_step_t * | time_step, | ||
| const cs_matrix_assembler_t * | ma0, | ||
| const cs_matrix_assembler_t * | ma1, | ||
| const cs_matrix_assembler_t * | ma2, | ||
| const cs_matrix_structure_t * | ms0, | ||
| const cs_matrix_structure_t * | ms1, | ||
| const cs_matrix_structure_t * | ms2 ) |
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 | additional mesh quantities struct. |
| [in] | connect | pointer to a cs_cdo_connect_t struct. |
| [in] | time_step | pointer to a time step structure |
| [in] | ma0 | pointer to a cs_matrix_assembler_t structure (P0) |
| [in] | ma1 | pointer to a cs_matrix_assembler_t structure (P1) |
| [in] | ma2 | pointer to a cs_matrix_assembler_t structure (P2) |
| [in] | ms0 | pointer to a cs_matrix_structure_t structure (P0) |
| [in] | ms1 | pointer to a cs_matrix_structure_t structure (P1) |
| [in] | ms2 | pointer to a cs_matrix_structure_t structure (P2) |
| void cs_hho_stokes_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_stokes_t structure |
| [in,out] | field_val | pointer to the current value of the field |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |