1#ifndef CS_LAGR_PARTICLE_H
2#define CS_LAGR_PARTICLE_H
48#define CS_LAGR_PART_TO_DELETE (1 << 0)
51#define CS_LAGR_PART_FIXED (1 << 1)
54#define CS_LAGR_PART_DEPOSITED (1 << 2)
57#define CS_LAGR_PART_ROLLING (1 << 3)
60#define CS_LAGR_PART_IMPOSED_MOTION (1 << 4)
65#define CS_LAGR_PART_DEPOSITION_FLAGS \
66 ( CS_LAGR_PART_TO_DELETE | CS_LAGR_PART_FIXED | CS_LAGR_PART_DEPOSITED \
67 | CS_LAGR_PART_ROLLING | CS_LAGR_PART_IMPOSED_MOTION)
218#if defined(__cplusplus)
309 private_to_public_();
350#if defined(__cplusplus)
435 template <
typename T>
445 assert(_p_am._count(0,
attr) > 0);
446 return get_ptr_<T>(particle_id, 0,
attr)[0];
460 template <
typename T>
470 assert(_p_am._count(0,
attr) > 0);
471 return get_ptr_<T>(particle_id, 0,
attr)[0];
484 template <
typename T>
495 assert(_p_am._count(time_id,
attr) > 0);
496 return get_ptr_<T>(particle_id, time_id,
attr)[0];
510 template <
typename T>
521 assert(_p_am._count(time_id,
attr) > 0);
522 return get_ptr_<T>(p_id, time_id,
attr)[0];
535 template <
typename T>
545 assert(_p_am._count(0,
attr) > 0);
547 return reinterpret_cast<T*
>( _p_buffer.data()
549 + _p_am._displ(0,
attr));
564 template <
typename T>
574 assert(_p_am._count(0,
attr) > 0);
576 return reinterpret_cast<const T*
>( _p_buffer.data()
578 + _p_am._displ(0,
attr));
591 template <
typename T>
602 assert(_p_am._count(time_id,
attr) > 0);
604 return reinterpret_cast<T*
>( _p_buffer.data()
606 + _p_am._displ(time_id,
attr));
620 template <
typename T>
631 assert(_p_am._count(time_id,
attr) > 0);
633 return reinterpret_cast<const T*
>( _p_buffer.data()
635 + _p_am._displ(time_id,
attr));
658 return (
flag & mask);
722 assert(_p_am._source_term_displ(
attr) >= 0);
726 + _p_am._source_term_displ(
attr));
750 assert(_p_am._source_term_displ(
attr) >= 0);
752 return (
const cs_real_t *)( _p_buffer.data()
754 + _p_am._source_term_displ(
attr));
761 template<
typename... Args>
764 decltype(attr<cs_real_t>(std::forward<Args>(args)...))
766 return attr<cs_real_t>(std::forward<Args>(args)...);
769 template<
typename... Args>
772 decltype(attr<cs_lnum_t>(std::forward<Args>(args)...))
774 return attr<cs_lnum_t>(std::forward<Args>(args)...);
777 template<
typename... Args>
780 decltype(attr<cs_gnum_t>(std::forward<Args>(args)...))
782 return attr<cs_gnum_t>(std::forward<Args>(args)...);
785 template<
typename... Args>
788 decltype(attr_n<cs_real_t>(std::forward<Args>(args)...))
790 return attr_n<cs_real_t>(std::forward<Args>(args)...);
793 template<
typename... Args>
796 decltype(attr_n<cs_lnum_t>(std::forward<Args>(args)...))
798 return attr_n<cs_lnum_t>(std::forward<Args>(args)...);
801 template<
typename... Args>
804 decltype(attr_n<cs_gnum_t>(std::forward<Args>(args)...))
806 return attr_n<cs_gnum_t>(std::forward<Args>(args)...);
809 template<
typename... Args>
812 decltype(attr_get_ptr<cs_real_t>(std::forward<Args>(args)...))
814 return attr_get_ptr<cs_real_t>(std::forward<Args>(args)...);
817 template<
typename... Args>
820 decltype(attr_get_ptr<cs_lnum_t>(std::forward<Args>(args)...))
822 return attr_get_ptr<cs_lnum_t>(std::forward<Args>(args)...);
825 template<
typename... Args>
828 decltype(attr_get_ptr<cs_gnum_t>(std::forward<Args>(args)...))
830 return attr_get_ptr<cs_gnum_t>(std::forward<Args>(args)...);
833 template<
typename... Args>
836 decltype(attr_get_const_ptr<cs_real_t>(std::forward<Args>(args)...))
838 return attr_get_const_ptr<cs_real_t>(std::forward<Args>(args)...);
841 template<
typename... Args>
844 decltype(attr_get_const_ptr<cs_lnum_t>(std::forward<Args>(args)...))
846 return attr_get_const_ptr<cs_lnum_t>(std::forward<Args>(args)...);
849 template<
typename... Args>
852 decltype(attr_get_const_ptr<cs_gnum_t>(std::forward<Args>(args)...))
854 return attr_get_const_ptr<cs_gnum_t>(std::forward<Args>(args)...);
857 template<
typename... Args>
860 decltype(attr_n_get_ptr<cs_real_t>(std::forward<Args>(args)...))
862 return attr_n_get_ptr<cs_real_t>(std::forward<Args>(args)...);
865 template<
typename... Args>
868 decltype(attr_n_get_ptr<cs_lnum_t>(std::forward<Args>(args)...))
870 return attr_n_get_ptr<cs_lnum_t>(std::forward<Args>(args)...);
873 template<
typename... Args>
876 decltype(attr_n_get_ptr<cs_gnum_t>(std::forward<Args>(args)...))
878 return attr_n_get_ptr<cs_gnum_t>(std::forward<Args>(args)...);
881 template<
typename... Args>
884 decltype(attr_n_get_const_ptr<cs_real_t>(std::forward<Args>(args)...))
886 return attr_n_get_const_ptr<cs_real_t>(std::forward<Args>(args)...);
889 template<
typename... Args>
892 decltype(attr_n_get_const_ptr<cs_lnum_t>(std::forward<Args>(args)...))
894 return attr_n_get_const_ptr<cs_lnum_t>(std::forward<Args>(args)...);
897 template<
typename... Args>
900 decltype(attr_n_get_const_ptr<cs_gnum_t>(std::forward<Args>(args)...))
902 return attr_n_get_const_ptr<cs_gnum_t>(std::forward<Args>(args)...);
929 private_to_public_();
942 template <
typename T>
953 return reinterpret_cast<T*
>( _p_buffer.data()
955 + _p_am._displ(time_id,
attr));
969 template <
typename T>
980 return reinterpret_cast<const T*
>( _p_buffer.data()
982 + _p_am._displ(time_id,
attr));
1149#if defined(__cplusplus)
1170 assert(particle_set->
p_am->
count[0][attr] > 0);
1172 return (
unsigned char *)particle_set->
p_buffer
1190inline static const void *
1195 assert(particle_set->
p_am->
count[0][attr] > 0);
1222 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1226 + particle_set->
p_am->
displ[time_id][attr];
1243inline static const void *
1249 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1253 + particle_set->
p_am->
displ[time_id][attr];
1278 return (flag & mask);
1328 flag = (flag | mask) - mask;
1352 assert(particle_set->
p_am->
count[0][attr] > 0);
1379 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1383 + particle_set->
p_am->
displ[time_id][attr]));
1403 assert(particle_set->
p_am->
count[0][attr] > 0);
1407 + particle_set->
p_am->
displ[0][attr])) = value;
1430 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1434 + particle_set->
p_am->
displ[time_id][attr])) = value;
1454 assert(particle_set->
p_am->
count[0][attr] > 0);
1481 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1485 + particle_set->
p_am->
displ[time_id][attr]));
1505 assert(particle_set->
p_am->
count[0][attr] > 0);
1509 + particle_set->
p_am->
displ[0][attr])) = value;
1532 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1536 + particle_set->
p_am->
displ[time_id][attr])) = value;
1556 assert(particle_set->
p_am->
count[0][attr] > 0);
1583 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1587 + particle_set->
p_am->
displ[time_id][attr]));
1607 assert(particle_set->
p_am->
count[0][attr] > 0);
1611 + particle_set->
p_am->
displ[0][attr])) = value;
1634 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1638 + particle_set->
p_am->
displ[time_id][attr])) = value;
1747template <
typename T>
1753 assert(particle_set->
p_am->
count[0][attr] > 0);
1755 return (T *)( particle_set->
p_buffer
1760template <
typename T>
1766 assert(particle_set->
p_am->
count[0][attr] > 0);
1768 return (
const T *)( particle_set->
p_buffer
1773template <
typename T>
1780 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1782 return (T *)( particle_set->
p_buffer
1784 + particle_set->
p_am->
displ[time_id][attr]);
1787template <
typename T>
1794 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1796 return (
const T *)( particle_set->
p_buffer
1798 + particle_set->
p_am->
displ[time_id][attr]);
1801template <
typename T>
1807 assert(particle_set->
p_am->
count[0][attr] > 0);
1809 return *(T *)( particle_set->
p_buffer
1814template <
typename T>
1821 assert(particle_set->
p_am->
count[0][attr] > 0);
1825 + particle_set->
p_am->
displ[0][attr]) = value;
1828template <
typename T>
1835 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1837 return *(T *)( particle_set->
p_buffer
1839 + particle_set->
p_am->
displ[time_id][attr]);
1842template <
typename T>
1850 assert(particle_set->
p_am->
count[time_id][attr] > 0);
1854 + particle_set->
p_am->
displ[time_id][attr]) = value;
Define a templated array class (owner of data)
Definition: cs_array.h:1118
cs_datatype_t
Definition: cs_defs.h:290
#define CS_F_HOST_DEVICE
Definition: cs_defs.h:555
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
unsigned cs_gnum_t
global mesh entity number
Definition: cs_defs.h:317
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
#define CS_F_HOST
Definition: cs_defs.h:553
void cs_lagr_particle_attr_in_range(int attr)
Check if a particle attribute is in a valid range.
Definition: cs_lagr_particle.cpp:879
unsigned long long cs_lagr_get_n_g_particles_max(void)
Get global maximum number of particles.
Definition: cs_lagr_particle.cpp:938
cs_lagr_attribute_t
Definition: cs_lagr_particle.h:76
@ CS_LAGR_DEPO_TIME
Definition: cs_lagr_particle.h:141
@ CS_LAGR_QUATERNION
Definition: cs_lagr_particle.h:115
@ CS_LAGR_HEIGHT
Definition: cs_lagr_particle.h:139
@ CS_LAGR_FOULING_INDEX
Definition: cs_lagr_particle.h:127
@ CS_LAGR_COAL_DENSITY
Definition: cs_lagr_particle.h:160
@ CS_LAGR_MASS
Definition: cs_lagr_particle.h:89
@ CS_LAGR_PRED_VELOCITY
Definition: cs_lagr_particle.h:106
@ CS_LAGR_EMISSIVITY
Definition: cs_lagr_particle.h:164
@ CS_LAGR_AGGLO_CLASS_ID
Definition: cs_lagr_particle.h:171
@ CS_LAGR_NEIGHBOR_FACE_ID
Definition: cs_lagr_particle.h:125
@ CS_LAGR_PRED_VELOCITY_SEEN
Definition: cs_lagr_particle.h:107
@ CS_LAGR_CLUSTER_NB_PART
Definition: cs_lagr_particle.h:140
@ CS_LAGR_RADII
Definition: cs_lagr_particle.h:116
@ CS_LAGR_ORIENTATION
Definition: cs_lagr_particle.h:114
@ CS_LAGR_TR_TRUNCATE
Definition: cs_lagr_particle.h:97
@ CS_LAGR_USER
Definition: cs_lagr_particle.h:177
@ CS_LAGR_DISPLACEMENT_NORM
Definition: cs_lagr_particle.h:135
@ CS_LAGR_COAL_MASS
Definition: cs_lagr_particle.h:153
@ CS_LAGR_VELOCITY
Definition: cs_lagr_particle.h:93
@ CS_LAGR_BR_GAUSS
Definition: cs_lagr_particle.h:109
@ CS_LAGR_INTERF
Definition: cs_lagr_particle.h:124
@ CS_LAGR_MARKO_VALUE
Definition: cs_lagr_particle.h:126
@ CS_LAGR_COKE_MASS
Definition: cs_lagr_particle.h:154
@ CS_LAGR_CELL_ID
Definition: cs_lagr_particle.h:80
@ CS_LAGR_REBOUND_ID
Definition: cs_lagr_particle.h:83
@ CS_LAGR_TAUP_AUX
Definition: cs_lagr_particle.h:91
@ CS_LAGR_RESIDENCE_TIME
Definition: cs_lagr_particle.h:88
@ CS_LAGR_REMAINING_INTEG_TIME
Definition: cs_lagr_particle.h:174
@ CS_LAGR_TURB_STATE_1
Definition: cs_lagr_particle.h:104
@ CS_LAGR_TEMPERATURE
Definition: cs_lagr_particle.h:146
@ CS_LAGR_TR_REPOSITION
Definition: cs_lagr_particle.h:98
@ CS_LAGR_CP
Definition: cs_lagr_particle.h:148
@ CS_LAGR_RANDOM_VALUE
Definition: cs_lagr_particle.h:85
@ CS_LAGR_SHAPE_PARAM
Definition: cs_lagr_particle.h:119
@ CS_LAGR_RANK_ID
Definition: cs_lagr_particle.h:81
@ CS_LAGR_COAL_ID
Definition: cs_lagr_particle.h:159
@ CS_LAGR_INITIAL_DIAMETER
Definition: cs_lagr_particle.h:157
@ CS_LAGR_ADHESION_FORCE
Definition: cs_lagr_particle.h:133
@ CS_LAGR_STAT_WEIGHT
Definition: cs_lagr_particle.h:87
@ CS_LAGR_N_SMALL_ASPERITIES
Definition: cs_lagr_particle.h:132
@ CS_LAGR_N_ATTRIBUTES
Definition: cs_lagr_particle.h:181
@ CS_LAGR_ADHESION_TORQUE
Definition: cs_lagr_particle.h:134
@ CS_LAGR_BROWN_STATE_1
Definition: cs_lagr_particle.h:105
@ CS_LAGR_ANGULAR_VEL
Definition: cs_lagr_particle.h:117
@ CS_LAGR_VELOCITY_SEEN
Definition: cs_lagr_particle.h:94
@ CS_LAGR_STAT_CLASS
Definition: cs_lagr_particle.h:168
@ CS_LAGR_N_LARGE_ASPERITIES
Definition: cs_lagr_particle.h:131
@ CS_LAGR_VELOCITY_SEEN_VELOCITY_COV
Definition: cs_lagr_particle.h:95
@ CS_LAGR_P_FLAG
Definition: cs_lagr_particle.h:78
@ CS_LAGR_SHRINKING_DIAMETER
Definition: cs_lagr_particle.h:156
@ CS_LAGR_TEMPERATURE_SEEN
Definition: cs_lagr_particle.h:147
@ CS_LAGR_V_GAUSS
Definition: cs_lagr_particle.h:108
@ CS_LAGR_SHAPE
Definition: cs_lagr_particle.h:113
@ CS_LAGR_AGGLO_FRACTAL_DIM
Definition: cs_lagr_particle.h:172
@ CS_LAGR_YPLUS
Definition: cs_lagr_particle.h:123
@ CS_LAGR_WATER_MASS
Definition: cs_lagr_particle.h:152
@ CS_LAGR_CONSOL_HEIGHT
Definition: cs_lagr_particle.h:142
@ CS_LAGR_DIAMETER
Definition: cs_lagr_particle.h:90
@ CS_LAGR_COORDS
Definition: cs_lagr_particle.h:92
@ CS_LAGR_EULER
Definition: cs_lagr_particle.h:118
T * cs_lagr_particles_attr_get_ptr(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Definition: cs_lagr_particle.h:1749
static void cs_lagr_particles_set_flag(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int mask)
Set flag value with a selected mask for a given particle in a set.
Definition: cs_lagr_particle.h:1292
T cs_lagr_particles_attr_n_get_val(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Definition: cs_lagr_particle.h:1830
void cs_lagr_particle_set_dump(const cs_lagr_particle_set_t *p_set)
Dump a cs_lagr_particle_set_t structure.
Definition: cs_lagr_particle.cpp:998
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:1602
static void cs_lagr_particles_unset_flag(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int mask)
Unset flag value with a selected mask for a given particle in a set.
Definition: cs_lagr_particle.h:1319
static int cs_lagr_particles_get_flag(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int mask)
Get flag value with a selected mask for a given particle in a set.
Definition: cs_lagr_particle.h:1269
void cs_lagr_particle_attr_initialize(void)
Define particle map based on defined options.
Definition: cs_lagr_particle.cpp:364
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:1424
T * cs_lagr_particles_attr_n_get_ptr(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Definition: cs_lagr_particle.h:1775
const T * cs_lagr_particles_attr_n_get_const_ptr(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Definition: cs_lagr_particle.h:1789
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:1191
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:1500
cs_lagr_particle_set_t * cs_glob_lagr_particle_set
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:1374
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:1578
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:1166
void cs_lagr_set_reallocation_factor(double f)
Set reallocation factor for particle sets.
Definition: cs_lagr_particle.cpp:920
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:1476
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:1628
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:1450
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.cpp:896
T cs_lagr_particles_attr_get_val(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Definition: cs_lagr_particle.h:1803
const T * cs_lagr_particles_attr_get_const_ptr(const cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Definition: cs_lagr_particle.h:1762
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:1217
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:1526
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:1398
static void cs_lagr_particles_attributes_fill_zero(cs_lagr_particle_set_t *p_set, cs_lnum_t p_id)
Set attribute value of type cs_real_t of a given particle in a set at a given time.
Definition: cs_lagr_particle.h:1655
void cs_lagr_set_n_user_variables(int n_user_variables)
Set number of user particle variables.
Definition: cs_lagr_particle.cpp:1026
void cs_lagr_particles_current_to_previous(cs_lagr_particle_set_t &p_set, cs_lnum_t p_id)
Copy current attributes to previous attributes.
Definition: cs_lagr_particle.cpp:970
void cs_lagr_particle_finalize(void)
Destroy main particle set and map if they exist.
Definition: cs_lagr_particle.cpp:724
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:1244
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.cpp:955
void cs_lagr_part_copy(cs_lnum_t dest, cs_lnum_t src)
Copy attributes from one particle to another.
Definition: cs_lagr_particle.cpp:742
void cs_lagr_particle_set_create(void)
Definition: cs_lagr_particle.cpp:707
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.cpp:814
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.cpp:777
void cs_lagr_particles_attr_n_set_val(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr, T value)
Definition: cs_lagr_particle.h:1844
cs_lagr_particle_set_t & cs_lagr_get_particle_set_ref(void)
Definition: cs_lagr_particle.cpp:902
const char * cs_lagr_attribute_name[]
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.cpp:694
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:1552
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:1348
void cs_lagr_particles_attr_set_val(cs_lagr_particle_set_t *particle_set, cs_lnum_t particle_id, cs_lagr_attribute_t attr, T value)
Definition: cs_lagr_particle.h:1816
Definition: cs_lagr_particle.h:188
cs_datatype_t datatype[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:204
ptrdiff_t(* displ)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:209
CS_F_HOST_DEVICE cs_lagr_attribute_map_t()
Default constructor.
Definition: cs_lagr_particle.cpp:1040
size_t size[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:200
int(* count)[CS_LAGR_N_ATTRIBUTES]
Definition: cs_lagr_particle.h:206
CS_F_HOST_DEVICE ~cs_lagr_attribute_map_t()
Default destructor.
Definition: cs_lagr_particle.cpp:1262
size_t lb
Definition: cs_lagr_particle.h:192
ptrdiff_t * source_term_displ
Definition: cs_lagr_particle.h:213
int n_time_vals
Definition: cs_lagr_particle.h:196
CS_F_HOST_DEVICE cs_lagr_attribute_map_t & operator=(cs_lagr_attribute_map_t other)
Assignment operator.
Definition: cs_lagr_particle.cpp:1305
size_t extents
Definition: cs_lagr_particle.h:190
Definition: cs_lagr_particle.h:324
CS_F_HOST_DEVICE cs_lagr_particle_set_t & operator=(cs_lagr_particle_set_t other)
Assignment operator.
Definition: cs_lagr_particle.cpp:1549
auto attr_real_const_ptr(Args &&... args) -> decltype(attr_get_const_ptr< cs_real_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:835
auto attr_n_real(Args &&... args) -> decltype(attr_n< cs_real_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:787
CS_F_HOST_DEVICE cs_real_t * source_terms(cs_lnum_t p_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:717
auto attr_real(Args &&... args) -> decltype(attr< cs_real_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:763
cs_real_t weight_merged
Definition: cs_lagr_particle.h:338
auto attr_n_lnum_ptr(Args &&... args) -> decltype(attr_n_get_ptr< cs_lnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:867
CS_F_HOST_DEVICE T & attr(cs_lnum_t particle_id, cs_lagr_attribute_t attr)
Access attribute based on particle id and a given type.
Definition: cs_lagr_particle.h:440
auto attr_n_real_ptr(Args &&... args) -> decltype(attr_n_get_ptr< cs_real_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:859
CS_F_HOST_DEVICE void unset_flag(cs_lnum_t p_id, int mask)
Unset a flag for a given particle.
Definition: cs_lagr_particle.h:691
CS_F_HOST_DEVICE const cs_real_t * source_terms_const(cs_lnum_t p_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:745
cs_lnum_t n_part_merged
Definition: cs_lagr_particle.h:329
CS_F_HOST_DEVICE T * attr_n_get_ptr(cs_lnum_t p_id, int time_id, cs_lagr_attribute_t attr)
Get a pointer to attribute values.
Definition: cs_lagr_particle.h:596
CS_F_HOST_DEVICE T & attr_n(cs_lnum_t particle_id, int time_id, cs_lagr_attribute_t attr)
Access attribute based on particle id, time id and a given type.
Definition: cs_lagr_particle.h:489
CS_F_HOST_DEVICE T & attr(cs_lnum_t particle_id, cs_lagr_attribute_t attr) const
Access attribute based on particle id and a given type from a const particle set.
Definition: cs_lagr_particle.h:465
CS_F_HOST int resize(const cs_lnum_t n_particles_max_min)
Resize particles set.
Definition: cs_lagr_particle.cpp:1508
auto attr_n_gnum_const_ptr(Args &&... args) -> decltype(attr_n_get_const_ptr< cs_gnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:899
auto attr_n_gnum(Args &&... args) -> decltype(attr_n< cs_gnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:803
cs_real_t weight
Definition: cs_lagr_particle.h:335
CS_F_HOST_DEVICE T & attr_n(cs_lnum_t p_id, int time_id, cs_lagr_attribute_t attr) const
Access attribute based on particle id, time id and a given type for a const particle set.
Definition: cs_lagr_particle.h:515
cs_lagr_particle_set_t()
Default constructor.
Definition: cs_lagr_particle.cpp:1336
auto attr_n_lnum(Args &&... args) -> decltype(attr_n< cs_lnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:795
cs_lnum_t n_particles
Definition: cs_lagr_particle.h:326
cs_lnum_t n_part_new
Definition: cs_lagr_particle.h:327
auto attr_n_lnum_const_ptr(Args &&... args) -> decltype(attr_n_get_const_ptr< cs_lnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:891
cs_real_t weight_out
Definition: cs_lagr_particle.h:337
CS_F_HOST_DEVICE int flag(cs_lnum_t p_id, int mask)
Check if a flag is set for a given particle based on a mask.
Definition: cs_lagr_particle.h:651
cs_real_t weight_failed
Definition: cs_lagr_particle.h:342
cs_real_t weight_dep
Definition: cs_lagr_particle.h:339
unsigned char * p_buffer
Definition: cs_lagr_particle.h:348
cs_lnum_t n_failed_part
Definition: cs_lagr_particle.h:333
CS_F_HOST_DEVICE const T * attr_get_const_ptr(cs_lnum_t p_id, cs_lagr_attribute_t attr)
Get a const pointer to attribute values.
Definition: cs_lagr_particle.h:569
auto attr_real_ptr(Args &&... args) -> decltype(attr_get_ptr< cs_real_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:811
cs_real_t weight_fou
Definition: cs_lagr_particle.h:340
auto attr_lnum(Args &&... args) -> decltype(attr< cs_lnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:771
CS_F_HOST_DEVICE const T * attr_n_get_const_ptr(cs_lnum_t p_id, int time_id, cs_lagr_attribute_t attr)
Get a const pointer to attribute values.
Definition: cs_lagr_particle.h:625
cs_lnum_t n_part_resusp
Definition: cs_lagr_particle.h:332
auto attr_n_real_const_ptr(Args &&... args) -> decltype(attr_n_get_const_ptr< cs_real_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:883
cs_real_t weight_new
Definition: cs_lagr_particle.h:336
auto attr_lnum_ptr(Args &&... args) -> decltype(attr_get_ptr< cs_lnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:819
auto attr_gnum_const_ptr(Args &&... args) -> decltype(attr_get_const_ptr< cs_gnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:851
auto attr_gnum_ptr(Args &&... args) -> decltype(attr_get_ptr< cs_gnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:827
auto attr_lnum_const_ptr(Args &&... args) -> decltype(attr_get_const_ptr< cs_lnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:843
cs_lnum_t n_part_out
Definition: cs_lagr_particle.h:328
const cs_lagr_attribute_map_t * p_am
Definition: cs_lagr_particle.h:346
cs_lnum_t n_part_fou
Definition: cs_lagr_particle.h:331
~cs_lagr_particle_set_t()
Default destructor.
Definition: cs_lagr_particle.cpp:1454
auto attr_n_gnum_ptr(Args &&... args) -> decltype(attr_n_get_ptr< cs_gnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:875
cs_lnum_t n_part_dep
Definition: cs_lagr_particle.h:330
cs_lnum_t n_particles_max
Definition: cs_lagr_particle.h:344
auto attr_gnum(Args &&... args) -> decltype(attr< cs_gnum_t >(std::forward< Args >(args)...))
Definition: cs_lagr_particle.h:779
cs_real_t weight_resusp
Definition: cs_lagr_particle.h:341
CS_F_HOST_DEVICE T * attr_get_ptr(cs_lnum_t p_id, cs_lagr_attribute_t attr)
Get a pointer to attribute values.
Definition: cs_lagr_particle.h:540
CS_F_HOST_DEVICE void set_flag(cs_lnum_t p_id, int mask)
Set flag for a given particle.
Definition: cs_lagr_particle.h:671