|
My Project
programmer's documentation
|
Go to the documentation of this file. 1 #ifndef __CS_ADVECTION_FIELD_H__
2 #define __CS_ADVECTION_FIELD_H__
59 #define CS_ADVECTION_FIELD_POST_COURANT (1 << 0)
61 #define CS_ADVECTION_FIELD_STEADY (1 << 1)
305 static inline const char *
386 " %s: Invalid mesh location type %d.\n"
387 " Stop retrieving the advection field.\n",
502 const char *ref_name);
cs_mesh_location_type_t
Definition: cs_mesh_location.h:60
cs_advection_field_key_t
List of available keys for setting an advection field.
Definition: cs_advection_field.h:87
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.
Definition: cs_advection_field.c:2801
Definition: cs_mesh_location.h:65
void cs_advection_field_finalize_setup(void)
Last stage of the definition of an advection field based on several definitions (i....
Definition: cs_advection_field.c:972
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 versio...
Definition: cs_advection_field.c:1711
int id
Definition: cs_advection_field.h:197
int n_bdy_flux_defs
Definition: cs_advection_field.h:213
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.
Definition: cs_advection_field.c:1281
Structure storing medata for defining a quantity in a very flexible way.
Definition: cs_xdef.h:126
Definition: cs_advection_field.h:120
Definition: cs_mesh_location.h:66
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.
Definition: cs_advection_field.c:1133
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 relat...
Definition: cs_advection_field.c:1923
short int * bdy_def_ids
Definition: cs_advection_field.h:215
#define restrict
Definition: cs_defs.h:127
int cs_advection_field_get_n_fields(void)
Get the number of allocated cs_adv_field_t structures.
Definition: cs_advection_field.c:242
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:315
Definition: cs_advection_field.h:90
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.
Definition: cs_advection_field.c:2156
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.
Definition: cs_advection_field.c:568
cs_advection_field_type_t
Status of the advection field. The advection field stands for what.
Definition: cs_advection_field.h:137
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.
Definition: cs_advection_field.c:1452
#define CS_FLAG_STATE_UNIFORM
Definition: cs_flag.h:76
#define END_C_DECLS
Definition: cs_defs.h:468
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.
Definition: cs_advection_field.c:1037
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.
Definition: cs_advection_field.c:637
double cs_real_t
Floating-point value.
Definition: cs_defs.h:302
Definition: cs_advection_field.h:141
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.
Definition: cs_advection_field.c:287
Definition: cs_advection_field.h:117
#define BEGIN_C_DECLS
Definition: cs_defs.h:467
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.
Definition: cs_advection_field.c:671
Definition: cs_advection_field.h:92
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.
Definition: cs_advection_field.c:2756
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)
Definition: cs_advection_field.c:2633
Definition: cs_advection_field.h:89
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.
Definition: cs_advection_field.c:1068
int bdy_field_id
Definition: cs_advection_field.h:205
void bft_error(const char *const file_name, const int line_num, const int sys_error_code, const char *const format,...)
Calls the error handler (set by bft_error_handler_set() or default).
Definition: bft_error.c:193
int vtx_field_id
Definition: cs_advection_field.h:203
Definition: cs_advection_field.h:91
void cs_advection_field_log_setup(void)
Print all setup information related to cs_adv_field_t structures.
Definition: cs_advection_field.c:458
cs_flag_t state
Definition: cs_xdef.h:164
cs_xdef_type_t cs_xdef_get_type(const cs_xdef_t *d)
Retrieve the flag dedicated to the state.
Definition: cs_xdef.c:604
cs_xdef_t ** bdy_flux_defs
Definition: cs_advection_field.h:214
static bool cs_advection_field_is_uniform(const cs_adv_field_t *adv)
returns true if the advection field is uniform, otherwise false
Definition: cs_advection_field.h:257
void cs_advection_field_create_fields(void)
Create all needed cs_field_t structures related to an advection field.
Definition: cs_advection_field.c:864
Definition: cs_advection_field.h:140
Definition: cs_cdo_quantities.h:94
Definition: cs_property.h:104
int int_field_id
Definition: cs_advection_field.h:206
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...
Definition: cs_advection_field.c:821
cs_flag_t flag
Definition: cs_advection_field.h:201
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:298
Definition: cs_cdo_connect.h:74
cs_field_t * cs_field_by_id(int id)
Return a pointer to a field based on its id.
Definition: cs_field.c:2307
void() cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool compact, void *input, cs_real_t *retval)
Generic function pointer for an analytic function elt_ids is optional. If not NULL,...
Definition: cs_param.h:66
int cell_field_id
Definition: cs_advection_field.h:204
static const char * cs_advection_field_get_name(const cs_adv_field_t *adv)
Retrieve the name of an advection field.
Definition: cs_advection_field.h:306
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.
Definition: cs_advection_field.h:237
char *restrict name
Definition: cs_advection_field.h:198
cs_advection_field_status_t
Type of advection field.
Definition: cs_advection_field.h:115
Definition: cs_advection_field.h:121
cs_xdef_type_t
Definition: cs_xdef.h:82
cs_advection_field_type_t type
Definition: cs_advection_field.h:200
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.
Definition: cs_advection_field.c:2708
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.
Definition: cs_advection_field.c:432
Definition: cs_advection_field.h:139
Definition: cs_advection_field.h:93
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.
Definition: cs_advection_field.c:707
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.
Definition: cs_advection_field.h:326
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.
Definition: cs_advection_field.c:225
#define CS_FLAG_STATE_CELLWISE
Definition: cs_flag.h:77
unsigned short int cs_flag_t
Definition: cs_defs.h:304
cs_advection_field_status_t status
Definition: cs_advection_field.h:199
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.
Definition: cs_advection_field.c:327
Definition: cs_advection_field.h:119
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
Definition: cs_advection_field.h:280
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.
Definition: cs_advection_field.c:2343
Definition: cs_defs.h:343
cs_xdef_t * definition
Definition: cs_advection_field.h:210
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.
Definition: cs_advection_field.c:259
Definition: cs_advection_field.h:118
Definition: cs_advection_field.h:149
cs_adv_field_t * cs_advection_field_add_user(const char *name)
Add and initialize a new user-defined advection field structure.
Definition: cs_advection_field.c:310
Field descriptor.
Definition: cs_field.h:124
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.
Set of local quantities and connectivities related to a mesh cell This is a key structure for all cel...
Definition: cs_cdo_local.h:146
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...
Definition: cs_advection_field.c:779
void const cs_int_t * type
Definition: cs_measures_util.h:425
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.
Definition: cs_advection_field.h:347
Definition: cs_mesh_location.h:63
void cs_advection_field_destroy_all(void)
Free all alllocated cs_adv_field_t structures and its related array.
Definition: cs_advection_field.c:392
Definition: cs_mesh_location.h:64
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.
Definition: cs_advection_field.c:743