112 auto force =
block->getData<field::GhostLayerField<double, 3>>(forceID);
113 auto pdfs =
block->getData<field::GhostLayerField<double, 19>>(pdfsID);
114 auto velocity =
block->getData<field::GhostLayerField<double, 3>>(velocityID);
115 field::GhostLayerField<double, 19> *pdfs_tmp;
117 if (cache_pdfs_.find(
block) == cache_pdfs_.end()) {
118 pdfs_tmp = pdfs->cloneUninitialized();
119 cache_pdfs_[
block] = pdfs_tmp;
121 pdfs_tmp = cache_pdfs_[
block];
125 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(force->nrOfGhostLayers()))
126 double *
RESTRICT const _data_force = force->dataAt(-1, -1, -1, 0);
127 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
128 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(pdfs->nrOfGhostLayers()))
129 double *
RESTRICT const _data_pdfs = pdfs->dataAt(-1, -1, -1, 0);
130 WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx)
131 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(pdfs_tmp->nrOfGhostLayers()))
132 double *
RESTRICT _data_pdfs_tmp = pdfs_tmp->dataAt(-1, -1, -1, 0);
133 WALBERLA_ASSERT_EQUAL(pdfs_tmp->layout(), field::fzyx)
134 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(
velocity->nrOfGhostLayers()))
136 WALBERLA_ASSERT_EQUAL(
velocity->layout(), field::fzyx)
137 WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(int64_c(force->xSize()) + 2))
138 const int64_t _size_force_0 = int64_t(int64_c(force->xSize()) + 2);
139 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
140 WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(int64_c(force->ySize()) + 2))
141 const int64_t _size_force_1 = int64_t(int64_c(force->ySize()) + 2);
142 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
143 WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(int64_c(force->zSize()) + 2))
144 const int64_t _size_force_2 = int64_t(int64_c(force->zSize()) + 2);
145 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
146 const int64_t _stride_force_0 = int64_t(force->xStride());
147 const int64_t _stride_force_1 = int64_t(force->yStride());
148 const int64_t _stride_force_2 = int64_t(force->zStride());
149 const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride()));
150 const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride());
151 const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride());
152 const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride());
153 const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride()));
154 const int64_t _stride_pdfs_tmp_0 = int64_t(pdfs_tmp->xStride());
155 const int64_t _stride_pdfs_tmp_1 = int64_t(pdfs_tmp->yStride());
156 const int64_t _stride_pdfs_tmp_2 = int64_t(pdfs_tmp->zStride());
157 const int64_t _stride_pdfs_tmp_3 = int64_t(1 * int64_t(pdfs_tmp->fStride()));
158 const int64_t _stride_velocity_0 = int64_t(
velocity->xStride());
159 const int64_t _stride_velocity_1 = int64_t(
velocity->yStride());
160 const int64_t _stride_velocity_2 = int64_t(
velocity->zStride());
161 const int64_t _stride_velocity_3 = int64_t(1 * int64_t(
velocity->fStride()));
162 internal_streamsweepdoubleprecision_streamsweepdoubleprecision::streamsweepdoubleprecision_streamsweepdoubleprecision(_data_force, _data_pdfs, _data_pdfs_tmp, _data_velocity, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_pdfs_tmp_0, _stride_pdfs_tmp_1, _stride_pdfs_tmp_2, _stride_pdfs_tmp_3, _stride_velocity_0, _stride_velocity_1, _stride_velocity_2, _stride_velocity_3);
163 pdfs->swapDataPointers(pdfs_tmp);
168 CellInterval ci = globalCellInterval;
169 CellInterval blockBB = blocks->getBlockCellBB(*
block);
170 blockBB.expand(ghostLayers);
171 ci.intersect(blockBB);
172 blocks->transformGlobalToBlockLocalCellInterval(ci, *
block);
176 auto force =
block->getData<field::GhostLayerField<double, 3>>(forceID);
177 auto pdfs =
block->getData<field::GhostLayerField<double, 19>>(pdfsID);
178 auto velocity =
block->getData<field::GhostLayerField<double, 3>>(velocityID);
179 field::GhostLayerField<double, 19> *pdfs_tmp;
181 if (cache_pdfs_.find(
block) == cache_pdfs_.end()) {
182 pdfs_tmp = pdfs->cloneUninitialized();
183 cache_pdfs_[
block] = pdfs_tmp;
185 pdfs_tmp = cache_pdfs_[
block];
189 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(force->nrOfGhostLayers()))
190 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(force->nrOfGhostLayers()))
191 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(force->nrOfGhostLayers()))
192 double *
RESTRICT const _data_force = force->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
193 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
194 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(pdfs->nrOfGhostLayers()))
195 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(pdfs->nrOfGhostLayers()))
196 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(pdfs->nrOfGhostLayers()))
197 double *
RESTRICT const _data_pdfs = pdfs->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
198 WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx)
199 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(pdfs_tmp->nrOfGhostLayers()))
200 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(pdfs_tmp->nrOfGhostLayers()))
201 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(pdfs_tmp->nrOfGhostLayers()))
202 double *
RESTRICT _data_pdfs_tmp = pdfs_tmp->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
203 WALBERLA_ASSERT_EQUAL(pdfs_tmp->layout(), field::fzyx)
204 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(
velocity->nrOfGhostLayers()))
205 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(
velocity->nrOfGhostLayers()))
206 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(
velocity->nrOfGhostLayers()))
207 double *
RESTRICT _data_velocity =
velocity->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
208 WALBERLA_ASSERT_EQUAL(
velocity->layout(), field::fzyx)
209 WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(int64_c(ci.xSize()) + 2))
210 const int64_t _size_force_0 = int64_t(int64_c(ci.xSize()) + 2);
211 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
212 WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(int64_c(ci.ySize()) + 2))
213 const int64_t _size_force_1 = int64_t(int64_c(ci.ySize()) + 2);
214 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
215 WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(int64_c(ci.zSize()) + 2))
216 const int64_t _size_force_2 = int64_t(int64_c(ci.zSize()) + 2);
217 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
218 const int64_t _stride_force_0 = int64_t(force->xStride());
219 const int64_t _stride_force_1 = int64_t(force->yStride());
220 const int64_t _stride_force_2 = int64_t(force->zStride());
221 const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride()));
222 const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride());
223 const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride());
224 const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride());
225 const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride()));
226 const int64_t _stride_pdfs_tmp_0 = int64_t(pdfs_tmp->xStride());
227 const int64_t _stride_pdfs_tmp_1 = int64_t(pdfs_tmp->yStride());
228 const int64_t _stride_pdfs_tmp_2 = int64_t(pdfs_tmp->zStride());
229 const int64_t _stride_pdfs_tmp_3 = int64_t(1 * int64_t(pdfs_tmp->fStride()));
230 const int64_t _stride_velocity_0 = int64_t(
velocity->xStride());
231 const int64_t _stride_velocity_1 = int64_t(
velocity->yStride());
232 const int64_t _stride_velocity_2 = int64_t(
velocity->zStride());
233 const int64_t _stride_velocity_3 = int64_t(1 * int64_t(
velocity->fStride()));
234 internal_streamsweepdoubleprecision_streamsweepdoubleprecision::streamsweepdoubleprecision_streamsweepdoubleprecision(_data_force, _data_pdfs, _data_pdfs_tmp, _data_velocity, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_pdfs_tmp_0, _stride_pdfs_tmp_1, _stride_pdfs_tmp_2, _stride_pdfs_tmp_3, _stride_velocity_0, _stride_velocity_1, _stride_velocity_2, _stride_velocity_3);
235 pdfs->swapDataPointers(pdfs_tmp);
static FUNC_PREFIX void streamsweepdoubleprecision_streamsweepdoubleprecision(double *RESTRICT const _data_force, double *RESTRICT const _data_pdfs, double *RESTRICT _data_pdfs_tmp, double *RESTRICT _data_velocity, int64_t const _size_force_0, int64_t const _size_force_1, int64_t const _size_force_2, int64_t const _stride_force_0, int64_t const _stride_force_1, int64_t const _stride_force_2, int64_t const _stride_force_3, int64_t const _stride_pdfs_0, int64_t const _stride_pdfs_1, int64_t const _stride_pdfs_2, int64_t const _stride_pdfs_3, int64_t const _stride_pdfs_tmp_0, int64_t const _stride_pdfs_tmp_1, int64_t const _stride_pdfs_tmp_2, int64_t const _stride_pdfs_tmp_3, int64_t const _stride_velocity_0, int64_t const _stride_velocity_1, int64_t const _stride_velocity_2, int64_t const _stride_velocity_3)