1 #ifndef __CS_LAGR_PARTICLE_H__ 2 #define __CS_LAGR_PARTICLE_H__ 342 assert(particle_set->
p_am->
count[0][attr] > 0);
344 return (
unsigned char *)particle_set->
p_buffer 362 inline static const void *
367 assert(particle_set->
p_am->
count[0][attr] > 0);
394 assert(particle_set->
p_am->
count[time_id][attr] > 0);
398 + particle_set->
p_am->
displ[time_id][attr];
415 inline static const void *
421 assert(particle_set->
p_am->
count[time_id][attr] > 0);
425 + particle_set->
p_am->
displ[time_id][attr];
445 assert(particle_set->
p_am->
count[0][attr] > 0);
472 assert(particle_set->
p_am->
count[time_id][attr] > 0);
476 + particle_set->
p_am->
displ[time_id][attr]));
496 assert(particle_set->
p_am->
count[0][attr] > 0);
500 + particle_set->
p_am->
displ[0][attr])) = value;
523 assert(particle_set->
p_am->
count[time_id][attr] > 0);
527 + particle_set->
p_am->
displ[time_id][attr])) = value;
547 assert(particle_set->
p_am->
count[0][attr] > 0);
574 assert(particle_set->
p_am->
count[time_id][attr] > 0);
578 + particle_set->
p_am->
displ[time_id][attr]));
598 assert(particle_set->
p_am->
count[0][attr] > 0);
602 + particle_set->
p_am->
displ[0][attr])) = value;
625 assert(particle_set->
p_am->
count[time_id][attr] > 0);
629 + particle_set->
p_am->
displ[time_id][attr])) = value;
649 assert(particle_set->
p_am->
count[0][attr] > 0);
676 assert(particle_set->
p_am->
count[time_id][attr] > 0);
680 + particle_set->
p_am->
displ[time_id][attr]));
700 assert(particle_set->
p_am->
count[0][attr] > 0);
704 + particle_set->
p_am->
displ[0][attr])) = value;
727 assert(particle_set->
p_am->
count[time_id][attr] > 0);
731 + particle_set->
p_am->
displ[time_id][attr])) = value;
803 assert(attr_map->
count[0][attr] > 0);
805 return (
unsigned char *)particle + attr_map->
displ[0][attr];
820 inline static const void *
825 assert(attr_map->
count[0][attr] > 0);
827 return (
const unsigned char *)particle + attr_map->
displ[0][attr];
849 assert(attr_map->
count[time_id][attr] > 0);
851 return (
unsigned char *)particle + attr_map->
displ[time_id][attr];
867 inline static const void *
873 assert(attr_map->
count[time_id][attr] > 0);
875 return (
const unsigned char *)particle
876 + attr_map->
displ[time_id][attr];
896 assert(attr_map->
count[0][attr] > 0);
898 return *((
const cs_lnum_t *)( (
const unsigned char *)particle
899 + attr_map->
displ[0][attr]));
920 = *((
const cs_lnum_t *)( (
const unsigned char *)particle
923 return CS_ABS(cell_num) - 1;
965 assert(attr_map->
count[time_id][attr] > 0);
967 return *((
const cs_lnum_t *)( (
const unsigned char *)particle
968 + attr_map->
displ[time_id][attr]));
988 assert(attr_map->
count[0][attr] > 0);
990 *((
cs_lnum_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1014 assert(attr_map->
count[time_id][attr] > 0);
1016 *((
cs_lnum_t *)( (
unsigned char *)particle
1017 + attr_map->
displ[time_id][attr])) = value;
1037 assert(attr_map->
count[0][attr] > 0);
1039 return *((
const cs_gnum_t *)( (
const unsigned char *)particle
1040 + attr_map->
displ[0][attr]));
1063 assert(attr_map->
count[time_id][attr] > 0);
1065 return *((
const cs_gnum_t *)( (
const unsigned char *)particle
1066 + attr_map->
displ[time_id][attr]));
1086 assert(attr_map->
count[0][attr] > 0);
1088 *((
cs_gnum_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1112 assert(attr_map->
count[time_id][attr] > 0);
1114 *((
cs_gnum_t *)( (
unsigned char *)particle
1115 + attr_map->
displ[time_id][attr])) = value;
1135 assert(attr_map->
count[0][attr] > 0);
1137 return *((
const cs_real_t *)( (
const unsigned char *)particle
1138 + attr_map->
displ[0][attr]));
1161 assert(attr_map->
count[time_id][attr] > 0);
1163 return *((
const cs_real_t *)( (
const unsigned char *)particle
1164 + attr_map->
displ[time_id][attr]));
1184 assert(attr_map->
count[0][attr] > 0);
1186 *((
cs_real_t *)((
unsigned char *)particle + attr_map->
displ[0][attr]))
1210 assert(attr_map->
count[time_id][attr] > 0);
1212 *((
cs_real_t *)( (
unsigned char *)particle
1213 + attr_map->
displ[time_id][attr])) = value;
1236 return (
cs_real_t *)( (
unsigned char *)particle
1260 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:1033
Definition: cs_lagr_particle.h:67
cs_lnum_t n_part_out
Definition: cs_lagr_particle.h:176
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:389
void cs_lagr_particle_finalize(void)
Destroy main particle set and map if they exist.
Definition: cs_lagr_particle.c:902
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:1229
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:467
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:280
Definition: cs_lagr_particle.h:86
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:1253
cs_lnum_t n_part_fou
Definition: cs_lagr_particle.h:178
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:1204
static void cs_lagr_particle_set_cell_id(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lnum_t cell_id)
Set cell id of a given particle in a set.
Definition: cs_lagr_particle.h:937
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:844
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:1008
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:671
void cs_lagr_particle_attr_initialize(void)
Define particle map based on defined options.
Definition: cs_lagr_particle.c:637
Definition: cs_lagr_particle.h:94
Definition: cs_lagr_particle.h:123
#define CS_ABS(a)
Definition: cs_defs.h:411
ptrdiff_t * source_term_displ
Definition: cs_lagr_particle.h:162
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:892
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:821
Definition: cs_lagr_particle.h:96
Definition: cs_lagr_particle.h:112
cs_lnum_t n_part_resusp
Definition: cs_lagr_particle.h:179
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:363
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:1058
#define BEGIN_C_DECLS
Definition: cs_defs.h:448
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:645
Definition: cs_lagr_particle.h:109
cs_real_t weight_new
Definition: cs_lagr_particle.h:183
Definition: cs_lagr_particle.h:172
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:748
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:695
cs_real_t weight_resusp
Definition: cs_lagr_particle.h:187
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:1090
Definition: cs_lagr_particle.h:73
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:1006
cs_real_t weight_fou
Definition: cs_lagr_particle.h:186
Definition: cs_lagr_particle.h:119
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:1026
const cs_lagr_attribute_map_t * p_am
Definition: cs_lagr_particle.h:192
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:619
cs_real_t weight_failed
Definition: cs_lagr_particle.h:188
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:543
Definition: cs_lagr_particle.h:66
cs_real_t weight_dep
Definition: cs_lagr_particle.h:185
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:1106
double cs_real_t
Floating-point value.
Definition: cs_defs.h:296
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:914
Definition: cs_lagr_particle.h:54
Definition: cs_lagr_particle.h:80
unsigned char * p_buffer
Definition: cs_lagr_particle.h:194
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:517
void cs_lagr_set_reallocation_factor(double f)
Set reallocation factor for particle sets.
Definition: cs_lagr_particle.c:1057
Definition: cs_lagr_particle.h:56
ptrdiff_t(* displ)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:158
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:868
Definition: cs_lagr_particle.h:78
cs_real_t weight_out
Definition: cs_lagr_particle.h:184
Definition: cs_lagr_particle.h:102
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:799
Definition: cs_lagr_particle.h:64
Definition: cs_lagr_particle.h:114
Definition: cs_lagr_particle.h:87
Definition: cs_lagr_particle.h:81
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:989
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:721
cs_lnum_t n_part_dep
Definition: cs_lagr_particle.h:177
cs_lnum_t n_particles_max
Definition: cs_lagr_particle.h:190
Definition: cs_lagr_particle.h:72
void cs_lagr_set_n_user_variables(int n_user_variables)
Set number of user particle variables.
Definition: cs_lagr_particle.c:1146
Definition: cs_lagr_particle.h:107
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:593
Definition: cs_lagr_particle.h:103
Definition: cs_lagr_particle.h:82
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:416
Definition: cs_lagr_particle.h:115
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:1156
Definition: cs_lagr_particle.h:61
cs_lnum_t n_part_new
Definition: cs_lagr_particle.h:175
cs_lnum_t n_particles
Definition: cs_lagr_particle.h:174
cs_lnum_t n_failed_part
Definition: cs_lagr_particle.h:180
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:491
void cs_lagr_particle_set_create(void)
Definition: cs_lagr_particle.c:885
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:338
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:1179
Definition: cs_lagr_particle.h:89
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:774
Definition: cs_lagr_particle.h:111
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:292
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:1131
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:569
int n_time_vals
Definition: cs_lagr_particle.h:146
Definition: cs_lagr_particle.h:97
Definition: cs_lagr_particle.h:79
size_t lb
Definition: cs_lagr_particle.h:142
#define END_C_DECLS
Definition: cs_defs.h:449
size_t extents
Definition: cs_lagr_particle.h:140
Definition: cs_lagr_particle.h:101
Definition: cs_lagr_particle.h:108
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:872
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:1075
Definition: cs_lagr_particle.h:65
cs_real_t weight
Definition: cs_lagr_particle.h:182
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:921
Definition: cs_lagr_particle.h:127
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:441
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:1117
Definition: cs_lagr_particle.h:53
Definition: cs_lagr_particle.h:138
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:960
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:957
Definition: cs_lagr_particle.h:90
Definition: cs_lagr_particle.h:88
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:983
Definition: cs_lagr_particle.h:71
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:1081
Definition: cs_lagr_particle.h:77
Definition: cs_lagr_particle.h:58
int(* count)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:155
Definition: cs_lagr_particle.h:95
Definition: cs_lagr_particle.h:131