44 "Lax-Friedrichs Solver");
99 a_1_max = std::max(a_1_max,
std::abs(u0L - cL));
100 a_1_max = std::max(a_1_max,
std::abs(u0R - cR));
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));
104 NekDouble pFL = rho0L * c0sqL * uL + pL * u0L;
105 NekDouble uFL = pL / rho0L + u0L * uL + v0L * vL + w0L * wL;
109 NekDouble pFR = rho0R * c0sqR * uR + pR * u0R;
110 NekDouble uFR = pR / rho0R + u0R * uR + v0R * vR + w0R * wR;
115 pF = 0.5 * (pFL + pFR - a_1_max * (pR - pL));
116 uF = 0.5 * (uFL + uFR - a_1_max * (uR - uL));
117 vF = 0.5 * (vFL + vFR - a_1_max * (vR - vL));
118 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)