Nektar++
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Nektar::LibUtilities::Points< DataT > Class Template Reference

Stores a set of points of datatype DataT, defined by a PointKey. More...

#include <FoundationsFwd.hpp>

Public Types

typedef DataT DataType
 
typedef std::shared_ptr< NekMatrix< DataType > > MatrixSharedPtrType
 

Public Member Functions

virtual ~Points ()
 
virtual void Initialize (void)
 
unsigned int GetPointsDim () const
 
unsigned int GetNumPoints () const
 
unsigned int GetTotNumPoints () const
 
PointsType GetPointsType () const
 
const Array< OneD, const DataType > & GetZ () const
 
const Array< OneD, const DataType > & GetW () const
 
void GetZW (Array< OneD, const DataType > &z, Array< OneD, const DataType > &w) const
 
void GetPoints (Array< OneD, const DataType > &x) const
 
void GetPoints (Array< OneD, const DataType > &x, Array< OneD, const DataType > &y) const
 
void GetPoints (Array< OneD, const DataType > &x, Array< OneD, const DataType > &y, Array< OneD, const DataType > &z) const
 
const MatrixSharedPtrTypeGetD (Direction dir=xDir) const
 
virtual const MatrixSharedPtrType GetI (const PointsKey &key)
 
virtual const MatrixSharedPtrType GetI (const Array< OneD, const DataType > &x)
 
virtual const MatrixSharedPtrType GetI (unsigned int, const Array< OneD, const DataType > &x)
 
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, const Array< OneD, const DataType > &y, const Array< OneD, const DataType > &z)
 
virtual const MatrixSharedPtrType GetGalerkinProjection (const PointsKey &pkey)
 

Protected Member Functions

virtual void CalculatePoints ()
 
virtual void CalculateWeights ()
 
virtual void CalculateDerivMatrix ()
 
 Points (const PointsKey &key)
 

Protected Attributes

PointsKey m_pointsKey
 
Array< OneD, DataTypem_points [3]
 
Array< OneD, DataTypem_weights
 
MatrixSharedPtrType m_derivmatrix [3]
 
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLessm_InterpManager
 
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLessm_GalerkinProjectionManager
 

Private Member Functions

 Points (const Points &pts)
 
 Points ()
 

Detailed Description

template<typename DataT>
class Nektar::LibUtilities::Points< DataT >

Stores a set of points of datatype DataT, defined by a PointKey.

This encapsulates a set of points, specified by a PointKey. The class stores not only the point coordinates, but also the integration weights and derivative matrix coefficients. Memory is allocated from the memory pool if in use.

Definition at line 68 of file FoundationsFwd.hpp.

Member Typedef Documentation

◆ DataType

template<typename DataT>
typedef DataT Nektar::LibUtilities::Points< DataT >::DataType

Definition at line 253 of file Points.h.

◆ MatrixSharedPtrType

template<typename DataT>
typedef std::shared_ptr<NekMatrix<DataType> > Nektar::LibUtilities::Points< DataT >::MatrixSharedPtrType

Definition at line 254 of file Points.h.

Constructor & Destructor Documentation

◆ ~Points()

template<typename DataT>
virtual Nektar::LibUtilities::Points< DataT >::~Points ( )
inlinevirtual

Definition at line 256 of file Points.h.

257  {
258  }

◆ Points() [1/3]

template<typename DataT>
Nektar::LibUtilities::Points< DataT >::Points ( const PointsKey key)
inlineprotected

Definition at line 412 of file Points.h.

412  :m_pointsKey(key)
413  {
414  }

◆ Points() [2/3]

template<typename DataT>
Nektar::LibUtilities::Points< DataT >::Points ( const Points< DataT > &  pts)
inlineprivate

Definition at line 418 of file Points.h.

419  {
420  boost::ignore_unused(pts);
422  "Copy Constructor for Points should not be called");
423  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ Points() [3/3]

template<typename DataT>
Nektar::LibUtilities::Points< DataT >::Points ( )
inlineprivate

Definition at line 424 of file Points.h.

425  {
427  "Default Constructor for Points should not be called");
428  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

Member Function Documentation

◆ CalculateDerivMatrix()

template<typename DataT>
virtual void Nektar::LibUtilities::Points< DataT >::CalculateDerivMatrix ( )
inlineprotectedvirtual

