1 #ifndef __CS_LAGR_PARTICLE_H__ 2 #define __CS_LAGR_PARTICLE_H__ 51 #define CS_LAGR_PART_TO_DELETE (1 << 0) 54 #define CS_LAGR_PART_FIXED (1 << 1) 57 #define CS_LAGR_PART_DEPOSITED (1 << 2) 60 #define CS_LAGR_PART_ROLLING (1 << 3) 63 #define CS_LAGR_PART_IMPOSED_MOTION (1 << 4) 68 #define CS_LAGR_PART_DEPOSITION_FLAGS \ 69 ( CS_LAGR_PART_TO_DELETE | CS_LAGR_PART_FIXED | CS_LAGR_PART_DEPOSITED \ 70 | CS_LAGR_PART_ROLLING | CS_LAGR_PART_IMPOSED_MOTION) 416 assert(particle_set->
p_am->
count[0][attr] > 0);
418 return (
unsigned char *)particle_set->
p_buffer 436 inline static const void *
441 assert(particle_set->
p_am->
count[0][attr] > 0);
468 assert(particle_set->
p_am->
count[time_id][attr] > 0);
472 + particle_set->
p_am->
displ[time_id][attr];
489 inline static const void *
495 assert(particle_set->
p_am->
count[time_id][attr] > 0);
499 + particle_set->
p_am->
displ[time_id][attr];
524 return (flag & mask);
574 flag = (flag | mask) - mask;
598 assert(particle_set->
p_am->
count[0][attr] > 0);
625 assert(particle_set->
p_am->
count[time_id][attr] > 0);
629 + particle_set->
p_am->
displ[time_id][attr]));
649 assert(particle_set->
p_am->
count[0][attr] > 0);
653 + particle_set->
p_am->
displ[0][attr])) = value;
676 assert(particle_set->
p_am->
count[time_id][attr] > 0);
680 + particle_set->
p_am->
displ[time_id][attr])) = value;
700 assert(particle_set->
p_am->
count[0][attr] > 0);
727 assert(particle_set->
p_am->
count[time_id][attr] > 0);
731 + particle_set->
p_am->
displ[time_id][attr]));
751 assert(particle_set->
p_am->
count[0][attr] > 0);
755 + particle_set->
p_am->
displ[0][attr])) = value;
778 assert(particle_set->
p_am->
count[time_id][attr] > 0);
782 + particle_set->
p_am->
displ[time_id][attr])) = value;
802 assert(particle_set->
p_am->
count[0][attr] > 0);
829 assert(particle_set->
p_am->
count[time_id][attr] > 0);
833 + particle_set->
p_am->
displ[time_id][attr]));
853 assert(particle_set->
p_am->
count[0][attr] > 0);
857 + particle_set->
p_am->
displ[0][attr])) = value;
880 assert(particle_set->
p_am->
count[time_id][attr] > 0);
884 + particle_set->
p_am->
displ[time_id][attr])) = value;
952 cs_lagr_particle_attr(
void *particle,
956 assert(attr_map->
count[0][attr] > 0);
958 return (
unsigned char *)particle + attr_map->
displ[0][attr];
973 inline static const void *
974 cs_lagr_particle_attr_const(
const void *particle,
978 assert(attr_map->
count[0][attr] > 0);
980 return (
const unsigned char *)particle + attr_map->
displ[0][attr];
997 cs_lagr_particle_attr_n(
void *particle,
1002 assert(attr_map->
count[time_id][attr] > 0);
1004 return (
unsigned char *)particle + attr_map->
displ[time_id][attr];
1020 inline static const void *
1021 cs_lagr_particle_attr_n_const(
const void *particle,
1026 assert(attr_map->
count[time_id][attr] > 0);
1028 return (
const unsigned char *)particle
1029 + attr_map->
displ[time_id][attr];
1045 cs_lagr_particle_get_lnum(
const void *particle,
1049 assert(attr_map->
count[0][attr] > 0);
1051 return *((
const cs_lnum_t *)( (
const unsigned char *)particle
1052 + attr_map->
displ[0][attr]));
1070 cs_lagr_particle_get_lnum_n(
const void *particle,
1075 assert(attr_map->
count[time_id][attr] > 0);
1077 return *((
const cs_lnum_t *)( (
const unsigned char *)particle
1078 + attr_map->
displ[time_id][attr]));
1093 cs_lagr_particle_set_lnum(
void *particle,
1098 assert(attr_map->
count[0][attr] > 0);
1100 *((
cs_lnum_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1118 cs_lagr_particle_set_lnum_n(
void *particle,
1124 assert(attr_map->
count[time_id][attr] > 0);
1126 *((
cs_lnum_t *)( (
unsigned char *)particle
1127 + attr_map->
displ[time_id][attr])) = value;
1143 cs_lagr_particle_get_gnum(
const void *particle,
1147 assert(attr_map->
count[0][attr] > 0);
1149 return *((
const cs_gnum_t *)( (
const unsigned char *)particle
1150 + attr_map->
displ[0][attr]));
1168 cs_lagr_particle_get_gnum_n(
const void *particle,
1173 assert(attr_map->
count[time_id][attr] > 0);
1175 return *((
const cs_gnum_t *)( (
const unsigned char *)particle
1176 + attr_map->
displ[time_id][attr]));
1191 cs_lagr_particle_set_gnum(
void *particle,
1196 assert(attr_map->
count[0][attr] > 0);
1198 *((
cs_gnum_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1216 cs_lagr_particle_set_gnum_n(
void *particle,
1222 assert(attr_map->
count[time_id][attr] > 0);
1224 *((
cs_gnum_t *)( (
unsigned char *)particle
1225 + attr_map->
displ[time_id][attr])) = value;
1241 cs_lagr_particle_get_real(
const void *particle,
1245 assert(attr_map->
count[0][attr] > 0);
1247 return *((
const cs_real_t *)( (
const unsigned char *)particle
1248 + attr_map->
displ[0][attr]));
1266 cs_lagr_particle_get_real_n(
const void *particle,
1271 assert(attr_map->
count[time_id][attr] > 0);
1273 return *((
const cs_real_t *)( (
const unsigned char *)particle
1274 + attr_map->
displ[time_id][attr]));
1289 cs_lagr_particle_set_real(
void *particle,
1294 assert(attr_map->
count[0][attr] > 0);
1296 *((
cs_real_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1314 cs_lagr_particle_set_real_n(
void *particle,
1320 assert(attr_map->
count[time_id][attr] > 0);
1322 *((
cs_real_t *)( (
unsigned char *)particle
1323 + attr_map->
displ[time_id][attr])) = value;
1339 cs_lagr_particle_source_term(
void *particle,
1346 return (
cs_real_t *)( (
unsigned char *)particle
1363 cs_lagr_particle_source_term_const(
void *particle,
1370 return (
const cs_real_t *)( (
unsigned char *)particle
Definition: cs_lagr_particle.h:117
Definition: cs_lagr_particle.h:97
cs_lnum_t n_part_out
Definition: cs_lagr_particle.h:226
void cs_lagr_particle_finalize(void)
Destroy main particle set and map if they exist.
Definition: cs_lagr_particle.c:980
cs_datatype_t
Definition: cs_defs.h:275
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:301
Definition: cs_lagr_particle.h:132
cs_lagr_particle_set_t * cs_glob_lagr_particle_set
cs_lnum_t n_part_fou
Definition: cs_lagr_particle.h:229
void cs_lagr_particle_attr_initialize(void)
Define particle map based on defined options.
Definition: cs_lagr_particle.c:661
Definition: cs_lagr_particle.h:172
Definition: cs_lagr_particle.h:140
Definition: cs_lagr_particle.h:169
ptrdiff_t * source_term_displ
Definition: cs_lagr_particle.h:212
Definition: cs_lagr_particle.h:142
Definition: cs_lagr_particle.h:158
cs_lnum_t n_part_resusp
Definition: cs_lagr_particle.h:230
Definition: cs_lagr_particle.h:100
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
Definition: cs_lagr_particle.h:155
cs_real_t weight_new
Definition: cs_lagr_particle.h:234
Definition: cs_lagr_particle.h:222
cs_lagr_attribute_t
Definition: cs_lagr_particle.h:79
Definition: cs_lagr_particle.h:120
cs_real_t weight_resusp
Definition: cs_lagr_particle.h:239
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:1254
Definition: cs_lagr_particle.h:108
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:1153
cs_real_t weight_fou
Definition: cs_lagr_particle.h:238
Definition: cs_lagr_particle.h:165
Definition: cs_lagr_particle.h:99
Definition: cs_lagr_particle.h:90
Definition: cs_lagr_particle.h:114
int cs_lagr_particle_set_resize(cs_lnum_t n_min_particles)
Resize particle set buffers if needed.
Definition: cs_lagr_particle.c:1173
const cs_lagr_attribute_map_t * p_am
Definition: cs_lagr_particle.h:244
cs_real_t weight_failed
Definition: cs_lagr_particle.h:240
Definition: cs_lagr_particle.h:96
Definition: cs_lagr_particle.h:86
cs_real_t weight_dep
Definition: cs_lagr_particle.h:237
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
Definition: cs_lagr_particle.h:84
Definition: cs_lagr_particle.h:127
unsigned char * p_buffer
Definition: cs_lagr_particle.h:246
Definition: cs_lagr_particle.h:83
void cs_lagr_set_reallocation_factor(double f)
Set reallocation factor for particle sets.
Definition: cs_lagr_particle.c:1204
ptrdiff_t(* displ)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:208
Definition: cs_lagr_particle.h:125
cs_real_t weight_out
Definition: cs_lagr_particle.h:235
Definition: cs_lagr_particle.h:148
Definition: cs_lagr_particle.h:94
Definition: cs_lagr_particle.h:133
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:1136
cs_lnum_t n_part_merged
Definition: cs_lagr_particle.h:227
cs_lnum_t n_part_dep
Definition: cs_lagr_particle.h:228
cs_lnum_t n_particles_max
Definition: cs_lagr_particle.h:242
Definition: cs_lagr_particle.h:107
void cs_lagr_set_n_user_variables(int n_user_variables)
Set number of user particle variables.
Definition: cs_lagr_particle.c:1309
Definition: cs_lagr_particle.h:153
Definition: cs_lagr_particle.h:149
Definition: cs_lagr_particle.h:128
Definition: cs_lagr_particle.h:161
Definition: cs_lagr_particle.h:109
Definition: cs_lagr_particle.h:119
Definition: cs_lagr_particle.h:91
cs_lnum_t n_part_new
Definition: cs_lagr_particle.h:225
cs_lnum_t n_particles
Definition: cs_lagr_particle.h:224
Definition: cs_lagr_particle.h:115
cs_lnum_t n_failed_part
Definition: cs_lagr_particle.h:231
Definition: cs_lagr_particle.h:160
Definition: cs_lagr_particle.h:118
void cs_lagr_particle_set_create(void)
Definition: cs_lagr_particle.c:963
Definition: cs_lagr_particle.h:116
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:1071
Definition: cs_lagr_particle.h:135
Definition: cs_lagr_particle.h:93
unsigned long long cs_lagr_get_n_g_particles_max(void)
Get global maximum number of particles.
Definition: cs_lagr_particle.c:1222
Definition: cs_lagr_particle.h:157
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
int n_time_vals
Definition: cs_lagr_particle.h:196
Definition: cs_lagr_particle.h:110
Definition: cs_lagr_particle.h:143
Definition: cs_lagr_particle.h:126
size_t lb
Definition: cs_lagr_particle.h:192
#define END_C_DECLS
Definition: cs_defs.h:511
size_t extents
Definition: cs_lagr_particle.h:190
Definition: cs_lagr_particle.h:147
Definition: cs_lagr_particle.h:81
Definition: cs_lagr_particle.h:154
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:950
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:1239
Definition: cs_lagr_particle.h:95
cs_real_t weight
Definition: cs_lagr_particle.h:233
cs_real_t weight_merged
Definition: cs_lagr_particle.h:236
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:999
Definition: cs_lagr_particle.h:177
Definition: cs_lagr_particle.h:92
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:1281
Definition: cs_lagr_particle.h:188
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:1034
Definition: cs_lagr_particle.h:136
Definition: cs_lagr_particle.h:173
Definition: cs_lagr_particle.h:134
Definition: cs_lagr_particle.h:106
Definition: cs_lagr_particle.h:124
Definition: cs_lagr_particle.h:88
int(* count)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:205
Definition: cs_lagr_particle.h:141
Definition: cs_lagr_particle.h:181