Nektar++
|
#include <GaussPoints.h>
Public Member Functions | |
virtual | ~GaussPoints () |
std::shared_ptr< NekMatrix< NekDouble > > | CreateMatrix (const PointsKey &pkey) |
const std::shared_ptr< NekMatrix< NekDouble > > | GetI (const PointsKey &pkey) |
const std::shared_ptr< NekMatrix< NekDouble > > | GetI (const Array< OneD, const NekDouble > &x) |
const std::shared_ptr< NekMatrix< NekDouble > > | GetI (unsigned int numpoints, const Array< OneD, const NekDouble > &x) |
std::shared_ptr< NekMatrix< NekDouble > > | CreateGPMatrix (const PointsKey &pkey) |
const std::shared_ptr< NekMatrix< NekDouble > > | GetGalerkinProjection (const PointsKey &pkey) |
GaussPoints (const PointsKey &pkey) | |
![]() | |
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 |
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 MatrixSharedPtrType & | GetD (Direction dir=xDir) const |
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) |
Static Public Member Functions | |
static std::shared_ptr< Points< NekDouble > > | Create (const PointsKey &pkey) |
Private Member Functions | |
GaussPoints () | |
These should not be called. All creation is done using the constructor requiring the key, declared above. More... | |
GaussPoints (const GaussPoints &points) | |
void | CalculatePoints () |
void | CalculateWeights () |
void | CalculateDerivMatrix () |
void | CalculateInterpMatrix (unsigned int npts, const Array< OneD, const NekDouble > &xpoints, Array< OneD, NekDouble > &interp) |
std::shared_ptr< NekMatrix< NekDouble > > | CalculateGalerkinProjectionMatrix (const PointsKey &pkey) |
NekDouble | LagrangeInterpolant (NekDouble x, int npts, const Array< OneD, const NekDouble > &xpts, const Array< OneD, const NekDouble > &funcvals) |
functions used by the Kronrod points More... | |
NekDouble | LagrangePoly (NekDouble x, int pt, int npts, const Array< OneD, const NekDouble > &xpts) |
NekDouble | LagrangePolyDeriv (NekDouble x, int pt, int npts, const Array< OneD, const NekDouble > &xpts) |
Static Private Attributes | |
static bool | initPointsManager [] |
Additional Inherited Members | |
![]() | |
typedef NekDouble | DataType |
typedef std::shared_ptr< NekMatrix< DataType > > | MatrixSharedPtrType |
![]() | |
virtual void | CalculateBaryWeights () |
This function calculates the barycentric weights used for enhanced interpolation speed. More... | |
Points (const PointsKey &key) | |
![]() | |
PointsKey | m_pointsKey |
Points type for this points distributions. More... | |
Array< OneD, DataType > | m_points [3] |
Storage for the point locations, allowing for up to a 3D points storage. More... | |
Array< OneD, DataType > | m_weights |
Quadrature weights for the weights. More... | |
Array< OneD, DataType > | m_bcweights |
Barycentric weights. More... | |
MatrixSharedPtrType | m_derivmatrix [3] |
Derivative matrices. More... | |
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > | m_InterpManager |
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > | m_GalerkinProjectionManager |
Definition at line 47 of file GaussPoints.h.
|
inlinevirtual |
Definition at line 50 of file GaussPoints.h.
|
inline |
Definition at line 68 of file GaussPoints.h.
References CreateGPMatrix(), CreateMatrix(), Nektar::LibUtilities::eBoundaryLayerPoints, Nektar::LibUtilities::eBoundaryLayerPointsRev, Nektar::LibUtilities::eFourierEvenlySpaced, Nektar::LibUtilities::eGaussGaussChebyshev, Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussKronrodLegendre, Nektar::LibUtilities::eGaussLobattoChebyshev, Nektar::LibUtilities::eGaussLobattoKronrodLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauKronrodMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauKronrodMLegendre, Nektar::LibUtilities::eGaussRadauMAlpha0Beta1, Nektar::LibUtilities::eGaussRadauMAlpha0Beta2, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauMAlpha2Beta0, Nektar::LibUtilities::eGaussRadauMChebyshev, Nektar::LibUtilities::eGaussRadauMLegendre, Nektar::LibUtilities::eGaussRadauPChebyshev, Nektar::LibUtilities::eGaussRadauPLegendre, Nektar::LibUtilities::ePolyEvenlySpaced, Nektar::LibUtilities::Points< NekDouble >::m_GalerkinProjectionManager, and Nektar::LibUtilities::Points< NekDouble >::m_InterpManager.
|
private |
These should not be called. All creation is done using the constructor requiring the key, declared above.
|
private |
|
privatevirtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 154 of file GaussPoints.cpp.
References Nektar::LibUtilities::Points< NekDouble >::CalculateDerivMatrix(), CellMLToNektar.pycml::copy(), Polylib::Dgj(), Polylib::Dglj(), Polylib::Dgrjm(), Polylib::Dgrjp(), Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eGaussGaussChebyshev, Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussKronrodLegendre, Nektar::LibUtilities::eGaussLobattoChebyshev, Nektar::LibUtilities::eGaussLobattoKronrodLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauKronrodMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauKronrodMLegendre, Nektar::LibUtilities::eGaussRadauMAlpha0Beta1, Nektar::LibUtilities::eGaussRadauMAlpha0Beta2, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauMAlpha2Beta0, Nektar::LibUtilities::eGaussRadauMChebyshev, Nektar::LibUtilities::eGaussRadauMLegendre, Nektar::LibUtilities::eGaussRadauPChebyshev, Nektar::LibUtilities::eGaussRadauPLegendre, Nektar::LibUtilities::PointsKey::GetNumPoints(), Nektar::LibUtilities::PointsKey::GetPointsType(), Nektar::LibUtilities::PointsKey::GetTotNumPoints(), LagrangePolyDeriv(), Nektar::LibUtilities::Points< NekDouble >::m_derivmatrix, Nektar::LibUtilities::Points< NekDouble >::m_points, Nektar::LibUtilities::Points< NekDouble >::m_pointsKey, and NEKERROR.
|
private |
Definition at line 430 of file GaussPoints.cpp.
References GetI(), Nektar::LibUtilities::PointsKey::GetNumPoints(), Nektar::LibUtilities::Points< NekDouble >::GetNumPoints(), Nektar::LibUtilities::Points< NekDouble >::m_weights, Nektar::LibUtilities::PointsManager(), Vmath::Smul(), and Vmath::Vmul().
Referenced by CreateGPMatrix().
|
private |
Definition at line 238 of file GaussPoints.cpp.
References Nektar::Array< OneD, DataType >::data(), Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eGaussGaussChebyshev, Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussKronrodLegendre, Nektar::LibUtilities::eGaussLobattoChebyshev, Nektar::LibUtilities::eGaussLobattoKronrodLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauKronrodMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauKronrodMLegendre, Nektar::LibUtilities::eGaussRadauMAlpha0Beta1, Nektar::LibUtilities::eGaussRadauMAlpha0Beta2, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauMAlpha2Beta0, Nektar::LibUtilities::eGaussRadauMChebyshev, Nektar::LibUtilities::eGaussRadauMLegendre, Nektar::LibUtilities::eGaussRadauPChebyshev, Nektar::LibUtilities::eGaussRadauPLegendre, Nektar::LibUtilities::PointsKey::GetNumPoints(), Nektar::LibUtilities::Points< NekDouble >::GetNumPoints(), Nektar::LibUtilities::PointsKey::GetPointsType(), Polylib::Imgj(), Polylib::Imglj(), Polylib::Imgrjm(), Polylib::Imgrjp(), LagrangePoly(), Nektar::LibUtilities::Points< NekDouble >::m_points, Nektar::LibUtilities::Points< NekDouble >::m_pointsKey, and NEKERROR.
Referenced by GetI().
|
privatevirtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 69 of file GaussPoints.cpp.
References Nektar::LibUtilities::Points< NekDouble >::CalculatePoints(), Nektar::LibUtilities::Points< NekDouble >::CalculateWeights(), Nektar::Array< OneD, DataType >::data(), Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eGaussGaussChebyshev, Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussKronrodLegendre, Nektar::LibUtilities::eGaussLobattoChebyshev, Nektar::LibUtilities::eGaussLobattoKronrodLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauKronrodMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauKronrodMLegendre, Nektar::LibUtilities::eGaussRadauMAlpha0Beta1, Nektar::LibUtilities::eGaussRadauMAlpha0Beta2, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauMAlpha2Beta0, Nektar::LibUtilities::eGaussRadauMChebyshev, Nektar::LibUtilities::eGaussRadauMLegendre, Nektar::LibUtilities::eGaussRadauPChebyshev, Nektar::LibUtilities::eGaussRadauPLegendre, Nektar::LibUtilities::PointsKey::GetNumPoints(), Nektar::LibUtilities::PointsKey::GetPointsType(), Nektar::LibUtilities::Points< NekDouble >::m_points, Nektar::LibUtilities::Points< NekDouble >::m_pointsKey, Nektar::LibUtilities::Points< NekDouble >::m_weights, NEKERROR, Polylib::zwgj(), Polylib::zwgk(), Polylib::zwglj(), Polylib::zwgrjm(), Polylib::zwgrjp(), Polylib::zwlk(), and Polylib::zwrk().
|
privatevirtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 149 of file GaussPoints.cpp.
|
static |
Definition at line 311 of file GaussPoints.cpp.
std::shared_ptr< NekMatrix< NekDouble > > Nektar::LibUtilities::GaussPoints::CreateGPMatrix | ( | const PointsKey & | pkey | ) |
Definition at line 422 of file GaussPoints.cpp.
References CalculateGalerkinProjectionMatrix().
Referenced by GaussPoints().
std::shared_ptr< NekMatrix< NekDouble > > Nektar::LibUtilities::GaussPoints::CreateMatrix | ( | const PointsKey & | pkey | ) |
Definition at line 320 of file GaussPoints.cpp.
References GetI(), Nektar::LibUtilities::PointsKey::GetNumPoints(), and Nektar::LibUtilities::PointsManager().
Referenced by GaussPoints().
|
virtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 417 of file GaussPoints.cpp.
References Nektar::LibUtilities::Points< NekDouble >::m_GalerkinProjectionManager.
|
virtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 339 of file GaussPoints.cpp.
References GetI().
|
virtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 332 of file GaussPoints.cpp.
References ASSERTL0, Nektar::LibUtilities::PointsKey::GetPointsDim(), and Nektar::LibUtilities::Points< NekDouble >::m_InterpManager.
Referenced by CalculateGalerkinProjectionMatrix(), CreateMatrix(), and GetI().
|
virtual |
Reimplemented from Nektar::LibUtilities::Points< NekDouble >.
Definition at line 347 of file GaussPoints.cpp.
References CalculateInterpMatrix(), and Nektar::LibUtilities::Points< NekDouble >::GetNumPoints().
|
private |
functions used by the Kronrod points
Definition at line 360 of file GaussPoints.cpp.
References LagrangePoly().
|
private |
Definition at line 373 of file GaussPoints.cpp.
Referenced by CalculateInterpMatrix(), and LagrangeInterpolant().
|
private |
|
staticprivate |
Definition at line 155 of file GaussPoints.h.