|
My Project
programmer's documentation
|
#include "cs_cdo_connect.h"#include "cs_cdo_local.h"#include "cs_cdo_quantities.h"#include "cs_mesh_location.h"#include "cs_param.h"#include "cs_property.h"#include "cs_xdef.h"#include "cs_xdef_eval.h"
Go to the source code of this file.
Data Structures | |
| struct | cs_adv_field_t |
Macros | |
| #define | CS_ADVECTION_FIELD_POST_COURANT (1 << 0) |
| #define | CS_ADVECTION_FIELD_STEADY (1 << 1) /* steady-state field */ |
Enumerations | |
| enum | cs_advection_field_key_t { CS_ADVKEY_DEFINE_AT_VERTICES, CS_ADVKEY_DEFINE_AT_BOUNDARY_FACES, CS_ADVKEY_POST_COURANT, CS_ADVKEY_STATE_STEADY, CS_ADVKEY_N_KEYS } |
| List of available keys for setting an advection field. More... | |
| enum | cs_advection_field_status_t { CS_ADVECTION_FIELD_NAVSTO, CS_ADVECTION_FIELD_LEGACY_NAVSTO, CS_ADVECTION_FIELD_GWF, CS_ADVECTION_FIELD_USER, CS_N_ADVECTION_FIELD_STATUS } |
| Type of advection field. More... | |
| enum | cs_advection_field_type_t { CS_ADVECTION_FIELD_TYPE_VELOCITY, CS_ADVECTION_FIELD_TYPE_FLUX, CS_N_ADVECTION_FIELD_TYPES } |
| Status of the advection field. The advection field stands for what. More... | |
Functions | |
| static void | cs_advection_field_set_type (cs_adv_field_t *adv, cs_advection_field_type_t type) |
| Set the type of advection field for the given structure. More... | |
| static bool | cs_advection_field_is_uniform (const cs_adv_field_t *adv) |
| returns true if the advection field is uniform, otherwise false More... | |
| static 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... | |
| static const char * | cs_advection_field_get_name (const cs_adv_field_t *adv) |
| Retrieve the name of an advection field. More... | |
| static cs_xdef_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... | |
| static cs_field_t * | cs_advection_field_get_field (const cs_adv_field_t *adv, cs_mesh_location_type_t ml_type) |
| Get a cs_field_t structure related to an advection field and a mesh location. More... | |
| void | cs_advection_field_set_shared_pointers (const cs_cdo_quantities_t *quant, const cs_cdo_connect_t *connect) |
| Set shared pointers to main domain members. More... | |
| int | cs_advection_field_get_n_fields (void) |
| Get the number of allocated cs_adv_field_t structures. More... | |
| cs_adv_field_t * | cs_advection_field_by_name (const char *name) |
| Search in the array of advection field structures which one has the name given in argument. More... | |
| cs_adv_field_t * | cs_advection_field_by_id (int id) |
| Search in the array of advection field structures which one has the id given in argument. More... | |
| cs_adv_field_t * | cs_advection_field_add_user (const char *name) |
| Add and initialize a new user-defined advection field structure. More... | |
| cs_adv_field_t * | cs_advection_field_add (const char *name, cs_advection_field_status_t status) |
| Add and initialize a new advection field structure. More... | |
| void | cs_advection_field_destroy_all (void) |
| Free all alllocated cs_adv_field_t structures and its related array. 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... | |
| void | cs_advection_field_log_setup (void) |
| Print all setup information related to cs_adv_field_t structures. More... | |
| void | cs_advection_field_set_option (cs_adv_field_t *adv, cs_advection_field_key_t key) |
| Set optional parameters related to a cs_adv_field_t structure. More... | |
| void | cs_advection_field_def_by_value (cs_adv_field_t *adv, cs_real_t vector[3]) |
| 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, void *input) |
| 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_flag_t loc, cs_real_t *array, bool is_owner, cs_lnum_t *index) |
| Define a cs_adv_field_t structure thanks to an array of values. More... | |
| void | cs_advection_field_def_by_field (cs_adv_field_t *adv, cs_field_t *field) |
| Define a cs_adv_field_t structure thanks to an array of values. More... | |
| void | cs_advection_field_def_boundary_flux_by_value (cs_adv_field_t *adv, const char *zname, cs_real_t normal_flux) |
| Define the value of the boundary normal flux for the given cs_adv_field_t structure. More... | |
| void | cs_advection_field_def_boundary_flux_by_analytic (cs_adv_field_t *adv, const char *zname, cs_analytic_func_t *func, void *input) |
| Define the value of the boundary normal flux for the given cs_adv_field_t structure using an analytic function. More... | |
| void | cs_advection_field_def_boundary_flux_by_array (cs_adv_field_t *adv, const char *zname, cs_flag_t loc, cs_real_t *array, bool is_owner, cs_lnum_t *index) |
| Define the value of the boundary normal flux for the given cs_adv_field_t structure using an array of values. More... | |
| void | cs_advection_field_create_fields (void) |
| Create all needed cs_field_t structures related to an advection field. More... | |
| void | cs_advection_field_finalize_setup (void) |
| Last stage of the definition of an advection field based on several definitions (i.e. definition by subdomains on the boundary) 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_cw_eval_at_xyz (const cs_adv_field_t *adv, const cs_cell_mesh_t *cm, const cs_real_3_t xyz, cs_real_t time_eval, cs_nvec3_t *eval) |
| Compute the value of the advection field at a specific location inside a cell. More... | |
| void | cs_advection_field_in_cells (const cs_adv_field_t *adv, cs_real_t time_eval, cs_real_t *cell_values) |
| Compute the mean-value of the advection field inside each cell. More... | |
| void | cs_advection_field_at_vertices (const cs_adv_field_t *adv, cs_real_t time_eval, cs_real_t *vtx_values) |
| Compute the value of the advection field at vertices. More... | |
| void | cs_advection_field_across_boundary (const cs_adv_field_t *adv, cs_real_t time_eval, cs_real_t *flx_values) |
| Compute the value of the normal flux of the advection field across the boundary faces. More... | |
| void | cs_advection_field_cw_boundary_f2v_flux (const cs_cell_mesh_t *cm, const cs_adv_field_t *adv, short int f, cs_real_t time_eval, cs_real_t *fluxes) |
| Compute the value of the normal flux of the advection field across the closure of the dual cell related to each vertex belonging to the boundary face f. More... | |
| cs_real_t | cs_advection_field_cw_boundary_face_flux (const cs_real_t time_eval, const short int f, const cs_cell_mesh_t *cm, const cs_adv_field_t *adv) |
| Compute the value of the normal flux of the advection field across a boundary face f (cellwise version) More... | |
| void | cs_advection_field_cw_face_flux (const cs_cell_mesh_t *cm, const cs_adv_field_t *adv, cs_real_t time_eval, cs_real_t *fluxes) |
| Compute the value of the flux of the advection field across the the (primal) faces of a cell. More... | |
| void | cs_advection_field_cw_dface_flux (const cs_cell_mesh_t *cm, const cs_adv_field_t *adv, cs_real_t time_eval, cs_real_t *fluxes) |
| Compute the value of the flux of the advection field across the the dual faces of a cell. More... | |
| void | cs_advection_field_update (cs_real_t t_eval, bool cur2prev) |
| For each cs_adv_field_t structures, update the values of the related field(s) More... | |
| void | cs_advection_get_peclet (const cs_adv_field_t *adv, const cs_property_t *diff, cs_real_t t_eval, cs_real_t peclet[]) |
| Compute the Peclet number in each cell. More... | |
| void | cs_advection_get_courant (const cs_adv_field_t *adv, cs_real_t dt_cur, cs_real_t courant[]) |
| Compute the Courant number in each cell. More... | |
| cs_real_t * | cs_advection_field_divergence_at_vertices (const cs_adv_field_t *adv, cs_real_t t_eval) |
| Compute the divergence of the advection field at vertices Useful for CDO Vertex-based schemes. More... | |
List of available keys for setting an advection field.
Type of advection field.
| void cs_advection_field_across_boundary | ( | const cs_adv_field_t * | adv, |
| cs_real_t | time_eval, | ||
| cs_real_t * | flx_values | ||
| ) |
Compute the value of the normal flux of the advection field across the boundary faces.
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | time_eval | physical time at which one evaluates the term |
| [in,out] | flx_values | array storing the results |
| cs_adv_field_t* cs_advection_field_add | ( | const char * | name, |
| cs_advection_field_status_t | status | ||
| ) |
Add and initialize a new advection field structure.
| [in] | name | name of the advection field |
| [in] | status | status of the advection field to create |
| cs_adv_field_t* cs_advection_field_add_user | ( | const char * | name | ) |
Add and initialize a new user-defined advection field structure.
| [in] | name | name of the advection field |
| void cs_advection_field_at_vertices | ( | const cs_adv_field_t * | adv, |
| cs_real_t | time_eval, | ||
| 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] | time_eval | physical time at which one evaluates the term |
| [in,out] | vtx_values | array storing the results |
| cs_adv_field_t* cs_advection_field_by_id | ( | int | id | ) |
Search in the array of advection field structures which one has the id given in argument.
| [in] | id | identification number |
| cs_adv_field_t* cs_advection_field_by_name | ( | const char * | name | ) |
Search in the array of advection field structures which one has the name given in argument.
| [in] | name | name of the advection field |
| 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 |
| void cs_advection_field_create_fields | ( | void | ) |
Create all needed cs_field_t structures related to an advection field.
| void cs_advection_field_cw_boundary_f2v_flux | ( | const cs_cell_mesh_t * | cm, |
| const cs_adv_field_t * | adv, | ||
| short int | f, | ||
| cs_real_t | time_eval, | ||
| cs_real_t * | fluxes | ||
| ) |
Compute the value of the normal flux of the advection field across the closure of the dual cell related to each vertex belonging to the boundary face f.
| [in] | cm | pointer to a cs_cell_mesh_t structure |
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | f | face id in the cellwise numbering |
| [in] | time_eval | physical time at which one evaluates the term |
| [in,out] | fluxes | normal boundary flux for each vertex of the face |
| cs_real_t cs_advection_field_cw_boundary_face_flux | ( | const cs_real_t | time_eval, |
| const short int | f, | ||
| const cs_cell_mesh_t * | cm, | ||
| const cs_adv_field_t * | adv | ||
| ) |
Compute the value of the normal flux of the advection field across a boundary face f (cellwise version)
| [in] | time_eval | physical time at which one evaluates the term |
| [in] | f | face id in the cellwise numbering |
| [in] | cm | pointer to a cs_cell_mesh_t structure |
| [in] | adv | pointer to a cs_adv_field_t structure |
| void cs_advection_field_cw_dface_flux | ( | const cs_cell_mesh_t * | cm, |
| const cs_adv_field_t * | adv, | ||
| cs_real_t | time_eval, | ||
| cs_real_t * | fluxes | ||
| ) |
Compute the value of the flux of the advection field across the the dual faces of a cell.
| [in] | cm | pointer to a cs_cell_mesh_t structure |
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | time_eval | physical time at which one evaluates the term |
| [in,out] | fluxes | array of values attached to dual faces of a cell |
| void cs_advection_field_cw_eval_at_xyz | ( | const cs_adv_field_t * | adv, |
| const cs_cell_mesh_t * | cm, | ||
| const cs_real_3_t | xyz, | ||
| cs_real_t | time_eval, | ||
| cs_nvec3_t * | eval | ||
| ) |
Compute the value of the advection field at a specific location inside a cell.
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | cm | pointer to a cs_cell_mesh_t structure |
| [in] | xyz | location where to perform the evaluation |
| [in] | time_eval | physical time at which one evaluates the term |
| [in,out] | eval | pointer to a cs_nvec3_t |
| void cs_advection_field_cw_face_flux | ( | const cs_cell_mesh_t * | cm, |
| const cs_adv_field_t * | adv, | ||
| cs_real_t | time_eval, | ||
| cs_real_t * | fluxes | ||
| ) |
Compute the value of the flux of the advection field across the the (primal) faces of a cell.
| [in] | cm | pointer to a cs_cell_mesh_t structure |
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | time_eval | physical time at which one evaluates the term |
| [in,out] | fluxes | array of values attached to primal faces of a cell |
| void cs_advection_field_def_boundary_flux_by_analytic | ( | cs_adv_field_t * | adv, |
| const char * | zname, | ||
| cs_analytic_func_t * | func, | ||
| void * | input | ||
| ) |
Define the value of the boundary normal flux for the given cs_adv_field_t structure using an analytic function.
| [in,out] | adv | pointer to a cs_adv_field_t structure |
| [in] | zname | name of the boundary zone to consider |
| [in] | func | pointer to a function |
| [in] | input | NULL or pointer to a structure cast on-the-fly |
| void cs_advection_field_def_boundary_flux_by_array | ( | cs_adv_field_t * | adv, |
| const char * | zname, | ||
| cs_flag_t | loc, | ||
| cs_real_t * | array, | ||
| bool | is_owner, | ||
| cs_lnum_t * | index | ||
| ) |
Define the value of the boundary normal flux for the given cs_adv_field_t structure using an array of values.
| [in,out] | adv | pointer to a cs_adv_field_t structure |
| [in] | zname | name of the boundary zone to consider |
| [in] | loc | information to know where are located values |
| [in] | array | pointer to an array |
| [in] | is_owner | transfer the lifecycle to the cs_xdef_t structure (true or false) |
| [in] | index | optional pointer to the array index |
| void cs_advection_field_def_boundary_flux_by_value | ( | cs_adv_field_t * | adv, |
| const char * | zname, | ||
| cs_real_t | normal_flux | ||
| ) |
Define the value of the boundary normal flux for the given cs_adv_field_t structure.
| [in,out] | adv | pointer to a cs_adv_field_t structure |
| [in] | zname | name of the boundary zone to consider |
| [in] | normal_flux | value to set |
| void cs_advection_field_def_by_analytic | ( | cs_adv_field_t * | adv, |
| cs_analytic_func_t * | func, | ||
| void * | input | ||
| ) |
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 |
| [in] | input | NULL or pointer to a structure cast on-the-fly |
| void cs_advection_field_def_by_array | ( | cs_adv_field_t * | adv, |
| cs_flag_t | loc, | ||
| cs_real_t * | array, | ||
| bool | is_owner, | ||
| cs_lnum_t * | index | ||
| ) |
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] | loc | information to know where are located values |
| [in] | array | pointer to an array |
| [in] | is_owner | transfer the lifecycle to the cs_xdef_t structure (true or false) |
| [in] | index | optional pointer to the array index |
| void cs_advection_field_def_by_field | ( | cs_adv_field_t * | adv, |
| cs_field_t * | field | ||
| ) |
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] | field | pointer to a cs_field_t structure |
| void cs_advection_field_def_by_value | ( | cs_adv_field_t * | adv, |
| cs_real_t | vector[3] | ||
| ) |
Define the value of a cs_adv_field_t structure.
| [in,out] | adv | pointer to a cs_adv_field_t structure |
| [in] | vector | values to set |
| void cs_advection_field_destroy_all | ( | void | ) |
Free all alllocated cs_adv_field_t structures and its related array.
| cs_real_t* cs_advection_field_divergence_at_vertices | ( | const cs_adv_field_t * | adv, |
| cs_real_t | t_eval | ||
| ) |
Compute the divergence of the advection field at vertices Useful for CDO Vertex-based schemes.
| [in] | adv | pointer to the advection field struct. |
| [in] | t_eval | time at which one evaluates the advection field |
| void cs_advection_field_finalize_setup | ( | void | ) |
Last stage of the definition of an advection field based on several definitions (i.e. definition by subdomains on the boundary)
| 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) |
|
inlinestatic |
Retrieve the type of definition used to set the current advection field structure.
| [in] | adv | pointer to an advection field structure |
|
inlinestatic |
Get a cs_field_t structure related to an advection field and a mesh location.
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | ml_type | type of mesh location (cells or vertices) |
| int cs_advection_field_get_n_fields | ( | void | ) |
Get the number of allocated cs_adv_field_t structures.
|
inlinestatic |
Retrieve the name of an advection field.
| [in] | adv | pointer to an advection field structure |
| void cs_advection_field_in_cells | ( | const cs_adv_field_t * | adv, |
| cs_real_t | time_eval, | ||
| cs_real_t * | cell_values | ||
| ) |
Compute the mean-value of the advection field inside each cell.
| [in] | adv | pointer to a cs_adv_field_t structure |
| [in] | time_eval | physical time at which one evaluates the term |
| [in,out] | cell_values | array of values at cell centers |
|
inlinestatic |
returns true if the advection field is uniform in each cell otherwise false
| [in] | adv | pointer to an advection field to test |
|
inlinestatic |
returns true if the advection field is uniform, otherwise false
| [in] | adv | pointer to an advection field to test |
| void cs_advection_field_log_setup | ( | void | ) |
Print all setup information related to cs_adv_field_t structures.
| void cs_advection_field_set_option | ( | cs_adv_field_t * | adv, |
| cs_advection_field_key_t | key | ||
| ) |
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 |
| void cs_advection_field_set_shared_pointers | ( | const cs_cdo_quantities_t * | quant, |
| const cs_cdo_connect_t * | connect | ||
| ) |
Set shared pointers to main domain members.
| [in] | quant | additional mesh quantities struct. |
| [in] | connect | pointer to a cs_cdo_connect_t struct. |
|
inlinestatic |
Set the type of advection field for the given structure.
| [in,out] | adv | pointer to an advection field structure |
| [in] | type | type to set |
| void cs_advection_field_update | ( | cs_real_t | t_eval, |
| bool | cur2prev | ||
| ) |
For each cs_adv_field_t structures, update the values of the related field(s)
| [in] | t_eval | physical time at which one evaluates the term |
| [in] | cur2prev | true or false |
| void cs_advection_get_courant | ( | const cs_adv_field_t * | adv, |
| cs_real_t | dt_cur, | ||
| cs_real_t | courant[] | ||
| ) |
Compute the Courant number in each cell.
| [in] | adv | pointer to the advection field struct. |
| [in] | dt_cur | current time step |
| [in,out] | courant | pointer to an array storing the Courant number |
| void cs_advection_get_peclet | ( | const cs_adv_field_t * | adv, |
| const cs_property_t * | diff, | ||
| cs_real_t | t_eval, | ||
| 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] | t_eval | time at which one evaluates the advection field |
| [in,out] | peclet | pointer to an array storing the Peclet number |
1.8.16