35 #ifndef NEKTAR_SOLVERUTILS_DIFFUSION 36 #define NEKTAR_SOLVERUTILS_DIFFUSION 41 #include <boost/core/ignore_unused.hpp> 54 typedef std::function<
void (
55 const Array<OneD, Array<OneD, NekDouble> > &,
56 const Array<OneD, Array<OneD, Array<OneD, NekDouble> > >&,
57 Array<OneD, Array<OneD, Array<OneD, NekDouble> > >&)>
60 typedef std::function<
void (
66 typedef std::function<
void (
72 typedef std::function<
void (
89 const std::size_t nConvectiveFields,
100 template<
typename FuncPo
interT,
typename ObjectPo
interT>
104 func, obj, std::placeholders::_1, std::placeholders::_2,
105 std::placeholders::_3);
113 template<
typename FuncPo
interT,
typename ObjectPo
interT>
117 func, obj, std::placeholders::_1, std::placeholders::_2,
118 std::placeholders::_3);
126 template<
typename FuncPo
interT,
typename ObjectPo
interT>
130 func, obj, std::placeholders::_1, std::placeholders::_2,
131 std::placeholders::_3);
158 boost::ignore_unused(pSession, pFields);
162 const std::size_t nConvectiveFields,
172 boost::ignore_unused(deriv);
std::shared_ptr< Diffusion > DiffusionSharedPtr
A shared pointer to an EquationSystem object.
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 Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & GetFluxTensor()
void SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, const Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &)> DiffusionFluxVecCB
SOLVER_UTILS_EXPORT void InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
SOLVER_UTILS_EXPORT void FluxVec(Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &fluxvector)
DiffusionFactory & GetDiffusionFactory()
std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, NekDouble > > &)> DiffusionFluxPenaltyNS
DiffusionFluxVecCBNS m_fluxVectorNS
void SetFluxPenaltyNS(DiffusionFluxPenaltyNS flux)
void SetFluxVector(FuncPointerT func, ObjectPointerT obj)
DiffusionFluxPenaltyNS m_fluxPenaltyNS
void SetFluxPenaltyNS(FuncPointerT func, ObjectPointerT obj)
std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &)> DiffusionFluxVecCBNS
std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, NekDouble > &)> DiffusionArtificialDiffusion
void SetFluxVectorNS(DiffusionFluxVecCBNS fluxVector)
#define SOLVER_UTILS_EXPORT
DiffusionFluxVecCB m_fluxVector
LibUtilities::NekFactory< std::string, Diffusion, std::string > DiffusionFactory
Datatype of the NekFactory used to instantiate classes derived from the Diffusion class...
void SetFluxVector(DiffusionFluxVecCB fluxVector)
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)
void SetFluxVectorNS(FuncPointerT func, ObjectPointerT obj)
static Array< OneD, Array< OneD, NekDouble > > NullNekDoubleArrayofArray
virtual void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & v_GetFluxTensor()
std::shared_ptr< SessionReader > SessionReaderSharedPtr
virtual SOLVER_UTILS_EXPORT ~Diffusion()
Provides a generic Factory class.
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)