programmer's documentation
Functions
cs_equation.h File Reference
#include "cs_cdo_connect.h"
#include "cs_cdo_quantities.h"
#include "cs_equation_param.h"
#include "cs_equation_common.h"
#include "cs_field.h"
#include "cs_param.h"
#include "cs_mesh.h"
#include "cs_time_step.h"
Include dependency graph for cs_equation.h:

Go to the source code of this file.

Functions

int cs_equation_get_n_equations (void)
 Retrieve the number of equations. More...
 
cs_equation_tcs_equation_by_name (const char *eqname)
 Find the cs_equation_t structure with name eqname Return NULL if not find. More...
 
cs_equation_param_tcs_equation_param_by_name (const char *eqname)
 Return the cs_equation_param_t structure associated to a cs_equation_t structure thanks to the equation name. More...
 
cs_equation_param_tcs_equation_get_param (const cs_equation_t *eq)
 Return the cs_equation_param_t structure associated to a cs_equation_t structure. More...
 
cs_equation_tcs_equation_by_id (int eq_id)
 Find the cs_equation_t structure with name eqname Return NULL if not find. More...
 
bool cs_equation_is_steady (const cs_equation_t *eq)
 Return true is the given equation is steady otherwise false. More...
 
const char * cs_equation_get_name (const cs_equation_t *eq)
 Return the name related to the given cs_equation_t structure. More...
 
int cs_equation_get_id (const cs_equation_t *eq)
 Return the id number related to the given cs_equation_t structure. More...
 
cs_field_tcs_equation_get_field (const cs_equation_t *eq)
 Return the field structure associated to a cs_equation_t structure. More...
 
cs_flag_t cs_equation_get_flag (const cs_equation_t *eq)
 Return the flag associated to an equation. More...
 
cs_equation_builder_tcs_equation_get_builder (const cs_equation_t *eq)
 Return the cs_equation_builder_t structure associated to a cs_equation_t structure. Only for an advanced usage. More...
 
void * cs_equation_get_scheme_context (const cs_equation_t *eq)
 Return a pointer to a structure useful to handle low-level operations for the given equation. More...
 
cs_equation_tcs_equation_add (const char *eqname, const char *varname, cs_equation_type_t eqtype, int dim, cs_param_bc_type_t default_bc)
 Add a new equation structure and set a first set of parameters. More...
 
cs_equation_tcs_equation_add_user (const char *eqname, const char *varname, int dim, cs_param_bc_type_t default_bc)
 Add a new user equation structure and set a first set of parameters. More...
 
void cs_equation_destroy_all (void)
 Destroy all cs_equation_t structures. More...
 
void cs_equation_log_monitoring (void)
 Print a synthesis of the monitoring information in the performance file. More...
 
void cs_equation_log_setup (void)
 Summarize all cs_equation_t structures. More...
 
void cs_equation_set_timer_stats (cs_equation_t *eq)
 Create timer statistics structures to enable a "home-made" profiling. More...
 
bool cs_equation_finalize_setup (const cs_cdo_connect_t *connect, bool do_profiling)
 Assign a set of pointer functions for managing the cs_equation_t structure during the computation. More...
 
void cs_equation_create_fields (void)
 Create a field structure related to all cs_equation_t structures. More...
 
void cs_equation_initialize (const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *ts)
 Allocate and initialize the builder of the algebraic system. Set the initialize condition to all variable fields associated to each cs_equation_t structure. Compute the initial source term. More...
 
bool cs_equation_needs_build (const cs_equation_t *eq)
 Check if one has to build the linear system. More...
 
void cs_equation_build_system (const cs_mesh_t *mesh, const cs_time_step_t *time_step, double dt_cur, cs_equation_t *eq)
 Build the linear system for this equation. More...
 
void cs_equation_solve (cs_equation_t *eq)
 Solve the linear system for this equation. More...
 
cs_property_tcs_equation_get_diffusion_property (const cs_equation_t *eq)
 Return a pointer to the cs_property_t structure associated to the diffusion term for this equation (NULL if not activated). More...
 
