35 #ifndef NEKTAR_LIB_UTILITIES_FOUNDATIONS_POINTS_H 36 #define NEKTAR_LIB_UTILITIES_FOUNDATIONS_POINTS_H 38 #include <boost/core/ignore_unused.hpp> 53 namespace LibUtilities
136 return (*
this == *y);
141 return (!(*
this == y));
146 return (!(*
this == *y));
193 "This method cannot be implemented");
202 totpoints = m_numpoints*(m_numpoints+1)*(m_numpoints+2)/6;
206 "This method cannot be implemented");
211 totpoints = m_numpoints*m_numpoints*(m_numpoints+1)/2;
215 "This method cannot be implemented");
249 template<
typename DataT>
264 CalculateDerivMatrix();
269 return m_pointsKey.GetPointsDim();
274 return m_pointsKey.GetNumPoints();
279 return m_pointsKey.GetTotNumPoints();
284 return m_pointsKey.GetPointsType();
327 return m_derivmatrix[(int)dir];
332 boost::ignore_unused(key);
340 boost::ignore_unused(x);
348 boost::ignore_unused(x);
356 boost::ignore_unused(x, y);
365 boost::ignore_unused(x, y, z);
373 boost::ignore_unused(pkey);
383 MatrixSharedPtrType m_derivmatrix[3];
392 for (
unsigned int i=0; i<pointsDim; ++i)
406 for(
unsigned int i = 0; i < m_pointsKey.
GetPointsDim(); ++i)
420 boost::ignore_unused(pts);
422 "Copy Constructor for Points should not be called");
427 "Default Constructor for Points should not be called");
434 #endif //NEKTAR_LIB_UTILITIES_FOUNDATIONS_POINTS_H bool operator!=(const PointsKey &y)
virtual const MatrixSharedPtrType GetI(const PointsKey &key)
static const PointsKey NullPointsKey(0, eNoPointsType)
virtual void Initialize(void)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Array< OneD, DataType > m_weights
PointsType GetPointsType() const
std::vector< PointsKey > PointsKeyVector
const Array< OneD, const DataType > & GetW() const
Points(const PointsKey &key)
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
PointsKey(const PointsKey &key)
Copy constructor.
PointsType GetPointsType() const
NekDouble m_factor
optional factor
NekDouble GetFactor() const
PointsType m_pointstype
Type of Points.
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x)
unsigned int GetPointsDim() const
unsigned int m_numpoints
number of the points (as appropriately defined for PointsType)
void GetPoints(Array< OneD, const DataType > &x, Array< OneD, const DataType > &y) const
virtual void CalculatePoints()
Stores a set of points of datatype DataT, defined by a PointKey.
3D Nodal Symmetric positive internal tet (Whitherden, Vincent)
void GetZW(Array< OneD, const DataType > &z, Array< OneD, const DataType > &w) const
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
const Array< OneD, const DataType > & GetZ() const
static const NekDouble kNekZeroTol
PointsKey & operator=(const PointsKey &key)
std::shared_ptr< NekMatrix< DataType > > MatrixSharedPtrType
#define LIB_UTILITIES_EXPORT
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_InterpManager
virtual const MatrixSharedPtrType GetGalerkinProjection(const PointsKey &pkey)
3D Nodal Electrostatic Points on a Tetrahedron
unsigned int GetPointsDim() const
unsigned int GetTotNumPoints() const
Defines a specification for a set of points.
bool operator==(const PointsKey &key)
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_GalerkinProjectionManager
static const NekDouble kNekUnsetDouble
3D Evenly-spaced points on a Tetrahedron
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y, const Array< OneD, const DataType > &z)
virtual void CalculateDerivMatrix()
2D Nodal Fekete Points on a Triangle
const MatrixSharedPtrType & GetD(Direction dir=xDir) const
virtual const MatrixSharedPtrType GetI(unsigned int, const Array< OneD, const DataType > &x)
virtual ~PointsKey()
Destructor.
PointsKey(void)
Default constructor.
Points(const Points &pts)
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y)
unsigned int GetTotNumPoints() const
friend bool operator<(const PointsKey &lhs, const PointsKey &rhs)
PointsKey(const int &numpoints, const PointsType &pointstype, const NekDouble factor=NekConstants::kNekUnsetDouble)
Constructor defining the number and distribution of points.
3D Evenly-spaced points on a Prism
void GetPoints(Array< OneD, const DataType > &x) const
virtual void CalculateWeights()
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs
void GetPoints(Array< OneD, const DataType > &x, Array< OneD, const DataType > &y, Array< OneD, const DataType > &z) const
2D Evenly-spaced points on a Triangle
bool operator()(const PointsKey &lhs, const PointsKey &rhs) const
unsigned int GetNumPoints() const
unsigned int GetNumPoints() const
1D Array of constant elements with garbage collection and bounds checking.
2D Nodal Electrostatic Points on a Triangle
3D electrostatically spaced points on a Prism
2D Nodal Symmetric positive internal triangle (Whitherden, Vincent)