30 template<
class VolumeType,
class ViewType,
int nsd>
36 template<
class VolumeType,
class ViewType>
40 typedef typename std::conditional<std::is_const<VolumeType>::value,
47 :
p(volume.getScalarMemoryArea(
"p")->getView()),
48 ux(volume.getScalarMemoryArea(
"ux")->getView()),
49 uy(volume.getScalarMemoryArea(
"uy")->getView()),
50 uz(volume.getScalarMemoryArea(
"uz")->getView()) {
54 template<
size_t variableIndex>
57 "We only have 5 conserved variables for Euler!");
59 switch (variableIndex) {
79 return p.index(x, y, z);
85 return reference_vec(
ux.at(index), uy.at(index), uz.at(index));
89 return rvec(
ux.at(index), uy.at(index), uz.at(index));
100 template<
class VolumeType,
class ViewType>
104 typedef typename std::conditional<std::is_const<VolumeType>::value,
112 :
p(volume.getScalarMemoryArea(
"p")->getView()),
113 ux(volume.getScalarMemoryArea(
"ux")->getView()),
114 uy(volume.getScalarMemoryArea(
"uy")->getView()) {
118 template<
size_t variableIndex>
121 "We only have 5 conserved variables for Euler!");
123 switch (variableIndex) {
140 return p.index(x, y, z);
144 return reference_vec(
ux.at(index), uy.at(index));
148 return rvec(
ux.at(index), uy.at(index));
158 template<
class VolumeType,
class ViewType>
162 typedef typename std::conditional<std::is_const<VolumeType>::value,
170 :
p(volume.getScalarMemoryArea(
"p")->getView()),
171 ux(volume.getScalarMemoryArea(
"ux")->getView()) {
175 template<
size_t variableIndex>
178 "We only have 5 conserved variables for Euler!");
180 switch (variableIndex) {
194 return p.index(x, y, z);
198 return reference_vec(
ux.at(index));
202 return rvec(
ux.at(index));
Definition: types.hpp:104
#define __host__
Definition: types.hpp:46
VolumeType type
Definition: VolumeFactory.cpp:85
double real
Definition: types.hpp:65
int ux
Definition: sodshocktube.py:4
#define static_assert(x, y)
Definition: types.hpp:52
#define __device__
Definition: types.hpp:45
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
float p
Definition: sodshocktube.py:5