cs_property_tcs_equation_get_time_property (const cs_equation_t *eq)
 Return a pointer to the cs_property_t structure associated to the unsteady term for this equation (NULL if not activated). More...
 
cs_property_tcs_equation_get_reaction_property (const cs_equation_t *eq, const int reaction_id)
 Return a pointer to the cs_property_t structure associated to the reaction term called r_name and related to this equation. More...
 
cs_param_space_scheme_t cs_equation_get_space_scheme (const cs_equation_t *eq)
 Return the type of numerical scheme used for the discretization in space. More...
 
int cs_equation_get_space_poly_degree (const cs_equation_t *eq)
 Return the max. degree used in the polynomial basis for the space discretization. More...
 
int cs_equation_get_var_dim (const cs_equation_t *eq)
 Return the dimension of the variable solved by this equation. More...
 
cs_equation_type_t cs_equation_get_type (const cs_equation_t *eq)
 Return the type of equation for the given equation structure. More...
 
const cs_real_tcs_equation_get_face_values (const cs_equation_t *eq)
 Get the values at each face of the mesh for the field unknowns related to this equation. More...
 
const cs_real_tcs_equation_get_cell_values (const cs_equation_t *eq)
 Get the values at each cell centers for the field unknowns related to this equation. More...
 
void cs_equation_compute_flux_across_plane (const cs_equation_t *eq, const char *ml_name, const cs_real_3_t direction, cs_real_t *diff_flux, cs_real_t *conv_flux)
 Compute the diffusive and convective flux accross a plane defined by a mesh location structure attached to the name ml_name. More...
 
void cs_equation_compute_diff_flux_cellwise (const cs_equation_t *eq, cs_flag_t location, cs_real_t *diff_flux)
 Cellwise computation of the diffusive flux across all cell faces. Primal or dual faces are considered according to the space scheme. More...
 
void cs_equation_compute_vtx_field_gradient (const cs_equation_t *eq, cs_real_t *v_gradient)
 Cellwise computation of the discrete gradient at vertices. More...
 
void cs_equation_extra_post_all (const cs_time_step_t *ts, double dt)
 Predefined extra-operations related to all equations. More...
 

Function Documentation

◆ cs_equation_add()

cs_equation_t* cs_equation_add ( const char *  eqname,
const char *  varname,
cs_equation_type_t  eqtype,
int  dim,
cs_param_bc_type_t  default_bc 
)

Add a new equation structure and set a first set of parameters.

Parameters
[in]eqnamename of the equation
[in]varnamename of the variable associated to this equation
[in]eqtypetype of equation (user, predefined...)
[in]dimdimension of the unknow attached to this equation
[in]default_bctype of boundary condition set by default
Returns
a pointer to the new allocated cs_equation_t structure

◆ cs_equation_add_user()

cs_equation_t* cs_equation_add_user ( const char *  eqname,
const char *  varname,
int  dim,
cs_param_bc_type_t  default_bc 
)

Add a new user equation structure and set a first set of parameters.

Parameters
[in]eqnamename of the equation
[in]varnamename of the variable associated to this equation
[in]dimdimension of the unknow attached to this equation
[in]default_bctype of boundary condition set by default
Returns
a pointer to the new allocated cs_equation_t structure

◆ cs_equation_build_system()

void cs_equation_build_system ( const cs_mesh_t mesh,
const cs_time_step_t time_step,
double  dt_cur,
cs_equation_t eq 
)

Build the linear system for this equation.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]time_steppointer to a time step structure
[in]dt_curvalue of the current time step
[in,out]eqpointer to a cs_equation_t structure

◆ cs_equation_by_id()

cs_equation_t* cs_equation_by_id ( int  eq_id)

Find the cs_equation_t structure with name eqname Return NULL if not find.

Parameters
[in]eq_idid of the equation to find
Returns
a pointer to a cs_equation_t structure or NULL if not found

◆ cs_equation_by_name()

cs_equation_t* cs_equation_by_name ( const char *  eqname)

Find the cs_equation_t structure with name eqname Return NULL if not find.

