|
programmer's documentation
|
#include "cs_defs.h"#include <assert.h>#include <ctype.h>#include <float.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <bft_mem.h>#include <bft_printf.h>#include "cs_math.h"#include "cs_mesh_location.h"#include "cs_field.h"#include "cs_post.h"#include "cs_reco.h"#include "cs_advection_field.h"
Macros | |
| #define | _dp3 cs_math_3_dot_product |
| #define | CS_ADVECTION_FIELD_POST_ACTIV (1 << 0) |
| #define | CS_ADVECTION_FIELD_POST_UNITV (1 << 1) |
| #define | CS_ADVECTION_FIELD_DBG 1 |
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... | |
Variables | |
| static const char | _err_empty_adv [] |
| static const cs_cdo_quantities_t * | cs_cdo_quant |
| static const cs_cdo_connect_t * | cs_cdo_connect |
| static const cs_time_step_t * | cs_time_step |
| #define _dp3 cs_math_3_dot_product |
| #define CS_ADVECTION_FIELD_DBG 1 |
| #define CS_ADVECTION_FIELD_POST_ACTIV (1 << 0) |
| #define CS_ADVECTION_FIELD_POST_UNITV (1 << 1) |
| 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] | 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 |
|
static |
|
static |
|
static |
|
static |
1.8.13