Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayofArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayofArray)
 
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 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, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayofArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayofArray)=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
 
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,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayofArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayofArray 
)

Definition at line 58 of file Diffusion.cpp.

References v_Diffuse().

65  {
66  v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
67  }
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, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayofArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayofArray)=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 123 of file Diffusion.h.

References v_GetFluxTensor().

124  {
125  return v_GetFluxTensor();
126  }
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & v_GetFluxTensor()
Definition: Diffusion.h:154
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:133
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetArtificialDiffusionVector ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 108 of file Diffusion.h.

References m_ArtificialDiffusionVector.

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

Definition at line 91 of file Diffusion.h.

References m_fluxVector.

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

Definition at line 102 of file Diffusion.h.

References m_fluxVectorNS.

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

Definition at line 113 of file Diffusion.h.

References m_fluxVectorNS.

114  {
115  m_fluxVectorNS = fluxVector;
116  }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:130
void Nektar::SolverUtils::Diffusion::SetFluxVectorVec ( DiffusionFluxVecCB  fluxVector)
inline

Definition at line 96 of file Diffusion.h.

References m_fluxVector.

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

Definition at line 118 of file Diffusion.h.

References v_SetHomoDerivs().

119  {
120  v_SetHomoDerivs(deriv);
121  }
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
Definition: Diffusion.h:148
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,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayofArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayofArray 
)
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 154 of file Diffusion.h.

Referenced by GetFluxTensor().

155  {
156  static Array<OneD, Array<OneD, Array<OneD, NekDouble> > > tmp;
157  return tmp;
158  }
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 148 of file Diffusion.h.

Referenced by SetHomoDerivs().

150  {
151 
152  }

Member Data Documentation

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

Definition at line 129 of file Diffusion.h.

Referenced by SetFluxVector(), and SetFluxVectorVec().

DiffusionFluxVecCBNS Nektar::SolverUtils::Diffusion::m_fluxVectorNS
protected