43 "Lax-Friedrichs Riemann solver");
86 (EL - 0.5 * (rhouL*uL + rhovL*vL + rhowL*wL));
89 (ER - 0.5 * (rhouR*uR + rhovR*vR + rhowR*wR));
105 NekDouble uRoe = (srL * uL + srR * uR) / srLR;
106 NekDouble vRoe = (srL * vL + srR * vR) / srLR;
107 NekDouble wRoe = (srL * wL + srR * wR) / srLR;
108 NekDouble hRoe = (srL * hL + srR * hR) / srLR;
109 NekDouble cRoe = sqrt((gamma - 1.0)*(hRoe - 0.5 *
110 (uRoe * uRoe + vRoe * vRoe + wRoe * wRoe)));
113 NekDouble S = std::max(uRoe+cRoe, std::max(uR+cR, -uL+cL));
122 rhof = 0.5 * ((rhouL + rhouR) - sign * S * (rhoR -rhoL));
125 rhouf = 0.5 * ((rhoL * uL * uL + pL + rhoR * uR * uR + pR) -
126 sign * S * (rhouR - rhouL));
129 rhovf = 0.5 * ((rhoL * uL * vL + rhoR * uR * vR) -
130 sign * S * (rhovR - rhovL));
133 rhowf = 0.5 * ((rhoL * uL * wL + rhoR * uR * wR) -
134 sign * S * (rhowR - rhowL));
137 Ef = 0.5 * ((uL * (EL + pL) + uR * (ER + pR)) -
138 sign * S * (ER - EL));
158 (EL - 0.5 * (rhouL*uL + rhovL*vL + rhowL*wL));
161 (ER - 0.5 * (rhouR*uR + rhovR*vR + rhowR*wR));
177 NekDouble uRoe = (srL * uL + srR * uR) / srLR;
178 NekDouble vRoe = (srL * vL + srR * vR) / srLR;
179 NekDouble wRoe = (srL * wL + srR * wR) / srLR;
180 NekDouble hRoe = (srL * hL + srR * hR) / srLR;
181 NekDouble cRoe = sqrt((gamma - 1.0)*(hRoe - 0.5 *
182 (uRoe * uRoe + vRoe * vRoe + wRoe * wRoe)));
185 NekDouble S = std::max(uRoe+cRoe, std::max(uR+cR, -uL+cL));
194 rhof = 0.5 * ((rhouL + rhouR) - sign * S * (rhoR -rhoL));
197 rhouf = 0.5 * ((rhoL * uL * uL + pL + rhoR * uR * uR + pR) -
198 sign * S * (rhouR - rhouL));
201 rhovf = 0.5 * ((rhoL * uL * vL + rhoR * uR * vR) -
202 sign * S * (rhovR - rhovL));
205 rhowf = 0.5 * ((rhoL * uL * wL + rhoR * uR * wR) -
206 sign * S * (rhowR - rhowL));
209 Ef = 0.5 * ((uL * (EL + pL) + uR * (ER + pR)) -
210 sign * S * (ER - EL));
212 Epsf = 0.5 * ((EpsL + EpsR) -
213 sign * S * (EpsR - EpsL));
#define sign(a, b)
return the sign(b)*a
virtual void v_PointSolveVisc(NekDouble rhoL, NekDouble rhouL, NekDouble rhovL, NekDouble rhowL, NekDouble EL, NekDouble EpsL, NekDouble rhoR, NekDouble rhouR, NekDouble rhovR, NekDouble rhowR, NekDouble ER, NekDouble EpsR, NekDouble &rhof, NekDouble &rhouf, NekDouble &rhovf, NekDouble &rhowf, NekDouble &Ef, NekDouble &Epsf)
virtual void v_PointSolve(NekDouble pL, NekDouble rhoL, NekDouble uL, NekDouble vL, NekDouble wL, NekDouble pR, NekDouble rhoR, NekDouble uR, NekDouble vR, NekDouble wR, NekDouble p0, NekDouble rho0, NekDouble u0, NekDouble v0, NekDouble w0, NekDouble &pF, NekDouble &rhoF, NekDouble &uF, NekDouble &vF, NekDouble &wF)
Lax-Friedrichs Riemann solver.
RiemannSolverFactory & GetRiemannSolverFactory()
static std::string solverName
static RiemannSolverSharedPtr create()
std::map< std::string, RSParamFuncType > m_params
Map of parameter function types.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.