Nektar++
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Nektar::SolverUtils::Diffusion Class Referenceabstract

#include <Diffusion.h>

Inheritance diagram for Nektar::SolverUtils::Diffusion:
Inheritance graph
[legend]

Public Member Functions

SOLVER_UTILS_EXPORT void InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
 
SOLVER_UTILS_EXPORT void Diffuse (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
SOLVER_UTILS_EXPORT void FluxVec (Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &fluxvector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVector (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxVectorVec (DiffusionFluxVecCB fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVectorNS (FuncPointerT func, ObjectPointerT obj)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetArtificialDiffusionVector (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxVectorNS (DiffusionFluxVecCBNS fluxVector)
 
void SetRiemannSolver (RiemannSolverSharedPtr riemann)
 
void SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv)
 
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & GetFluxTensor ()
 

Protected Member Functions

virtual void v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
 
virtual void v_Diffuse (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)=0
 
virtual void v_SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv)
 
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & v_GetFluxTensor ()
 

Protected Attributes

DiffusionFluxVecCB m_fluxVector
 
DiffusionFluxVecCBNS m_fluxVectorNS
 
RiemannSolverSharedPtr m_riemann
 
DiffusionArtificialDiffusion m_ArtificialDiffusionVector
 

Detailed Description

Definition at line 71 of file Diffusion.h.

Member Function Documentation

void Diffusion::Diffuse ( const int  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)

Definition at line 58 of file Diffusion.cpp.

References v_Diffuse().

63  {
64  v_Diffuse(nConvectiveFields, fields, inarray, outarray);
65  }
virtual void v_Diffuse(const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)=0
SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::FluxVec ( Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &  fluxvector)
virtual Array<OneD, Array<OneD, Array<OneD, NekDouble> > >& Nektar::SolverUtils::Diffusion::GetFluxTensor ( )
inlinevirtual

Definition at line 126 of file Diffusion.h.

References v_GetFluxTensor().

127  {
128  return v_GetFluxTensor();
129  }
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & v_GetFluxTensor()
Definition: Diffusion.h:156
void Diffusion::InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)

Definition at line 51 of file Diffusion.cpp.

References v_InitObject().

54  {
55  v_InitObject(pSession, pFields);
56  }
virtual void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Definition: Diffusion.h:137
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetArtificialDiffusionVector ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 106 of file Diffusion.h.

References m_ArtificialDiffusionVector.

107  {
108  m_ArtificialDiffusionVector = boost::bind(func, obj, _1, _2);
109  }
DiffusionArtificialDiffusion m_ArtificialDiffusionVector
Definition: Diffusion.h:135
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVector ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 89 of file Diffusion.h.

References m_fluxVector.

90  {
91  m_fluxVector = boost::bind(func, obj, _1, _2, _3, _4, _5);
92  }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:132
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 100 of file Diffusion.h.

References m_fluxVectorNS.

101  {
102  m_fluxVectorNS = boost::bind(func, obj, _1, _2, _3);
103  }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:133
void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( DiffusionFluxVecCBNS  fluxVector)
inline

Definition at line 111 of file Diffusion.h.

References m_fluxVectorNS.

112  {
113  m_fluxVectorNS = fluxVector;
114  }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:133
void Nektar::SolverUtils::Diffusion::SetFluxVectorVec ( DiffusionFluxVecCB  fluxVector)
inline

Definition at line 94 of file Diffusion.h.

References m_fluxVector.

95  {
96  m_fluxVector = fluxVector;
97  }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:132
void Nektar::SolverUtils::Diffusion::SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inline

Definition at line 121 of file Diffusion.h.

References v_SetHomoDerivs().

122  {
123  v_SetHomoDerivs(deriv);
124  }
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
Definition: Diffusion.h:150
void Nektar::SolverUtils::Diffusion::SetRiemannSolver ( RiemannSolverSharedPtr  riemann)
inline

Definition at line 116 of file Diffusion.h.

References m_riemann.

117  {
118  m_riemann = riemann;
119  }
RiemannSolverSharedPtr m_riemann
Definition: Diffusion.h:134
virtual void Nektar::SolverUtils::Diffusion::v_Diffuse ( const int  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedpure virtual
virtual Array<OneD, Array<OneD, Array<OneD, NekDouble> > >& Nektar::SolverUtils::Diffusion::v_GetFluxTensor ( )
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, and Nektar::SolverUtils::DiffusionLDGNS.

Definition at line 156 of file Diffusion.h.

Referenced by GetFluxTensor().

157  {
159  return tmp;
160  }
virtual void Nektar::SolverUtils::Diffusion::v_InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)
inlineprotectedvirtual
virtual void Nektar::SolverUtils::Diffusion::v_SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, and Nektar::SolverUtils::DiffusionLDGNS.

Definition at line 150 of file Diffusion.h.

Referenced by SetHomoDerivs().

152  {
153 
154  }

Member Data Documentation

DiffusionArtificialDiffusion Nektar::SolverUtils::Diffusion::m_ArtificialDiffusionVector
protected
DiffusionFluxVecCB Nektar::SolverUtils::Diffusion::m_fluxVector
protected

Definition at line 132 of file Diffusion.h.

Referenced by SetFluxVector(), and SetFluxVectorVec().

DiffusionFluxVecCBNS Nektar::SolverUtils::Diffusion::m_fluxVectorNS
protected
RiemannSolverSharedPtr Nektar::SolverUtils::Diffusion::m_riemann
protected