|
| UpwindPulseSolver (const LibUtilities::SessionReaderSharedPtr &pSession) |
|
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) override |
|
void | RiemannSolverUpwind (NekDouble AL, NekDouble uL, NekDouble AR, NekDouble uR, NekDouble &Aflux, NekDouble &uflux, NekDouble A0, NekDouble beta, NekDouble n, NekDouble alpha=0.5) |
|
SOLVER_UTILS_EXPORT | RiemannSolver () |
|
SOLVER_UTILS_EXPORT | RiemannSolver (const LibUtilities::SessionReaderSharedPtr &pSession) |
|
virtual SOLVER_UTILS_EXPORT | ~RiemannSolver () |
|
SOLVER_UTILS_EXPORT void | GenerateRotationMatrices (const Array< OneD, const Array< OneD, NekDouble >> &normals) |
| Generate rotation matrices for 3D expansions. More...
|
|
void | FromToRotation (Array< OneD, const NekDouble > &from, Array< OneD, const NekDouble > &to, NekDouble *mat) |
| A function for creating a rotation matrix that rotates a vector from into another vector to. More...
|
|
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. More...
|
|
SOLVER_UTILS_EXPORT void | rotateFromNormal (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 from trace normal. More...
|
|
SOLVER_UTILS_EXPORT bool | CheckScalars (std::string name) |
| Determine whether a scalar has been defined in m_scalars. More...
|
|
SOLVER_UTILS_EXPORT bool | CheckVectors (std::string name) |
| Determine whether a vector has been defined in m_vectors. More...
|
|
SOLVER_UTILS_EXPORT bool | CheckParams (std::string name) |
| Determine whether a parameter has been defined in m_params. More...
|
|
SOLVER_UTILS_EXPORT bool | CheckAuxScal (std::string name) |
| Determine whether a scalar has been defined in m_auxScal. More...
|
|
SOLVER_UTILS_EXPORT bool | CheckAuxVec (std::string name) |
| Determine whether a vector has been defined in m_auxVec. More...
|
|
virtual SOLVER_UTILS_EXPORT void | v_CalcFluxJacobian (const int nDim, const Array< OneD, const Array< OneD, NekDouble >> &Fwd, const Array< OneD, const Array< OneD, NekDouble >> &Bwd, const Array< OneD, const Array< OneD, NekDouble >> &normals, DNekBlkMatSharedPtr &FJac, DNekBlkMatSharedPtr &BJac) |
|
|
LibUtilities::SessionReaderSharedPtr | m_session |
|
int | m_nVariables |
|
Array< OneD, MultiRegions::ExpListSharedPtr > | m_vessels |
|
PulseWavePressureAreaSharedPtr | m_pressureArea |
|
bool | m_requiresRotation |
| Indicates whether the Riemann solver requires a rotation to be applied to the velocity fields. More...
|
|
std::map< std::string, RSScalarFuncType > | m_scalars |
| Map of scalar function types. More...
|
|
std::map< std::string, RSVecFuncType > | m_vectors |
| Map of vector function types. More...
|
|
std::map< std::string, RSParamFuncType > | m_params |
| Map of parameter function types. More...
|
|
std::map< std::string, RSScalarFuncType > | m_auxScal |
| Map of auxiliary scalar function types. More...
|
|
std::map< std::string, RSVecFuncType > | m_auxVec |
| Map of auxiliary vector function types. More...
|
|
Array< OneD, Array< OneD, NekDouble > > | m_rotMat |
| Rotation matrices for each trace quadrature point. More...
|
|
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_rotStorage |
| Rotation storage. More...
|
|
|
SOLVER_UTILS_EXPORT void | 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) |
| Perform the Riemann solve given the forwards and backwards spaces. More...
|
|
template<typename FuncPointerT , typename ObjectPointerT > |
void | SetScalar (std::string name, FuncPointerT func, ObjectPointerT obj) |
|
void | SetScalar (std::string name, RSScalarFuncType fp) |
|
template<typename FuncPointerT , typename ObjectPointerT > |
void | SetVector (std::string name, FuncPointerT func, ObjectPointerT obj) |
|
void | SetVector (std::string name, RSVecFuncType fp) |
|
template<typename FuncPointerT , typename ObjectPointerT > |
void | SetParam (std::string name, FuncPointerT func, ObjectPointerT obj) |
|
void | SetParam (std::string name, RSParamFuncType fp) |
|
template<typename FuncPointerT , typename ObjectPointerT > |
void | SetAuxScal (std::string name, FuncPointerT func, ObjectPointerT obj) |
|
template<typename FuncPointerT , typename ObjectPointerT > |
void | SetAuxVec (std::string name, FuncPointerT func, ObjectPointerT obj) |
|
void | SetAuxVec (std::string name, RSVecFuncType fp) |
|
std::map< std::string, RSScalarFuncType > & | GetScalars () |
|
std::map< std::string, RSVecFuncType > & | GetVectors () |
|
std::map< std::string, RSParamFuncType > & | GetParams () |
|
SOLVER_UTILS_EXPORT void | CalcFluxJacobian (const int nDim, const Array< OneD, const Array< OneD, NekDouble >> &Fwd, const Array< OneD, const Array< OneD, NekDouble >> &Bwd, DNekBlkMatSharedPtr &FJac, DNekBlkMatSharedPtr &BJac) |
| Calculate the flux jacobian of Fwd and Bwd. More...
|
|
int | m_spacedim |
|
Definition at line 47 of file UpwindPulseSolver.h.
Riemann solver for upwinding at an interface between two elements. Uses the characteristic variables for calculating the upwinded state \((A_u, u_u)\) from the left \((A_L, u_L)\) and right state \((A_R, u_R)\). Returns the upwinded flux $\mathbf{F}^u$ needed for the weak formulation (1). Details can be found in "Pulse wave propagation in the
human vascular system", section 3.3
Definition at line 95 of file UpwindPulseSolver.cpp.
118 Array<OneD, MultiRegions::ExpListSharedPtr>(
m_nVariables * nDomains);
120 if (
m_session->DefinesSolverInfo(
"PressureArea"))
134 ASSERTL1(fabs(cL + cR) > fabs(uL + uR),
"Conditions are not sub-sonic");
159 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....
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
SOLVER_UTILS_EXPORT bool CheckParams(std::string name)
Determine whether a parameter has been defined in m_params.
std::map< std::string, RSParamFuncType > m_params
Map of parameter function types.
PulseWavePressureAreaSharedPtr m_pressureArea
Array< OneD, MultiRegions::ExpListSharedPtr > m_vessels
@ beta
Gauss Radau pinned at x=-1,.
PressureAreaFactory & GetPressureAreaFactory()
References ASSERTL1, Nektar::LibUtilities::beta, Nektar::SolverUtils::RiemannSolver::CheckParams(), Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::GetPressureAreaFactory(), m_nVariables, Nektar::SolverUtils::RiemannSolver::m_params, m_pressureArea, m_session, m_vessels, and Nektar::LibUtilities::P.
Referenced by v_Solve().