36 #ifndef NEKTAR_SOLVERUTILS_DIFFUSION 
   37 #define NEKTAR_SOLVERUTILS_DIFFUSION 
   40 #include <boost/function.hpp> 
   53         typedef boost::function<
void (
 
   56             const Array<OneD, Array<OneD, NekDouble> >&,
 
   57                   Array<OneD, Array<OneD, NekDouble> >&,
 
   60         typedef boost::function<
void (
 
   66         typedef boost::function<
void (
 
   79                 const int nConvectiveFields,
 
   88             template<
typename FuncPo
interT, 
typename ObjectPo
interT> 
 
   91                 m_fluxVector = boost::bind(func, obj, _1, _2, _3, _4, _5);
 
   99             template<
typename FuncPo
interT, 
typename ObjectPo
interT> 
 
  105             template<
typename FuncPo
interT, 
typename ObjectPo
interT>
 
  145                 const int nConvectiveFields,
 
void SetRiemannSolver(RiemannSolverSharedPtr riemann)
 
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & GetFluxTensor()
 
void SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
 
DiffusionArtificialDiffusion m_ArtificialDiffusionVector
 
SOLVER_UTILS_EXPORT void 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
 
SOLVER_UTILS_EXPORT void FluxVec(Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &fluxvector)
 
DiffusionFactory & GetDiffusionFactory()
 
DiffusionFluxVecCBNS m_fluxVectorNS
 
boost::shared_ptr< RiemannSolver > RiemannSolverSharedPtr
A shared pointer to an EquationSystem object. 
 
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
 
void SetFluxVectorVec(DiffusionFluxVecCB fluxVector)
 
RiemannSolverSharedPtr m_riemann
 
void SetFluxVector(FuncPointerT func, ObjectPointerT obj)
 
boost::shared_ptr< Diffusion > DiffusionSharedPtr
A shared pointer to an EquationSystem object. 
 
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)
 
boost::function< void(const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &)> DiffusionFluxVecCBNS
 
void SetFluxVectorNS(DiffusionFluxVecCBNS fluxVector)
 
boost::function< void(const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, NekDouble > &)> DiffusionArtificialDiffusion
 
#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 SetFluxVectorNS(FuncPointerT func, ObjectPointerT obj)
 
void SetArtificialDiffusionVector(FuncPointerT func, ObjectPointerT obj)
 
boost::function< void(const int, const int, const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, NekDouble > > &)> DiffusionFluxVecCB
 
virtual void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
 
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & v_GetFluxTensor()
 
Provides a generic Factory class. 
 
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)