9 int numberOfVolumesPerAxisInPatch,
12 int auxiliaryVariables,
13 const double* __restrict__ Q,
14 double* __restrict__ leftFace,
15 double* __restrict__ bottomFace,
16 double* __restrict__ rightFace,
17 double* __restrict__ topFace
20 double* faces[4] = { leftFace, bottomFace, rightFace, topFace };
22 numberOfVolumesPerAxisInPatch,
33 int numberOfVolumesPerAxisInPatch,
36 int auxiliaryVariables,
37 const double* __restrict__ Q,
38 double* __restrict__ leftFace,
39 double* __restrict__ bottomFace,
40 double* __restrict__ frontFace,
41 double* __restrict__ rightFace,
42 double* __restrict__ topFace,
43 double* __restrict__ backFace
46 double* faces[6] = { leftFace, bottomFace, frontFace, rightFace, topFace, backFace};
48 numberOfVolumesPerAxisInPatch,
59 int numberOfVolumesPerAxisInPatch,
62 int auxiliaryVariables,
63 const double* __restrict__ Q,
64 double* faces[2*Dimensions]
66 for(
int d=0; d<Dimensions; d++) {
72 dfore(k,numberOfVolumesPerAxisInPatch,d,0) {
73 for (
int i=0; i<haloSize; i++) {
77 overlapCell(d) = i+haloSize;
81 for (
int j=0; j<unknowns+auxiliaryVariables; j++) {
82 faces[d][overlapCellSerialised*(unknowns+auxiliaryVariables)+j] =
83 Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j];
84 if (Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j]!=17.0) std::cerr <<
"not good";
87 patchCell(d) = i+numberOfVolumesPerAxisInPatch-haloSize;
92 for (
int j=0; j<unknowns+auxiliaryVariables; j++) {
93 faces[d+Dimensions][overlapCellSerialised*(unknowns+auxiliaryVariables)+j] =
94 Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j];
103 int numberOfVolumesPerAxisInPatch,
106 int auxiliaryVariables,
107 const double* __restrict__ Q,
108 double* __restrict__ leftFace,
109 double* __restrict__ bottomFace,
110 double* __restrict__ rightFace,
111 double* __restrict__ topFace
114 double* faces[4] = { leftFace, bottomFace, rightFace, topFace };
116 numberOfVolumesPerAxisInPatch,
127 int numberOfVolumesPerAxisInPatch,
130 int auxiliaryVariables,
131 const double* __restrict__ Q,
132 double* __restrict__ leftFace,
133 double* __restrict__ bottomFace,
134 double* __restrict__ frontFace,
135 double* __restrict__ rightFace,
136 double* __restrict__ topFace,
137 double* __restrict__ backFace
140 double* faces[6] = { leftFace, bottomFace, frontFace, rightFace, topFace, backFace};
142 numberOfVolumesPerAxisInPatch,
153 int numberOfVolumesPerAxisInPatch,
156 int auxiliaryVariables,
157 const double* __restrict__ Q,
158 double* faces[2*Dimensions]
160 for(
int d=0; d<Dimensions; d++) {
166 dfore(k,numberOfVolumesPerAxisInPatch,d,0) {
167 for (
int i=0; i<haloSize; i++) {
176 for (
int j=0; j<unknowns+auxiliaryVariables; j++) {
177 faces[d][overlapCellSerialised*(unknowns+auxiliaryVariables)+j] =
178 Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j];
181 patchCell(d) = i+numberOfVolumesPerAxisInPatch+haloSize;
182 overlapCell(d) = i+haloSize;
186 for (
int j=0; j<unknowns+auxiliaryVariables; j++) {
187 faces[d+Dimensions][overlapCellSerialised*(unknowns+auxiliaryVariables)+j] =
188 Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j];
197 int numberOfVolumesPerAxisInPatch,
200 int auxiliaryVariables,
201 const double* __restrict__ Q,
202 double* __restrict__ leftFace,
203 double* __restrict__ bottomFace,
204 double* __restrict__ rightFace,
205 double* __restrict__ topFace
208 double* faces[4] = { leftFace, bottomFace, rightFace, topFace };
210 numberOfVolumesPerAxisInPatch,
221 int numberOfVolumesPerAxisInPatch,
224 int auxiliaryVariables,
225 const double* __restrict__ Q,
226 double* __restrict__ leftFace,
227 double* __restrict__ bottomFace,
228 double* __restrict__ frontFace,
229 double* __restrict__ rightFace,
230 double* __restrict__ topFace,
231 double* __restrict__ backFace
234 double* faces[6] = { leftFace, bottomFace, frontFace, rightFace, topFace, backFace};
236 numberOfVolumesPerAxisInPatch,
247 int numberOfVolumesPerAxisInPatch,
250 int auxiliaryVariables,
251 const double* __restrict__ Q,
252 double* faces[2*Dimensions]
255 for(
int d=0; d<Dimensions; d++) {
261 dfore(k,numberOfVolumesPerAxisInPatch,d,0) {
262 for (
int i=0; i<haloSize; i++) {
271 for (
int j=0; j<unknowns+auxiliaryVariables; j++) {
272 faces[d][overlapCellSerialised*(unknowns+auxiliaryVariables)+j] =
273 Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j];
276 patchCell(d) = i+numberOfVolumesPerAxisInPatch+haloSize;
277 overlapCell(d) = i+haloSize;
281 for (
int j=0; j<unknowns+auxiliaryVariables; j++) {
282 faces[d+Dimensions][overlapCellSerialised*(unknowns+auxiliaryVariables)+j] =
283 Q[patchCellSerialised*(unknowns+auxiliaryVariables)+j];
#define assertionEquals(lhs, rhs)
#define dfore(counter, max, dim, value)
This is an exclusive d-dimensional for loop.
CPUGPUMethod int dLinearised(const tarch::la::Vector< Dimensions, int > &counter, int max)
Map d-dimensional vector onto integer index.