1 #ifndef __CS_ADVECTION_FIELD_H__ 2 #define __CS_ADVECTION_FIELD_H__ 56 #define CS_ADVECTION_FIELD_POST_COURANT (1 << 0) // postprocess Courant number 57 #define CS_ADVECTION_FIELD_STEADY (1 << 1) // steady-state field 191 const char *ref_name);
void cs_advection_field_get_flux_dfaces(const cs_cell_mesh_t *cm, 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...
Definition: cs_advection_field.c:925
time step descriptor
Definition: cs_time_step.h:51
void cs_advection_field_update(bool cur2prev)
For each cs_adv_field_t structures, update the values of the related field(s)
Definition: cs_advection_field.c:1291
#define restrict
Definition: cs_defs.h:122
cs_xdef_eval_cw_t * get_eval_at_cell_cw
Definition: cs_advection_field.h:76
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, it enables to access in coords at the right location and the same thing to fill retval if compact is set to false.
Definition: cs_param.h:66
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.c:318
cs_xdef_t * definition
Definition: cs_advection_field.h:71
void cs_advection_field_def_by_array(cs_adv_field_t *adv, cs_flag_t loc, cs_real_t *array, cs_lnum_t *index)
Define a cs_adv_field_t structure thanks to an array of values.
Definition: cs_advection_field.c:561
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.
Definition: cs_advection_field.c:852
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.
Definition: cs_advection_field.c:1339
Definition: cs_advection_field.h:59
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:174
Field descriptor.
Definition: cs_field.h:124
cs_mesh_location_type_t
Definition: cs_mesh_location.h:60
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.
Definition: cs_advection_field.c:489
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:523
const char * cs_advection_field_get_name(const cs_adv_field_t *adv)
Retrieve the name of an advection field.
Definition: cs_advection_field.c:367
#define BEGIN_C_DECLS
Definition: cs_defs.h:461
cs_flag_t flag
Definition: cs_advection_field.h:65
int cell_field_id
Definition: cs_advection_field.h:67
cs_advection_field_key_t
Definition: cs_advection_field.h:82
cs_real_t cs_advection_field_get_flux_tef(const cs_adv_field_t *adv, const cs_cell_mesh_t *cm, const cs_real_t tef_meas, 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 ...
Definition: cs_advection_field.c:1146
void() cs_xdef_eval_cw_t(const cs_cell_mesh_t *cm, const cs_time_step_t *ts, void *input, cs_real_t *eval)
Function pointer for evaluating a quantity defined through a descriptor (cs_xdef_t structure) by a ce...
Definition: cs_xdef_eval.h:92
Definition: cs_advection_field.h:85
void cs_advection_field_in_cell(const cs_cell_mesh_t *cm, 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:743
Definition: cs_cdo_local.h:133
cs_xdef_eval_t * get_eval_at_cell
Definition: cs_advection_field.h:75
Definition: cs_cdo_connect.h:69
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.
Definition: cs_advection_field.c:110
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:450
double cs_real_t
Floating-point value.
Definition: cs_defs.h:297
int cs_advection_field_get_n_fields(void)
Get the number of allocated cs_adv_field_t structures.
Definition: cs_advection_field.c:129
Definition: cs_cdo_quantities.h:94
Definition: cs_defs.h:337
cs_xdef_eval_t * get_eval_all_vertices
Definition: cs_advection_field.h:74
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:774
cs_flag_t loc_flag
Definition: cs_advection_field.h:64
Definition: cs_advection_field.h:84
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.c:387
int id
Definition: cs_advection_field.h:61
Definition: cs_advection_field.h:86
cs_xdef_type_t
Definition: cs_xdef.h:78
void cs_advection_field_get_at_xyz(const cs_adv_field_t *adv, const cs_cell_mesh_t *cm, const cs_real_3_t xyz, cs_nvec3_t *vect)
Compute the value of the advection field for a given face.
Definition: cs_advection_field.c:814
Structure storing medata for defining a quantity in a very flexible way.
Definition: cs_xdef.h:122
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:309
Definition: cs_advection_field.h:88
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:146
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:293
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.
Definition: cs_advection_field.c:887
void cs_advection_field_log_setup(void)
Print all setup information related to cs_adv_field_t structures.
Definition: cs_advection_field.c:402
void cs_advection_field_create_fields(void)
Create all needed cs_field_t structures related to an advection field.
Definition: cs_advection_field.c:633
#define END_C_DECLS
Definition: cs_defs.h:462
void cs_advection_field_destroy_all(void)
Free all alllocated cs_adv_field_t structures and its related array.
Definition: cs_advection_field.c:254
unsigned short int cs_flag_t
Definition: cs_defs.h:299
Definition: cs_advection_field.h:87
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.c:341
int vtx_field_id
Definition: cs_advection_field.h:66
void() cs_xdef_eval_t(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool compact, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *ts, void *input, cs_real_t *eval)
Function pointer for evaluating a quantity defined through a descriptor (cs_xdef_t structure) ...
Definition: cs_xdef_eval.h:68
char *restrict name
Definition: cs_advection_field.h:62
Definition: cs_property.h:63
void() cs_xdef_eval_cw_xyz_t(const cs_cell_mesh_t *cm, cs_lnum_t n_points, const cs_real_t *xyz, const cs_time_step_t *ts, void *input, cs_real_t *eval)
Function pointer for evaluating a quantity at several locations in a cell defined through a descripto...
Definition: cs_xdef_eval.h:113
cs_xdef_eval_cw_xyz_t * get_eval_at_xyz_cw
Definition: cs_advection_field.h:77
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:600
cs_adv_field_t * cs_advection_field_add(const char *name)
Add and initialize a new advection field structure.
Definition: cs_advection_field.c:197
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:288
cs_field_t * cs_advection_field_get_field(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.c:706