| 
    Nektar++
    
   | 
 
Encapsulates the artificial diffusion used in shock capture. More...
#include <ArtificialDiffusion.h>
Public Member Functions | |
| virtual | ~ArtificialDiffusion () | 
| void | DoArtificialDiffusion (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray) | 
| Apply the artificial diffusion.  More... | |
| void | DoArtificialDiffusionCoeff (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray) | 
| Apply the artificial diffusion the outarray is in coeff space.  More... | |
| void | GetArtificialViscosity (const Array< OneD, Array< OneD, NekDouble >> &physfield, Array< OneD, NekDouble > &mu) | 
| Calculate the artificial viscosity.  More... | |
Protected Member Functions | |
| ArtificialDiffusion (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int spacedim) | |
| Constructor.  More... | |
| virtual void | v_DoArtificialDiffusion (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray) | 
| virtual void | v_DoArtificialDiffusionCoeff (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray) | 
| virtual void | v_GetArtificialViscosity (const Array< OneD, Array< OneD, NekDouble >> &physfield, Array< OneD, NekDouble > &mu)=0 | 
| 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.  More... | |
Protected Attributes | |
| LibUtilities::SessionReaderSharedPtr | m_session | 
| Session reader.  More... | |
| Array< OneD, MultiRegions::ExpListSharedPtr > | m_fields | 
| Array of fields.  More... | |
| VariableConverterSharedPtr | m_varConv | 
| Auxiliary object to convert variables.  More... | |
| SolverUtils::DiffusionSharedPtr | m_diffusion | 
| LDG Diffusion operator.  More... | |
| NekDouble | m_mu0 | 
| Constant scaling.  More... | |
Encapsulates the artificial diffusion used in shock capture.
Definition at line 69 of file ArtificialDiffusion.h.
      
  | 
  inlinevirtual | 
Definition at line 72 of file ArtificialDiffusion.h.
      
  | 
  protected | 
Constructor.
Definition at line 48 of file ArtificialDiffusion.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::SolverUtils::GetDiffusionFactory(), GetFluxVector(), m_diffusion, m_fields, m_mu0, m_session, and m_varConv.
| void Nektar::ArtificialDiffusion::DoArtificialDiffusion | ( | const Array< OneD, const Array< OneD, NekDouble >> & | inarray, | 
| Array< OneD, Array< OneD, NekDouble >> & | outarray | ||
| ) | 
Apply the artificial diffusion.
Definition at line 70 of file ArtificialDiffusion.cpp.
References v_DoArtificialDiffusion().
| void Nektar::ArtificialDiffusion::DoArtificialDiffusionCoeff | ( | const Array< OneD, const Array< OneD, NekDouble >> & | inarray, | 
| Array< OneD, Array< OneD, NekDouble >> & | outarray | ||
| ) | 
Apply the artificial diffusion the outarray is in coeff space.
Definition at line 104 of file ArtificialDiffusion.cpp.
References v_DoArtificialDiffusionCoeff().
| void Nektar::ArtificialDiffusion::GetArtificialViscosity | ( | const Array< OneD, Array< OneD, NekDouble >> & | physfield, | 
| Array< OneD, NekDouble > & | mu | ||
| ) | 
Calculate the artificial viscosity.
Definition at line 134 of file ArtificialDiffusion.cpp.
References v_GetArtificialViscosity().
Referenced by GetFluxVector().
      
  | 
  protected | 
Return the flux vector for the artificial viscosity operator.
Definition at line 144 of file ArtificialDiffusion.cpp.
References GetArtificialViscosity(), and Vmath::Vmul().
Referenced by ArtificialDiffusion().
      
  | 
  protectedvirtual | 
Definition at line 80 of file ArtificialDiffusion.cpp.
References m_diffusion, m_fields, and Vmath::Vadd().
Referenced by DoArtificialDiffusion().
      
  | 
  protectedvirtual | 
Definition at line 111 of file ArtificialDiffusion.cpp.
References m_diffusion, m_fields, and Vmath::Vadd().
Referenced by DoArtificialDiffusionCoeff().
      
  | 
  protectedpure virtual | 
Implemented in Nektar::NonSmoothShockCapture.
Referenced by GetArtificialViscosity().
      
  | 
  protected | 
LDG Diffusion operator.
Definition at line 99 of file ArtificialDiffusion.h.
Referenced by ArtificialDiffusion(), v_DoArtificialDiffusion(), and v_DoArtificialDiffusionCoeff().
      
  | 
  protected | 
Array of fields.
Definition at line 95 of file ArtificialDiffusion.h.
Referenced by ArtificialDiffusion(), Nektar::NonSmoothShockCapture::NonSmoothShockCapture(), v_DoArtificialDiffusion(), v_DoArtificialDiffusionCoeff(), and Nektar::NonSmoothShockCapture::v_GetArtificialViscosity().
      
  | 
  protected | 
Constant scaling.
Definition at line 101 of file ArtificialDiffusion.h.
Referenced by ArtificialDiffusion(), and Nektar::NonSmoothShockCapture::v_GetArtificialViscosity().
      
  | 
  protected | 
Session reader.
Definition at line 93 of file ArtificialDiffusion.h.
Referenced by ArtificialDiffusion(), and Nektar::NonSmoothShockCapture::NonSmoothShockCapture().
      
  | 
  protected | 
Auxiliary object to convert variables.
Definition at line 97 of file ArtificialDiffusion.h.
Referenced by ArtificialDiffusion(), Nektar::NonSmoothShockCapture::NonSmoothShockCapture(), and Nektar::NonSmoothShockCapture::v_GetArtificialViscosity().