45 RegisterCreatorFunction(
"APEUpwind", UpwindSolver::create,
"Upwind solver for the APE equation");
47 UpwindSolver::UpwindSolver() :
86 Array<OneD, NekDouble> characteristic(4);
87 Array<OneD, NekDouble> W(2);
88 Array<OneD, NekDouble> lambda(2);
91 lambda[0]=u0 + sqrt(p0*gamma*rho)/rho;
92 lambda[1]=u0 - sqrt(p0*gamma*rho)/rho;
96 characteristic[0] = pL/2 + uL*sqrt(p0*gamma*rho)/2;
97 characteristic[1] = pL/2 - uL*sqrt(p0*gamma*rho)/2;
99 characteristic[2] = pR/2 + uR*sqrt(p0*gamma*rho)/2;
100 characteristic[3] = pR/2 - uR*sqrt(p0*gamma*rho)/2;
103 for (
int j = 0; j < 2; j++)
107 W[j]=characteristic[j];
111 W[j]=characteristic[j+2];
117 NekDouble u = (W[0]-W[1])/sqrt(p0*gamma*rho);
119 if (p0*gamma*rho == 0)
125 pF = gamma*p0 * u + u0*p;
126 uF = p/rho + u0*u + v0*vL + w0*wL;