62 int nTracePts = Fwd[0].size();
75 for (i = 0; i < nTracePts; ++i)
78 flux[0][i], flux[1][i], A0[i], beta[i], N[i], alpha[i]);
117 if (
m_session->DefinesSolverInfo(
"PressureArea"))
131 ASSERTL1(fabs(cL + cR) > fabs(uL + uR),
"Conditions are not sub-sonic");
148 m_pressureArea->GetAFromChars(Au, n * W1, n * W2, beta, A0, alpha);
156 uflux = (uu * uu / 2 +
P / rho) * n;
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
The RiemannSolver class provides an abstract interface under which solvers for various Riemann proble...
SOLVER_UTILS_EXPORT bool CheckParams(std::string name)
Determine whether a parameter has been defined in m_params.
SOLVER_UTILS_EXPORT bool CheckScalars(std::string name)
Determine whether a scalar has been defined in m_scalars.
std::map< std::string, RSScalarFuncType > m_scalars
Map of scalar function types.
std::map< std::string, RSParamFuncType > m_params
Map of parameter function types.
LibUtilities::SessionReaderSharedPtr m_session
static std::string solverName
virtual 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)
void RiemannSolverUpwind(NekDouble AL, NekDouble uL, NekDouble AR, NekDouble uR, NekDouble &Aflux, NekDouble &uflux, NekDouble A0, NekDouble beta, NekDouble n, NekDouble alpha=0.5)
UpwindPulseSolver(const LibUtilities::SessionReaderSharedPtr &pSession)
PulseWavePressureAreaSharedPtr m_pressureArea
static RiemannSolverSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession)
Array< OneD, MultiRegions::ExpListSharedPtr > m_vessels
std::shared_ptr< SessionReader > SessionReaderSharedPtr
RiemannSolverFactory & GetRiemannSolverFactory()
The above copyright notice and this permission notice shall be included.
PressureAreaFactory & GetPressureAreaFactory()