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:
[legend]

Public Member Functions

virtual SOLVER_UTILS_EXPORT ~Diffusion ()
 
SOLVER_UTILS_EXPORT void InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
 
SOLVER_UTILS_EXPORT void Diffuse (const std::size_t 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 SetFluxVector (DiffusionFluxVecCB fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVectorNS (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxVectorNS (DiffusionFluxVecCBNS fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxPenaltyNS (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxPenaltyNS (DiffusionFluxPenaltyNS flux)
 
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 std::size_t 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
 
DiffusionFluxPenaltyNS m_fluxPenaltyNS
 

Detailed Description

Definition at line 77 of file Diffusion.h.

Constructor & Destructor Documentation

◆ ~Diffusion()

virtual SOLVER_UTILS_EXPORT Nektar::SolverUtils::Diffusion::~Diffusion ( )
inlinevirtual

Definition at line 81 of file Diffusion.h.

References Diffuse(), FluxVec(), InitObject(), Nektar::NullNekDoubleArrayofArray, and SOLVER_UTILS_EXPORT.

82  {};

Member Function Documentation

◆ Diffuse()

void Diffusion::Diffuse ( const std::size_t  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 54 of file Diffusion.cpp.

References v_Diffuse().

Referenced by ~Diffusion().

61  {
62  v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
63  }
virtual void v_Diffuse(const std::size_t 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

◆ FluxVec()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::FluxVec ( Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &  fluxvector)

Referenced by ~Diffusion().

◆ GetFluxTensor()

virtual Array<OneD, Array<OneD, Array<OneD, NekDouble> > >& Nektar::SolverUtils::Diffusion::GetFluxTensor ( )
inlinevirtual

Definition at line 144 of file Diffusion.h.

References v_GetFluxTensor().

145  {
146  return v_GetFluxTensor();
147  }
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & v_GetFluxTensor()
Definition: Diffusion.h:175

◆ InitObject()

void Diffusion::InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)

Definition at line 47 of file Diffusion.cpp.

References v_InitObject().

Referenced by ~Diffusion().

50  {
51  v_InitObject(pSession, pFields);
52  }
virtual void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Definition: Diffusion.h:154

◆ SetFluxPenaltyNS() [1/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxPenaltyNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 127 of file Diffusion.h.

References m_fluxPenaltyNS.

128  {
129  m_fluxPenaltyNS = std::bind(
130  func, obj, std::placeholders::_1, std::placeholders::_2,
131  std::placeholders::_3);
132  }
DiffusionFluxPenaltyNS m_fluxPenaltyNS
Definition: Diffusion.h:152

◆ SetFluxPenaltyNS() [2/2]

void Nektar::SolverUtils::Diffusion::SetFluxPenaltyNS ( DiffusionFluxPenaltyNS  flux)
inline

Definition at line 134 of file Diffusion.h.

References m_fluxPenaltyNS.

135  {
136  m_fluxPenaltyNS = flux;
137  }
DiffusionFluxPenaltyNS m_fluxPenaltyNS
Definition: Diffusion.h:152

◆ SetFluxVector() [1/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVector ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 101 of file Diffusion.h.

References m_fluxVector.

102  {
103  m_fluxVector = std::bind(
104  func, obj, std::placeholders::_1, std::placeholders::_2,
105  std::placeholders::_3);
106  }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:150

◆ SetFluxVector() [2/2]

void Nektar::SolverUtils::Diffusion::SetFluxVector ( DiffusionFluxVecCB  fluxVector)
inline

Definition at line 108 of file Diffusion.h.

References m_fluxVector.

109  {
110  m_fluxVector = fluxVector;
111  }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:150

◆ SetFluxVectorNS() [1/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 114 of file Diffusion.h.

References m_fluxVectorNS.

115  {
116  m_fluxVectorNS = std::bind(
117  func, obj, std::placeholders::_1, std::placeholders::_2,
118  std::placeholders::_3);
119  }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:151

◆ SetFluxVectorNS() [2/2]

void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( DiffusionFluxVecCBNS  fluxVector)
inline

Definition at line 121 of file Diffusion.h.

References m_fluxVectorNS.

122  {
123  m_fluxVectorNS = fluxVector;
124  }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:151

◆ SetHomoDerivs()

void Nektar::SolverUtils::Diffusion::SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inline

Definition at line 139 of file Diffusion.h.

References v_SetHomoDerivs().

140  {
141  v_SetHomoDerivs(deriv);
142  }
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
Definition: Diffusion.h:169

◆ v_Diffuse()

virtual void Nektar::SolverUtils::Diffusion::v_Diffuse ( const std::size_t  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

◆ v_GetFluxTensor()

virtual Array<OneD, Array<OneD, Array<OneD, NekDouble> > >& Nektar::SolverUtils::Diffusion::v_GetFluxTensor ( )
inlineprotectedvirtual

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

Definition at line 175 of file Diffusion.h.

Referenced by GetFluxTensor().

176  {
177  static Array<OneD, Array<OneD, Array<OneD, NekDouble> > > tmp;
178  return tmp;
179  }

◆ v_InitObject()

virtual void Nektar::SolverUtils::Diffusion::v_InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, Nektar::SolverUtils::DiffusionLFR, Nektar::DiffusionLDGNS, Nektar::SolverUtils::Diffusion3DHomogeneous1D, and Nektar::SolverUtils::DiffusionLDG.

Definition at line 154 of file Diffusion.h.

References Nektar::NullNekDoubleArrayofArray, and v_Diffuse().

Referenced by InitObject().

157  {
158  boost::ignore_unused(pSession, pFields);
159  };

◆ v_SetHomoDerivs()

virtual void Nektar::SolverUtils::Diffusion::v_SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inlineprotectedvirtual

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

Definition at line 169 of file Diffusion.h.

Referenced by SetHomoDerivs().

171  {
172  boost::ignore_unused(deriv);
173  }

Member Data Documentation

◆ m_fluxPenaltyNS

DiffusionFluxPenaltyNS Nektar::SolverUtils::Diffusion::m_fluxPenaltyNS
protected

Definition at line 152 of file Diffusion.h.

Referenced by Nektar::DiffusionLDGNS::NumericalFluxO2(), and SetFluxPenaltyNS().

◆ m_fluxVector

DiffusionFluxVecCB Nektar::SolverUtils::Diffusion::m_fluxVector
protected

Definition at line 150 of file Diffusion.h.

Referenced by SetFluxVector(), and Nektar::SolverUtils::DiffusionLDG::v_Diffuse().

◆ m_fluxVectorNS

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