42 "LaxFriedrichs Riemann solver");
46 : NonlinearSWESolver(pSession)
69 static NekDouble g = m_params[
"gravity"]();
87 NekDouble uRoe = (srL * uL + srR * uR) / srLR;
91 NekDouble S = std::max(uRoe + cRoe, std::max(uR + cR, -(uL - cL)));
100 hf = 0.5 * ((huL + huR) -
sign * S * (hR - hL));
105 ((hL * uL * uL + 0.5 * g * hL * hL + hR * uR * uR + 0.5 * g * hR * hR) -
106 sign * S * (huR - huL));
109 hvf = 0.5 * ((hL * uL * vL + hR * uR * vR) -
sign * S * (hvR - hvL));
#define sign(a, b)
return the sign(b)*a
static RiemannSolverSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession)
static std::string solverName
LaxFriedrichsSolver(const LibUtilities::SessionReaderSharedPtr &pSession)
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
RiemannSolverFactory & GetRiemannSolverFactory()
scalarT< T > sqrt(scalarT< T > in)