61 int nTracePts = Fwd[0].size();
65 for (
int i = 0; i < nDim + 2; i++)
78 for (
int i = 0; i < nTracePts; ++i)
80 v_PointSolve(Fwd[0][i], 0.0, Fwd[1][i], 0.0, 0.0, Bwd[0][i], 0.0,
81 Bwd[1][i], 0.0, 0.0, bfFwd[0][i], bfFwd[1][i],
82 bfFwd[2][i], 0.0, 0.0, bfBwd[0][i], bfBwd[1][i],
83 bfBwd[2][i], 0.0, 0.0, flux[0][i], rhoF, flux[1][i],
89 for (
int i = 0; i < nTracePts; ++i)
91 v_PointSolve(Fwd[0][i], 0.0, Fwd[1][i], Fwd[2][i], 0.0, Bwd[0][i],
92 0.0, Bwd[1][i], Bwd[2][i], 0.0, bfFwd[0][i],
93 bfFwd[1][i], bfFwd[2][i], bfFwd[3][i], 0.0,
94 bfBwd[0][i], bfBwd[1][i], bfBwd[2][i], bfBwd[3][i],
95 0.0, flux[0][i], rhoF, flux[1][i], flux[2][i], wF);
100 for (
int i = 0; i < nTracePts; ++i)
102 v_PointSolve(Fwd[0][i], 0.0, Fwd[1][i], Fwd[2][i], Fwd[3][i],
103 Bwd[0][i], 0.0, Bwd[1][i], Bwd[2][i], Bwd[3][i],
104 bfFwd[0][i], bfFwd[1][i], bfFwd[2][i], bfFwd[3][i],
105 bfFwd[4][i], bfBwd[0][i], bfBwd[1][i], bfBwd[2][i],
106 bfBwd[3][i], bfBwd[4][i], flux[0][i], rhoF, flux[1][i],
107 flux[2][i], flux[3][i]);
124 int nBF = basefieldFwdBwd.size() / 2;
125 int nDim = normals.size();
130 for (
int i = 0; i < nBF; i++)
133 basefieldFwd[i] = basefieldFwdBwd[i];
134 basefieldBwd[i] = basefieldFwdBwd[j];
139 for (
int i = 0; i < nDim; ++i)
141 baseVecLocs[0][i] = i + 2;
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
AcousticSolver(const LibUtilities::SessionReaderSharedPtr &pSession)
void GetRotBasefield(Array< OneD, Array< OneD, NekDouble > > &bfFwd, Array< OneD, Array< OneD, NekDouble > > &bfBwd)
void v_Solve(const int nDim, const Array< OneD, const Array< OneD, NekDouble > > &Fwd, const Array< OneD, const Array< OneD, NekDouble > > &Bwd, Array< OneD, Array< OneD, NekDouble > > &flux) override
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 c0sqL, NekDouble rho0L, NekDouble u0L, NekDouble v0L, NekDouble w0L, NekDouble c0sqR, NekDouble rho0R, NekDouble u0R, NekDouble v0R, NekDouble w0R, NekDouble &pF, NekDouble &rhoF, NekDouble &uF, NekDouble &vF, NekDouble &wF)=0
The RiemannSolver class provides an abstract interface under which solvers for various Riemann proble...
bool m_requiresRotation
Indicates whether the Riemann solver requires a rotation to be applied to the velocity fields.
SOLVER_UTILS_EXPORT void rotateToNormal(const Array< OneD, const Array< OneD, NekDouble > > &inarray, const Array< OneD, const Array< OneD, NekDouble > > &normals, const Array< OneD, const Array< OneD, NekDouble > > &vecLocs, Array< OneD, Array< OneD, NekDouble > > &outarray)
Rotate a vector field to trace normal.
std::map< std::string, RSVecFuncType > m_vectors
Map of vector function types.
SOLVER_UTILS_EXPORT bool CheckVectors(std::string name)
Determine whether a vector has been defined in m_vectors.
std::shared_ptr< SessionReader > SessionReaderSharedPtr