36 #ifndef NEKTAR_LIB_UTILITIES_FOUNDATIONS_POINTS_H
37 #define NEKTAR_LIB_UTILITIES_FOUNDATIONS_POINTS_H
52 namespace LibUtilities
135 return (*
this == *y);
140 return (!(*
this == y));
145 return (!(*
this == *y));
191 ASSERTL0(
false,
"this method cannot be implemented");
200 totpoints = m_numpoints*(m_numpoints+1)*(m_numpoints+2)/6;
203 ASSERTL0(
false,
"this method cannot be implemented");
208 totpoints = m_numpoints*m_numpoints*(m_numpoints+1)/2;
211 ASSERTL0(
false,
"this method cannot be implemented");
245 template<
typename DataT>
328 ASSERTL0(
false,
"Method not implemented ");
335 ASSERTL0(
false,
"Method not implemented");
342 ASSERTL0(
false,
"Method not implemented");
349 ASSERTL0(
false,
"Method not implemented");
357 ASSERTL0(
false,
"Method not implemented");
364 ASSERTL0(
false,
"Method not implemented ");
382 for (
unsigned int i=0; i<pointsDim; ++i)
396 for(
unsigned int i = 0; i < m_pointsKey.
GetPointsDim(); ++i)
421 #endif //NEKTAR_LIB_UTILITIES_FOUNDATIONS_POINTS_H
const MatrixSharedPtrType & GetD(Direction dir=xDir) const
bool operator!=(const PointsKey &y)
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_GalerkinProjectionManager
static const PointsKey NullPointsKey(0, eNoPointsType)
#define ASSERTL0(condition, msg)
Points(const Points &pts)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x)
std::vector< PointsKey > PointsKeyVector
virtual void CalculatePoints()
NekDouble GetFactor() const
virtual const MatrixSharedPtrType GetI(const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y)
PointsType GetPointsType() const
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
PointsKey(const PointsKey &key)
Copy constructor.
NekDouble m_factor
optional factor
void GetPoints(Array< OneD, const DataType > &x, Array< OneD, const DataType > &y) const
MatrixSharedPtrType m_derivmatrix[3]
Array< OneD, DataType > m_points[3]
PointsType m_pointstype
Type of Points.
unsigned int m_numpoints
number of the points (as appropriately defined for PointsType)
3D Nodal Symmetric positive internal tet (Whitherden, Vincent)
bool operator==(const BasisKey &x, const BasisKey &y)
const Array< OneD, const DataType > & GetW() const
unsigned int GetPointsDim() const
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
virtual const MatrixSharedPtrType GetI(const PointsKey &pkey)
boost::shared_ptr< NekMatrix< DataType > > MatrixSharedPtrType
bool operator()(const PointsKey &lhs, const PointsKey &rhs) const
const Array< OneD, const DataType > & GetZ() const
static const NekDouble kNekZeroTol
virtual const MatrixSharedPtrType GetI(unsigned int numpoints, const Array< OneD, const DataType > &x)
PointsKey & operator=(const PointsKey &key)
virtual const MatrixSharedPtrType GetGalerkinProjection(const PointsKey &pkey)
unsigned int GetNumPoints() const
#define LIB_UTILITIES_EXPORT
Points(const PointsKey &key)
3D Nodal Electrostatic Points on a Tetrahedron
unsigned int GetTotNumPoints() const
unsigned int GetPointsDim() const
Array< OneD, DataType > m_weights
Defines a specification for a set of points.
void GetPoints(Array< OneD, const DataType > &x) const
bool operator==(const PointsKey &key)
virtual void CalculateDerivMatrix()
static const NekDouble kNekUnsetDouble
bool operator<(const BasisKey &lhs, const BasisKey &rhs)
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)
2D Nodal Fekete Points on a Triangle
void GetPoints(Array< OneD, const DataType > &x, Array< OneD, const DataType > &y, Array< OneD, const DataType > &z) const
virtual ~PointsKey()
Destructor.
PointsKey(void)
Default constructor.
void GetZW(Array< OneD, const DataType > &z, Array< OneD, const DataType > &w) const
friend bool operator<(const PointsKey &lhs, const PointsKey &rhs)
unsigned int GetNumPoints() const
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
2D Evenly-spaced points on a Triangle
virtual void Initialize(void)
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_InterpManager
unsigned int GetTotNumPoints() const
1D Array of constant elements with garbage collection and bounds checking.
PointsType GetPointsType() const
2D Nodal Electrostatic Points on a Triangle
Stores a set of points of datatype DataT, defined by a PointKey.
3D electrostatically spaced points on a Prism
2D Nodal Symmetric positive internal triangle (Whitherden, Vincent)
virtual void CalculateWeights()