![]() |
programmer's documentation
|
#include "cs_defs.h"
#include <assert.h>
#include <string.h>
#include <bft_mem.h>
#include "cs_boundary_zone.h"
#include "cs_cdo_local.h"
#include "cs_cdovb_scaleq.h"
#include "cs_cdovcb_scaleq.h"
#include "cs_cdofb_navsto.h"
#include "cs_cdofb_scaleq.h"
#include "cs_cdofb_vecteq.h"
#include "cs_hho_scaleq.h"
#include "cs_log.h"
#include "cs_math.h"
#include "cs_xdef_eval.h"
#include "cs_equation_common.h"
Macros | |
#define | CS_EQUATION_COMMON_DBG 0 |
Functions | |
void | cs_equation_common_allocate (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step, const cs_domain_cdo_context_t *cc) |
Allocate a pointer to a buffer of size at least the 2*n_cells for managing temporary usage of memory when dealing with equations Call specific structure allocation related to a numerical scheme according the scheme flag The size of the temporary buffer can be bigger according to the numerical settings Set also shared pointers from the main domain members. More... | |
void | cs_equation_common_free (const cs_domain_cdo_context_t *cc) |
Allocate a pointer to a buffer of size at least the 2*n_cells for managing temporary usage of memory when dealing with equations Call specific structure allocation related to a numerical scheme according the scheme flag The size of the temporary buffer can be bigger according to the numerical settings. More... | |
cs_equation_builder_t * | cs_equation_init_builder (const cs_equation_param_t *eqp, const cs_mesh_t *mesh) |
Allocate a new structure to handle the building of algebraic system related to a cs_equation_t structure. More... | |
void | cs_equation_free_builder (cs_equation_builder_t **p_builder) |
Free a cs_equation_builder_t structure. More... | |
void | cs_equation_write_monitoring (const char *eqname, const cs_equation_builder_t *eqb) |
Print a message in the performance output file related to the monitoring of equation. More... | |
void | cs_equation_init_properties (const cs_equation_param_t *eqp, const cs_equation_builder_t *eqb, double *tpty_val, double *rpty_vals, cs_cell_builder_t *cb) |
Initialize all properties for an algebraic system. More... | |
void | cs_equation_set_diffusion_property (const cs_equation_param_t *eqp, cs_lnum_t c_id, cs_flag_t c_flag, cs_cell_builder_t *cb) |
Set the diffusion property inside a cell and its related quantities. More... | |
void | cs_equation_set_diffusion_property_cw (const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_flag_t c_flag, cs_cell_builder_t *cb) |
Set the diffusion property inside a cell and its related quantities. Cellwise version using a cs_cell_mesh_t structure. More... | |
void | cs_equation_assemble_v (const cs_cell_sys_t *csys, const cs_range_set_t *rset, const cs_equation_param_t *eqp, cs_real_t *rhs, cs_real_t *sources, cs_matrix_assembler_values_t *mav) |
Assemble a cellwise system related to cell vertices into the global algebraic system. More... | |
void | cs_equation_assemble_f (const cs_cell_sys_t *csys, const cs_range_set_t *rset, const cs_equation_param_t *eqp, int n_face_dofs, cs_real_t *rhs, cs_matrix_assembler_values_t *mav) |
Assemble a cellwise system related to cell faces into the global algebraic system. More... | |
const cs_adjacency_t * | cs_equation_get_v2v_index (void) |
Get the connectivity vertex->vertices for the local rank. More... | |
const cs_adjacency_t * | cs_equation_get_f2f_index (void) |
Get the connectivity face->faces for the local rank. More... | |
cs_real_t * | cs_equation_get_tmpbuf (void) |
Retrieve a pointer to a buffer of size at least the 2*n_cells The size of the temporary buffer can be bigger according to the numerical settings. More... | |
size_t | cs_equation_get_tmpbuf_size (void) |
Get the allocation size of the temporary buffer. More... | |
Variables | |
static size_t | cs_equation_common_work_buffer_size = 0 |
static cs_real_t * | cs_equation_common_work_buffer = NULL |
static cs_matrix_assembler_t ** | cs_equation_common_ma = NULL |
static cs_matrix_structure_t ** | cs_equation_common_ms = NULL |
static cs_adjacency_t * | cs_connect_v2v = NULL |
static cs_adjacency_t * | cs_connect_f2f = 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 cs_timer_counter_t | tca |
static cs_timer_counter_t | tcc |
#define CS_EQUATION_COMMON_DBG 0 |
void cs_equation_assemble_f | ( | const cs_cell_sys_t * | csys, |
const cs_range_set_t * | rset, | ||
const cs_equation_param_t * | eqp, | ||
int | n_face_dofs, | ||
cs_real_t * | rhs, | ||
cs_matrix_assembler_values_t * | mav | ||
) |
Assemble a cellwise system related to cell faces into the global algebraic system.
[in] | csys | cellwise view of the algebraic system |
[in] | rset | pointer to a cs_range_set_t structure |
[in] | eqp | pointer to a cs_equation_param_t structure |
[in] | n_face_dofs | number of DoFs for each face |
[in,out] | rhs | array storing the right-hand side |
[in,out] | mav | pointer to a matrix assembler structure |
void cs_equation_assemble_v | ( | const cs_cell_sys_t * | csys, |
const cs_range_set_t * | rset, | ||
const cs_equation_param_t * | eqp, | ||
cs_real_t * | rhs, | ||
cs_real_t * | sources, | ||
cs_matrix_assembler_values_t * | mav | ||
) |
Assemble a cellwise system related to cell vertices into the global algebraic system.
[in] | csys | cellwise view of the algebraic system |
[in] | rset | pointer to a cs_range_set_t structure on vertices |
[in] | eqp | pointer to a cs_equation_param_t structure |
[in,out] | rhs | array storing the right-hand side |
[in,out] | sources | array storing the contribution of source terms |
[in,out] | mav | pointer to a matrix assembler structure |
void cs_equation_common_allocate | ( | const cs_cdo_connect_t * | connect, |
const cs_cdo_quantities_t * | quant, | ||
const cs_time_step_t * | time_step, | ||
const cs_domain_cdo_context_t * | cc | ||
) |
Allocate a pointer to a buffer of size at least the 2*n_cells for managing temporary usage of memory when dealing with equations Call specific structure allocation related to a numerical scheme according the scheme flag The size of the temporary buffer can be bigger according to the numerical settings Set also shared pointers from the main domain members.
[in] | connect | pointer to a cs_cdo_connect_t structure |
[in] | quant | pointer to additional mesh quantities struct. |
[in] | time_step | pointer to a time step structure |
[in] | cc | pointer to a cs_domain_cdo_context_t struct. |
void cs_equation_common_free | ( | const cs_domain_cdo_context_t * | cc | ) |
Allocate a pointer to a buffer of size at least the 2*n_cells for managing temporary usage of memory when dealing with equations Call specific structure allocation related to a numerical scheme according the scheme flag The size of the temporary buffer can be bigger according to the numerical settings.
[in] | cc | pointer to a structure storing CDO/HHO metadata |
void cs_equation_free_builder | ( | cs_equation_builder_t ** | p_builder | ) |
Free a cs_equation_builder_t structure.
[in,out] | p_builder | pointer of pointer to the cs_equation_builder_t structure to free |
const cs_adjacency_t* cs_equation_get_f2f_index | ( | void | ) |
Get the connectivity face->faces for the local rank.
cs_real_t* cs_equation_get_tmpbuf | ( | void | ) |
Retrieve a pointer to a buffer of size at least the 2*n_cells The size of the temporary buffer can be bigger according to the numerical settings.
size_t cs_equation_get_tmpbuf_size | ( | void | ) |
Get the allocation size of the temporary buffer.
const cs_adjacency_t* cs_equation_get_v2v_index | ( | void | ) |
Get the connectivity vertex->vertices for the local rank.
cs_equation_builder_t* cs_equation_init_builder | ( | const cs_equation_param_t * | eqp, |
const cs_mesh_t * | mesh | ||
) |
Allocate a new structure to handle the building of algebraic system related to a cs_equation_t structure.
Allocate a new structure to handle the building of algebraic system related to an cs_equation_t structure.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in] | mesh | pointer to a cs_mesh_t structure |
void cs_equation_init_properties | ( | const cs_equation_param_t * | eqp, |
const cs_equation_builder_t * | eqb, | ||
double * | tpty_val, | ||
double * | rpty_vals, | ||
cs_cell_builder_t * | cb | ||
) |
Initialize all properties for an algebraic system.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in] | eqb | pointer to a cs_equation_builder_t structure |
[in,out] | tpty_val | pointer to the value for the time property |
[in,out] | rpty_vals | pointer to the values for reaction properties |
[in,out] | cb | pointer to a cs_cell_builder_t structure (diffusion property is stored inside) |
void cs_equation_set_diffusion_property | ( | const cs_equation_param_t * | eqp, |
cs_lnum_t | c_id, | ||
cs_flag_t | c_flag, | ||
cs_cell_builder_t * | cb | ||
) |
Set the diffusion property inside a cell and its related quantities.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in] | c_id | id of the cell to deal with |
[in] | c_flag | flag related to this cell |
[in,out] | cb | pointer to a cs_cell_builder_t structure |
void cs_equation_set_diffusion_property_cw | ( | const cs_equation_param_t * | eqp, |
const cs_cell_mesh_t * | cm, | ||
cs_flag_t | c_flag, | ||
cs_cell_builder_t * | cb | ||
) |
Set the diffusion property inside a cell and its related quantities. Cellwise version using a cs_cell_mesh_t structure.
[in] | eqp | pointer to a cs_equation_param_t structure |
[in] | cm | pointer to a cs_cell_mesh_t structure |
[in] | c_flag | flag related to this cell |
[in,out] | cb | pointer to a cs_cell_builder_t structure |
void cs_equation_write_monitoring | ( | const char * | eqname, |
const cs_equation_builder_t * | eqb | ||
) |
Print a message in the performance output file related to the monitoring of equation.
[in] | eqname | pointer to the name of the current equation |
[in] | eqb | pointer to a cs_equation_builder_t structure |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |