programmer's documentation
Functions
cs_cdovcb_scaleq.h File Reference
#include "cs_base.h"
#include "cs_time_step.h"
#include "cs_mesh.h"
#include "cs_field.h"
#include "cs_cdo_connect.h"
#include "cs_cdo_quantities.h"
#include "cs_equation_param.h"
#include "cs_source_term.h"
Include dependency graph for cs_cdovcb_scaleq.h:

Go to the source code of this file.

Functions

void cs_cdovcb_scaleq_set_shared_pointers (const cs_cdo_quantities_t *quant, const cs_cdo_connect_t *connect, const cs_time_step_t *time_step)
 Set shared pointers from the main domain members. More...
 
void cs_cdovcb_scaleq_initialize (void)
 Allocate work buffer and general structures related to CDO vertex+cell-based schemes. More...
 
void cs_cdovcb_scaleq_finalize (void)
 Free buffers and generic structures related to CDO vertex+cell-based schemes. More...
 
void * cs_cdovcb_scaleq_init (const cs_equation_param_t *eqp, const cs_mesh_t *mesh)
 Initialize a cs_cdovcb_scaleq_t structure. More...
 
void * cs_cdovcb_scaleq_free (void *builder)
 Destroy a cs_cdovcb_scaleq_t structure. More...
 
void cs_cdovcb_scaleq_monitor (const char *eqname, const void *builder)
 Display information related to the monitoring of the current system. More...
 
void cs_cdovcb_scaleq_compute_source (void *builder)
 Compute the contributions of source terms (store inside builder) More...
 
void cs_cdovcb_scaleq_initialize_system (void *builder, cs_matrix_t **system_matrix, cs_real_t **system_rhs)
 Create the matrix of the current algebraic system. Allocate and initialize the right-hand side associated to the given builder structure. More...
 
void cs_cdovcb_scaleq_build_system (const cs_mesh_t *mesh, const cs_real_t *field_val, double dt_cur, void *builder, cs_real_t *rhs, cs_matrix_t *matrix)
 Build the linear system arising from a scalar convection/diffusion equation with a CDO vertex+cell-based scheme. One works cellwise and then process to the assembly. More...
 
void cs_cdovcb_scaleq_update_field (const cs_real_t *solu, const cs_real_t *rhs, void *builder, cs_real_t *field_val)
 Store solution(s) of the linear system into a field structure Update extra-field values if required (for hybrid discretization) More...
 
