74 template <
class QInEnumeratorType,
class QOutEnumeratorType>
76 const double* __restrict__ QIn,
77 const QInEnumeratorType& QInEnumerator,
79 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
81 double* __restrict__ QOut,
82 const QOutEnumeratorType& QOutEnumerator
84 QOut[QOutEnumerator(patchIndex,
volumeIndex, unknown)] = QIn[QInEnumerator(patchIndex,
volumeIndex, unknown)];
113 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables,
class QInEnumeratorType,
class QOutEnumeratorType>
115 const double* __restrict__ QIn,
116 const QInEnumeratorType& QInEnumerator,
118 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
119 const ::tarch::la::Vector<Dimensions, double>& patchSize,
121 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
124 double* __restrict__ QOut,
125 const QOutEnumeratorType& QOutEnumerator
141 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables>
143 const double* __restrict__ QIn,
146 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
147 const ::tarch::la::Vector<Dimensions, double>& patchSize,
149 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
152 double* __restrict__ QOut,
160#pragma omp declare simd
161 template <
class SolverType,
class QInEnumeratorType,
class QOutEnumeratorType>
163 const double* __restrict__ QIn,
164 const QInEnumeratorType& QInEnumerator,
165 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
166 const ::tarch::la::Vector<Dimensions, double>& patchSize,
168 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
171 double* __restrict__ QOut,
172 const QOutEnumeratorType& QOutEnumerator
179#pragma omp declare simd
180 template <
class SolverType>
182 const double* __restrict__ QIn,
184 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
185 const ::tarch::la::Vector<Dimensions, double>& patchSize,
187 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
190 double* __restrict__ QOut,
212 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables,
class QInEnumeratorType,
class MaxEigenvalueEnumeratorType>
214 const double* __restrict__ QIn,
215 const QInEnumeratorType& QInEnumerator,
217 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
218 const ::tarch::la::Vector<Dimensions, double>& patchSize,
220 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
224 double* __restrict__ maxEigenvalue,
225 const MaxEigenvalueEnumeratorType& maxEigenvalueEnumerator
233 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables>
235 const double* __restrict__ QIn,
238 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
239 const ::tarch::la::Vector<Dimensions, double>& patchSize,
241 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
245 double* __restrict__ maxEigenvalue,
253#pragma omp declare simd
254 template <
class SolverType,
class QInEnumeratorType,
class MaxEigenvalueEnumeratorType>
256 const double* __restrict__ QIn,
257 const QInEnumeratorType& QInEnumerator,
258 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
259 const ::tarch::la::Vector<Dimensions, double>& patchSize,
261 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
265 double* __restrict__ maxEigenvalue,
266 const MaxEigenvalueEnumeratorType& maxEigenvalueEnumerator
273#pragma omp declare simd
274 template <
class SolverType,
class MaxEigenvalueEnumeratorType>
276 const double* __restrict__ QIn,
278 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
279 const ::tarch::la::Vector<Dimensions, double>& patchSize,
281 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
285 double* __restrict__ maxEigenvalue,
286 const MaxEigenvalueEnumeratorType& maxEigenvalueEnumerator
301 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables,
class QOutEnumeratorType>
303 const double* __restrict__ QOut,
304 const QOutEnumeratorType& QOutEnumerator,
306 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
307 const ::tarch::la::Vector<Dimensions, double>& patchSize,
309 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
320 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables>
322 const double* __restrict__ QOut,
325 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
326 const ::tarch::la::Vector<Dimensions, double>& patchSize,
328 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
337#pragma omp declare simd
338 template <
class SolverType,
class QOutEnumeratorType>
340 const double* __restrict__ QOut,
341 const QOutEnumeratorType& QOutEnumerator,
342 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
343 const ::tarch::la::Vector<Dimensions, double>& patchSize,
345 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
357#pragma omp declare simd
358 template <
class SolverType>
360 const double* __restrict__ QOut,
362 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
363 const ::tarch::la::Vector<Dimensions, double>& patchSize,
365 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
378#pragma omp declare simd
379 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables,
class QInEnumeratorType,
class FluxEnumeratorType>
381 const double* __restrict__ QIn,
382 const QInEnumeratorType& QInEnumerator,
384 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
385 const ::tarch::la::Vector<Dimensions, double>& patchSize,
387 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
391 double* __restrict__ flux,
392 const FluxEnumeratorType& fluxEnumerator
396#pragma omp declare simd
397 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables>
399 const double* __restrict__ QIn,
402 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
403 const ::tarch::la::Vector<Dimensions, double>& patchSize,
405 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
409 double* __restrict__ flux,
417#pragma omp declare simd
418 template <
class SolverType,
class QInEnumeratorType,
class FluxEnumeratorType>
420 const double* __restrict__ QIn,
421 const QInEnumeratorType& QInEnumerator,
422 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
423 const ::tarch::la::Vector<Dimensions, double>& patchSize,
425 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
429 double* __restrict__ flux,
430 const FluxEnumeratorType& fluxEnumerator
434#pragma omp declare simd
435 template <
class SolverType,
class FluxEnumeratorType>
437 const double* __restrict__ QIn,
439 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
440 const ::tarch::la::Vector<Dimensions, double>& patchSize,
442 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
446 double* __restrict__ flux,
447 const FluxEnumeratorType& fluxEnumerator
451#pragma omp declare simd
452 template <
class SolverType>
454 const double* __restrict__ QIn,
456 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
457 const ::tarch::la::Vector<Dimensions, double>& patchSize,
459 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
463 double* __restrict__ flux,
476#pragma omp declare simd
477 template <
class FluxEnumeratorType,
class QOutEnumeratorType>
479 const double* __restrict__ tempFluxX,
480 const double* __restrict__ tempFluxY,
481 const double* __restrict__ tempFluxZ,
482 const FluxEnumeratorType& fluxEnumerator,
483 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
484 const ::tarch::la::Vector<Dimensions, double>& patchSize,
486 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
489 double* __restrict__ QOut,
490 const QOutEnumeratorType& QOutEnumerator
504#pragma omp declare simd
505 template <
class FluxEnumeratorType,
class QOutEnumeratorType>
507 const double* __restrict__ fluxL,
508 const double* __restrict__ fluxR,
509 const FluxEnumeratorType& fluxEnumerator,
510 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
511 const ::tarch::la::Vector<Dimensions, double>& patchSize,
513 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
517 double* __restrict__ QOut,
518 const QOutEnumeratorType& QOutEnumerator
552#pragma omp declare simd
553 template <
class QInEnumeratorType,
class MaxEigenvalueEnumeratorType,
class QOutEnumeratorType>
555 const double* __restrict__ QIn,
556 const QInEnumeratorType& QInEnumerator,
557 const double* __restrict__ tempMaxEigenvalueX,
558 const double* __restrict__ tempMaxEigenvalueY,
559 const double* __restrict__ tempMaxEigenvalueZ,
560 const MaxEigenvalueEnumeratorType& eigenvalueEnumerator,
561 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
562 const ::tarch::la::Vector<Dimensions, double>& patchSize,
564 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
567 double* __restrict__ QOut,
568 const QOutEnumeratorType& QOutEnumerator
576#pragma omp declare simd
577 template <
class QInEnumeratorType,
class QOutEnumeratorType>
579 const double* __restrict__ QIn,
580 const QInEnumeratorType& QInEnumerator,
581 double maxEigenvalueL,
582 double maxEigenvalueR,
583 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
584 const ::tarch::la::Vector<Dimensions, double>& patchSize,
586 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
590 double* __restrict__ QOut,
591 const QOutEnumeratorType& QOutEnumerator
617 template <
int NumberOfUnknowns,
int NumberOfAuxiliaryVariables,
class QInEnumeratorType,
class NCPFaceEnumeratorType>
619 const double* __restrict__ QIn,
620 const QInEnumeratorType& QInEnumerator,
622 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
623 const ::tarch::la::Vector<Dimensions, double>& patchSize,
625 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
629 double* __restrict__ ncp,
630 const NCPFaceEnumeratorType& ncpEnumerator
637#pragma omp declare simd
638 template <
class SolverType,
class QInEnumeratorType,
class NCPFaceEnumeratorType>
640 const double* __restrict__ QIn,
641 const QInEnumeratorType& QInEnumerator,
642 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
643 const ::tarch::la::Vector<Dimensions, double>& patchSize,
645 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
649 double* __restrict__ ncp,
650 const NCPFaceEnumeratorType& ncpEnumerator
716#pragma omp declare simd
717 template <
class NCPFaceEnumeratorType,
class QOutEnumeratorType>
719 const double* __restrict__ ncpX,
720 const double* __restrict__ ncpY,
721 const double* __restrict__ ncpZ,
722 const NCPFaceEnumeratorType& ncpEnumerator,
723 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
724 const ::tarch::la::Vector<Dimensions, double>& patchSize,
726 const ::tarch::la::Vector<Dimensions, int>&
volumeIndex,
729 double* __restrict__ QOut,
730 const QOutEnumeratorType& QOutEnumerator
742#pragma omp declare simd
743 template <
class NCPFaceEnumeratorType,
class QOutEnumeratorType>
745 const double* __restrict__ ncp,
746 const NCPFaceEnumeratorType& ncpEnumerator,
747 const ::tarch::la::Vector<Dimensions, double>& patchCentre,
748 const ::tarch::la::Vector<Dimensions, double>& patchSize,
750 const ::tarch::la::Vector<Dimensions, int>& faceIndex,
754 double* __restrict__ QOut,
755 const QOutEnumeratorType& QOutEnumerator