Reimplemented in Nektar::LibUtilities::GaussPoints, Nektar::LibUtilities::BLPoints, Nektar::LibUtilities::FourierSingleModePoints, Nektar::LibUtilities::NodalTetEvenlySpaced, Nektar::LibUtilities::NodalPrismEvenlySpaced, Nektar::LibUtilities::FourierPoints, Nektar::LibUtilities::NodalTetElec, Nektar::LibUtilities::NodalTriEvenlySpaced, Nektar::LibUtilities::NodalTriFekete, Nektar::LibUtilities::NodalPrismElec, Nektar::LibUtilities::NodalTriElec, Nektar::LibUtilities::PolyEPoints, Nektar::LibUtilities::NodalHexElec, Nektar::LibUtilities::NodalQuadElec, Nektar::LibUtilities::NodalPrismSPI, Nektar::LibUtilities::NodalTriSPI, and Nektar::LibUtilities::NodalTetSPI.

Definition at line 403 of file Points.h.

Referenced by Nektar::LibUtilities::FourierPoints::CalculateDerivMatrix(), Nektar::LibUtilities::FourierSingleModePoints::CalculateDerivMatrix(), and Nektar::LibUtilities::BLPoints::CalculateDerivMatrix().

404  {
405  int totNumPoints = GetTotNumPoints();
406  for(unsigned int i = 0; i < m_pointsKey.GetPointsDim(); ++i)
407  {
408  m_derivmatrix[i] = MemoryManager<NekMatrix<DataType> >::AllocateSharedPtr(totNumPoints,totNumPoints);
409  }
410  }
unsigned int GetPointsDim() const
Definition: Points.h:150
unsigned int GetTotNumPoints() const
Definition: Points.h:277
MatrixSharedPtrType m_derivmatrix[3]
Definition: Points.h:383

◆ CalculatePoints()

template<typename DataT>
virtual void Nektar::LibUtilities::Points< DataT >::CalculatePoints ( )
inlineprotectedvirtual

◆ CalculateWeights()

template<typename DataT>
virtual void Nektar::LibUtilities::Points< DataT >::CalculateWeights ( )
inlineprotectedvirtual

◆ GetD()

template<typename DataT>
const MatrixSharedPtrType& Nektar::LibUtilities::Points< DataT >::GetD ( Direction  dir = xDir) const
inline

Definition at line 325 of file Points.h.

326  {
327  return m_derivmatrix[(int)dir];
328  }
MatrixSharedPtrType m_derivmatrix[3]
Definition: Points.h:383

◆ GetGalerkinProjection()

template<typename DataT>
virtual const MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::GetGalerkinProjection ( const PointsKey pkey)
inlinevirtual

Reimplemented in Nektar::LibUtilities::GaussPoints.

Definition at line 371 of file Points.h.

