1 #ifndef __CS_LAGR_PARTICLE_H__ 2 #define __CS_LAGR_PARTICLE_H__ 371 assert(particle_set->
p_am->
count[0][attr] > 0);
373 return (
unsigned char *)particle_set->
p_buffer 391 inline static const void *
396 assert(particle_set->
p_am->
count[0][attr] > 0);
423 assert(particle_set->
p_am->
count[time_id][attr] > 0);
427 + particle_set->
p_am->
displ[time_id][attr];
444 inline static const void *
450 assert(particle_set->
p_am->
count[time_id][attr] > 0);
454 + particle_set->
p_am->
displ[time_id][attr];
474 assert(particle_set->
p_am->
count[0][attr] > 0);
501 assert(particle_set->
p_am->
count[time_id][attr] > 0);
505 + particle_set->
p_am->
displ[time_id][attr]));
525 assert(particle_set->
p_am->
count[0][attr] > 0);
529 + particle_set->
p_am->
displ[0][attr])) = value;
552 assert(particle_set->
p_am->
count[time_id][attr] > 0);
556 + particle_set->
p_am->
displ[time_id][attr])) = value;
576 assert(particle_set->
p_am->
count[0][attr] > 0);
603 assert(particle_set->
p_am->
count[time_id][attr] > 0);
607 + particle_set->
p_am->
displ[time_id][attr]));
627 assert(particle_set->
p_am->
count[0][attr] > 0);
631 + particle_set->
p_am->
displ[0][attr])) = value;
654 assert(particle_set->
p_am->
count[time_id][attr] > 0);
658 + particle_set->
p_am->
displ[time_id][attr])) = value;
678 assert(particle_set->
p_am->
count[0][attr] > 0);
705 assert(particle_set->
p_am->
count[time_id][attr] > 0);
709 + particle_set->
p_am->
displ[time_id][attr]));
729 assert(particle_set->
p_am->
count[0][attr] > 0);
733 + particle_set->
p_am->
displ[0][attr])) = value;
756 assert(particle_set->
p_am->
count[time_id][attr] > 0);
760 + particle_set->
p_am->
displ[time_id][attr])) = value;
832 assert(attr_map->
count[0][attr] > 0);
834 return (
unsigned char *)particle + attr_map->
displ[0][attr];
849 inline static const void *
854 assert(attr_map->
count[0][attr] > 0);
856 return (
const unsigned char *)particle + attr_map->
displ[0][attr];
878 assert(attr_map->
count[time_id][attr] > 0);
880 return (
unsigned char *)particle + attr_map->
displ[time_id][attr];
896 inline static const void *
902 assert(attr_map->
count[time_id][attr] > 0);
904 return (
const unsigned char *)particle
905 + attr_map->
displ[time_id][attr];
925 assert(attr_map->
count[0][attr] > 0);
927 return *((
const cs_lnum_t *)( (
const unsigned char *)particle
928 + attr_map->
displ[0][attr]));
949 = *((
const cs_lnum_t *)( (
const unsigned char *)particle
952 return CS_ABS(cell_num) - 1;
972 *((
cs_lnum_t *)( (
unsigned char *)particle
997 assert(attr_map->
count[time_id][attr] > 0);
999 return *((
const cs_lnum_t *)( (
const unsigned char *)particle
1000 + attr_map->
displ[time_id][attr]));
1020 assert(attr_map->
count[0][attr] > 0);
1022 *((
cs_lnum_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1046 assert(attr_map->
count[time_id][attr] > 0);
1048 *((
cs_lnum_t *)( (
unsigned char *)particle
1049 + attr_map->
displ[time_id][attr])) = value;
1069 assert(attr_map->
count[0][attr] > 0);
1071 return *((
const cs_gnum_t *)( (
const unsigned char *)particle
1072 + attr_map->
displ[0][attr]));
1095 assert(attr_map->
count[time_id][attr] > 0);
1097 return *((
const cs_gnum_t *)( (
const unsigned char *)particle
1098 + attr_map->
displ[time_id][attr]));
1118 assert(attr_map->
count[0][attr] > 0);
1120 *((
cs_gnum_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1144 assert(attr_map->
count[time_id][attr] > 0);
1146 *((
cs_gnum_t *)( (
unsigned char *)particle
1147 + attr_map->
displ[time_id][attr])) = value;
1167 assert(attr_map->
count[0][attr] > 0);
1169 return *((
const cs_real_t *)( (
const unsigned char *)particle
1170 + attr_map->
displ[0][attr]));
1193 assert(attr_map->
count[time_id][attr] > 0);
1195 return *((
const cs_real_t *)( (
const unsigned char *)particle
1196 + attr_map->
displ[time_id][attr]));
1216 assert(attr_map->
count[0][attr] > 0);
1218 *((
cs_real_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1242 assert(attr_map->
count[time_id][attr] > 0);
1244 *((
cs_real_t *)( (
unsigned char *)particle
1245 + attr_map->
displ[time_id][attr])) = value;
1268 return (
cs_real_t *)( (
unsigned char *)particle
1292 return (
const cs_real_t *)( (
unsigned char *)particle
static cs_gnum_t cs_lagr_particle_get_gnum(const void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get attribute value of type cs_gnum_t of a given particle in a set.
Definition: cs_lagr_particle.h:1065
Definition: cs_lagr_particle.h:67
cs_lnum_t n_part_out
Definition: cs_lagr_particle.h:183
static void * cs_lagr_particles_attr_n(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Get pointer to attribute data of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:418
void cs_lagr_particle_finalize(void)
Destroy main particle set and map if they exist.
Definition: cs_lagr_particle.c:921
static cs_real_t * cs_lagr_particle_source_term(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get pointer to 2nd order scheme attribute source terms of a particle.
Definition: cs_lagr_particle.h:1261
cs_datatype_t
Definition: cs_defs.h:255
static cs_lnum_t cs_lagr_particles_get_lnum_n(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_lnum_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:496
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:281
Definition: cs_lagr_particle.h:93
cs_lagr_particle_set_t * cs_glob_lagr_particle_set
static const cs_real_t * cs_lagr_particle_source_term_const(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get pointer to 2nd order scheme attribute source terms of a particle.
Definition: cs_lagr_particle.h:1285
static void cs_lagr_particle_set_cell_id(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lnum_t cell_id)
Set cell id of a given particle in a set.
Definition: cs_lagr_particle.h:966
cs_lnum_t n_part_fou
Definition: cs_lagr_particle.h:185
static void cs_lagr_particle_set_real_n(void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr, cs_real_t value)
Set attribute value of type cs_real_t of a given particle at a given time.
Definition: cs_lagr_particle.h:1236
static void * cs_lagr_particle_attr_n(void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr)
Get pointer to attribute data of a particle at a given time.
Definition: cs_lagr_particle.h:873
static void cs_lagr_particle_set_lnum_n(void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr, cs_lnum_t value)
Set attribute value of type cs_lnum_t of a given particle at a given time.
Definition: cs_lagr_particle.h:1040
static cs_real_t cs_lagr_particles_get_real_n(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_real_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:700
void cs_lagr_particle_attr_initialize(void)
Define particle map based on defined options.
Definition: cs_lagr_particle.c:638
Definition: cs_lagr_particle.h:101
Definition: cs_lagr_particle.h:130
#define CS_ABS(a)
Definition: cs_defs.h:414
ptrdiff_t * source_term_displ
Definition: cs_lagr_particle.h:169
static cs_lnum_t cs_lagr_particle_get_lnum(const void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get attribute value of type cs_lnum_t of a given particle in a set.
Definition: cs_lagr_particle.h:921
static const void * cs_lagr_particle_attr_const(const void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get const pointer to current attribute data of a particle.
Definition: cs_lagr_particle.h:850
Definition: cs_lagr_particle.h:103
Definition: cs_lagr_particle.h:119
cs_lnum_t n_part_resusp
Definition: cs_lagr_particle.h:186
static const void * cs_lagr_particles_attr_const(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get const pointer to current attribute data of a given particle in a set.
Definition: cs_lagr_particle.h:392
static cs_gnum_t cs_lagr_particle_get_gnum_n(const void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_gnum_t of a given particle at a given time.
Definition: cs_lagr_particle.h:1090
Definition: cs_lagr_particle.h:70
#define BEGIN_C_DECLS
Definition: cs_defs.h:451
static cs_real_t cs_lagr_particles_get_real(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_real_t of a given particle in a set.
Definition: cs_lagr_particle.h:674
Definition: cs_lagr_particle.h:116
cs_real_t weight_new
Definition: cs_lagr_particle.h:190
Definition: cs_lagr_particle.h:179
static cs_real_t * cs_lagr_particles_source_terms(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get pointer to 2nd order scheme source terms for an attribute of a given particle in a set...
Definition: cs_lagr_particle.h:777
cs_lagr_attribute_t
Definition: cs_lagr_particle.h:51
static void cs_lagr_particles_set_real(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr, cs_real_t value)
Set attribute value of type cs_real_t of a given particle in a set.
Definition: cs_lagr_particle.h:724
cs_real_t weight_resusp
Definition: cs_lagr_particle.h:194
void cs_lagr_particles_current_to_previous(cs_lagr_particle_set_t *particles, cs_lnum_t particle_id)
Copy current attributes to previous attributes.
Definition: cs_lagr_particle.c:1178
Definition: cs_lagr_particle.h:78
cs_lagr_particle_set_t * cs_lagr_get_particle_set(void)
Return pointer to the main cs_lagr_particle_set_t structure.
Definition: cs_lagr_particle.c:1094
cs_real_t weight_fou
Definition: cs_lagr_particle.h:193
Definition: cs_lagr_particle.h:126
Definition: cs_lagr_particle.h:69
Definition: cs_lagr_particle.h:60
int cs_lagr_particle_set_resize(cs_lnum_t n_min_particles)
Resize particle set buffers if needed.
Definition: cs_lagr_particle.c:1114
const cs_lagr_attribute_map_t * p_am
Definition: cs_lagr_particle.h:199
static void cs_lagr_particles_set_gnum_n(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr, cs_gnum_t value)
Set attribute value of type cs_gnum_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:648
cs_real_t weight_failed
Definition: cs_lagr_particle.h:195
static cs_gnum_t cs_lagr_particles_get_gnum(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_gnum_t of a given particle in a set.
Definition: cs_lagr_particle.h:572
Definition: cs_lagr_particle.h:66
Definition: cs_lagr_particle.h:56
cs_real_t weight_dep
Definition: cs_lagr_particle.h:192
static void cs_lagr_particle_set_gnum_n(void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr, cs_gnum_t value)
Set attribute value of type cs_gnum_t of a given particle at a given time.
Definition: cs_lagr_particle.h:1138
double cs_real_t
Floating-point value.
Definition: cs_defs.h:297
static cs_lnum_t cs_lagr_particle_get_cell_id(const void *particle, const cs_lagr_attribute_map_t *attr_map)
Get cell id of a given particle in a set.
Definition: cs_lagr_particle.h:943
Definition: cs_lagr_particle.h:54
Definition: cs_lagr_particle.h:87
unsigned char * p_buffer
Definition: cs_lagr_particle.h:201
static void cs_lagr_particles_set_lnum_n(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr, cs_lnum_t value)
Set attribute value of type cs_lnum_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:546
void cs_lagr_set_reallocation_factor(double f)
Set reallocation factor for particle sets.
Definition: cs_lagr_particle.c:1145
ptrdiff_t(* displ)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:165
static const void * cs_lagr_particle_attr_n_const(const void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr)
Get const pointer to attribute data of a particle at a given time.
Definition: cs_lagr_particle.h:897
Definition: cs_lagr_particle.h:85
cs_real_t weight_out
Definition: cs_lagr_particle.h:191
Definition: cs_lagr_particle.h:109
static void * cs_lagr_particle_attr(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get pointer to current attribute data of a particle.
Definition: cs_lagr_particle.h:828
Definition: cs_lagr_particle.h:64
Definition: cs_lagr_particle.h:121
Definition: cs_lagr_particle.h:94
Definition: cs_lagr_particle.h:88
const char * cs_lagr_attribute_name[]
void cs_lagr_particle_attr_in_range(int attr)
Check if a particle attribute is in a valid range.
Definition: cs_lagr_particle.c:1077
static void cs_lagr_particles_set_real_n(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr, cs_real_t value)
Set attribute value of type cs_real_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:750
cs_lnum_t n_part_dep
Definition: cs_lagr_particle.h:184
cs_lnum_t n_particles_max
Definition: cs_lagr_particle.h:197
Definition: cs_lagr_particle.h:77
void cs_lagr_set_n_user_variables(int n_user_variables)
Set number of user particle variables.
Definition: cs_lagr_particle.c:1234
Definition: cs_lagr_particle.h:114
static void cs_lagr_particles_set_gnum(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr, cs_gnum_t value)
Set attribute value of type cs_gnum_t of a given particle in a set.
Definition: cs_lagr_particle.h:622
Definition: cs_lagr_particle.h:110
Definition: cs_lagr_particle.h:89
static const void * cs_lagr_particles_attr_n_const(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Get const pointer to attribute data of a given particle in a set at a given time. ...
Definition: cs_lagr_particle.h:445
Definition: cs_lagr_particle.h:122
Definition: cs_lagr_particle.h:79
static cs_real_t cs_lagr_particle_get_real_n(const void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_real_t of a given particle at a given time.
Definition: cs_lagr_particle.h:1188
Definition: cs_lagr_particle.h:61
cs_lnum_t n_part_new
Definition: cs_lagr_particle.h:182
cs_lnum_t n_particles
Definition: cs_lagr_particle.h:181
cs_lnum_t n_failed_part
Definition: cs_lagr_particle.h:187
static void cs_lagr_particles_set_lnum(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr, cs_lnum_t value)
Set attribute value of type cs_lnum_t of a given particle in a set.
Definition: cs_lagr_particle.h:520
void cs_lagr_particle_set_create(void)
Definition: cs_lagr_particle.c:904
static void * cs_lagr_particles_attr(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get pointer to a current attribute of a given particle in a set.
Definition: cs_lagr_particle.h:367
static void cs_lagr_particle_set_real(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr, cs_real_t value)
Set attribute value of type cs_real_t of a given particle.
Definition: cs_lagr_particle.h:1211
int cs_lagr_check_attr_query(const cs_lagr_particle_set_t *particles, cs_lagr_attribute_t attr, cs_datatype_t datatype, int stride, int component_id)
Check that query for a given particle attribute is valid.
Definition: cs_lagr_particle.c:1012
Definition: cs_lagr_particle.h:96
Definition: cs_lagr_particle.h:63
static const cs_real_t * cs_lagr_particles_source_terms_const(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get const pointer to 2nd order scheme source terms an attribute of a given particle in a set...
Definition: cs_lagr_particle.h:803
Definition: cs_lagr_particle.h:118
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:293
static cs_real_t cs_lagr_particle_get_real(const void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr)
Get attribute value of type cs_real_t of a given particle in a set.
Definition: cs_lagr_particle.h:1163
static cs_gnum_t cs_lagr_particles_get_gnum_n(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_gnum_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:598
int n_time_vals
Definition: cs_lagr_particle.h:153
Definition: cs_lagr_particle.h:80
Definition: cs_lagr_particle.h:104
Definition: cs_lagr_particle.h:86
size_t lb
Definition: cs_lagr_particle.h:149
#define END_C_DECLS
Definition: cs_defs.h:452
size_t extents
Definition: cs_lagr_particle.h:147
Definition: cs_lagr_particle.h:108
Definition: cs_lagr_particle.h:115
const cs_lagr_attribute_map_t * cs_lagr_particle_get_attr_map(void)
Return const pointer to the main particle attribute map structure.
Definition: cs_lagr_particle.c:891
void cs_lagr_set_n_g_particles_max(unsigned long long n_g_particles_max)
Set global maximum number of particles.
Definition: cs_lagr_particle.c:1163
Definition: cs_lagr_particle.h:65
cs_real_t weight
Definition: cs_lagr_particle.h:189
void cs_lagr_part_copy(cs_lnum_t dest, cs_lnum_t src)
Copy attributes from one particle to another.
Definition: cs_lagr_particle.c:940
Definition: cs_lagr_particle.h:134
static cs_lnum_t cs_lagr_particles_get_lnum(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_lnum_t of a given particle in a set.
Definition: cs_lagr_particle.h:470
Definition: cs_lagr_particle.h:62
void cs_lagr_particle_set_dump(const cs_lagr_particle_set_t *particles)
Dump a cs_lagr_particle_set_t structure.
Definition: cs_lagr_particle.c:1205
Definition: cs_lagr_particle.h:53
Definition: cs_lagr_particle.h:145
static cs_lnum_t cs_lagr_particle_get_lnum_n(const void *particle, const cs_lagr_attribute_map_t *attr_map, int time_id, cs_lagr_attribute_t attr)
Get attribute value of type cs_lnum_t of a given particle at a given time.
Definition: cs_lagr_particle.h:992
void cs_lagr_get_attr_info(const cs_lagr_particle_set_t *particles, int time_id, cs_lagr_attribute_t attr, size_t *extents, size_t *size, ptrdiff_t *displ, cs_datatype_t *datatype, int *count)
Get data extents for a given particle attribute.
Definition: cs_lagr_particle.c:975
Definition: cs_lagr_particle.h:97
Definition: cs_lagr_particle.h:95
static void cs_lagr_particle_set_lnum(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr, cs_lnum_t value)
Set attribute value of type cs_lnum_t of a given particle.
Definition: cs_lagr_particle.h:1015
Definition: cs_lagr_particle.h:76
static void cs_lagr_particle_set_gnum(void *particle, const cs_lagr_attribute_map_t *attr_map, cs_lagr_attribute_t attr, cs_gnum_t value)
Set attribute value of type cs_gnum_t of a given particle.
Definition: cs_lagr_particle.h:1113
Definition: cs_lagr_particle.h:84
Definition: cs_lagr_particle.h:58
int(* count)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:162
Definition: cs_lagr_particle.h:102
Definition: cs_lagr_particle.h:138