28 #define USE_LOG_ENTROPY 1 105 size_t index)
const {
109 template<
class T,
class S>
116 size_t index)
const {
124 const ConservedVariables& input) {
125 output.
u.at(index) = input.
u;
132 const ExtraVariables& input)
const {
142 const ConservedVariables& input) {
143 output.
u.at(index) += input.
u;
158 template<
size_t direction>
160 ConservedVariables& F)
const {
161 static_assert(direction < 3,
"We only support up to three dimensions");
181 primitiveVariables)
const {
194 const PrimitiveVariables& primitiveVariables)
const {
202 template<
int direction>
204 const ExtraVariables& v)
const {
205 static_assert(direction >= 0,
"Direction can not be negative");
206 static_assert(direction < 3,
"We only support dimension up to and inclusive 3");
208 return std::abs(u.
u);
221 const ExtraVariables& v)
const {
223 return u.
u < INFINITY && (u.
u == u.
u);
232 return in.
u.at(index);
236 const ConservedVariables& conserved)
const {
250 return (1 / (entropyUpperBound - conserved.
u)) - 1 / (conserved.
u -
269 - entropyUpperBound * log(entropyUpperBound - conserved.
u) - entropyLowerBound *
270 log(conserved.
u - entropyLowerBound));
272 return 1.0 / 6.0 * (conserved.
u * conserved.
u * conserved.
u);
277 template<
int direction>
279 const ConservedVariables& conserved)
const {
282 return rvec1(2.0 * conserved.
u / (conserved.
u * (conserved.
u - 2)));
284 return rvec1(conserved.
u);
288 template<
int direction>
292 matrix1 matrixWithEigenVectors;
293 matrixWithEigenVectors(0, 0) = 1;
294 return matrixWithEigenVectors;
297 template<
int direction>
static const std::vector< std::string > conservedVariables
Definition: Burgers.hpp:56
static const size_t numberOfConservedVariables
Definition: Burgers.hpp:71
equation::burgers::Views< const volume::Volume, const memory::View< const real > > ConstViews
Definition: Burgers.hpp:93
__device__ __host__ real computeWaveSpeed(const ConservedVariables &u, const ExtraVariables &v) const
Definition: Burgers.hpp:203
static const std::vector< std::string > primitiveVariables
Definition: Burgers.hpp:61
__device__ __host__ matrix1 computeEigenVectorMatrix(const ConservedVariables &conserved) const
Definition: Burgers.hpp:289
Burgers(const EquationParameters ¶meters)
Definition: Burgers.hpp:36
static std::string getName()
Definition: Burgers.hpp:49
burgers::ConservedVariables ConservedVariables
Definition: Burgers.hpp:41
simulator::SimulatorParameters & parameters
Definition: CellComputerFactory.cpp:60
ViewType u
Definition: Views.hpp:55
__device__ static __host__ void addToViewAt(Views &output, size_t index, const ConservedVariables &input)
Definition: Burgers.hpp:141
static const constexpr real entropyUpperBound
Definition: Burgers.hpp:85
Definition: ConservedVariables.hpp:26
#define __host__
Definition: types.hpp:46
equation::burgers::ViewsExtra< volume::Volume, memory::View< real > > ViewsExtra
Definition: Burgers.hpp:96
Definition: PrimitiveVariables.hpp:23
double real
Definition: types.hpp:65
__device__ __host__ ExtraVariables computeExtra(const ConservedVariables &u) const
Definition: Burgers.hpp:171
burgers::PrimitiveVariables PrimitiveVariables
Definition: Burgers.hpp:43
__device__ __host__ rvec1 computeEntropyPotential(const ConservedVariables &conserved) const
Definition: Burgers.hpp:264
__device__ __host__ rvec1 computeEntropyVariables(const ConservedVariables &conserved) const
Definition: Burgers.hpp:247
__device__ __host__ PrimitiveVariables computePrimitiveVariables(const ConservedVariables &conserved) const
Definition: Burgers.hpp:235
Definition: EquationParameters.hpp:21
burgers::AllVariables AllVariables
Definition: Burgers.hpp:44
__device__ __host__ rvec1 computeEigenValues(const ConservedVariables &conserved) const
Definition: Burgers.hpp:298
__device__ __host__ void setExtraViewAt(ViewsExtra &output, size_t index, const ExtraVariables &input) const
Definition: Burgers.hpp:131
#define static_assert(x, y)
Definition: types.hpp:52
static const std::vector< std::string > extraVariables
Definition: Burgers.hpp:66
__device__ static __host__ size_t getNumberOfConservedVariables()
Definition: Burgers.hpp:87
static const constexpr real entropyLowerBound
Definition: Burgers.hpp:78
__device__ __host__ AllVariables makeAllVariables(real u) const
Definition: Burgers.hpp:226
real u
Definition: PrimitiveVariables.hpp:34
#define __device__
Definition: types.hpp:45
__device__ __host__ AllVariables fetchAllVariables(ConstViews &views, size_t index) const
Definition: Burgers.hpp:104
equation::burgers::ViewsExtra< const volume::Volume, const memory::View< const real > > ConstViewsExtra
Definition: Burgers.hpp:98
__device__ static __host__ ConservedVariables fetchConservedVariables(burgers::Views< T, S > &views, size_t index)
Definition: Burgers.hpp:110
__device__ static __host__ void setViewAt(Views &output, size_t index, const ConservedVariables &input)
Definition: Burgers.hpp:123
Definition: Burgers.hpp:33
EquationParameters Parameters
Definition: Burgers.hpp:40
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
real u
Definition: ConservedVariables.hpp:54
vec1< real > rvec1
Definition: types.hpp:70
__device__ __host__ ExtraVariables fetchExtraVariables(ConstViewsExtra &views, size_t index) const
Definition: Burgers.hpp:115
__device__ __host__ void computePointFlux(const AllVariables &u, ConservedVariables &F) const
Definition: Burgers.hpp:159
__device__ __host__ rvec1 computeEntropyVariablesMultipliedByEigenVectorMatrix(const ConservedVariables &conserved) const
Definition: Burgers.hpp:278
burgers::ExtraVariables ExtraVariables
Definition: Burgers.hpp:42
__device__ __host__ ExtraVariables computeExtra(const PrimitiveVariables &primitiveVariables) const
computes the extra variables from the primitive ones
Definition: Burgers.hpp:180
Definition: AllVariables.hpp:24
__device__ __host__ real getWeight(const ConstViews &in, size_t index) const
Definition: Burgers.hpp:231
__device__ __host__ ConservedVariables computeConserved(const PrimitiveVariables &primitiveVariables) const
computes the conserved variables from the primitive ones
Definition: Burgers.hpp:193
__device__ __host__ bool obeysConstraints(const ConservedVariables &u, const ExtraVariables &v) const
Definition: Burgers.hpp:220
equation::burgers::Views< volume::Volume, memory::View< real > > Views
Definition: Burgers.hpp:91