35 #ifndef NEKTAR_SOLVERUTILS_FORCINGABSORPTION 36 #define NEKTAR_SOLVERUTILS_FORCINGABSORPTION 40 #include <boost/geometry.hpp> 41 #include <boost/geometry/geometries/point.hpp> 42 #include <boost/geometry/index/rtree.hpp> 50 namespace bg = boost::geometry;
51 namespace bgi = boost::geometry::index;
65 const std::weak_ptr<EquationSystem> &pEquation,
67 const unsigned int& pNumForcingFields,
68 const TiXmlElement* pForce)
72 p->InitObject(pFields, pNumForcingFields, pForce);
81 typedef bg::model::point<NekDouble, 3, bg::cs::cartesian>
BPoint;
83 typedef bgi::rtree<BPointPair, bgi::rstar<16> >
BRTree;
95 const unsigned int& pNumForcingFields,
96 const TiXmlElement* pForce);
107 const std::weak_ptr<EquationSystem> &pEquation);
112 const TiXmlElement *pForce);
bgi::rtree< BPointPair, bgi::rstar< 16 > > BRTree
SOLVER_UTILS_EXPORT typedef std::shared_ptr< Forcing > ForcingSharedPtr
A shared pointer to an EquationSystem object.
virtual ~ForcingAbsorption(void)
virtual SOLVER_UTILS_EXPORT void v_Apply(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble &time)
void CalcAbsorption(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const TiXmlElement *pForce)
bg::model::point< NekDouble, 3, bg::cs::cartesian > BPoint
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
Array< OneD, Array< OneD, NekDouble > > m_Absorption
std::string m_funcNameTime
static std::string className
Name of the class.
Array< OneD, Array< OneD, NekDouble > > m_Refflow
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::shared_ptr< BRTree > m_rtree
std::vector< unsigned int > m_bRegions
ForcingAbsorption(const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation)
std::pair< BPoint, unsigned int > BPointPair
#define SOLVER_UTILS_EXPORT
static SOLVER_UTILS_EXPORT ForcingSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce)
Creates an instance of this class.
virtual SOLVER_UTILS_EXPORT void v_InitObject(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce)
Defines a forcing term to be explicitly applied.
std::shared_ptr< SessionReader > SessionReaderSharedPtr