32 template<
class Equation,
class BaseFlux>
38 static const std::string
name;
40 template<
int direction>
42 const typename Equation::AllVariables& uiMinus2,
43 const typename Equation::AllVariables& uiMinus1,
44 const typename Equation::AllVariables& ui,
45 const typename Equation::AllVariables& uiPlus1,
46 const typename Equation::AllVariables& uiPlus2,
47 const typename Equation::AllVariables& uiPlus3,
48 typename Equation::ConservedVariables& F) {
50 real maxWaveSpeed = 0;
52 auto flux = [&](
const typename Equation::AllVariables & left,
53 const typename Equation::AllVariables & right
56 typename Equation::ConservedVariables returnValue;
57 real waveSpeed = BaseFlux::template computeFlux<direction>(eq, left, right,
59 maxWaveSpeed = fmax(maxWaveSpeed, waveSpeed);
64 F = (3.0 / 2.0 * flux(ui, uiPlus1) - 3.0 / 10.0 * (flux(uiMinus1,
65 uiPlus1) + flux(ui, uiPlus2))
66 + 1.0 / 30.0 * (flux(uiMinus2, uiPlus1) + flux(uiMinus1, uiPlus2) + flux(ui,
74 return{ -2, -1, 0, 1, 2, 3 };
__device__ static __host__ real computeFlux(const Equation &eq, const typename Equation::AllVariables &uiMinus2, const typename Equation::AllVariables &uiMinus1, const typename Equation::AllVariables &ui, const typename Equation::AllVariables &uiPlus1, const typename Equation::AllVariables &uiPlus2, const typename Equation::AllVariables &uiPlus3, typename Equation::ConservedVariables &F)
Definition: TecnoCombined6.hpp:41
static constexpr bool hasStencil
Definition: TecnoCombined6.hpp:71
#define __host__
Definition: types.hpp:46
double real
Definition: types.hpp:65
static const std::string name
name is "tecno6"
Definition: TecnoCombined6.hpp:38
static __host__ __device__ ivec6 stencil()
Definition: TecnoCombined6.hpp:73
#define __device__
Definition: types.hpp:45
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
Definition: TecnoCombined6.hpp:33