Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Nektar::SolverUtils::Diffusion Class Reference

#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 57 of file Diffusion.cpp.

References v_Diffuse().

{
v_Diffuse(nConvectiveFields, fields, inarray, outarray);
}
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().

{
return v_GetFluxTensor();
}
void Diffusion::InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)

Definition at line 50 of file Diffusion.cpp.

References v_InitObject().

{
v_InitObject(pSession, pFields);
}
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.

{
m_ArtificialDiffusionVector = boost::bind(func, obj, _1, _2);
}
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.

{
m_fluxVector = boost::bind(func, obj, _1, _2, _3, _4, _5);
}
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.

{
m_fluxVectorNS = boost::bind(func, obj, _1, _2, _3);
}
void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( DiffusionFluxVecCBNS  fluxVector)
inline

Definition at line 111 of file Diffusion.h.

References m_fluxVectorNS.

{
m_fluxVectorNS = fluxVector;
}
void Nektar::SolverUtils::Diffusion::SetFluxVectorVec ( DiffusionFluxVecCB  fluxVector)
inline

Definition at line 94 of file Diffusion.h.

References m_fluxVector.

{
m_fluxVector = fluxVector;
}
void Nektar::SolverUtils::Diffusion::SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inline

Definition at line 121 of file Diffusion.h.

References v_SetHomoDerivs().

{
}
void Nektar::SolverUtils::Diffusion::SetRiemannSolver ( RiemannSolverSharedPtr  riemann)
inline

Definition at line 116 of file Diffusion.h.

References m_riemann.

{
m_riemann = riemann;
}
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().

{
static Array<OneD, Array<OneD, Array<OneD, NekDouble> > > tmp;
return tmp;
}
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().

{
}

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