36#include <boost/core/ignore_unused.hpp>
48 "Lax-Friedrichs Solver for LEE");
96 boost::ignore_unused(rho0L, v0L, w0L, rho0R, v0R, w0R);
104 a_1_max = std::max(a_1_max,
std::abs(u0L - cL));
105 a_1_max = std::max(a_1_max,
std::abs(u0R - cR));
106 a_1_max = std::max(a_1_max,
std::abs(u0L + cL));
107 a_1_max = std::max(a_1_max,
std::abs(u0R + cR));
109 NekDouble pFL = rhouL * c0sqL + u0L * pL;
115 NekDouble pFR = rhouR * c0sqR + u0R * pR;
122 pF = 0.5 * (pFL + pFR - a_1_max * (pR - pL));
123 rhoF = 0.5 * (rhoFL + rhoFR - a_1_max * (rhoR - rhoL));
124 rhouF = 0.5 * (rhouFL + rhouFR - a_1_max * (rhouR - rhouL));
125 rhovF = 0.5 * (rhovFL + rhovFR - a_1_max * (rhovR - rhovL));
126 rhowF = 0.5 * (rhowFL + rhowFR - a_1_max * (rhowR - rhowL));
static RiemannSolverSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession)
virtual void v_PointSolve(NekDouble pL, NekDouble rhoL, NekDouble rhouL, NekDouble rhovL, NekDouble rhowL, NekDouble pR, NekDouble rhoR, NekDouble rhouR, NekDouble rhovR, NekDouble rhowR, 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 &rhouF, NekDouble &rhovF, NekDouble &rhowF) override
Lax-Friedrichs Riemann solver.
static std::string solverName
LEELaxFriedrichsSolver(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()
The above copyright notice and this permission notice shall be included.
scalarT< T > abs(scalarT< T > in)
scalarT< T > sqrt(scalarT< T > in)