36 #ifndef NEKTAR_SOLVERS_COMPRESSIBLEFLOWSOLVER_ARTIFICIALDIFFUSION_BASE 37 #define NEKTAR_SOLVERS_COMPRESSIBLEFLOWSOLVER_ARTIFICIALDIFFUSION_BASE 68 class ArtificialDiffusion
90 Array<OneD, MultiRegions::ExpListSharedPtr>
m_fields;
102 const LibUtilities::SessionReaderSharedPtr& pSession,
103 const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
std::shared_ptr< Diffusion > DiffusionSharedPtr
A shared pointer to an EquationSystem object.
void SetElmtHP(const Array< OneD, NekDouble > &hOverP)
Set h/p scaling.
std::shared_ptr< VariableConverter > VariableConverterSharedPtr
LibUtilities::NekFactory< std::string, ArtificialDiffusion, const LibUtilities::SessionReaderSharedPtr &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const int > ArtificialDiffusionFactory
Declaration of the artificial diffusion factory.
virtual ~ArtificialDiffusion()
void DoArtificialDiffusion(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
Apply the artificial diffusion.
std::shared_ptr< ArtificialDiffusion > ArtificialDiffusionSharedPtr
A shared pointer to a artificial diffusion object.
Encapsulates the artificial diffusion used in shock capture.
Array< OneD, NekDouble > m_hOverP
h/p scaling
SolverUtils::DiffusionSharedPtr m_diffusion
LDG Diffusion operator.
virtual void v_GetArtificialViscosity(const Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, NekDouble > &mu)=0
ArtificialDiffusionFactory & GetArtificialDiffusionFactory()
Declaration of the artificial diffusion factory singleton.
void GetFluxVector(const Array< OneD, Array< OneD, NekDouble > > &inarray, const Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &qfield, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &viscousTensor)
Return the flux vector for the artificial viscosity operator.
LibUtilities::SessionReaderSharedPtr m_session
Session reader.
NekDouble m_mu0
Constant scaling.
ArtificialDiffusion(const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int spacedim)
Constructor.
virtual void v_DoArtificialDiffusion(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
void GetArtificialViscosity(const Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, NekDouble > &mu)
Calculate the artificial viscosity.
VariableConverterSharedPtr m_varConv
Auxiliary object to convert variables.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Array of fields.
Provides a generic Factory class.