46 "Lax-Friedrichs Solver");
101 a_1_max = std::max(a_1_max,
std::abs(u0L - cL));
102 a_1_max = std::max(a_1_max,
std::abs(u0R - cR));
103 a_1_max = std::max(a_1_max,
std::abs(u0L + cL));
104 a_1_max = std::max(a_1_max,
std::abs(u0R + cR));
106 NekDouble pFL = rho0L * c0sqL * uL + pL * u0L;
107 NekDouble uFL = pL / rho0L + u0L * uL + v0L * vL + w0L * wL;
111 NekDouble pFR = rho0R * c0sqR * uR + pR * u0R;
112 NekDouble uFR = pR / rho0R + u0R * uR + v0R * vR + w0R * wR;
117 pF = 0.5 * (pFL + pFR - a_1_max * (pR - pL));
118 uF = 0.5 * (uFL + uFR - a_1_max * (uR - uL));
119 vF = 0.5 * (vFL + vFR - a_1_max * (vR - vL));
120 wF = 0.5 * (wFL + wFR - a_1_max * (wR - wL));
static std::string solverName
static RiemannSolverSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession)
APELaxFriedrichsSolver(const LibUtilities::SessionReaderSharedPtr &pSession)
void v_PointSolve(NekDouble pL, NekDouble rhoL, NekDouble uL, NekDouble vL, NekDouble wL, NekDouble pR, NekDouble rhoR, NekDouble uR, NekDouble vR, NekDouble wR, NekDouble c0sqL, NekDouble rho0L, NekDouble u0L, NekDouble v0L, NekDouble w0L, NekDouble c0sqR, NekDouble rho0R, NekDouble u0R, NekDouble v0R, NekDouble w0R, NekDouble &pF, NekDouble &rhoF, NekDouble &uF, NekDouble &vF, NekDouble &wF) override
Lax-Friedrichs Riemann solver.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
RiemannSolverFactory & GetRiemannSolverFactory()
scalarT< T > abs(scalarT< T > in)
scalarT< T > sqrt(scalarT< T > in)