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

Go to the source code of this file.

Functions

cs_equation_t * cs_equation_create (const char *eqname, const char *varname, cs_equation_type_t eqtype, cs_param_var_type_t vartype, cs_param_bc_type_t default_bc)
 Define and initialize a new structure to store parameters related to an equation. More...
 
cs_equation_t * cs_equation_free (cs_equation_t *eq)
 Destroy a cs_equation_t structure. More...
 
void cs_equation_summary (const cs_equation_t *eq)
 Summary of a cs_equation_t structure. More...
 
void cs_equation_last_setup (cs_equation_t *eq)
 Assign a set of pointer functions for managing the cs_equation_t structure during the computation. More...
 
void cs_equation_set_option (cs_equation_t *eq, const char *keyname, const void *val)
 Set a parameter in a cs_equation_t structure attached to keyname. More...
 
void cs_equation_link (cs_equation_t *eq, const char *keyword, void *pointer)
 Associate a material property or an advection field with an equation for a given term (diffusion, time, convection) More...
 
void cs_equation_set_ic (cs_equation_t *eq, const char *def_key, void *val)
 Define the initial condition of the unknown related to this equation def_key is among "value", "analytic". More...
 
void cs_equation_add_bc (cs_equation_t *eq, const char *ml_name, const char *bc_key, const char *def_key, const void *val)
 Define and initialize a new structure to store parameters related to an equation bc_key among "dirichlet", "neumann" or "robin" def_key among "value", "analytic", "user". More...
 
void cs_equation_add_reaction (cs_equation_t *eq, const char *r_name, const char *type_name, cs_property_t *property)
 Define and initialize a new structure to store parameters related to a reaction term. More...
 
void cs_equation_set_reaction_option (cs_equation_t *eq, const char *r_name, const char *keyname, const char *keyval)
 Set advanced parameters related to a reaction term keyname among "lumping", "hodge_algo", "hodge_coef"... If r_name is NULL, all reaction terms of the given equation are set according to the couple (keyname, keyval) More...
 
void cs_equation_add_source_term (cs_equation_t *eq, const char *st_name, const char *ml_name, const char *def_key, const void *val)
 Define and initialize a new structure to store parameters related to a source term def_key among "value", "analytic", "user"... More...
 
void cs_equation_set_source_term_option (cs_equation_t *eq, const char *st_name, const char *keyname, const char *keyval)
 Set members defined by default in a source term structure keyname among "quadrature", "post"... More...
 
void cs_equation_create_field (cs_equation_t *eq)
 Create a field structure related to this cs_equation_t structure to an equation. More...
 
void cs_equation_init_system (const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_time_step_t *time_step, cs_equation_t *eq)
 Initialize the values of a field according to the initial condition related to its equation. 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 *m, 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 (const cs_time_step_t *time_step, cs_equation_t *eq)
 Solve the linear system for this equation. More...
 
void cs_equation_post (const cs_time_step_t *time_step, const cs_equation_t *eq)
 Post-processing related to this equation. More...
 
bool cs_equation_is_steady (const cs_equation_t *eq)
 Return true is the given equation is steady otherwise false. More...
 
const cs_real_tcs_equation_get_face_values (const cs_equation_t *eq)
 Compute the values of the associated field at each face of the mesh If the pointer storing the values is NULL, it is alloacted inside the function. More...
 
const char * cs_equation_get_name (const cs_equation_t *eq)
 Return the name related to the given cs_equation_t structure to an equation. More...
 
cs_field_tcs_equation_get_field (const cs_equation_t *eq)
 Return the field structure associated to a cs_equation_t structure. More...
 
const 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_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). More...
 
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). More...
 
cs_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...
 
cs_param_var_type_t cs_equation_get_var_type (const cs_equation_t *eq)
 Return the type of 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...
 

Function Documentation

void cs_equation_add_bc ( cs_equation_t *  eq,
const char *  ml_name,
const char *  bc_key,
const char *  def_key,
const void *  val 
)

Define and initialize a new structure to store parameters related to an equation bc_key among "dirichlet", "neumann" or "robin" def_key among "value", "analytic", "user".

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]ml_namename of the related mesh location
[in]bc_keytype of boundary condition to add
[in]def_keyway of defining the value of the bc
[in]valpointer to the value
void cs_equation_add_reaction ( cs_equation_t *  eq,
const char *  r_name,
const char *  type_name,
cs_property_t *  property 
)

Define and initialize a new structure to store parameters related to a reaction term.

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]r_namename of the source term or NULL
[in]type_nametype of reaction term to add
[in]propertypointer to a cs_property_t struct.
void cs_equation_add_source_term ( cs_equation_t *  eq,
const char *  st_name,
const char *  ml_name,
const char *  def_key,
const void *  val 
)

