37 #include <boost/functional/hash.hpp>
52 m_shapeType(shapeType),
53 m_base(stdExpansion.GetBase()),
54 m_ncoeffs(stdExpansion.GetNcoeffs()),
55 m_matrixType(matrixType),
56 m_nodalPointsType(nodalType),
58 m_varcoeffs(varCoeffMap),
59 m_varcoeff_hashes(varCoeffMap.size())
63 for (VarCoeffMap::const_iterator x = varCoeffMap.begin(); x != varCoeffMap.end(); ++x)
73 m_shapeType(rhs.m_shapeType),
75 m_ncoeffs(rhs.m_ncoeffs),
76 m_matrixType(matrixType),
77 m_nodalPointsType(rhs.m_nodalPointsType),
78 m_factors(rhs.m_factors),
79 m_varcoeffs(rhs.m_varcoeffs),
80 m_varcoeff_hashes(rhs.m_varcoeff_hashes)
85 m_shapeType(rhs.m_shapeType),
87 m_ncoeffs(rhs.m_ncoeffs),
88 m_matrixType(rhs.m_matrixType),
89 m_nodalPointsType(rhs.m_nodalPointsType),
90 m_factors(rhs.m_factors),
91 m_varcoeffs(rhs.m_varcoeffs),
92 m_varcoeff_hashes(rhs.m_varcoeff_hashes)
147 ConstFactorMap::const_iterator x, y;
151 if (x->second < y->second)
155 if (x->second > y->second)
223 ConstFactorMap::const_iterator x, y;
227 if (x->second != y->second)
252 VarCoeffMap::const_iterator x;
255 VarCoeffMap::const_iterator y;
262 if (x->second != y->second)
267 for (
unsigned int i = 0; i < lhs.
m_varcoeffs.size(); ++i)
286 os <<
"Constants: " << endl;
287 ConstFactorMap::const_iterator x;
295 os <<
"Variable coefficients: " << endl;
296 VarCoeffMap::const_iterator x;
307 os << rhs.
GetBase()[i]->GetBasisKey();
std::vector< std::size_t > GetVarCoeffHashes() const
const ConstFactorMap & GetConstFactors() const
const VarCoeffMap & GetVarCoeffs() const
MatrixType GetMatrixType() const
friend bool operator==(const StdMatrixKey &lhs, const StdMatrixKey &rhs)
std::ostream & operator<<(std::ostream &os, const IndexMapKey &rhs)
std::vector< std::size_t > m_varcoeff_hashes
LibUtilities::ShapeType GetShapeType() const
std::map< ConstFactorType, NekDouble > ConstFactorMap
const char *const ConstFactorTypeMap[]
const char *const ShapeTypeMap[]
friend bool operator<(const StdMatrixKey &lhs, const StdMatrixKey &rhs)
Used for finding value given the key in NekManager.
LibUtilities::PointsType m_nodalPointsType
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
The base class for all shapes.
std::map< StdRegions::VarCoeffType, Array< OneD, NekDouble > > VarCoeffMap
Array< OneD, const LibUtilities::BasisSharedPtr > m_base
const char *const MatrixTypeMap[]
bool operator()(const StdMatrixKey &lhs, const StdMatrixKey &rhs) const
LibUtilities::ShapeType m_shapeType
const char *const VarCoeffTypeMap[]
const Array< OneD, const LibUtilities::BasisSharedPtr > & GetBase() const
const unsigned int ShapeTypeDimMap[SIZE_ShapeType]