Parameters
[in]eqnamename of the equation to find
Returns
a pointer to a cs_equation_t structure or NULL if not found

◆ cs_equation_compute_diff_flux_cellwise()

void cs_equation_compute_diff_flux_cellwise ( const cs_equation_t eq,
cs_flag_t  location,
cs_real_t diff_flux 
)

Cellwise computation of the diffusive flux across all cell faces. Primal or dual faces are considered according to the space scheme.

Parameters
[in]eqpointer to a cs_equation_t structure
[in]locationindicate where the flux has to be computed
[in,out]diff_fluxvalue of the diffusive flux

◆ cs_equation_compute_flux_across_plane()

void cs_equation_compute_flux_across_plane ( const cs_equation_t eq,
const char *  ml_name,
const cs_real_3_t  direction,
cs_real_t diff_flux,
cs_real_t conv_flux 
)

Compute the diffusive and convective flux accross a plane defined by a mesh location structure attached to the name ml_name.

Parameters
[in]eqpointer to a cs_equation_t structure
[in]ml_namename of the related mesh location
[in]directionvector indicating in which direction flux is > 0
[in,out]diff_fluxvalue of the diffusive part of the flux
[in,out]conv_fluxvalue of the convective part of the flux

◆ cs_equation_compute_vtx_field_gradient()

void cs_equation_compute_vtx_field_gradient ( const cs_equation_t eq,
cs_real_t v_gradient 
)

Cellwise computation of the discrete gradient at vertices.

Parameters
[in]eqpointer to a cs_equation_t structure
[in,out]v_gradientgradient at vertices

◆ cs_equation_create_fields()

void cs_equation_create_fields ( void  )

Create a field structure related to all cs_equation_t structures.

◆ cs_equation_destroy_all()

void cs_equation_destroy_all ( void  )

Destroy all cs_equation_t structures.

◆ cs_equation_extra_post_all()

void cs_equation_extra_post_all ( const cs_time_step_t ts,
double  dt 
)

Predefined extra-operations related to all equations.

Parameters
[in]tspointer to a cs_time_step_t struct.
[in]dtvalue of the current time step

◆ cs_equation_finalize_setup()

bool cs_equation_finalize_setup ( const cs_cdo_connect_t connect,
bool  do_profiling 
)

Assign a set of pointer functions for managing the cs_equation_t structure during the computation.

Parameters
[in]connectpointer to a cs_cdo_connect_t structure
[in]do_profilingtrue or false
Returns
true if all equations are steady-state otherwise false

◆ cs_equation_get_builder()

cs_equation_builder_t* cs_equation_get_builder ( const cs_equation_t eq)

Return the cs_equation_builder_t structure associated to a cs_equation_t structure. Only for an advanced usage.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a cs_equation_builder_t structure or NULL if not found

◆ cs_equation_get_cell_values()

const cs_real_t* cs_equation_get_cell_values ( const cs_equation_t eq)

Get the values at each cell centers for the field unknowns related to this equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a pointer to the cell values

◆ cs_equation_get_diffusion_property()

cs_property_t* cs_equation_get_diffusion_property ( const cs_equation_t eq)

Return a pointer to the cs_property_t structure associated to the diffusion term for this equation (NULL if not activated).

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a pointer to a cs_property_t structure

◆ cs_equation_get_face_values()

const cs_real_t* cs_equation_get_face_values ( const cs_equation_t eq)

Get the values at each face of the mesh for the field unknowns related to this equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a pointer to the face values

◆ cs_equation_get_field()

cs_field_t* cs_equation_get_field ( const cs_equation_t eq)

Return the field structure associated to a cs_equation_t structure.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a cs_field_t structure or NULL if not found

◆ cs_equation_get_flag()

cs_flag_t cs_equation_get_flag ( const cs_equation_t eq)

Return the flag associated to an equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a flag (cs_flag_t type)

◆ cs_equation_get_id()

int cs_equation_get_id ( const cs_equation_t eq)

Return the id number related to the given cs_equation_t structure.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
an id (0 ... n-1) or -1 if not found

