32 template<
class Equation,
class BaseFlux>
38 static const std::string
name;
40 template<
int direction>
42 const typename Equation::AllVariables& uiMinus1,
43 const typename Equation::AllVariables& ui,
44 const typename Equation::AllVariables& uiPlus1,
45 const typename Equation::AllVariables& uiPlus2,
46 typename Equation::ConservedVariables& F) {
48 real maxWaveSpeed = 0;
50 auto flux = [&](
const typename Equation::AllVariables & left,
51 const typename Equation::AllVariables & right
54 typename Equation::ConservedVariables returnValue;
55 real waveSpeed = BaseFlux::template computeFlux<direction>(eq, left, right,
57 maxWaveSpeed = fmax(maxWaveSpeed, waveSpeed);
62 F = (4.0 / 3.0 * flux(ui, uiPlus1) - 1.0 / 6.0 * (flux(uiMinus1,
63 uiPlus1) + flux(ui, uiPlus2)));
70 return{ -1, 0, 1, 2 };
static constexpr bool hasStencil
Definition: TecnoCombined4.hpp:67
#define __host__
Definition: types.hpp:46
double real
Definition: types.hpp:65
Definition: TecnoCombined4.hpp:33
static const std::string name
name is "tecno4"
Definition: TecnoCombined4.hpp:38
static __host__ __device__ ivec4 stencil()
Definition: TecnoCombined4.hpp:69
#define __device__
Definition: types.hpp:45
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
__device__ static __host__ real computeFlux(const Equation &eq, const typename Equation::AllVariables &uiMinus1, const typename Equation::AllVariables &ui, const typename Equation::AllVariables &uiPlus1, const typename Equation::AllVariables &uiPlus2, typename Equation::ConservedVariables &F)
Definition: TecnoCombined4.hpp:41