Nektar++
|
Describes the specification for a Basis. More...
#include <Basis.h>
Classes | |
struct | opLess |
Public Member Functions | |
BasisKey (const BasisType btype, const int nummodes, const PointsKey pkey) | |
Constructor. More... | |
BasisKey (const BasisKey &B) | |
Copy constructor. More... | |
~BasisKey () | |
Destructor. More... | |
int | GetNumModes () const |
Returns the order of the basis. More... | |
int | GetTotNumModes () const |
int | GetNumPoints () const |
Return points order at which basis is defined. More... | |
int | GetTotNumPoints () const |
BasisType | GetBasisType () const |
Return type of expansion basis. More... | |
PointsKey | GetPointsKey () const |
Return distribution of points. More... | |
PointsType | GetPointsType () const |
Return type of quadrature. More... | |
bool | SamePoints (const BasisKey &x) const |
Determine if quadrature of expansion x matches this. More... | |
bool | SameExp (const BasisKey &x) const |
Determine if basis expansion x matches this. More... | |
bool | ExactIprodInt () const |
Determine if basis has exact integration for inner product. More... | |
bool | Collocation () const |
Determine if basis has collocation properties. More... | |
Protected Attributes | |
int | m_nummodes |
Expansion order. More... | |
BasisType | m_basistype |
Expansion type. More... | |
PointsKey | m_pointsKey |
Points specification. More... | |
Private Member Functions | |
BasisKey () | |
Friends | |
bool | operator== (const BasisKey &x, const BasisKey &y) |
Overloaded Operators. More... | |
bool | operator== (const BasisKey *x, const BasisKey &y) |
bool | operator== (const BasisKey &x, const BasisKey *y) |
bool | operator!= (const BasisKey &x, const BasisKey &y) |
bool | operator!= (const BasisKey *x, const BasisKey &y) |
bool | operator!= (const BasisKey &x, const BasisKey *y) |
bool | operator< (const BasisKey &lhs, const BasisKey &rhs) |
bool | opLess::operator() (const BasisKey &lhs, const BasisKey &rhs) const |
|
inline |
Constructor.
Definition at line 62 of file Basis.h.
|
inline |
Copy constructor.
Definition at line 71 of file Basis.h.
|
inline |
|
inlineprivate |
Definition at line 193 of file Basis.h.
References ErrorUtil::efatal, and NEKERROR.
bool Nektar::LibUtilities::BasisKey::Collocation | ( | ) | const |
Determine if basis has collocation properties.
Determine if basis has collocation property, i.e. GLL_Lagrange with Lobatto integration of appropriate order, Gauss_Lagrange with Gauss integration of appropriate order.
Definition at line 692 of file Basis.cpp.
References Nektar::LibUtilities::eGauss_Lagrange, Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGLL_Lagrange, GetNumModes(), GetNumPoints(), GetPointsType(), and m_basistype.
Referenced by Nektar::LibUtilities::Basis::Collocation().
bool Nektar::LibUtilities::BasisKey::ExactIprodInt | ( | void | ) | const |
Determine if basis has exact integration for inner product.
Determine if polynomial basis can be eactly integrated with itself.
Definition at line 665 of file Basis.cpp.
References Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussKronrodLegendre, Nektar::LibUtilities::eGaussLobattoKronrodLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauKronrodMLegendre, Nektar::LibUtilities::eGaussRadauMLegendre, Nektar::LibUtilities::eGaussRadauPLegendre, GetNumModes(), GetNumPoints(), and GetPointsType().
Referenced by Nektar::LibUtilities::Basis::ExactIprodInt().
|
inline |
Return type of expansion basis.
Definition at line 139 of file Basis.h.
References m_basistype.
Referenced by Nektar::LibUtilities::Basis::CalculateInterpMatrix(), Nektar::MultiRegions::ExpList1D::ExpList1D(), Nektar::MultiRegions::ExpList2D::ExpList2D(), Nektar::MultiRegions::ExpList3D::ExpList3D(), Nektar::CoupledLinearNS::GenPressureExp(), Nektar::LibUtilities::Basis::GetBasisType(), Nektar::LibUtilities::InterpCoeff1D(), Nektar::LibUtilities::InterpCoeff2D(), main(), Nektar::LibUtilities::operator<<(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToEvenlySpacedPoints(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPointOrder(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPolyOrder(), and Nektar::LibUtilities::Transposition::Transposition().
|
inline |
Returns the order of the basis.
Definition at line 84 of file Basis.h.
References m_nummodes.
Referenced by Nektar::LibUtilities::Basis::CalculateInterpMatrix(), Collocation(), ExactIprodInt(), Nektar::MultiRegions::ExpList1D::ExpList1D(), Nektar::MultiRegions::ExpList2D::ExpList2D(), Nektar::MultiRegions::ExpList3D::ExpList3D(), Nektar::LibUtilities::Basis::GenBasis(), Nektar::CoupledLinearNS::GenPressureExp(), Nektar::LibUtilities::Basis::GetNumModes(), Nektar::LibUtilities::InterpCoeff1D(), Nektar::LibUtilities::InterpCoeff2D(), Nektar::LibUtilities::InterpCoeff3D(), main(), Nektar::LibUtilities::operator<<(), Nektar::LibUtilities::operator==(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToEvenlySpacedPoints(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPointOrder(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPolyOrder(), Nektar::StdRegions::StdNodalPrismExp::StdNodalPrismExp(), Nektar::StdRegions::StdNodalTetExp::StdNodalTetExp(), Nektar::StdRegions::StdPrismExp::StdPrismExp(), Nektar::StdRegions::StdPyrExp::StdPyrExp(), Nektar::StdRegions::StdTetExp::StdTetExp(), Nektar::StdRegions::StdTriExp::StdTriExp(), and Nektar::LibUtilities::Transposition::Transposition().
|
inline |
Return points order at which basis is defined.
Definition at line 128 of file Basis.h.
References Nektar::LibUtilities::PointsKey::GetNumPoints(), and m_pointsKey.
Referenced by Collocation(), ExactIprodInt(), Nektar::MultiRegions::ExpList1D::ExpList1D(), Nektar::MultiRegions::ExpList2D::ExpList2D(), Nektar::MultiRegions::ExpList3D::ExpList3D(), Nektar::LibUtilities::Basis::GetNumPoints(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPolyOrder(), Nektar::LibUtilities::Transposition::Transposition(), Nektar::SolverUtils::UpdateGeometry(), Nektar::LocalRegions::PyrExp::v_ComputeFaceNormal(), Nektar::LocalRegions::TetExp::v_ComputeFaceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeFaceNormal(), Nektar::LocalRegions::HexExp::v_ComputeFaceNormal(), and Nektar::MultiRegions::ExpList2D::v_GetNormals().
|
inline |
Return distribution of points.
Definition at line 145 of file Basis.h.
References m_pointsKey.
Referenced by Nektar::MultiRegions::ExpList2D::ExpList2D(), Nektar::LibUtilities::Basis::GenBasis(), Nektar::CoupledLinearNS::GenPressureExp(), Nektar::LibUtilities::Basis::GetI(), Nektar::LibUtilities::Basis::GetPointsKey(), Nektar::LibUtilities::Interp1D(), Nektar::LibUtilities::Interp2D(), Nektar::LibUtilities::Interp3D(), main(), Nektar::LibUtilities::operator<(), Nektar::LibUtilities::operator<<(), Nektar::LibUtilities::operator==(), Nektar::LibUtilities::PhysGalerkinProject1D(), Nektar::LibUtilities::PhysGalerkinProject2D(), Nektar::LibUtilities::PhysGalerkinProject3D(), Nektar::LocalRegions::PyrExp::v_ComputeFaceNormal(), Nektar::LocalRegions::TetExp::v_ComputeFaceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeFaceNormal(), Nektar::LocalRegions::HexExp::v_ComputeFaceNormal(), and Nektar::MultiRegions::ExpList2D::v_GetNormals().
|
inline |
Return type of quadrature.
Definition at line 151 of file Basis.h.
References Nektar::LibUtilities::PointsKey::GetPointsType(), and m_pointsKey.
Referenced by Collocation(), ExactIprodInt(), Nektar::MultiRegions::ExpList1D::ExpList1D(), Nektar::MultiRegions::ExpList2D::ExpList2D(), Nektar::LibUtilities::Basis::GetPointsType(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPointOrder(), Nektar::SpatialDomains::MeshGraph::SetExpansionsToPolyOrder(), and Nektar::SolverUtils::UpdateGeometry().
|
inline |
Definition at line 90 of file Basis.h.
References Nektar::LibUtilities::eChebyshev, ErrorUtil::efatal, Nektar::LibUtilities::eFourier, Nektar::LibUtilities::eFourierHalfModeIm, Nektar::LibUtilities::eFourierHalfModeRe, Nektar::LibUtilities::eFourierSingleMode, Nektar::LibUtilities::eGauss_Lagrange, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eLegendre, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eModified_C, Nektar::LibUtilities::eMonomial, Nektar::LibUtilities::eOrtho_A, Nektar::LibUtilities::eOrtho_B, Nektar::LibUtilities::eOrtho_C, m_basistype, m_nummodes, and NEKERROR.
Referenced by Nektar::LibUtilities::Basis::GetTotNumModes().
|
inline |
Definition at line 133 of file Basis.h.
References Nektar::LibUtilities::PointsKey::GetTotNumPoints(), and m_pointsKey.
Referenced by Nektar::LibUtilities::Basis::GetTotNumPoints().
|
inline |
Determine if basis expansion x matches this.
Definition at line 163 of file Basis.h.
References m_basistype, and m_nummodes.
|
inline |
Determine if quadrature of expansion x matches this.
Definition at line 157 of file Basis.h.
References m_pointsKey.
|
protected |
Expansion type.
Definition at line 189 of file Basis.h.
Referenced by Collocation(), GetBasisType(), GetTotNumModes(), Nektar::LibUtilities::BasisKey::opLess::operator()(), Nektar::LibUtilities::operator<(), Nektar::LibUtilities::operator==(), and SameExp().
|
protected |
Expansion order.
Definition at line 188 of file Basis.h.
Referenced by GetNumModes(), GetTotNumModes(), Nektar::LibUtilities::operator<(), and SameExp().
|
protected |
Points specification.
Definition at line 190 of file Basis.h.
Referenced by GetNumPoints(), GetPointsKey(), GetPointsType(), GetTotNumPoints(), and SamePoints().