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");
206 "This method cannot be implemented");
215 "This method cannot be implemented");
249 template<
typename DataT>
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);
392 for (
unsigned int i=0; i<pointsDim; ++i)
420 boost::ignore_unused(pts);
422 "Copy Constructor for Points should not be called");
427 "Default Constructor for Points should not be called");
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
#define LIB_UTILITIES_EXPORT
1D Array of constant elements with garbage collection and bounds checking.
Stores a set of points of datatype DataT, defined by a PointKey.
Array< OneD, DataType > m_points[3]
MatrixSharedPtrType m_derivmatrix[3]
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_InterpManager
const MatrixSharedPtrType & GetD(Direction dir=xDir) const
virtual void CalculateWeights()
void GetPoints(Array< OneD, const DataType > &x, Array< OneD, const DataType > &y) const
virtual const MatrixSharedPtrType GetGalerkinProjection(const PointsKey &pkey)
virtual void CalculateDerivMatrix()
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_GalerkinProjectionManager
void GetZW(Array< OneD, const DataType > &z, Array< OneD, const DataType > &w) const
unsigned int GetNumPoints() const
void GetPoints(Array< OneD, const DataType > &x) const
void GetPoints(Array< OneD, const DataType > &x, Array< OneD, const DataType > &y, Array< OneD, const DataType > &z) const
PointsType GetPointsType() const
Points(const PointsKey &key)
std::shared_ptr< NekMatrix< DataType > > MatrixSharedPtrType
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y, const Array< OneD, const DataType > &z)
virtual void Initialize(void)
const Array< OneD, const DataType > & GetW() const
virtual void CalculatePoints()
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y)
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x)
unsigned int GetTotNumPoints() const
unsigned int GetPointsDim() const
Array< OneD, DataType > m_weights
const Array< OneD, const DataType > & GetZ() const
Points(const Points &pts)
virtual const MatrixSharedPtrType GetI(unsigned int, const Array< OneD, const DataType > &x)
virtual const MatrixSharedPtrType GetI(const PointsKey &key)
Defines a specification for a set of points.
unsigned int m_numpoints
number of the points (as appropriately defined for PointsType)
unsigned int GetTotNumPoints() const
PointsType GetPointsType() const
friend bool operator<(const PointsKey &lhs, const PointsKey &rhs)
PointsType m_pointstype
Type of Points.
PointsKey & operator=(const PointsKey &key)
PointsKey(const int &numpoints, const PointsType &pointstype, const NekDouble factor=NekConstants::kNekUnsetDouble)
Constructor defining the number and distribution of points.
unsigned int GetPointsDim() const
bool operator==(const PointsKey &key)
PointsKey(const PointsKey &key)
Copy constructor.
NekDouble GetFactor() const
NekDouble m_factor
optional factor
unsigned int GetNumPoints() const
virtual ~PointsKey()
Destructor.
bool operator!=(const PointsKey &y)
PointsKey(void)
Default constructor.
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
bool operator==(const BasisKey &x, const BasisKey &y)
bool operator<(const BasisKey &lhs, const BasisKey &rhs)
std::vector< PointsKey > PointsKeyVector
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
@ eNodalPrismEvenlySpaced
3D Evenly-spaced points on a Prism
@ eNodalTriFekete
2D Nodal Fekete Points on a Triangle
@ eNodalPrismSPI
3D prism SPI
@ eNodalTriElec
2D Nodal Electrostatic Points on a Triangle
@ eNodalTriEvenlySpaced
2D Evenly-spaced points on a Triangle
@ eNodalHexElec
3D GLL for hex
@ eNodalQuadElec
2D GLL for quad
@ eNodalTetEvenlySpaced
3D Evenly-spaced points on a Tetrahedron
@ eNodalTetSPI
3D Nodal Symmetric positive internal tet (Whitherden, Vincent)
@ eNodalPrismElec
3D electrostatically spaced points on a Prism
@ eNodalTetElec
3D Nodal Electrostatic Points on a Tetrahedron
@ eNodalTriSPI
2D Nodal Symmetric positive internal triangle (Whitherden, Vincent)
static const PointsKey NullPointsKey(0, eNoPointsType)
static const NekDouble kNekUnsetDouble
static const NekDouble kNekZeroTol
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs
bool operator()(const PointsKey &lhs, const PointsKey &rhs) const