57 [[maybe_unused]]
const int nDim,
63 int nTracePts = Fwd[0].size();
76 for (i = 0; i < nTracePts; ++i)
79 flux[0][i], flux[1][i], A0[i],
beta[i], N[i],
119 if (
m_session->DefinesSolverInfo(
"PressureArea"))
133 ASSERTL1(fabs(cL + cR) > fabs(uL + uR),
"Conditions are not sub-sonic");
158 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
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)
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
Array< OneD, MultiRegions::ExpListSharedPtr > m_vessels
std::shared_ptr< SessionReader > SessionReaderSharedPtr
@ beta
Gauss Radau pinned at x=-1,.
@ P
Monomial polynomials .
RiemannSolverFactory & GetRiemannSolverFactory()
PressureAreaFactory & GetPressureAreaFactory()