Define and initialize a new structure to store parameters related to a source term def_key among "value", "analytic", "user"...

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]st_namename of the source term or NULL
[in]ml_namename of the related mesh location
[in]def_keyway of defining the value of the source term
[in]valpointer to the value
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]mpointer 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_t* cs_equation_create ( const char *  eqname,
const char *  varname,
cs_equation_type_t  eqtype,
cs_param_var_type_t  vartype,
cs_param_bc_type_t  default_bc 
)

Define and initialize a new structure to store parameters related to an equation.

Parameters
[in]eqnamename of the equation
[in]varnamename of the variable associated to this equation
[in]eqtypetype of equation (user, predefined...)
[in]vartypetype of variable (scalar, vector, tensor...)
[in]default_bctype of boundary condition set by default
Returns
a pointer to the new allocated cs_equation_t structure
void cs_equation_create_field ( cs_equation_t *  eq)

Create a field structure related to this cs_equation_t structure to an equation.

Parameters
[in,out]eqpointer to a cs_equation_t structure
cs_equation_t* cs_equation_free ( cs_equation_t *  eq)

Destroy a cs_equation_t structure.

Parameters
[in,out]eqpointer to a cs_equation_t structure
Returns
a NULL pointer
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
const cs_real_t* cs_equation_get_face_values ( const cs_equation_t *  eq)

Compute the values of the associated field at each face of the mesh If the pointer storing the values is NULL, it is alloacted inside the function.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a pointer to the values
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
const char* cs_equation_get_name ( const cs_equation_t *  eq)

Return the name related to the given cs_equation_t structure to an equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
a name or NULL if not found
const 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_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_space_scheme_t variable
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_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_param_var_type_t cs_equation_get_var_type ( const cs_equation_t *  eq)

Return the type of variable solved by this equation.

Parameters
[in]eqpointer to a cs_equation_t structure
Returns
the type of variable (sclar, vector...) associated to this equation
void cs_equation_init_system ( const cs_mesh_t mesh,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t cdoq,
const cs_time_step_t time_step,
cs_equation_t *  eq 
)

Initialize the values of a field according to the initial condition related to its equation.

Parameters
[in]meshpointer to the mesh structure
[in]connectpointer to a cs_cdo_connect_t struct.
[in]cdoqpointer to a cs_cdo_quantities_t struct.
[in]time_steppointer to a time step structure
[in,out]eqpointer to a cs_equation_t structure
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
void cs_equation_last_setup ( cs_equation_t *  eq)

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

Parameters
[in,out]eqpointer to a cs_equation_t structure
void cs_equation_link ( cs_equation_t *  eq,
const char *  keyword,
void *  pointer 
)

Associate a material property or an advection field with an equation for a given term (diffusion, time, convection)

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]keyword"time", "diffusion", "advection"
[in]pointerpointer to a given structure
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
void cs_equation_post ( const cs_time_step_t time_step,
const cs_equation_t *  eq 
)

Post-processing related to this equation.

Parameters
[in]time_steppointer to a time step structure
[in]eqpointer to a cs_equation_t structure
void cs_equation_set_ic ( cs_equation_t *  eq,
const char *  def_key,
void *  val 
)

Define the initial condition of the unknown related to this equation def_key is among "value", "analytic".

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]def_keyway of defining the value of the bc
[in]valpointer to the value

Define the initial condition of the unknown related to this equation def_key is among "value", "analytic".

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]def_keyway of defining the value of the bc
[in]valpointer to the value
void cs_equation_set_option ( cs_equation_t *  eq,
const char *  keyname,
const void *  val 
)

Set a parameter in a cs_equation_t structure attached to keyname.

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]keynamename of key related to the member of eq to set
[in]valaccessor to the value to set
void cs_equation_set_reaction_option ( cs_equation_t *  eq,
const char *  r_name,
const char *  keyname,
const char *  keyval 
)

Set advanced parameters related to a reaction term keyname among "lumping", "hodge_algo", "hodge_coef"... If r_name is NULL, all reaction terms of the given equation are set according to the couple (keyname, keyval)

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]r_namename of the reaction term
[in]keynamename of the key
[in]keyvalpointer to the value to set to the key
void cs_equation_set_source_term_option ( cs_equation_t *  eq,
const char *  st_name,
const char *  keyname,
const char *  keyval 
)

Set members defined by default in a source term structure keyname among "quadrature", "post"...

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]st_namename of the source term
[in]keynamename of the key
[in]keyvalpointer to the value to set to the key

Set members defined by default in a source term structure keyname among "quadrature", "post"...

Parameters
[in,out]eqpointer to a cs_equation_t structure
[in]st_namename of the source term
[in]keynamename of the key
[in]keyvalpointer to the value to set to the key
void cs_equation_solve ( const cs_time_step_t time_step,
cs_equation_t *  eq 
)

Solve the linear system for this equation.

Parameters
[in]time_steppointer to a time step structure
[in,out]eqpointer to a cs_equation_t structure
void cs_equation_summary ( const cs_equation_t *  eq)

Summary of a cs_equation_t structure.

Parameters
[in]eqpointer to a cs_equation_t structure