programmer's documentation
Macros | Functions | Variables
cs_equation_common.c File Reference
#include "cs_defs.h"
#include <assert.h>
#include <string.h>
#include <bft_mem.h>
#include "cs_cdo_local.h"
#include "cs_cdovb_scaleq.h"
#include "cs_cdovcb_scaleq.h"
#include "cs_cdofb_scaleq.h"
#include "cs_hho_scaleq.h"
#include "cs_log.h"
#include "cs_equation_common.h"
Include dependency graph for cs_equation_common.c:

Macros

#define CS_EQUATION_COMMON_DBG   0
 
#define CS_EQ_COMMON_VERTEX   0
 
#define CS_EQ_COMMON_FACE   1
 
#define CS_EQ_N_COMMONS   2
 

Functions

static cs_connect_index_t_get_v2v (const cs_cdo_connect_t *connect)
 Build a vertex -> vertices connectivity index. More...
 
static cs_connect_index_t_get_f2f (const cs_cdo_connect_t *connect)
 Build a face -> faces connectivity index. More...
 
static void _build_matrix_assembler (cs_lnum_t n_elts, const cs_connect_index_t *x2x, const cs_range_set_t *rs, cs_matrix_assembler_t *ma)
 Define a cs_matrix_assembler_t structure. More...
 
void cs_equation_allocate_common_structures (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step, cs_flag_t scheme_flag)
 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_free_common_structures (cs_flag_t scheme_flag)
 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_real_tcs_equation_compute_dirichlet_sv (const cs_mesh_t *mesh, const cs_param_bc_t *bc_param, const cs_cdo_bc_list_t *dir, cs_cell_builder_t *cb)
 Compute the values of the Dirichlet BCs when DoFs are scalar-valued and attached to vertices. More...
 
void cs_equation_assemble_v (const cs_cell_sys_t *csys, const cs_range_set_t *rset, cs_flag_t sys_flag, 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...
 
const cs_matrix_structure_tcs_equation_get_matrix_structure (cs_space_scheme_t scheme)
 Retrieve a pointer to the associated cs_matrix_structure_t according to the space scheme. More...
 
const cs_matrix_assembler_tcs_equation_get_matrix_assembler (cs_space_scheme_t scheme)
 Retrieve a pointer to the associated cs_matrix_assembler_t according to the space scheme. More...
 
const cs_connect_index_tcs_equation_get_v2v_index (void)
 Get the connectivity vertex->vertices for the local rank. More...
 
const cs_connect_index_tcs_equation_get_f2f_index (void)
 Get the connectivity face->faces for the local rank. More...
 
cs_real_tcs_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...
 
cs_equation_monitor_tcs_equation_init_monitoring (void)
 Initialize a monitoring structure. More...
 
void cs_equation_write_monitoring (const char *eqname, const cs_equation_monitor_t *monitor)
 Print a message in the performance output file related to the monitoring of equation. More...
 

Variables

static size_t cs_equation_common_work_buffer_size = 0
 
static cs_real_tcs_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_connect_index_tcs_connect_v2v = NULL
 
static cs_connect_index_tcs_connect_f2f = NULL
 
static const cs_cdo_quantities_tcs_shared_quant
 
static const cs_cdo_connect_tcs_shared_connect
 
static const cs_time_step_tcs_shared_time_step
 
static cs_timer_counter_t tca
 
static cs_timer_counter_t tcc
 

Macro Definition Documentation

◆ CS_EQ_COMMON_FACE

#define CS_EQ_COMMON_FACE   1

◆ CS_EQ_COMMON_VERTEX

#define CS_EQ_COMMON_VERTEX   0

◆ CS_EQ_N_COMMONS

#define CS_EQ_N_COMMONS   2

◆ CS_EQUATION_COMMON_DBG

#define CS_EQUATION_COMMON_DBG   0

Function Documentation

◆ _build_matrix_assembler()

static void _build_matrix_assembler ( cs_lnum_t  n_elts,
const cs_connect_index_t x2x,
const cs_range_set_t rs,
cs_matrix_assembler_t ma 
)
static

Define a cs_matrix_assembler_t structure.

Parameters
[in]n_eltsnumber of elements
[in]x2xpointer to a cs_connect_index_t struct.
[in]rspointer to a range set or NULL if sequential
[in,out]mapointer to the cs_matrix_assembler_t to update

◆ _get_f2f()

static cs_connect_index_t* _get_f2f ( const cs_cdo_connect_t connect)
static

Build a face -> faces connectivity index.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
Returns
a pointer to a new allocated cs_connect_index_t structure

◆ _get_v2v()

static cs_connect_index_t* _get_v2v ( const cs_cdo_connect_t connect)
static

Build a vertex -> vertices connectivity index.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
Returns
a pointer to a new allocated cs_connect_index_t structure

◆ cs_equation_allocate_common_structures()

void cs_equation_allocate_common_structures ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_time_step_t time_step,
cs_flag_t  scheme_flag 
)

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.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to additional mesh quantities struct.
[in]time_steppointer to a time step structure
[in]scheme_flagflag to identify which kind of numerical scheme is requested to solve the computational domain

