Nektar++
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | 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 <Points.h>

Public Types

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

Public Member Functions

virtual ~Points ()
 
void Initialize (void)
 
size_t GetPointsDim () const
 
size_t GetNumPoints () const
 
size_t 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
 
const Array< OneD, const NekDouble > & GetBaryWeights () 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
 
const MatrixSharedPtrType GetI (const PointsKey &key)
 
const MatrixSharedPtrType GetI (const Array< OneD, const DataType > &x)
 
const MatrixSharedPtrType GetI (size_t uint, const Array< OneD, const DataType > &x)
 
const MatrixSharedPtrType GetI (const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y)
 
const MatrixSharedPtrType GetI (const Array< OneD, const DataType > &x, const Array< OneD, const DataType > &y, const Array< OneD, const DataType > &z)
 
const MatrixSharedPtrType GetGalerkinProjection (const PointsKey &pkey)
 

Protected Member Functions

virtual void v_Initialize (void)
 
virtual void v_CalculatePoints ()
 
virtual void v_CalculateWeights ()
 

Protected Attributes

PointsKey m_pointsKey
 Points type for this points distributions.
 
Array< OneD, DataTypem_points [3]
 Storage for the point locations, allowing for up to a 3D points storage.
 
Array< OneD, DataTypem_weights
 Quadrature weights for the weights.
 
Array< OneD, DataTypem_bcweights
 Barycentric weights.
 
MatrixSharedPtrType m_derivmatrix [3]
 Derivative matrices.
 
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLessm_InterpManager
 
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLessm_GalerkinProjectionManager
 

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 316 of file Points.h.

Member Typedef Documentation

◆ DataType

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

Definition at line 319 of file Points.h.

◆ MatrixSharedPtrType

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

Definition at line 320 of file Points.h.

Constructor & Destructor Documentation

◆ ~Points()

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

Definition at line 322 of file Points.h.

323 {
324 }

Member Function Documentation

◆ GetBaryWeights()

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

Definition at line 368 of file Points.h.

369 {
370 return m_bcweights;
371 }
Array< OneD, DataType > m_bcweights
Barycentric weights.
Definition Points.h:442

References Nektar::LibUtilities::Points< DataT >::m_bcweights.

◆ GetD()

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

Definition at line 394 of file Points.h.

395 {
396 return m_derivmatrix[(int)dir];
397 }
MatrixSharedPtrType m_derivmatrix[3]
Derivative matrices.
Definition Points.h:444

References Nektar::LibUtilities::Points< DataT >::m_derivmatrix.

◆ GetGalerkinProjection()

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

Definition at line 428 of file Points.h.

429 {
430 return v_GetGalerkinProjection(pkey);
431 }

◆ GetI() [1/5]

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

Definition at line 404 of file Points.h.

405 {
406 return v_GetI(x);
407 }

◆ GetI() [2/5]

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

Definition at line 415 of file Points.h.

417 {
418 return v_GetI(x, y);
419 }

◆ GetI() [3/5]

template<typename DataT >
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 
)
inline

Definition at line 421 of file Points.h.

424 {
425 return v_GetI(x, y, z);
426 }

◆ GetI() [4/5]

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

Definition at line 399 of file Points.h.

400 {
401 return v_GetI(key);
402 }

◆ GetI() [5/5]

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

Definition at line 409 of file Points.h.

411 {
412 return v_GetI(uint, x);
413 }

◆ GetNumPoints()

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

Definition at line 336 of file Points.h.

337 {
338 return m_pointsKey.GetNumPoints();
339 }
PointsKey m_pointsKey
Points type for this points distributions.
Definition Points.h:435
size_t GetNumPoints() const
Definition Points.h:85

References Nektar::LibUtilities::PointsKey::GetNumPoints(), and Nektar::LibUtilities::Points< DataT >::m_pointsKey.

◆ GetPoints() [1/3]

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

Definition at line 373 of file Points.h.

374 {
375 x = m_points[0];
376 }
Array< OneD, DataType > m_points[3]
Storage for the point locations, allowing for up to a 3D points storage.
Definition Points.h:438

References Nektar::LibUtilities::Points< DataT >::m_points.

◆ 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 378 of file Points.h.

380 {
381 x = m_points[0];
382 y = m_points[1];
383 }

References Nektar::LibUtilities::Points< DataT >::m_points.

◆ 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 385 of file Points.h.

388 {
389 x = m_points[0];
390 y = m_points[1];
391 z = m_points[2];
392 }
std::vector< double > z(NPUPPER)

References Nektar::LibUtilities::Points< DataT >::m_points.

◆ GetPointsDim()

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

◆ GetPointsType()

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

◆ GetTotNumPoints()

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

◆ GetW()

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

Definition at line 356 of file Points.h.

357 {
358 return m_weights;
359 }
Array< OneD, DataType > m_weights
Quadrature weights for the weights.
Definition Points.h:440

References Nektar::LibUtilities::Points< DataT >::m_weights.

◆ GetZ()

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

Definition at line 351 of file Points.h.

352 {
353 return m_points[0];
354 }

References Nektar::LibUtilities::Points< DataT >::m_points.

◆ 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 361 of file Points.h.

363 {
364 z = m_points[0];
365 w = m_weights;
366 }
std::vector< double > w(NPUPPER)

References Nektar::LibUtilities::Points< DataT >::m_points, and Nektar::LibUtilities::Points< DataT >::m_weights.

◆ Initialize()

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

Definition at line 326 of file Points.h.

327 {
328 v_Initialize();
329 }
virtual void v_Initialize(void)
Definition Points.h:450

References Nektar::LibUtilities::Points< DataT >::v_Initialize().

◆ v_CalculatePoints()

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

◆ v_CalculateWeights()

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

◆ v_Initialize()

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

Definition at line 450 of file Points.h.

451 {
454 v_CalculateBaryWeights();
455 v_CalculateDerivMatrix();
456 }
virtual void v_CalculatePoints()
Definition Points.h:458
virtual void v_CalculateWeights()
Definition Points.h:469

References Nektar::LibUtilities::Points< DataT >::v_CalculatePoints(), and Nektar::LibUtilities::Points< DataT >::v_CalculateWeights().

Referenced by Nektar::LibUtilities::Points< DataT >::Initialize().

Member Data Documentation

◆ m_bcweights

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

Barycentric weights.

Definition at line 442 of file Points.h.

Referenced by Nektar::LibUtilities::Points< DataT >::GetBaryWeights().

◆ m_derivmatrix

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

Derivative matrices.

Definition at line 444 of file Points.h.

Referenced by Nektar::LibUtilities::Points< DataT >::GetD().

◆ m_GalerkinProjectionManager

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

Definition at line 448 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 446 of file Points.h.

◆ m_points

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

◆ m_pointsKey

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

◆ m_weights

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