| 
    Nektar++
    
   | 
 
#include <RoeSolver.h>
Public Member Functions | |
| RoeSolver () | |
| programmatic ctor  More... | |
  Public Member Functions inherited from Nektar::SolverUtils::RiemannSolver | |
| 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... | |
Static Public Member Functions | |
| static RiemannSolverSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession) | 
Static Public Attributes | |
| static std::string | solverName | 
Protected Types | |
| using | ND = NekDouble | 
  Protected Types inherited from Nektar::CompressibleSolver | |
| using | ND = NekDouble | 
Protected Member Functions | |
| RoeSolver (const LibUtilities::SessionReaderSharedPtr &pSession) | |
| virtual void | v_PointSolve (ND rhoL, ND rhouL, ND rhovL, ND rhowL, ND EL, ND rhoR, ND rhouR, ND rhovR, ND rhowR, ND ER, ND &rhof, ND &rhouf, ND &rhovf, ND &rhowf, ND &Ef) override final | 
| Roe Riemann solver.  More... | |
| virtual void | v_ArraySolve (const Array< OneD, const Array< OneD, ND > > &Fwd, const Array< OneD, const Array< OneD, ND > > &Bwd, Array< OneD, Array< OneD, ND > > &flux) override final | 
  Protected Member Functions inherited from Nektar::CompressibleSolver | |
| CompressibleSolver (const LibUtilities::SessionReaderSharedPtr &pSession) | |
| Session ctor.  More... | |
| CompressibleSolver () | |
| Programmatic ctor.  More... | |
| virtual void | v_Solve (const int nDim, const Array< OneD, const Array< OneD, ND > > &Fwd, const Array< OneD, const Array< OneD, ND > > &Bwd, Array< OneD, Array< OneD, ND > > &flux) override | 
| virtual void | v_ArraySolve (const Array< OneD, const Array< OneD, ND > > &Fwd, const Array< OneD, const Array< OneD, ND > > &Bwd, Array< OneD, Array< OneD, ND > > &flux) | 
| virtual void | v_PointSolve (ND rhoL, ND rhouL, ND rhovL, ND rhowL, ND EL, ND rhoR, ND rhouR, ND rhovR, ND rhowR, ND ER, ND &rhof, ND &rhouf, ND &rhovf, ND &rhowf, ND &Ef) | 
| ND | GetRoeSoundSpeed (ND rhoL, ND pL, ND eL, ND HL, ND srL, ND rhoR, ND pR, ND eR, ND HR, ND srR, ND HRoe, ND URoe2, ND srLR) | 
  Protected Member Functions inherited from Nektar::SolverUtils::RiemannSolver | |
| SOLVER_UTILS_EXPORT | RiemannSolver () | 
| SOLVER_UTILS_EXPORT | RiemannSolver (const LibUtilities::SessionReaderSharedPtr &pSession) | 
| virtual SOLVER_UTILS_EXPORT | ~RiemannSolver () | 
| 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)=0 | 
| 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) | 
Additional Inherited Members | |
  Public Attributes inherited from Nektar::SolverUtils::RiemannSolver | |
| int | m_spacedim | 
  Protected Attributes inherited from Nektar::CompressibleSolver | |
| bool | m_pointSolve | 
| EquationOfStateSharedPtr | m_eos | 
| bool | m_idealGas | 
  Protected Attributes inherited from Nektar::SolverUtils::RiemannSolver | |
| 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... | |
Definition at line 42 of file RoeSolver.h.
      
  | 
  protected | 
Definition at line 59 of file RoeSolver.h.
| Nektar::RoeSolver::RoeSolver | ( | ) | 
programmatic ctor
Definition at line 52 of file RoeSolver.cpp.
Referenced by create().
      
  | 
  protected | 
Definition at line 45 of file RoeSolver.cpp.
      
  | 
  inlinestatic | 
Definition at line 45 of file RoeSolver.h.
References RoeSolver().
      
  | 
  finaloverrideprotectedvirtual | 
Reimplemented from Nektar::CompressibleSolver.
Definition at line 98 of file RoeSolver.cpp.
References tinysimd::is_not_aligned, Nektar::SolverUtils::RiemannSolver::m_params, and Nektar::RoeKernel().
      
  | 
  finaloverrideprotectedvirtual | 
Roe Riemann solver.
Stated equations numbers are from:
"Riemann Solvers and Numerical Methods for Fluid Dynamics: A Practical Introduction", E. F. Toro (3rd edition, 2009).
We follow the algorithm prescribed following equation 11.70.
| rhoL | Density left state. | 
| rhoR | Density right state. | 
| rhouL | x-momentum component left state. | 
| rhouR | x-momentum component right state. | 
| rhovL | y-momentum component left state. | 
| rhovR | y-momentum component right state. | 
| rhowL | z-momentum component left state. | 
| rhowR | z-momentum component right state. | 
| EL | Energy left state. | 
| ER | Energy right state. | 
| rhof | Computed Riemann flux for density. | 
| rhouf | Computed Riemann flux for x-momentum component | 
| rhovf | Computed Riemann flux for y-momentum component | 
| rhowf | Computed Riemann flux for z-momentum component | 
| Ef | Computed Riemann flux for energy. | 
Reimplemented from Nektar::CompressibleSolver.
Definition at line 83 of file RoeSolver.cpp.
References Nektar::SolverUtils::RiemannSolver::m_params, and Nektar::RoeKernel().
      
  | 
  static | 
Definition at line 51 of file RoeSolver.h.