9.0
general documentation
Loading...
Searching...
No Matches
cs_hho_stokes.cpp File Reference
#include "base/cs_defs.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <assert.h>
#include <string.h>
#include "bft/bft_mem.h"
#include "base/cs_boundary_zone.h"
#include "cdo/cs_equation_priv.h"
#include "cdo/cs_hho_builder.h"
#include "base/cs_log.h"
#include "base/cs_math.h"
#include "mesh/cs_mesh_location.h"
#include "base/cs_post.h"
#include "cdo/cs_quadrature.h"
#include "cdo/cs_reco.h"
#include "cdo/cs_scheme_geometry.h"
#include "base/cs_search.h"
#include "cdo/cs_sdm.h"
#include "cdo/cs_source_term.h"
#include "cdo/cs_hho_stokes.h"
Include dependency graph for cs_hho_stokes.cpp:

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 = nullptr
static cs_cell_builder_t ** cs_hho_cell_bld = nullptr
static cs_hho_builder_t ** cs_hho_builders = nullptr
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 const cs_matrix_assembler_tcs_shared_ma0
static const cs_matrix_structure_tcs_shared_ms0
static const cs_matrix_assembler_tcs_shared_ma1
static const cs_matrix_structure_tcs_shared_ms1
static const cs_matrix_assembler_tcs_shared_ma2
static const cs_matrix_structure_tcs_shared_ms2

Macro Definition Documentation

◆ _dp3

#define _dp3   cs_math_3_dot_product

◆ CS_HHO_STOKES_DBG

#define CS_HHO_STOKES_DBG   1

◆ CS_HHO_STOKES_MODULO

#define CS_HHO_STOKES_MODULO   4

Function Documentation

◆ _cell_builder_create()

cs_cell_builder_t * _cell_builder_create ( cs_param_space_scheme_t space_scheme,
const cs_cdo_connect_t * connect )
static

Initialize the local builder structure used for building the system cellwise.

Parameters
[in]space_schemediscretization scheme
[in]connectpointer to a cs_cdo_connect_t structure
Returns
a pointer to a new allocated cs_cell_builder_t structure

◆ cs_hho_stokes_build_system()

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.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]field_valpointer to the current value of the field
[in]dt_curcurrent value of the time step
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]datapointer to cs_hho_stokes_t structure

◆ cs_hho_stokes_compute_source()

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)

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]datapointer to a cs_hho_stokes_t structure

◆ cs_hho_stokes_extra_op()

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.

Parameters
[in]eqnamename of the equation
[in]fieldpointer to a field structure
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]datapointer to cs_hho_stokes_t structure

◆ cs_hho_stokes_finalize()

void cs_hho_stokes_finalize ( void )

Free buffers and generic structures related to HHO schemes.

◆ cs_hho_stokes_free_context()

void * cs_hho_stokes_free_context ( void * data)

Destroy a cs_hho_stokes_t structure.

Parameters
[in,out]datapointer to a cs_hho_stokes_t structure
Returns
a null pointer

◆ cs_hho_stokes_get()

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.

Parameters
[out]csyspointer to a pointer on a cs_cell_sys_t structure
[out]cbpointer to a pointer on a cs_cell_builder_t structure
[out]hhobpointer to a pointer on a cs_hho_builder_t structure

◆ cs_hho_stokes_get_cell_values()

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)

Parameters
[in]datapointer to a data structure
Returns
a pointer to an array of double

◆ cs_hho_stokes_get_face_values()

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)

Parameters
[in]datapointer to a data structure
Returns
a pointer to an array of double

◆ cs_hho_stokes_init_context()

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.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
Returns
a pointer to a new allocated cs_hho_stokes_t structure

◆ cs_hho_stokes_initialize()

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.

Parameters
[in]scheme_flagflag to identify which kind of numerical scheme is requested to solve the computational domain
[in]quantadditional mesh quantities struct.
[in]connectpointer to a cs_cdo_connect_t struct.
[in]time_steppointer to a time step structure
[in]ma0pointer to a cs_matrix_assembler_t structure (P0)
[in]ma1pointer to a cs_matrix_assembler_t structure (P1)
[in]ma2pointer to a cs_matrix_assembler_t structure (P2)
[in]ms0pointer to a cs_matrix_structure_t structure (P0)
[in]ms1pointer to a cs_matrix_structure_t structure (P1)
[in]ms2pointer to a cs_matrix_structure_t structure (P2)

◆ cs_hho_stokes_update_field()

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.

Parameters
[in]solusolution array
[in]rhsrhs associated to this solution array
[in]eqppointer to a cs_equation_param_t structure
[in,out]eqbpointer to a cs_equation_builder_t structure
[in,out]datapointer to cs_hho_stokes_t structure
[in,out]field_valpointer to the current value of the field

Variable Documentation

◆ cs_hho_builders

cs_hho_builder_t** cs_hho_builders = nullptr
static

◆ cs_hho_cell_bld

cs_cell_builder_t** cs_hho_cell_bld = nullptr
static

◆ cs_hho_cell_sys

cs_cell_sys_t** cs_hho_cell_sys = nullptr
static

◆ cs_shared_connect

const cs_cdo_connect_t* cs_shared_connect
static

◆ cs_shared_ma0

const cs_matrix_assembler_t* cs_shared_ma0
static

◆ cs_shared_ma1

const cs_matrix_assembler_t* cs_shared_ma1
static

◆ cs_shared_ma2

const cs_matrix_assembler_t* cs_shared_ma2
static

◆ cs_shared_ms0

const cs_matrix_structure_t* cs_shared_ms0
static

◆ cs_shared_ms1

const cs_matrix_structure_t* cs_shared_ms1
static

◆ cs_shared_ms2

const cs_matrix_structure_t* cs_shared_ms2
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