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>
338 boost::ignore_unused(key);
346 boost::ignore_unused(x);
354 boost::ignore_unused(x);
362 boost::ignore_unused(x, y);
371 boost::ignore_unused(x, y, z);
379 boost::ignore_unused(pkey);
405 for (
unsigned int i=0; i<pointsDim; ++i)
434 for (
unsigned int i = 0; i < totNumPoints; ++i)
436 for (
unsigned int j = 0; j < totNumPoints; ++j)
467 boost::ignore_unused(pts);
469 "Copy Constructor for Points should not be called");
474 "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]
Storage for the point locations, allowing for up to a 3D points storage.
MatrixSharedPtrType m_derivmatrix[3]
Derivative matrices.
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
PointsKey m_pointsKey
Points type for this points distributions.
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
Quadrature weights for the weights.
const Array< OneD, const DataType > & GetZ() const
virtual void CalculateBaryWeights()
This function calculates the barycentric weights used for enhanced interpolation speed.
Points(const Points &pts)
Array< OneD, DataType > m_bcweights
Barycentric weights.
virtual const MatrixSharedPtrType GetI(unsigned int, const Array< OneD, const DataType > &x)
virtual const MatrixSharedPtrType GetI(const PointsKey &key)
const Array< OneD, const NekDouble > & GetBaryWeights() const
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
The above copyright notice and this permission notice shall be included.
bool operator()(const PointsKey &lhs, const PointsKey &rhs) const