44 "HLL Riemann solver");
71 double rhoL,
double rhouL,
double rhovL,
double rhowL,
double EL,
72 double rhoR,
double rhouR,
double rhovR,
double rhowR,
double ER,
73 double &rhof,
double &rhouf,
double &rhovf,
double &rhowf,
double &Ef)
87 (EL - 0.5 * (rhouL * uL + rhovL * vL + rhowL * wL));
89 (ER - 0.5 * (rhouR * uR + rhovR * vR + rhowR * wR));
101 NekDouble uRoe = (srL * uL + srR * uR) / srLR;
102 NekDouble vRoe = (srL * vL + srR * vR) / srLR;
103 NekDouble wRoe = (srL * wL + srR * wR) / srLR;
104 NekDouble hRoe = (srL * hL + srR * hR) / srLR;
105 NekDouble cRoe = sqrt((gamma - 1.0)*(hRoe - 0.5 *
106 (uRoe * uRoe + vRoe * vRoe + wRoe * wRoe)));
109 NekDouble SL = std::min(uL-cL, uRoe-cRoe);
110 NekDouble SR = std::max(uR+cR, uRoe+cRoe);
116 rhouf = rhouL * uL + pL;
125 rhouf = rhouR * uR + pR;
135 rhof = (SR * rhouL - SL * rhouR + tmp2 * (rhoR - rhoL)) * tmp1;
136 rhouf = (SR * (rhouL * uL + pL) - SL * (rhouR * uR + pR) +
137 tmp2 * (rhouR - rhouL)) * tmp1;
138 rhovf = (SR * rhouL * vL - SL * rhouR * vR +
139 tmp2 * (rhovR - rhovL)) * tmp1;
140 rhowf = (SR * rhouL * wL - SL * rhouR * wR +
141 tmp2 * (rhowR - rhowL)) * tmp1;
142 Ef = (SR * uL * (EL + pL) - SL * uR * (ER + pR) +
143 tmp2 * (ER - EL)) * tmp1;
static RiemannSolverSharedPtr create()
RiemannSolverFactory & GetRiemannSolverFactory()
static std::string solverName
std::map< std::string, RSParamFuncType > m_params
Map of parameter function types.
virtual void v_PointSolve(double rhoL, double rhouL, double rhovL, double rhowL, double EL, double rhoR, double rhouR, double rhovR, double rhowR, double ER, double &rhof, double &rhouf, double &rhovf, double &rhowf, double &Ef)
HLL Riemann solver.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.