double * cs_cdovcb_scaleq_get_cell_values (const void *builder)
 Get the computed values at cell centers (DoF used in the linear system are located at primal vertices and field related to the structure equation is also attached to primal vertices. More...
 
void cs_cdovcb_scaleq_compute_flux_across_plane (const cs_real_t direction[], const cs_real_t *pdi, int ml_id, void *builder, double *diff_flux, double *conv_flux)
 Compute the diffusive and convective flux across a list of faces. More...
 
void cs_cdovcb_scaleq_cellwise_diff_flux (const cs_real_t *values, void *builder, cs_flag_t location, cs_real_t *diff_flux)
 Cellwise computation of the diffusive flux. More...
 
void cs_cdovcb_scaleq_extra_op (const char *eqname, const cs_field_t *field, void *builder)
 Predefined extra-operations related to this equation. More...
 

Function Documentation

◆ cs_cdovcb_scaleq_build_system()

void cs_cdovcb_scaleq_build_system ( const cs_mesh_t mesh,
const cs_real_t field_val,
double  dt_cur,
void *  builder,
cs_real_t rhs,
cs_matrix_t matrix 
)

Build the linear system arising from a scalar convection/diffusion equation with a CDO vertex+cell-based 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 vertex field
[in]dt_curcurrent value of the time step
[in,out]builderpointer to cs_cdovcb_scaleq_t structure
[in,out]rhsright-hand side
[in,out]matrixpointer to cs_matrix_t structure to compute

◆ cs_cdovcb_scaleq_cellwise_diff_flux()

void cs_cdovcb_scaleq_cellwise_diff_flux ( const cs_real_t values,
void *  builder,
cs_flag_t  location,
cs_real_t diff_flux 
)

Cellwise computation of the diffusive flux.

Parameters
[in]valuesdiscrete values for the potential
[in,out]builderpointer to builder structure
[in,out]locationwhere the flux is defined
[in,out]diff_fluxvalue of the diffusive flux

◆ cs_cdovcb_scaleq_compute_flux_across_plane()

void cs_cdovcb_scaleq_compute_flux_across_plane ( const cs_real_t  direction[],
const cs_real_t pdi,
int  ml_id,
void *  builder,
double *  diff_flux,
double *  conv_flux 
)

Compute the diffusive and convective flux across a list of faces.

Parameters
[in]directionindicate in which direction flux is > 0
[in]pdipointer to an array of field values
[in]ml_idid related to a cs_mesh_location_t struct.
[in,out]builderpointer to a builder structure
[in,out]diff_fluxpointer to the value of the diffusive flux
[in,out]conv_fluxpointer to the value of the convective flux

◆ cs_cdovcb_scaleq_compute_source()

void cs_cdovcb_scaleq_compute_source ( void *  builder)

Compute the contributions of source terms (store inside builder)

Parameters
[in,out]builderpointer to a cs_cdovcb_scaleq_t structure

◆ cs_cdovcb_scaleq_extra_op()

void cs_cdovcb_scaleq_extra_op ( const char *  eqname,
const cs_field_t field,
void *  builder 
)

Predefined extra-operations related to this equation.

Parameters
[in]eqnamename of the equation
[in]fieldpointer to a field structure
[in,out]builderpointer to builder structure

◆ cs_cdovcb_scaleq_finalize()

void cs_cdovcb_scaleq_finalize ( void  )

Free buffers and generic structures related to CDO vertex+cell-based schemes.

Free buffers and generic structures related to CDO vertex+cell-based schemes.

◆ cs_cdovcb_scaleq_free()

void* cs_cdovcb_scaleq_free ( void *  builder)

Destroy a cs_cdovcb_scaleq_t structure.

Parameters
[in,out]builderpointer to a cs_cdovcb_scaleq_t structure
Returns
a NULL pointer

◆ cs_cdovcb_scaleq_get_cell_values()

double* cs_cdovcb_scaleq_get_cell_values ( const void *  builder)

Get the computed values at cell centers (DoF used in the linear system are located at primal vertices and field related to the structure equation is also attached to primal vertices.

Parameters
[in]builderpointer to a builder structure
Returns
a pointer to an array of double

◆ cs_cdovcb_scaleq_init()

void* cs_cdovcb_scaleq_init ( const cs_equation_param_t eqp,
const cs_mesh_t mesh 
)

Initialize a cs_cdovcb_scaleq_t structure.

Parameters
[in]eqppointer to a cs_equation_param_t structure
[in]meshpointer to a cs_mesh_t structure
Returns
a pointer to a new allocated cs_cdovcb_scaleq_t structure

◆ cs_cdovcb_scaleq_initialize()

void cs_cdovcb_scaleq_initialize ( void  )

Allocate work buffer and general structures related to CDO vertex+cell-based schemes.

◆ cs_cdovcb_scaleq_initialize_system()

void cs_cdovcb_scaleq_initialize_system ( void *  builder,
cs_matrix_t **  system_matrix,
cs_real_t **  system_rhs 
)

Create the matrix of the current algebraic system. Allocate and initialize the right-hand side associated to the given builder structure.

Parameters
[in,out]builderpointer to generic builder structure
[in,out]system_matrixpointer of pointer to a cs_matrix_t struct.
[in,out]system_rhspointer of pointer to an array of double

◆ cs_cdovcb_scaleq_monitor()

void cs_cdovcb_scaleq_monitor ( const char *  eqname,
const void *  builder 
)

Display information related to the monitoring of the current system.

Parameters
[in]eqnamename of the related equation
[in]builderpointer to a cs_cdovcb_scaleq_t structure

◆ cs_cdovcb_scaleq_set_shared_pointers()

void cs_cdovcb_scaleq_set_shared_pointers ( const cs_cdo_quantities_t quant,
const cs_cdo_connect_t connect,
const cs_time_step_t time_step 
)

Set shared pointers from the main domain members.

Parameters
[in]quantadditional mesh quantities struct.
[in]connectpointer to a cs_cdo_connect_t struct.
[in]time_steppointer to a time step structure

◆ cs_cdovcb_scaleq_update_field()

void cs_cdovcb_scaleq_update_field ( const cs_real_t solu,
const cs_real_t rhs,
void *  builder,
cs_real_t field_val 
)

Store solution(s) of the linear system into a field structure Update extra-field values if required (for hybrid discretization)

Parameters
[in]solusolution array
[in]rhsrhs associated to this solution array
[in,out]builderpointer to builder structure
[in,out]field_valpointer to the current value of the field