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");
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>
equation::linear::ViewsExtra< volume::Volume, memory::View< real > > ViewsExtra
Definition: Linear.hpp:96
static std::string getName()
Definition: Linear.hpp:49
__device__ __host__ matrix1 computeEigenVectorMatrix(const ConservedVariables &conserved) const
Definition: Linear.hpp:289
static const std::vector< std::string > conservedVariables
Definition: Linear.hpp:56
__device__ __host__ ExtraVariables fetchExtraVariables(ConstViewsExtra &views, size_t index) const
Definition: Linear.hpp:115
equation::linear::ViewsExtra< const volume::Volume, const memory::View< const real > > ConstViewsExtra
Definition: Linear.hpp:98
linear::PrimitiveVariables PrimitiveVariables
Definition: Linear.hpp:43
static const std::vector< std::string > primitiveVariables
Definition: Linear.hpp:61
simulator::SimulatorParameters & parameters
Definition: CellComputerFactory.cpp:60
#define __host__
Definition: types.hpp:46
equation::linear::Views< const volume::Volume, const memory::View< const real > > ConstViews
Definition: Linear.hpp:93
__device__ __host__ rvec1 computeEntropyVariables(const ConservedVariables &conserved) const
Definition: Linear.hpp:247
real u
Definition: ConservedVariables.hpp:54
__device__ __host__ real getWeight(const ConstViews &in, size_t index) const
Definition: Linear.hpp:231
__device__ __host__ void setExtraViewAt(ViewsExtra &output, size_t index, const ExtraVariables &input) const
Definition: Linear.hpp:131
__device__ __host__ AllVariables fetchAllVariables(ConstViews &views, size_t index) const
Definition: Linear.hpp:104
double real
Definition: types.hpp:65
Definition: Linear.hpp:33
real u
Definition: PrimitiveVariables.hpp:34
__device__ __host__ void computePointFlux(const AllVariables &u, ConservedVariables &F) const
Definition: Linear.hpp:159
Definition: AllVariables.hpp:24
__device__ __host__ rvec1 computeEigenValues(const ConservedVariables &conserved) const
Definition: Linear.hpp:298
__device__ __host__ bool obeysConstraints(const ConservedVariables &u, const ExtraVariables &v) const
Definition: Linear.hpp:220
__device__ __host__ real computeWaveSpeed(const ConservedVariables &u, const ExtraVariables &v) const
Definition: Linear.hpp:203
__device__ static __host__ void addToViewAt(Views &output, size_t index, const ConservedVariables &input)
Definition: Linear.hpp:141
Definition: PrimitiveVariables.hpp:23
__device__ __host__ AllVariables makeAllVariables(real u) const
Definition: Linear.hpp:226
linear::ExtraVariables ExtraVariables
Definition: Linear.hpp:42
__device__ __host__ ExtraVariables computeExtra(const PrimitiveVariables &primitiveVariables) const
computes the extra variables from the primitive ones
Definition: Linear.hpp:180
linear::ConservedVariables ConservedVariables
Definition: Linear.hpp:41
Definition: EquationParameters.hpp:21
__device__ __host__ ExtraVariables computeExtra(const ConservedVariables &u) const
Definition: Linear.hpp:171
__device__ static __host__ size_t getNumberOfConservedVariables()
Definition: Linear.hpp:87
#define static_assert(x, y)
Definition: types.hpp:52
Linear(const EquationParameters ¶meters)
Definition: Linear.hpp:36
static const size_t numberOfConservedVariables
Definition: Linear.hpp:71
__device__ __host__ ConservedVariables computeConserved(const PrimitiveVariables &primitiveVariables) const
computes the conserved variables from the primitive ones
Definition: Linear.hpp:193
__device__ __host__ rvec1 computeEntropyVariablesMultipliedByEigenVectorMatrix(const ConservedVariables &conserved) const
Definition: Linear.hpp:278
EquationParameters Parameters
Definition: Linear.hpp:40
static const constexpr real entropyLowerBound
Definition: Linear.hpp:78
__device__ static __host__ ConservedVariables fetchConservedVariables(linear::Views< T, S > &views, size_t index)
Definition: Linear.hpp:110
#define __device__
Definition: types.hpp:45
__device__ __host__ rvec1 computeEntropyPotential(const ConservedVariables &conserved) const
Definition: Linear.hpp:264
static const constexpr real entropyUpperBound
Definition: Linear.hpp:85
equation::linear::Views< volume::Volume, memory::View< real > > Views
Definition: Linear.hpp:91
__device__ __host__ PrimitiveVariables computePrimitiveVariables(const ConservedVariables &conserved) const
Definition: Linear.hpp:235
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
vec1< real > rvec1
Definition: types.hpp:70
Definition: ConservedVariables.hpp:26
static const std::vector< std::string > extraVariables
Definition: Linear.hpp:66
__device__ static __host__ void setViewAt(Views &output, size_t index, const ConservedVariables &input)
Definition: Linear.hpp:123
ViewType u
Definition: Views.hpp:55
linear::AllVariables AllVariables
Definition: Linear.hpp:44