58#define CS_FIELD_INTENSIVE (1 << 0)
61#define CS_FIELD_EXTENSIVE (1 << 1)
66#define CS_FIELD_VARIABLE (1 << 2)
69#define CS_FIELD_PROPERTY (1 << 3)
72#define CS_FIELD_POSTPROCESS (1 << 4)
75#define CS_FIELD_ACCUMULATOR (1 << 5)
78#define CS_FIELD_USER (1 << 6)
81#define CS_FIELD_CDO (1 << 7)
396 const int time_id = 0
399 [[deprecated(
"Use `get_val_s` instead")]]
403 const int time_id = 0
406 [[deprecated(
"Use `get_val_v` instead")]]
410 const int time_id = 0
413 [[deprecated(
"Use `get_val_t` instead")]]
417 const int time_id = 0
423 const int time_id = 0
429 const int time_id = 0
435 const int time_id = 0
453 const int time_id = 0
459 const int time_id = 0
462 [[deprecated(
"Use `get_ns_val_s` instead")]]
466 const int time_id = 0
469 [[deprecated(
"Use `get_ns_val_v` instead")]]
473 const int time_id = 0
476 [[deprecated(
"Use `get_ns_val_t` instead")]]
480 const int time_id = 0
486 const int time_id = 0
492 const int time_id = 0
498 const int time_id = 0
510 const int time_id = -1
516 const int time_id = -1
547 const int series_idx,
767 const char *name_suffix,
1017 const char *name_suffix);
1038 const char *name_suffix);
1063 const char *name_part_2,
1064 const char *name_part_3);
1168 double default_value,
1190 const char *default_value,
1216 const void *default_value,
1352extern "C" [[deprecated(
"Use f->set_key_int instead")]]
int
1371extern "C" [[deprecated(
"Use f->get_key_int instead")]]
int
1393extern "C" [[deprecated(
"Use f->set_key_int_bits instead")]]
int
1416extern "C" [[deprecated(
"Use f->set_key_double instead")]]
int
1435extern "C" [[deprecated(
"Use f->get_key_double instead")]]
double
1457extern "C" [[deprecated(
"Use f->set_key_str instead")]]
int
1476extern "C" [[deprecated(
"Use f->get_key_str instead")]]
const char *
Define a templated array class (owner of data)
Definition: cs_array.h:1118
Define a templated mdspan class (non owner of data)
Definition: cs_mdspan.h:68
Field boundary condition descriptor (for variables)
Definition: cs_field.h:107
cs::mdspan< cs_real_t, 2, cs::layout::left > get_val_ext_v() const
Return a 2D span view of boundary condition external vector values.
Definition: cs_field.cpp:5888
cs_real_t * rcodcl2
Definition: cs_field.h:113
cs_real_t * af
Definition: cs_field.h:137
cs_span< cs_real_t > get_val_ext_s() const
Return a 1D span view of boundary condition external scalar values.
Definition: cs_field.cpp:5848
~cs_field_bc_coeffs_t()
Definition: cs_field.h:189
cs_real_t * bc
Definition: cs_field.h:142
cs_real_t * rcodcl3
Definition: cs_field.h:115
cs_real_t * b
Definition: cs_field.h:136
cs_field_bc_coeffs_t(void)
Definition: cs_field.h:148
cs_span< cs_real_t > get_q_ext_s() const
Return a 1D span view of boundary condition prescribed flux.
Definition: cs_field.cpp:6062
cs_real_t * flux_diff
Definition: cs_field.h:132
cs_real_t * a
Definition: cs_field.h:135
cs_span< cs_real_t > get_h_ext() const
Return a 1D span view of boundary condition external exchange coefficient.
Definition: cs_field.cpp:5931
cs_real_t * ad
Definition: cs_field.h:139
cs_span< cs_real_t > get_val_ext() const
Return a 1D span view of boundary condition external values.
Definition: cs_field.cpp:5826
cs::mdspan< cs_real_t, 2, cs::layout::left > get_q_ext_v() const
Return a 2D span view of boundary condition vector prescribed flux.
Definition: cs_field.cpp:6081
cs::mdspan< cs_real_t, 2, cs::layout::left > get_val_ext_t() const
Return a 2D span view of boundary condition external tensor values.
Definition: cs_field.cpp:5909
cs::mdspan< cs_real_t, 2, cs::layout::left > get_h_ext_v() const
Return a 2D span view of boundary condition vector external exchange coefficients.
Definition: cs_field.cpp:5997
cs_real_t * h_int_tot
Definition: cs_field.h:117
cs_field_bc_coeffs_t(int field_dim)
Definition: cs_field.h:154
cs_real_t * ac
Definition: cs_field.h:141
cs_real_t * rcodcl1
Definition: cs_field.h:112
cs_span< cs_real_t > get_h_ext_s() const
Return a 1D span view of boundary condition external exchange coefficient.
Definition: cs_field.cpp:5976
cs_real_t * bf
Definition: cs_field.h:138
cs_real_t * bd
Definition: cs_field.h:140
cs::mdspan< cs_real_t, 2, cs::layout::left > get_q_ext_2d() const
Return a 2D span view of boundary condition prescribed flux (1st dimension: face id,...
Definition: cs_field.cpp:6038
cs_real_t * val_f_pre
Definition: cs_field.h:130
cs::mdspan< cs_real_t, 2, cs::layout::left > get_val_ext_2d() const
Return a 2D span view of boundary condition external values (1st dimension: face id,...
Definition: cs_field.cpp:5868
cs_span< cs_real_t > get_q_ext() const
Return a 1D span view of boundary condition prescribed flux.
Definition: cs_field.cpp:6018
cs_real_t * flux_rad
Definition: cs_field.h:125
cs_real_t * val_f
Definition: cs_field.h:129
cs::mdspan< cs_real_t, 2, cs::layout::left > get_h_ext_2d() const
Return a 2D span view of boundary condition external exchange coefficient (1st dimension: face id,...
Definition: cs_field.cpp:5951
int * icodcl
Definition: cs_field.h:111
cs_real_t * h_rad
Definition: cs_field.h:121
Field descriptor.
Definition: cs_field.h:275
void update_sub_fields_mapping(void) const
Update data mapping for all sub-fields.
Definition: cs_field.cpp:5685
cs_array_2d< cs_real_t > ** _vals
Definition: cs_field.h:529
CS_F_HOST_DEVICE void set_ns_parameters(const int series_size, const int series_idx, const int series_owner)
Definition: cs_field.h:545
const char * get_key_str(int key_id) const
Return a character string for a given key associated with a field.
Definition: cs_field.cpp:4893
int location_id
Definition: cs_field.h:286
void map_values(cs_real_t *val_new, cs_real_t *val_pre_new)
Map existing value arrays to field descriptor.
Definition: cs_field.cpp:5705
CS_F_HOST_DEVICE int series_size() const
Definition: cs_field.h:586
void update_public_pointers(void)
Update public pointers based on private members.
Definition: cs_field.cpp:5566
CS_F_HOST_DEVICE int series_owner() const
Definition: cs_field.h:594
cs_span_2d< cs_real_t > get_ns_vals_s(const int time_id=0) const
Return a 1D span view of field values. If the field is not a scalar a fatal error is provoked.
Definition: cs_field.cpp:5353
CS_F_HOST void map_to_ns_data(void)
Map internal and public pointers to data series owner.
Definition: cs_field.cpp:5795
cs_real_t * grad
Definition: cs_field.h:305
cs_span_2d< cs_real_t > view(const int time_id=0) const
Return a 2D span view of field values (n_vals, dim), even if the field is a scalar,...
Definition: cs_field.cpp:5061
cs_real_t ** vals
Definition: cs_field.h:290
CS_F_HOST_DEVICE bool is_sub_field_of(const int owner_id) const
Definition: cs_field.h:627
int get_key_int(int key_id) const
Return a integer value for a given key associated with a field.
Definition: cs_field.cpp:4507
cs_span_2d< cs_real_t > get_ns_val_s(const int time_id=0) const
Return a 1D span view of field values. If the field is not a scalar a fatal error is provoked.
Definition: cs_field.cpp:5455
int set_key_int(int key_id, int value)
Assign a integer value for a given key to a field.
Definition: cs_field.cpp:4445
int ns_idx
Definition: cs_field.h:315
CS_F_HOST_DEVICE bool is_sub_field() const
Definition: cs_field.h:618
cs_span_3d< cs_real_t > get_ns_vals_v(const int time_id=0) const
Return a 2D span view of field values. If the field is not a vector a fatal error is provoked.
Definition: cs_field.cpp:5389
cs_span< cs_real_t > get_val_s(const int time_id=0) const
Return a 1D span view of field values. If the field is not a scalar a fatal error is provoked.
Definition: cs_field.cpp:5080
cs_span_2d< cs_real_t > get_val_t(const int time_id=0) const
Return a 2D span view of field values. If the field is not a tensor a fatal error is provoked.
Definition: cs_field.cpp:5129
cs_span_2d< cs_real_t > get_grad_s() const
Return a 2D span view of gradient values. If the field is not a scalar or if the gradient member is n...
Definition: cs_field.cpp:5237
cs_span_3d< cs_real_t > get_grad_t() const
Return a 3D span view of gradient values. If the field is not a tensor or if the gradient member is n...
Definition: cs_field.cpp:5296
int type
Definition: cs_field.h:282
cs_span_3d< cs_real_t > get_ns_val_v(const int time_id=0) const
Return a 2D span view of field values. If the field is not a vector a fatal error is provoked.
Definition: cs_field.cpp:5489
cs_span_3d< cs_real_t > get_ns_val_t(const int time_id=0) const
Return a 2D span view of field values. If the field is not a tensor a fatal error is provoked.
Definition: cs_field.cpp:5521
int n_time_vals
Definition: cs_field.h:288
void clear(const int time_id=-1)
Clear data allocation.
Definition: cs_field.cpp:5650
int set_key_str(int key_id, const char *str)
Assign a character string for a given key to a field.
Definition: cs_field.cpp:4828
int clear_key_int_bits(int key_id, int mask)
Set integer bits matching a mask to 0 for a given key for a field.
Definition: cs_field.cpp:4636
CS_F_HOST_DEVICE bool has_sub_fields() const
Definition: cs_field.h:610
double get_key_double(int key_id) const
Return a floating point value for a given key associated with a field.
Definition: cs_field.cpp:4745
cs_real_t * val_pre
Definition: cs_field.h:301
cs_alloc_mode_t get_vals_alloc_mode(const int time_id=0) const
Get the allocation mode of the values array.
Definition: cs_field.cpp:5552
cs_span_2d< cs_real_t > get_val_v(const int time_id=0) const
Return a 2D span view of field values. If the field is not a vector a fatal error is provoked.
Definition: cs_field.cpp:5103
int ns_owner
Definition: cs_field.h:316
void update_size(const int time_id=-1)
Resize field values automatically (vals, val, val_pre) based on the corresponding mesh_location.
Definition: cs_field.cpp:5589
CS_F_HOST_DEVICE bool is_series_owner() const
Definition: cs_field.h:562
cs_span< cs_real_t > get_vals_s(const int time_id=0) const
Return a 1D span view of field values. If the field is not a scalar a fatal error is provoked.
Definition: cs_field.cpp:5157
const char * name
Definition: cs_field.h:279
cs_span_3d< cs_real_t > get_grad_v() const
Return a 3D span view of gradient values. If the field is not a vector or if the gradient member is n...
Definition: cs_field.cpp:5266
int set_key_int_bits(int key_id, int mask)
Set integer bits matching a mask to 1 for a given key for a field.
Definition: cs_field.cpp:4590
bool is_owner
Definition: cs_field.h:312
const void * get_key_struct(const int key_id, void *s) const
Return a structure for a given key associated with a field.
Definition: cs_field.cpp:4971
int set_key_double(int key_id, double value)
Assign a floating point value for a given key to a field.
Definition: cs_field.cpp:4683
cs_real_t * val
Definition: cs_field.h:298
int id
Definition: cs_field.h:281
cs_span_2d< cs_real_t > get_vals_t(const int time_id=0) const
Return a 2D span view of field values. If the field is not a tensor a fatal error is provoked.
Definition: cs_field.cpp:5210
cs_span_2d< cs_real_t > get_vals_v(const int time_id=0) const
Return a 2D span view of field values. If the field is not a vector a fatal error is provoked.
Definition: cs_field.cpp:5182
CS_F_HOST void initialize_sub_fields(void)
Initialize values related to sub-fields (indices mainly)
Definition: cs_field.cpp:5737
cs_span_3d< cs_real_t > ns_view(const int time_id=0) const
Return a 3D span view of field values. The view is of dimensions (ns_fields, n_vals,...
Definition: cs_field.cpp:5325
cs_field_bc_coeffs_t * bc_coeffs
Definition: cs_field.h:309
cs_array_3d< cs_real_t > ** _ns_vals
Definition: cs_field.h:530
CS_F_HOST_DEVICE void set_ns_owner(int owner_id)
Definition: cs_field.h:535
CS_F_HOST_DEVICE bool is_part_of_series() const
Definition: cs_field.h:570
int dim
Definition: cs_field.h:284
CS_F_HOST_DEVICE bool owner() const
Definition: cs_field.h:578
cs_span_3d< cs_real_t > get_ns_vals_t(const int time_id=0) const
Return a 2D span view of field values. If the field is not a tensor a fatal error is provoked.
Definition: cs_field.cpp:5423
CS_F_HOST_DEVICE int series_id() const
Definition: cs_field.h:602
int ns_size
Definition: cs_field.h:314
#define CS_F_HOST_DEVICE
Definition: cs_defs.h:555
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
#define CS_F_HOST
Definition: cs_defs.h:553
int cs_field_set_key_int(cs_field_t *f, int key_id, int value)
Assign a integer value for a given key to a field.
Definition: cs_field.cpp:3174
void cs_field_bc_coeffs_init(cs_field_bc_coeffs_t *bc_coeffs)
Definition: cs_field.cpp:1353
void cs_field_init_bc_coeffs(cs_field_t *f)
Initialize boundary condition coefficients arrays.
Definition: cs_field.cpp:2055
int cs_field_define_key_int(const char *name, int default_value, int type_flag)
Define a key for an integer value by its name and return an associated id.
Definition: cs_field.cpp:2783
int cs_field_get_key_int(const cs_field_t *f, int key_id)
Return a integer value for a given key associated with a field.
Definition: cs_field.cpp:3199
void cs_field_get_bc_coeff_mult(const cs_field_t *f, cs_lnum_t *i_mult, cs_lnum_t *a_mult, cs_lnum_t *b_mult)
int cs_field_key_flag(int key_id)
Get the type flag associated with a given key id.
Definition: cs_field.cpp:3020
const void * cs_field_get_key_struct_const_ptr(const cs_field_t *f, int key_id)
Return a read-only pointer to a simple structure for a given key to a field.
Definition: cs_field.cpp:3543
void cs_field_set_n_time_vals(cs_field_t *f, int n_time_vals)
Change the number of time values managed by a field.
Definition: cs_field.cpp:1687
cs_field_t * cs_field_by_name(const char *name)
Return a pointer to a field based on its name.
Definition: cs_field.cpp:2436
cs_field_t * cs_field_by_double_composite_name_try(const char *name_part_1, const char *name_part_2, const char *name_part_3)
Return pointer to a field based on a double composite name if present.
Definition: cs_field.cpp:2568
int cs_field_define_key_str(const char *name, const char *default_value, int type_flag)
Define a key for a string value by its name and return an associated id.
Definition: cs_field.cpp:2857
void cs_field_set_values(cs_field_t *f, cs_real_t c)
Set current field values to the given constant.
Definition: cs_field.cpp:2227
cs_field_t * cs_field_by_composite_name(const char *name_prefix, const char *name_suffix)
Return a pointer to a field based on a composite name.
Definition: cs_field.cpp:2486
void * cs_field_get_key_struct_ptr(cs_field_t *f, int key_id)
Return a pointer to a simple structure for a given key to a field.
Definition: cs_field.cpp:3464
void cs_field_destroy_all_keys(void)
Destroy all defined field keys and associated values.
Definition: cs_field.cpp:2988
cs_field_t * cs_field_create(const char *name, int type_flag, int location_id, int dim, bool has_previous)
Create a field descriptor.
Definition: cs_field.cpp:1525
int cs_field_n_fields(void)
Return the number of defined fields.
Definition: cs_field.cpp:1505
void cs_field_log_defs(void)
Print info relative to all field definitions to log file.
Definition: cs_field.cpp:3602
const char * cs_field_get_label(const cs_field_t *f)
Return a label associated with a field.
Definition: cs_field.cpp:4270
bool cs_field_is_key_locked(const cs_field_t *f, int key_id)
Query if a given key has been locked for a field.
Definition: cs_field.cpp:3097
void cs_field_allocate_values(cs_field_t *f)
Allocate arrays for field values.
Definition: cs_field.cpp:1783
void cs_field_bc_coeffs_shallow_copy(const cs_field_bc_coeffs_t *ref, cs_field_bc_coeffs_t *copy)
Shallow copy of boundary condition coefficients.
Definition: cs_field.cpp:1389
int cs_field_set_key_str(cs_field_t *f, int key_id, const char *str)
Assign a character string for a given key to a field.
Definition: cs_field.cpp:3329
int cs_field_set_key_struct(cs_field_t *f, int key_id, void *s)
Assign a simple structure for a given key to a field.
Definition: cs_field.cpp:3381
cs_field_error_type_t
Definition: cs_field.h:92
@ CS_FIELD_INVALID_KEY_NAME
Definition: cs_field.h:95
@ CS_FIELD_INVALID_FIELD
Definition: cs_field.h:99
@ CS_FIELD_INVALID_TYPE
Definition: cs_field.h:98
@ CS_FIELD_INVALID_CATEGORY
Definition: cs_field.h:97
@ CS_FIELD_LOCKED
Definition: cs_field.h:100
@ CS_FIELD_OK
Definition: cs_field.h:94
@ CS_FIELD_INVALID_KEY_ID
Definition: cs_field.h:96
void() cs_field_clear_key_struct_t(void *t)
Definition: cs_field.h:662
const char * cs_field_get_key_str(const cs_field_t *f, int key_id)
Return a string for a given key associated with a field.
Definition: cs_field.cpp:3355
bool cs_field_is_key_set(const cs_field_t *f, int key_id)
Query if a given key has been set for a field.
Definition: cs_field.cpp:3066
cs_field_t * cs_field_by_name_try(const char *name)
Return a pointer to a field based on its name if present.
Definition: cs_field.cpp:2462
cs_field_t * cs_field(const char *name)
Return a pointer to a field based on its name. This function requires that a field of the given name ...
Definition: cs_field.cpp:4319
int cs_field_set_key_int_bits(cs_field_t *f, int key_id, int mask)
Set integer bits matching a mask to 1 for a given key for a field.
Definition: cs_field.cpp:3227
void cs_field_bc_coeffs_clear(cs_field_bc_coeffs_t *bc_coeffs)
Free contents of local boundary condition coefficients.
Definition: cs_field.cpp:1468
void cs_field_key_disable_setup_log(int key_id)
Disable logging setup values associated with a given key.
Definition: cs_field.cpp:3044
int cs_field_define_sub_key(const char *name, int parent_id)
Define a sub key.
Definition: cs_field.cpp:2962
void cs_field_allocate_or_map_all(void)
Allocate arrays for all defined fields based on their location.
Definition: cs_field.cpp:2370
void cs_field_bc_coeffs_free_copy(const cs_field_bc_coeffs_t *ref, cs_field_bc_coeffs_t *copy)
Free copy of boundary condition coefficients.
Definition: cs_field.cpp:1409
void cs_field_destroy_all(void)
Destroy all defined fields.
Definition: cs_field.cpp:2294
void cs_field_map_values(cs_field_t *f, cs_real_t *val, cs_real_t *val_pre)
Map existing value arrays to field descriptor.
Definition: cs_field.cpp:1842
cs_field_t * cs_field_create_by_composite_name(const char *name_prefix, const char *name_suffix, int type_flag, int location_id, int dim, bool has_previous)
Create a field descriptor.
Definition: cs_field.cpp:1566
void cs_field_remap_sub_fields_data(const int owner_id)
Update data pointers of sub-fields of a given field.
Definition: cs_field.cpp:1819
const void * cs_field_get_key_struct(const cs_field_t *f, int key_id, void *s)
Return a structure for a given key associated with a field.
Definition: cs_field.cpp:3433
void cs_field_log_info(const cs_field_t *f, int log_keywords)
Print info relative to a given field to log file.
Definition: cs_field.cpp:3740
void cs_field_allocate_bc_coeffs(cs_field_t *f, bool have_flux_bc, bool have_mom_bc, bool have_conv_bc, bool have_exch_bc, bool have_rad_bc)
Allocate boundary condition coefficients arrays.
Definition: cs_field.cpp:1884
void cs_field_log_key_defs(void)
Print info relative to all key definitions to log file.
Definition: cs_field.cpp:3935
cs_field_t * cs_field_by_id(int id)
Return a pointer to a field based on its id.
Definition: cs_field.cpp:2412
double cs_field_get_key_double(const cs_field_t *f, int key_id)
Return a floating point value for a given key associated with a field.
Definition: cs_field.cpp:3302
const char * cs_glob_field_comp_name_9[]
const char * cs_glob_field_comp_name_6[]
int cs_field_define_key_struct(const char *name, const void *default_value, cs_field_log_key_struct_t *log_func, cs_field_log_key_struct_t *log_func_default, cs_field_clear_key_struct_t *clear_func, size_t size, int type_flag)
Define a key for a structure value by its name and return an associated id.
Definition: cs_field.cpp:2909
int cs_field_key_id(const char *name)
Return an id associated with a given key name.
Definition: cs_field.cpp:2728
int cs_field_define_key_double(const char *name, double default_value, int type_flag)
Define a key for an floating point value by its name and return an associated id.
Definition: cs_field.cpp:2820
void cs_field_define_keys_base(void)
Define base keys.
Definition: cs_field.cpp:4244
int cs_field_key_id_try(const char *name)
Return an id associated with a given key name if present.
Definition: cs_field.cpp:2755
cs_field_t * cs_field_find_or_create(const char *name, int type_flag, int location_id, int dim, bool has_previous)
Return a field matching a given name and attributes, creating it if necessary.
Definition: cs_field.cpp:1623
void cs_field_log_fields(int log_keywords)
Print info relative to all defined fields to log file.
Definition: cs_field.cpp:3874
void cs_field_current_to_previous(cs_field_t *f)
Copy current field values to previous values if applicable.
Definition: cs_field.cpp:2253
void cs_field_log_all_key_vals(bool log_defaults)
Print info relative to all given field keys to log file.
Definition: cs_field.cpp:4213
int cs_field_lock_key(cs_field_t *f, int key_id)
Lock a field relative to a given key.
Definition: cs_field.cpp:3129
cs_field_t * cs_field_by_composite_name_try(const char *name_prefix, const char *name_suffix)
Return a pointer to a field based on a composite name if present.
Definition: cs_field.cpp:2517
void cs_field_component_id_by_name(const char *name, int *f_id, int *c_id)
Return the id of a defined field and an associated component based on a component name.
Definition: cs_field.cpp:2639
int cs_field_set_key_double(cs_field_t *f, int key_id, double value)
Assign a floating point value for a given key to a field.
Definition: cs_field.cpp:3277
int cs_field_id_by_name(const char *name)
Return the id of a defined field based on its name.
Definition: cs_field.cpp:2618
void() cs_field_log_key_struct_t(const void *t)
Definition: cs_field.h:652
const char * cs_glob_field_comp_name_3[]
cs_field_t * cs_field_try(const char *name)
Return a pointer to a field based on its name. If no field of the given name is defined,...
Definition: cs_field.cpp:4392
void cs_field_allocate_gradient(cs_field_t *f)
Allocate arrays for field gradient.
Definition: cs_field.cpp:2203
void cs_field_log_key_vals(int key_id, bool log_defaults)
Print info relative to a given field key to log file.
Definition: cs_field.cpp:4089
@ t
Definition: cs_field_pointer.h:91
cs_alloc_mode_t
Definition: cs_mem.h:46