![]() |
programmer's documentation
|
#include "cs_cdo.h"
#include "cs_cdo_connect.h"
#include "cs_cdo_local.h"
#include "cs_cdo_quantities.h"
#include "cs_param.h"
#include "cs_property.h"
#include "cs_time_step.h"
Go to the source code of this file.
Enumerations | |
enum | cs_advection_field_key_t { CS_ADVKEY_POST, CS_ADVKEY_POST_UNITV, CS_ADVKEY_CELL_FIELD, CS_ADVKEY_VERTEX_FIELD, CS_ADVKEY_N_KEYS } |
Functions | |
void | cs_advection_field_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 to main domain members. More... | |
cs_adv_field_t * | cs_advection_field_create (const char *name) |
Create and initialize a new advection field structure. More... | |
cs_adv_field_t * | cs_advection_field_free (cs_adv_field_t *adv) |
Free a cs_adv_field_t structure. More... | |
bool | cs_advection_field_check_name (const cs_adv_field_t *adv, const char *ref_name) |
Check if the given advection field has the name ref_name. More... | |
bool | cs_advection_field_is_uniform (const cs_adv_field_t *adv) |
returns true if the advection field is uniform, otherwise false More... | |
bool | cs_advection_field_is_cellwise (const cs_adv_field_t *adv) |
returns true if the advection field is uniform in each cell otherwise false More... | |
const char * | cs_advection_field_get_name (const cs_adv_field_t *adv) |
Retrieve the name of an advection field. More... | |
cs_param_def_type_t | cs_advection_field_get_deftype (const cs_adv_field_t *adv) |
Retrieve the type of definition used to set the current advection field structure. More... | |
void | cs_advection_field_summary (const cs_adv_field_t *adv) |
Print a summary of a cs_adv_field_t structure. More... | |
void | cs_advection_field_set_option (cs_adv_field_t *adv, cs_advection_field_key_t key, const char *keyval) |
Set optional parameters related to a cs_adv_field_t structure. More... | |
void | cs_advection_field_def_by_value (cs_adv_field_t *adv, const char *val) |
Define the value of a cs_adv_field_t structure. More... | |
void | cs_advection_field_def_by_analytic (cs_adv_field_t *adv, cs_analytic_func_t *func) |
Define a cs_adv_field_t structure thanks to an analytic function. More... | |
void | cs_advection_field_def_by_array (cs_adv_field_t *adv, cs_desc_t desc, const cs_real_t *array) |
Define a cs_adv_field_t structure thanks to an array of values. More... | |
void | cs_advection_field_create_field (cs_adv_field_t *adv) |
Create a cs_field_t structure related to an advection field. More... | |
void | cs_advection_field_get_cell_vector (cs_lnum_t c_id, const cs_adv_field_t *adv, cs_nvec3_t *vect) |
Compute the value of the advection field at the cell center. More... | |
void | cs_advection_field_get_at_xyz (const cs_adv_field_t *adv, const cs_real_3_t xyz, cs_nvec3_t *vect) |
Compute the value of the advection field for a given face. More... | |
void | cs_advection_field_at_cells (const cs_adv_field_t *adv, cs_real_t *cell_values) |
Compute the value of the advection field at cell centers. More... | |
void | cs_advection_field_at_vertices (const cs_adv_field_t *adv, cs_real_t *vtx_values) |
Compute the value of the advection field at vertices. More... | |
double | cs_advection_field_get_cell_max (const cs_adv_field_t *adv) |
Compute the max. value of the advection field among cells. More... | |
void | cs_advection_field_get_flux_dfaces (cs_lnum_t c_id, const cs_param_advection_t a_info, const cs_adv_field_t *adv, cs_real_t *fluxes) |
Compute the value of the flux of the advection field across the the dual faces of a cell. More... | |
cs_real_t | cs_advection_field_get_flux_tef (const cs_adv_field_t *adv, const cs_param_advection_t a_info, const cs_cell_mesh_t *cm, short int f, short int e, short int v1, short int v2) |
Compute the value of the flux of the advection field across the triangle defined by the two vertices of an edge and the barycenter of a face. More... | |
cs_real_t | cs_advection_field_get_flux_svef (cs_lnum_t v_id, cs_lnum_t e_id, cs_lnum_t f_id, const cs_param_advection_t a_info, const cs_adv_field_t *adv) |
Compute the value of the flux of the advection field across the triangle defined by a vertex, the face and edge barycenters. More... | |
void | cs_advection_field_update (cs_adv_field_t *adv) |
Update the values of the related field(s) More... | |
bool | cs_advection_field_needs_post (const cs_adv_field_t *adv) |
Check if additional predefined postprocessing is requested. More... | |
void | cs_advection_field_extra_post (void *input, int mesh_id, int cat_id, int ent_flag[5], cs_lnum_t n_cells, cs_lnum_t n_i_faces, cs_lnum_t n_b_faces, const cs_lnum_t cell_list[], const cs_lnum_t i_face_list[], const cs_lnum_t b_face_list[], const cs_time_step_t *time_step) |
Predefined post-processing output for advection fields. Prototype of this function is fixed since it is a function pointer defined in cs_post.h (cs_post_time_mesh_dep_output_t) More... | |
void | cs_advection_get_peclet (const cs_adv_field_t *adv, const cs_property_t *diff, cs_real_t peclet[]) |
Compute the Peclet number in each cell. More... | |
void | cs_advection_get_courant (const cs_adv_field_t *adv, double dt, cs_real_t courant[]) |
Compute the Courant number in each cell. More... | |
void cs_advection_field_at_cells | ( | const cs_adv_field_t * | adv, |
cs_real_t * | cell_values | ||
) |
Compute the value of the advection field at cell centers.
[in] | adv | pointer to a cs_adv_field_t structure |
[in,out] | cell_values | array of values at cell centers |
void cs_advection_field_at_vertices | ( | const cs_adv_field_t * | adv, |
cs_real_t * | vtx_values | ||
) |
Compute the value of the advection field at vertices.
[in] | adv | pointer to a cs_adv_field_t structure |
[in,out] | vect | pointer to a cs_nvec3_t structure (meas/unitv) |
bool cs_advection_field_check_name | ( | const cs_adv_field_t * | adv, |
const char * | ref_name | ||
) |
Check if the given advection field has the name ref_name.
[in] | adv | pointer to a cs_adv_field_t structure to test |
[in] | ref_name | name of the advection field to find |
cs_adv_field_t* cs_advection_field_create | ( | const char * | name | ) |
Create and initialize a new advection field structure.
[in] | name | name of the advection field |
void cs_advection_field_create_field | ( | cs_adv_field_t * | adv | ) |
Create a cs_field_t structure related to an advection field.
[in,out] | adv | pointer to a cs_adv_field_t structure |
void cs_advection_field_def_by_analytic | ( | cs_adv_field_t * | adv, |
cs_analytic_func_t * | func | ||
) |
Define a cs_adv_field_t structure thanks to an analytic function.
[in,out] | adv | pointer to a cs_adv_field_t structure |
[in] | func | pointer to a function |
void cs_advection_field_def_by_array | ( | cs_adv_field_t * | adv, |
cs_desc_t | desc, | ||
const cs_real_t * | array | ||
) |
Define a cs_adv_field_t structure thanks to an array of values.
[in,out] | adv | pointer to a cs_adv_field_t structure |
[in] | desc | information about this array |
[in] | array | pointer to an array |
void cs_advection_field_def_by_value | ( | cs_adv_field_t * | adv, |
const char * | val | ||
) |
Define the value of a cs_adv_field_t structure.
[in,out] | adv | pointer to a cs_adv_field_t structure |
[in] | keyval | accessor to the value to set |
[in,out] | adv | pointer to a cs_adv_field_t structure |
[in] | val | accessor to the value to set |
void cs_advection_field_extra_post | ( | void * | input, |
int | mesh_id, | ||
int | cat_id, | ||
int | ent_flag[5], | ||
cs_lnum_t | n_cells, | ||
cs_lnum_t | n_i_faces, | ||
cs_lnum_t | n_b_faces, | ||
const cs_lnum_t | cell_list[], | ||
const cs_lnum_t | i_face_list[], | ||
const cs_lnum_t | b_face_list[], | ||
const cs_time_step_t * | time_step | ||
) |
Predefined post-processing output for advection fields. Prototype of this function is fixed since it is a function pointer defined in cs_post.h (cs_post_time_mesh_dep_output_t)
[in,out] | input | pointer to a optional structure (here a cs_groundwater_t structure) |
[in] | mesh_id | id of the output mesh for the current call |
[in] | cat_id | category id of the output mesh for this call |
[in] | ent_flag | indicate global presence of cells (ent_flag[0]), interior faces (ent_flag[1]), boundary faces (ent_flag[2]), particles (ent_flag[3]) or probes (ent_flag[4]) |
[in] | n_cells | local number of cells of post_mesh |
[in] | n_i_faces | local number of interior faces of post_mesh |
[in] | n_b_faces | local number of boundary faces of post_mesh |
[in] | cell_list | list of cells (1 to n) |
[in] | i_face_list | list of interior faces (1 to n) |
[in] | b_face_list | list of boundary faces (1 to n) |
[in] | time_step | pointer to a cs_time_step_t struct. |
cs_adv_field_t* cs_advection_field_free | ( | cs_adv_field_t * | adv | ) |
Free a cs_adv_field_t structure.
[in,out] | adv | pointer to a cs_adv_field_t structure to free |
void cs_advection_field_get_at_xyz | ( | const cs_adv_field_t * | adv, |
const cs_real_3_t | xyz, | ||
cs_nvec3_t * | vect | ||
) |
Compute the value of the advection field for a given face.
[in] | adv | pointer to a cs_adv_field_t structure |
[in] | xyz | coordinates where to evaluate the advection field |
[in,out] | vect | pointer to a cs_nvec3_t structure (meas + unitv) |
double cs_advection_field_get_cell_max | ( | const cs_adv_field_t * | adv | ) |
Compute the max. value of the advection field among cells.
[in] | adv | pointer to a cs_adv_field_t structure |
void cs_advection_field_get_cell_vector | ( | cs_lnum_t | c_id, |
const cs_adv_field_t * | adv, | ||
cs_nvec3_t * | vect | ||
) |
Compute the value of the advection field at the cell center.
[in] | c_id | id of the current cell |
[in] | adv | pointer to a cs_adv_field_t structure |
[in,out] | vect | pointer to a cs_nvec3_t structure (meas + unitv) |
cs_param_def_type_t cs_advection_field_get_deftype | ( | const cs_adv_field_t * | adv | ) |
Retrieve the type of definition used to set the current advection field structure.
[in] | adv | pointer to an advection field structure |
void cs_advection_field_get_flux_dfaces | ( | cs_lnum_t | c_id, |
const cs_param_advection_t | a_info, | ||
const cs_adv_field_t * | adv, | ||
cs_real_t * | fluxes | ||
) |
Compute the value of the flux of the advection field across the the dual faces of a cell.
[in] | c_id | id of the current cell |
[in] | a_info | set of parameters for the advection operator |
[in] | adv | pointer to a cs_adv_field_t structure |
[in,out] | fluxes | array of values attached to dual faces of a cell |
cs_real_t cs_advection_field_get_flux_svef | ( | cs_lnum_t | v_id, |
cs_lnum_t | e_id, | ||
cs_lnum_t | f_id, | ||
const cs_param_advection_t | a_info, | ||
const cs_adv_field_t * | adv | ||
) |
Compute the value of the flux of the advection field across the triangle defined by a vertex, the face and edge barycenters.
[in] | v_id | id of the current vertex |
[in] | e_id | id of the current edge |
[in] | f_id | id of the current face |
[in] | a_info | set of parameters for the advection operator |
[in] | adv | pointer to a cs_adv_field_t structure |
cs_real_t cs_advection_field_get_flux_tef | ( | const cs_adv_field_t * | adv, |
const cs_param_advection_t | a_info, | ||
const cs_cell_mesh_t * | cm, | ||
short int | f, | ||
short int | e, | ||
short int | v1, | ||
short int | v2 | ||
) |
Compute the value of the flux of the advection field across the triangle defined by the two vertices of an edge and the barycenter of a face.
[in] | adv | pointer to a cs_adv_field_t structure |
[in] | a_info | set of parameters for the advection operator |
[in] | cm | pointer to a cs_cell_mesh_t structure |
[in] | f | id of the face in the current cell |
[in] | e | id of the edge in the current cell |
[in] | v1 | id of the first vertex in the current cell |
[in] | v2 | id of the second vertex in the current cell |
const char* cs_advection_field_get_name | ( | const cs_adv_field_t * | adv | ) |
Retrieve the name of an advection field.
[in] | adv | pointer to an advection field structure |
bool cs_advection_field_is_cellwise | ( | const cs_adv_field_t * | adv | ) |
returns true if the advection field is uniform in each cell otherwise false
[in] | adv | pointer to a property to test |
bool cs_advection_field_is_uniform | ( | const cs_adv_field_t * | adv | ) |
returns true if the advection field is uniform, otherwise false
[in] | adv | pointer to a property to test |
bool cs_advection_field_needs_post | ( | const cs_adv_field_t * | adv | ) |
Check if additional predefined postprocessing is requested.
[in] | adv | pointer to a cs_adv_field_t structure |
void cs_advection_field_set_option | ( | cs_adv_field_t * | adv, |
cs_advection_field_key_t | key, | ||
const char * | keyval | ||
) |
Set optional parameters related to a cs_adv_field_t structure.
[in,out] | adv | pointer to a cs_adv_field_t structure |
[in] | key | key related to the member of adv to set |
[in] | keyval | accessor to the value to set |
void cs_advection_field_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 to main domain members.
[in] | quant | additional mesh quantities struct. |
[in] | connect | pointer to a cs_cdo_connect_t struct. |
[in] | time_step | pointer to a time step structure |
void cs_advection_field_summary | ( | const cs_adv_field_t * | adv | ) |
Print a summary of a cs_adv_field_t structure.
[in] | adv | pointer to a cs_adv_field_t structure to summarize |
void cs_advection_field_update | ( | cs_adv_field_t * | adv | ) |
Update the values of the related field(s)
[in,out] | adv | pointer to a cs_adv_field_t structure |
void cs_advection_get_courant | ( | const cs_adv_field_t * | adv, |
double | dt, | ||
cs_real_t | courant[] | ||
) |
Compute the Courant number in each cell.
[in] | adv | pointer to the advection field struct. |
[in] | dt | value of the current time step |
[in,out] | courant | pointer to an array storing Courant numbers |
void cs_advection_get_peclet | ( | const cs_adv_field_t * | adv, |
const cs_property_t * | diff, | ||
cs_real_t | peclet[] | ||
) |
Compute the Peclet number in each cell.
[in] | adv | pointer to the advection field struct. |
[in] | diff | pointer to the diffusion property struct. |
[in,out] | peclet | pointer to an array storing Peclet number |