47 [[maybe_unused]]
const int nDim,
59 int expDim = Fwd.size() - 1;
64 for (
int i = 0; i < Fwd[0].size(); ++i)
66 v_PointSolve(Fwd[0][i], Fwd[1][i], 0.0, dFwd[i], Bwd[0][i],
67 Bwd[1][i], 0.0, dBwd[i], flux[0][i], flux[1][i],
73 for (
int i = 0; i < Fwd[0].size(); ++i)
76 Bwd[0][i], Bwd[1][i], Bwd[2][i], dBwd[i],
77 flux[0][i], flux[1][i], flux[2][i]);
82 ASSERTL0(
false,
"No 3D Shallow water supported.");
#define ASSERTL0(condition, msg)
virtual void v_PointSolve(NekDouble etaL, NekDouble uL, NekDouble vL, NekDouble dL, NekDouble etaR, NekDouble uR, NekDouble vR, NekDouble dR, NekDouble &etaf, NekDouble &uf, NekDouble &vf)
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
LinearSWESolver(const LibUtilities::SessionReaderSharedPtr &pSession)
virtual void v_ArraySolve(const Array< OneD, const Array< OneD, NekDouble > > &Fwd, const Array< OneD, const Array< OneD, NekDouble > > &Bwd, Array< OneD, Array< OneD, NekDouble > > &flux)
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.
std::map< std::string, RSScalarFuncType > m_scalars
Map of scalar function types.
std::shared_ptr< SessionReader > SessionReaderSharedPtr