◆ cs_equation_assemble_v()

void cs_equation_assemble_v ( const cs_cell_sys_t csys,
const cs_range_set_t rset,
cs_flag_t  sys_flag,
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.

Parameters
[in]csyscellwise view of the algebraic system
[in]rsetpointer to a cs_range_set_t structure on vertices
[in]sys_flagflag associated to the current system builder
[in,out]rhsarray storing the right-hand side
[in,out]sourcesarray storing the contribution of source terms
[in,out]mavpointer to a matrix assembler structure

◆ cs_equation_compute_dirichlet_sv()

cs_real_t* cs_equation_compute_dirichlet_sv ( const cs_mesh_t mesh,
const cs_param_bc_t bc_param,
const cs_cdo_bc_list_t dir,
cs_cell_builder_t cb 
)

Compute the values of the Dirichlet BCs when DoFs are scalar-valued and attached to vertices.

Compute the values of the Dirichlet BCs when DoFs are scalar_valued and attached to vertices.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]bc_parampointer to a cs_param_bc_t structure
[in]dirpointer to a cs_cdo_bc_list_t structure
[in,out]cbpointer to a cs_cell_builder_t structure
Returns
a pointer to a new allocated array storing the dirichlet values

◆ cs_equation_free_common_structures()

void cs_equation_free_common_structures ( cs_flag_t  scheme_flag)

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.

Parameters
[in]scheme_flagflag to identify which kind of numerical scheme is requested to solve the computational domain

◆ cs_equation_get_f2f_index()

const cs_connect_index_t* cs_equation_get_f2f_index ( void  )

Get the connectivity face->faces for the local rank.

Returns
a pointer to a cs_connect_index_t structure

◆ cs_equation_get_matrix_assembler()

const cs_matrix_assembler_t* cs_equation_get_matrix_assembler ( cs_space_scheme_t  scheme)

Retrieve a pointer to the associated cs_matrix_assembler_t according to the space scheme.

Parameters
[in]schemeenum on the discretization scheme used
Returns
a pointer on a cs_matrix_assembler_t *

◆ cs_equation_get_matrix_structure()

const cs_matrix_structure_t* cs_equation_get_matrix_structure ( cs_space_scheme_t  scheme)

Retrieve a pointer to the associated cs_matrix_structure_t according to the space scheme.

Parameters
[in]schemeenum on the discretization scheme used
Returns
a pointer on a cs_matrix_structure_t *

◆ cs_equation_get_tmpbuf()

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.

Returns
a pointer to an array of double

◆ cs_equation_get_tmpbuf_size()

size_t cs_equation_get_tmpbuf_size ( void  )

Get the allocation size of the temporary buffer.

Returns
the size of the temporary buffer

◆ cs_equation_get_v2v_index()

const cs_connect_index_t* cs_equation_get_v2v_index ( void  )

Get the connectivity vertex->vertices for the local rank.

Returns
a pointer to a cs_connect_index_t structure

◆ cs_equation_init_monitoring()

cs_equation_monitor_t* cs_equation_init_monitoring ( void  )

Initialize a monitoring structure.

Returns
a cs_equation_monitor_t structure

◆ cs_equation_write_monitoring()

void cs_equation_write_monitoring ( const char *  eqname,
const cs_equation_monitor_t monitor 
)

Print a message in the performance output file related to the monitoring of equation.

Parameters
[in]eqnamepointer to the name of the current equation
[in]monitormonitoring structure

Variable Documentation

◆ cs_connect_f2f

cs_connect_index_t* cs_connect_f2f = NULL
static

◆ cs_connect_v2v

cs_connect_index_t* cs_connect_v2v = NULL
static

◆ cs_equation_common_ma

cs_matrix_assembler_t** cs_equation_common_ma = NULL
static

◆ cs_equation_common_ms

cs_matrix_structure_t** cs_equation_common_ms = NULL
static

◆ cs_equation_common_work_buffer

cs_real_t* cs_equation_common_work_buffer = NULL
static

◆ cs_equation_common_work_buffer_size

size_t cs_equation_common_work_buffer_size = 0
static

◆ cs_shared_connect

const cs_cdo_connect_t* cs_shared_connect
static

◆ cs_shared_quant

const cs_cdo_quantities_t* cs_shared_quant
static

◆ cs_shared_time_step

const cs_time_step_t* cs_shared_time_step
static

◆ tca

cs_timer_counter_t tca
static

◆ tcc

cs_timer_counter_t tcc
static