7 #ifndef ABLASTR_PARTICLE_MOMENTS_H
8 #define ABLASTR_PARTICLE_MOMENTS_H
30 template<
typename T_PC >
33 amrex::ParticleReal, amrex::ParticleReal,
34 amrex::ParticleReal, amrex::ParticleReal,
35 amrex::ParticleReal, amrex::ParticleReal>
46 amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal>
51 amrex::ParticleReal
const x = p.pos(0);
52 amrex::ParticleReal
const y = p.pos(1);
53 amrex::ParticleReal
const z = p.pos(2);
61 std::vector< amrex::ParticleReal > xyz_min = {
67 std::vector< amrex::ParticleReal > xyz_max = {
74 return {xyz_min[0], xyz_min[1], xyz_min[2], xyz_max[0], xyz_max[1], xyz_max[2]};
85 template<
typename T_PC,
int T_RealSoAWeight >
88 amrex::ParticleReal, amrex::ParticleReal,
89 amrex::ParticleReal, amrex::ParticleReal,
90 amrex::ParticleReal, amrex::ParticleReal>
101 amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal,
102 amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal,
108 amrex::ParticleReal
const x = p.pos(0);
109 amrex::ParticleReal
const y = p.pos(1);
110 amrex::ParticleReal
const z = p.pos(2);
111 amrex::ParticleReal
const w = p.rdata(T_RealSoAWeight);
119 std::vector<amrex::ParticleReal> data_vector = {
130 amrex::ParticleReal w_sum = data_vector[6];
131 amrex::ParticleReal x_mean = data_vector[0] / w_sum;
132 amrex::ParticleReal x_std = data_vector[1] / w_sum- x_mean * x_mean;
133 amrex::ParticleReal y_mean = data_vector[2] / w_sum;
134 amrex::ParticleReal y_std = data_vector[3] / w_sum- x_mean * x_mean;
135 amrex::ParticleReal z_mean = data_vector[4] / w_sum;
136 amrex::ParticleReal z_std = data_vector[5] / w_sum- x_mean * x_mean;
138 return {x_mean, x_std, y_mean, y_std, z_mean, z_std};
typename WarpXParticleContainer::SuperParticleType SuperParticleType
Definition: FilterFunctors.H:19
def y
Definition: Excitation_Flag_Generator.py:76
def z
Definition: Excitation_Flag_Generator.py:77
static std::tuple< amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal > MinAndMaxPositions(T_PC const &pc)
Definition: ParticleMoments.H:36
static std::tuple< amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal > MeanAndStdPositions(T_PC const &pc)
Definition: ParticleMoments.H:91
Definition: average.cpp:23
void ReduceRealMin(Vector< std::reference_wrapper< Real > > const &)
void ReduceRealSum(Vector< std::reference_wrapper< Real > > const &)
void ReduceRealMax(Vector< std::reference_wrapper< Real > > const &)
RD::Type ParticleReduce(PC const &pc, F &&f, ReduceOps &reduce_ops)
AMREX_GPU_HOST_DEVICE constexpr GpuTuple< detail::tuple_decay_t< Ts >... > makeTuple(Ts &&... args)
tuple w
Definition: yt3d_mpi.py:46