44 "HLLC Riemann solver");
65 double hL,
double huL,
double hvL,
66 double hR,
double huR,
double hvR,
67 double &hf,
double &huf,
double &hvf)
83 NekDouble hC,huC,hvC,SL,SR,hstar,ustar,Sstar;
84 hstar = 0.5*(cL + cR) + 0.25*(uL - uR);
87 ustar = 0.5*(uL + uR) + cL - cR;
92 SL = uL - cL * sqrt(0.5*((hstar*hstar + hstar*hL)/(hL*hL)));
98 SR = uR + cR * sqrt(0.5*((hstar*hstar + hstar*hR)/(hR*hR)));
102 if (fabs(hR*(uR-SR)-hL*(uL-SL)) <= 1.0e-10)
105 Sstar = (SL*hR*(uR-SR)-SR*hL*(uL-SL))/(hR*(uR-SR)-hL*(uL-SL));
110 huf = uL * uL * hL + 0.5 * g * hL * hL;
116 huf = uR * uR * hR + 0.5 * g * hR * hR;
119 else if ((SL < 0) && (Sstar >= 0))
121 hC = hL * ((SL - uL) / (SL - Sstar));
125 hf = hL*uL + SL * (hC - hL);
126 huf = (uL*uL*hL+0.5*g*hL*hL) + SL * (huC - hL*uL);
127 hvf = (uL*vL*hL) + SL * (hvC - hL*vL);
129 else if ((SR > 0) && (Sstar <= 0))
131 hC = hR * ((SR - uR) / (SR - Sstar));
135 hf = hR*uR + SR * (hC - hR);
136 huf = (uR*uR*hR+0.5*g*hR*hR) + SR * (huC - hR*uR);
137 hvf = (uR*vR*hR) + SR * (hvC - hR*vR);
141 ASSERTL0(
false,
"Error in HLLC solver -- non physical combination of SR, SL and Sstar");