Peano
Loading...
Searching...
No Matches
rusanov.cpp
Go to the documentation of this file.
1// This file is part of the ExaHyPE2 project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#include "rusanov.h"
4
5
8 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch,
9#if Dimensions == 3
10 numberOfVolumesPerAxisInPatch,
11#endif
12 unknowns
13 });
14}
15
16
18 int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables, int patches
19) {
21 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch,
22#if Dimensions == 3
23 numberOfVolumesPerAxisInPatch,
24#endif
25 unknowns + auxiliaryVariables, patches
26 });
27}
28
29
32 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch,
33#if Dimensions == 3
34 numberOfVolumesPerAxisInPatch,
35#endif
36 patches
37 });
38}
39
40
43 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch,
44#if Dimensions == 3
45 numberOfVolumesPerAxisInPatch,
46#endif
47 unknowns, patches
48 });
49}
50
51
53 int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables
54) {
56 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch,
57#if Dimensions == 3
58 numberOfVolumesPerAxisInPatch,
59#endif
60 unknowns + auxiliaryVariables
61 });
62}
63
64
65tarch::la::Vector<Dimensions, int> exahype2::fv::rusanov::internal::rangeOverVolumesPlusHaloInXDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections) {
67 numberOfVolumesPerAxisInPatch + (extendInBothDirections ? 2 : 1) * haloSize, numberOfVolumesPerAxisInPatch
68#if Dimensions == 3
69 ,
70 numberOfVolumesPerAxisInPatch
71#endif
72 });
73}
74
75
76tarch::la::Vector<Dimensions, int> exahype2::fv::rusanov::internal::rangeOverVolumesPlusHaloInYDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections) {
78 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch + (extendInBothDirections ? 2 : 1) * haloSize
79#if Dimensions == 3
80 ,
81 numberOfVolumesPerAxisInPatch
82#endif
83 });
84}
85
86
87tarch::la::Vector<3, int> exahype2::fv::rusanov::internal::rangeOverVolumesPlusHaloInZDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections) {
88 return tarch::la::Vector<3, int>({numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch + (extendInBothDirections ? 2 : 1) * haloSize});
89}
90
91
93 int numberOfVolumesPerAxisInPatch, int haloSize, int patches
94) {
96 numberOfVolumesPerAxisInPatch + 2 * haloSize, numberOfVolumesPerAxisInPatch,
97#if Dimensions == 3
98 numberOfVolumesPerAxisInPatch,
99#endif
100 patches
101 });
102}
103
104
106 int numberOfVolumesPerAxisInPatch, int haloSize, int patches
107) {
109 numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch + 2 * haloSize,
110#if Dimensions == 3
111 numberOfVolumesPerAxisInPatch,
112#endif
113 patches
114 });
115}
116
117
119 return tarch::la::Vector<4, int>({numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch, numberOfVolumesPerAxisInPatch + 2 * haloSize, patches});
120}
tarch::la::Vector< 3+1, int > rangeOverVolumesTimesPatchesPlusHaloInZDirection(int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
Definition rusanov.cpp:118
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesUnknownsPlusAuxiliaryVariables(int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables)
Definition rusanov.cpp:52
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesUnknowns(int numberOfVolumesPerAxisInPatch, int unknowns)
Definition rusanov.cpp:6
tarch::la::Vector< 3, int > rangeOverVolumesPlusHaloInZDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
Definition rusanov.cpp:87
tarch::la::Vector< Dimensions, int > rangeOverVolumesPlusHaloInYDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
Definition rusanov.cpp:76
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesPatches(int numberOfVolumesPerAxisInPatch, int patches)
Definition rusanov.cpp:30
tarch::la::Vector< Dimensions+2, int > rangeOverVolumesTimesUnknownsTimesPatches(int numberOfVolumesPerAxisInPatch, int unknowns, int patches)
Definition rusanov.cpp:41
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesPatchesPlusHaloInXDirection(int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
Definition rusanov.cpp:92
tarch::la::Vector< Dimensions, int > rangeOverVolumesPlusHaloInXDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
Construct iteration range.
Definition rusanov.cpp:65
tarch::la::Vector< Dimensions+2, int > rangeOverVolumesTimesUnknownsPlusAuxiliaryVariablesTimesPatches(int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables, int patches)
Definition rusanov.cpp:17
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesPatchesPlusHaloInYDirection(int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
Definition rusanov.cpp:105
Simple vector class.
Definition Vector.h:134