372  {
373  boost::ignore_unused(pkey);
374  NEKERROR(ErrorUtil::efatal, "Method not implemented ");
375  std::shared_ptr<NekMatrix<NekDouble> > returnval(MemoryManager<NekMatrix<NekDouble> >::AllocateSharedPtr());
376  return returnval;
377  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ GetI() [1/5]

template<typename DataT>
virtual const MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::GetI ( const PointsKey key)
inlinevirtual

Reimplemented in Nektar::LibUtilities::NodalTetEvenlySpaced, Nektar::LibUtilities::NodalPrismEvenlySpaced, Nektar::LibUtilities::NodalTriFekete, Nektar::LibUtilities::NodalTriEvenlySpaced, Nektar::LibUtilities::NodalPrismElec, Nektar::LibUtilities::PolyEPoints, Nektar::LibUtilities::NodalTriElec, Nektar::LibUtilities::NodalTetElec, Nektar::LibUtilities::BLPoints, Nektar::LibUtilities::FourierPoints, Nektar::LibUtilities::GaussPoints, and Nektar::LibUtilities::FourierSingleModePoints.

Definition at line 330 of file Points.h.

331  {
332  boost::ignore_unused(key);
333  NEKERROR(ErrorUtil::efatal, "Method not implemented ");
334  std::shared_ptr<NekMatrix<NekDouble> > returnval(MemoryManager<NekMatrix<NekDouble> >::AllocateSharedPtr());
335  return returnval;
336  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ GetI() [2/5]

template<typename DataT>
virtual const MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::GetI ( const Array< OneD, const DataType > &  x)
inlinevirtual

Reimplemented in Nektar::LibUtilities::PolyEPoints, Nektar::LibUtilities::BLPoints, Nektar::LibUtilities::FourierPoints, Nektar::LibUtilities::GaussPoints, and Nektar::LibUtilities::FourierSingleModePoints.

Definition at line 338 of file Points.h.

339  {
340  boost::ignore_unused(x);
341  NEKERROR(ErrorUtil::efatal, "Method not implemented");
342  std::shared_ptr<NekMatrix<NekDouble> > returnval(MemoryManager<NekMatrix<NekDouble> >::AllocateSharedPtr());
343  return returnval;
344  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ GetI() [3/5]

template<typename DataT>
virtual const MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::GetI ( unsigned  int,
const Array< OneD, const DataType > &  x 
)
inlinevirtual

Reimplemented in Nektar::LibUtilities::PolyEPoints, Nektar::LibUtilities::BLPoints, Nektar::LibUtilities::FourierPoints, Nektar::LibUtilities::GaussPoints, and Nektar::LibUtilities::FourierSingleModePoints.

Definition at line 346 of file Points.h.

347  {
348  boost::ignore_unused(x);
349  NEKERROR(ErrorUtil::efatal, "Method not implemented");
350  std::shared_ptr<NekMatrix<NekDouble> > returnval(MemoryManager<NekMatrix<NekDouble> >::AllocateSharedPtr());
351  return returnval;
352  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ GetI() [4/5]

template<typename DataT>
virtual const MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::GetI ( const Array< OneD, const DataType > &  x,
const Array< OneD, const DataType > &  y 
)
inlinevirtual

Reimplemented in Nektar::LibUtilities::NodalTriFekete, Nektar::LibUtilities::NodalTriEvenlySpaced, and Nektar::LibUtilities::NodalTriElec.

Definition at line 354 of file Points.h.

355  {
356  boost::ignore_unused(x, y);
357  NEKERROR(ErrorUtil::efatal, "Method not implemented");
358  std::shared_ptr<NekMatrix<NekDouble> > returnval(MemoryManager<NekMatrix<NekDouble> >::AllocateSharedPtr());
359  return returnval;
360  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ GetI() [5/5]

template<typename DataT>
virtual const MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::GetI ( const Array< OneD, const DataType > &  x,
const Array< OneD, const DataType > &  y,
const Array< OneD, const DataType > &  z 
)
inlinevirtual

Reimplemented in Nektar::LibUtilities::NodalTetEvenlySpaced, Nektar::LibUtilities::NodalPrismEvenlySpaced, Nektar::LibUtilities::NodalPrismElec, and Nektar::LibUtilities::NodalTetElec.

Definition at line 362 of file Points.h.

364  {
365  boost::ignore_unused(x, y, z);
366  NEKERROR(ErrorUtil::efatal, "Method not implemented");
367  std::shared_ptr<NekMatrix<NekDouble> > returnval(MemoryManager<NekMatrix<NekDouble> >::AllocateSharedPtr());
368  return returnval;
369  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:209

◆ GetNumPoints()

template<typename DataT>
unsigned int Nektar::LibUtilities::Points< DataT >::GetNumPoints ( ) const
inline

Definition at line 272 of file Points.h.

273  {
274  return m_pointsKey.GetNumPoints();
275  }
unsigned int GetNumPoints() const
Definition: Points.h:107

◆ GetPoints() [1/3]

template<typename DataT>
void Nektar::LibUtilities::Points< DataT >::GetPoints ( Array< OneD, const DataType > &  x) const
inline

Definition at line 304 of file Points.h.

305  {
306  x = m_points[0];
307  }
Array< OneD, DataType > m_points[3]
Definition: Points.h:381

◆ GetPoints() [2/3]

template<typename DataT>
void Nektar::LibUtilities::Points< DataT >::GetPoints ( Array< OneD, const DataType > &  x,
Array< OneD, const DataType > &  y 
) const
inline

Definition at line 309 of file Points.h.

311  {
312  x = m_points[0];
313  y = m_points[1];
314  }
Array< OneD, DataType > m_points[3]
Definition: Points.h:381

◆ GetPoints() [3/3]

template<typename DataT>
void Nektar::LibUtilities::Points< DataT >::GetPoints ( Array< OneD, const DataType > &  x,
Array< OneD, const DataType > &  y,
Array< OneD, const DataType > &  z 
) const
inline

Definition at line 316 of file Points.h.

319  {
320  x = m_points[0];
321  y = m_points[1];
322  z = m_points[2];
323  }
Array< OneD, DataType > m_points[3]
Definition: Points.h:381

◆ GetPointsDim()

template<typename DataT>
unsigned int Nektar::LibUtilities::Points< DataT >::GetPointsDim ( ) const
inline

Definition at line 267 of file Points.h.

268  {
269  return m_pointsKey.GetPointsDim();
270  }
unsigned int GetPointsDim() const
Definition: Points.h:150

◆ GetPointsType()

template<typename DataT>
PointsType Nektar::LibUtilities::Points< DataT >::GetPointsType ( ) const
inline

Definition at line 282 of file Points.h.

283  {
284  return m_pointsKey.GetPointsType();
285  }
PointsType GetPointsType() const
Definition: Points.h:112

◆ GetTotNumPoints()

template<typename DataT>
unsigned int Nektar::LibUtilities::Points< DataT >::GetTotNumPoints ( ) const
inline

Definition at line 277 of file Points.h.

278  {
279  return m_pointsKey.GetTotNumPoints();
280  }
unsigned int GetTotNumPoints() const
Definition: Points.h:180

◆ GetW()

template<typename DataT>
const Array<OneD, const DataType>& Nektar::LibUtilities::Points< DataT >::GetW ( ) const
inline

Definition at line 292 of file Points.h.

293  {
294  return m_weights;
295  }
Array< OneD, DataType > m_weights
Definition: Points.h:382

◆ GetZ()

template<typename DataT>
const Array<OneD, const DataType>& Nektar::LibUtilities::Points< DataT >::GetZ ( ) const
inline

Definition at line 287 of file Points.h.

288  {
289  return m_points[0];
290  }
Array< OneD, DataType > m_points[3]
Definition: Points.h:381

◆ GetZW()

template<typename DataT>
void Nektar::LibUtilities::Points< DataT >::GetZW ( Array< OneD, const DataType > &  z,
Array< OneD, const DataType > &  w 
) const
inline

Definition at line 297 of file Points.h.

299  {
300  z = m_points[0];
301  w = m_weights;
302  }
Array< OneD, DataType > m_weights
Definition: Points.h:382
Array< OneD, DataType > m_points[3]
Definition: Points.h:381

◆ Initialize()

template<typename DataT>
virtual void Nektar::LibUtilities::Points< DataT >::Initialize ( void  )
inlinevirtual

Definition at line 260 of file Points.h.

261  {
262  CalculatePoints();
265  }
virtual void CalculatePoints()
Definition: Points.h:387
virtual void CalculateDerivMatrix()
Definition: Points.h:403
virtual void CalculateWeights()
Definition: Points.h:398

Member Data Documentation

◆ m_derivmatrix

template<typename DataT>
MatrixSharedPtrType Nektar::LibUtilities::Points< DataT >::m_derivmatrix[3]
protected

Definition at line 383 of file Points.h.

◆ m_GalerkinProjectionManager

template<typename DataT>
NekManager<PointsKey, NekMatrix<DataType>, PointsKey::opLess> Nektar::LibUtilities::Points< DataT >::m_GalerkinProjectionManager
protected

Definition at line 385 of file Points.h.

◆ m_InterpManager

template<typename DataT>
NekManager<PointsKey, NekMatrix<DataType>, PointsKey::opLess> Nektar::LibUtilities::Points< DataT >::m_InterpManager
protected

Definition at line 384 of file Points.h.

◆ m_points

template<typename DataT>
Array<OneD, DataType> Nektar::LibUtilities::Points< DataT >::m_points[3]
protected

Definition at line 381 of file Points.h.

◆ m_pointsKey

template<typename DataT>
PointsKey Nektar::LibUtilities::Points< DataT >::m_pointsKey
protected

Definition at line 380 of file Points.h.

◆ m_weights

template<typename DataT>
Array<OneD, DataType> Nektar::LibUtilities::Points< DataT >::m_weights
protected

Definition at line 382 of file Points.h.