◆ cs_equation_get_n_equations()

int cs_equation_get_n_equations ( void  )

Retrieve the number of equations.

Returns
the current number of cs_equation_t structure allocated

◆ cs_equation_get_name()

const char* cs_equation_get_name ( const cs_equation_t eq)

Return the name related to the given cs_equation_t structure.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a name or NULL if not found

◆ cs_equation_get_param()

cs_equation_param_t* cs_equation_get_param ( const cs_equation_t eq)

Return the cs_equation_param_t structure associated to a cs_equation_t structure.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a cs_equation_param_t structure or NULL if not found

◆ cs_equation_get_reaction_property()

cs_property_t* cs_equation_get_reaction_property ( const cs_equation_t eq,
const int  reaction_id 
)

Return a pointer to the cs_property_t structure associated to the reaction term called r_name and related to this equation.

Parameters
[in]eqpointer to a cs_equation_t structure
[in]reaction_idid related to this reaction term
Returns
a pointer to a cs_property_t structure or NULL if not found

◆ cs_equation_get_scheme_context()

void* cs_equation_get_scheme_context ( const cs_equation_t eq)

Return a pointer to a structure useful to handle low-level operations for the given equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a pointer to a structure to cast on-the-fly or NULL if not found

◆ cs_equation_get_space_poly_degree()

int cs_equation_get_space_poly_degree ( const cs_equation_t eq)

Return the max. degree used in the polynomial basis for the space discretization.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
the polynomial order

◆ cs_equation_get_space_scheme()

cs_param_space_scheme_t cs_equation_get_space_scheme ( const cs_equation_t eq)

Return the type of numerical scheme used for the discretization in space.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a cs_param_space_scheme_t variable

◆ cs_equation_get_time_property()

cs_property_t* cs_equation_get_time_property ( const cs_equation_t eq)

Return a pointer to the cs_property_t structure associated to the unsteady term for this equation (NULL if not activated).

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a pointer to a cs_property_t structure

◆ cs_equation_get_type()

cs_equation_type_t cs_equation_get_type ( const cs_equation_t eq)

Return the type of equation for the given equation structure.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
the type of the given equation

◆ cs_equation_get_var_dim()

int cs_equation_get_var_dim ( const cs_equation_t eq)

Return the dimension of the variable solved by this equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
an integer corresponding to the dimension of the variable

◆ cs_equation_initialize()

void cs_equation_initialize ( const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const cs_time_step_t ts 
)

Allocate and initialize the builder of the algebraic system. Set the initialize condition to all variable fields associated to each cs_equation_t structure. Compute the initial source term.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to a cs_cdo_quantities_t structure
[in]tspointer to a cs_time_step_t structure

◆ cs_equation_is_steady()

bool cs_equation_is_steady ( const cs_equation_t eq)

Return true is the given equation is steady otherwise false.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
true or false

◆ cs_equation_log_monitoring()

void cs_equation_log_monitoring ( void  )

Print a synthesis of the monitoring information in the performance file.

◆ cs_equation_log_setup()

void cs_equation_log_setup ( void  )

Summarize all cs_equation_t structures.

◆ cs_equation_needs_build()

bool cs_equation_needs_build ( const cs_equation_t eq)

Check if one has to build the linear system.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
true or false

◆ cs_equation_param_by_name()

cs_equation_param_t* cs_equation_param_by_name ( const char *  eqname)

Return the cs_equation_param_t structure associated to a cs_equation_t structure thanks to the equation name.

Parameters
[in]eqnamename of the equation
Returns
a cs_equation_param_t structure or NULL if not found

◆ cs_equation_set_timer_stats()

void cs_equation_set_timer_stats ( cs_equation_t eq)

Create timer statistics structures to enable a "home-made" profiling.

Parameters
[in,out]eqpointer to a cs_equation_t structure

◆ cs_equation_solve()

void cs_equation_solve ( cs_equation_t eq)

Solve the linear system for this equation.

Parameters
[in,out]eqpointer to a cs_equation_t structure