29#include <dccrg_cartesian_geometry.hpp>
42template<
typename REAL, u
int SIZE>
47template<
typename REAL, u
int SIZE>
56 dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
57 const std::vector<CellID>& cells,
58 const bool& computeSecond,
59 const bool initialCompute=
false
63 dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
64 const std::vector<CellID>& cells,
65 const bool& computeSecond,
66 const bool initialCompute=
false
82template<
typename REAL, u
int SIZE>
inline
122template<
typename REAL, u
int SIZE>
inline
125 const REAL averageVX,
126 const REAL averageVY,
127 const REAL averageVZ,
136 const Realf* avgs = &data[blockLID*
WID3];
145 lsum[0] += avgs[
cellIndex(
i,
j,
k)] * (
VX - averageVX) * (
VX - averageVX) * DV3;
146 lsum[1] += avgs[
cellIndex(
i,
j,
k)] * (
VY - averageVY) * (
VY - averageVY) * DV3;
147 lsum[2] += avgs[
cellIndex(
i,
j,
k)] * (
VZ - averageVZ) * (
VZ - averageVZ) * DV3;
148 lsum[3] += avgs[
cellIndex(
i,
j,
k)] * (
VY - averageVY) * (
VZ - averageVZ) * DV3;
149 lsum[4] += avgs[
cellIndex(
i,
j,
k)] * (
VX - averageVX) * (
VZ - averageVZ) * DV3;
150 lsum[5] += avgs[
cellIndex(
i,
j,
k)] * (
VX - averageVX) * (
VY - averageVY) * DV3;
#define ARCH_INNER_BODY(...)
void calculateMoments_V(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &cells, const bool &computeSecond, const bool initialCompute=false)
void blockVelocitySecondMoments(vmesh::VelocityBlockContainer *blockContainer, const REAL averageVX, const REAL averageVY, const REAL averageVZ, REAL(&array)[SIZE], uint nBlocks)
void calculateMoments_R(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &cells, const bool &computeSecond, const bool initialCompute=false)
void blockVelocityFirstMoments(vmesh::VelocityBlockContainer *blockContainer, REAL(&array)[SIZE], uint nBlocks)
ARCH_HOSTDEV Real * getParameters()
ARCH_HOSTDEV Realf * getData()
const Real *__restrict__ blockParameters
@ N_VELOCITY_BLOCK_PARAMS
static void parallel_reduce(const uint(&limits)[NDim], Lambda loop_body, T &sum)