Nektar++
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
Nektar::StdRegions::StdMatrixKey Class Reference

#include <StdMatrixKey.h>

Inheritance diagram for Nektar::StdRegions::StdMatrixKey:
[legend]

Classes

struct  opLess
 Used to lookup the create function in NekManager. More...
 

Public Member Functions

 StdMatrixKey (const StdRegions::MatrixType matrixType, const LibUtilities::ShapeType shapeType, const StdRegions::StdExpansion &stdExpansion, const ConstFactorMap &factorMap=NullConstFactorMap, const VarCoeffMap &varCoeffMap=NullVarCoeffMap, const VarFactorsMap &varFactorMap=NullVarFactorsMap, LibUtilities::PointsType nodalType=LibUtilities::eNoPointsType)
 
 StdMatrixKey (const StdMatrixKey &rhs, const StdRegions::MatrixType matrixType)
 
 StdMatrixKey (const StdMatrixKey &rhs)
 
virtual ~StdMatrixKey ()=default
 
StdMatrixKey operator= (const StdMatrixKey &inKey)
 
MatrixType GetMatrixType () const
 
LibUtilities::ShapeType GetShapeType () const
 
LibUtilities::PointsType GetNodalPointsType () const
 
int GetNcoeffs () const
 
const Array< OneD, const LibUtilities::BasisSharedPtr > & GetBase () const
 
std::vector< std::size_t > GetVarCoeffHashes () const
 
const LibUtilities::BasisSharedPtr GetBasis (int dir) const
 
int GetNConstFactors () const
 
NekDouble GetConstFactor (const ConstFactorType &factor) const
 
bool ConstFactorExists (const ConstFactorType &factor) const
 
const ConstFactorMapGetConstFactors () const
 
int GetNVarCoeff () const
 
const Array< OneD, const NekDouble > & GetVarCoeff (const StdRegions::VarCoeffType &coeff) const
 
const VarCoeffMap GetVarCoeffAsMap (const VarCoeffType &coeff) const
 
const VarCoeffMapGetVarCoeffs () const
 
bool HasVarCoeff (const StdRegions::VarCoeffType &coeff) const
 
bool HasVarCoeffForMatrixType (const StdRegions::MatrixType &mtype) const
 
int GetNVarFactors () const
 
const Array< OneD, const NekDouble > & GetVarFactors (const StdRegions::ConstFactorType &type) const
 
std::vector< std::size_t > GetVarFactorsfHashes () const
 
const VarFactorsMapGetVarFactors () const
 
bool HasVarFactors (const StdRegions::ConstFactorType &type) const
 

Protected Attributes

LibUtilities::ShapeType m_shapeType
 
Array< OneD, const LibUtilities::BasisSharedPtrm_base
 
unsigned int m_ncoeffs
 
MatrixType m_matrixType
 
LibUtilities::PointsType m_nodalPointsType
 
ConstFactorMap m_factors
 
VarFactorsMap m_varfactors
 
VarCoeffMap m_varcoeffs
 
std::vector< std::size_t > m_varfactor_hashes
 
std::vector< std::size_t > m_varcoeff_hashes
 

Private Member Functions

 StdMatrixKey ()
 

Friends

bool operator< (const StdMatrixKey &lhs, const StdMatrixKey &rhs)
 Used for finding value given the key in NekManager.
 
bool operator== (const StdMatrixKey &lhs, const StdMatrixKey &rhs)
 
bool opLess::operator() (const StdMatrixKey &lhs, const StdMatrixKey &rhs) const
 

Detailed Description

Definition at line 48 of file StdMatrixKey.h.

Constructor & Destructor Documentation

◆ StdMatrixKey() [1/4]

Nektar::StdRegions::StdMatrixKey::StdMatrixKey ( const StdRegions::MatrixType  matrixType,
const LibUtilities::ShapeType  shapeType,
const StdRegions::StdExpansion stdExpansion,
const ConstFactorMap factorMap = NullConstFactorMap,
const VarCoeffMap varCoeffMap = NullVarCoeffMap,
const VarFactorsMap varFactorMap = NullVarFactorsMap,
LibUtilities::PointsType  nodalType = LibUtilities::eNoPointsType 
)

Definition at line 44 of file StdMatrixKey.cpp.

51 : m_shapeType(shapeType), m_base(stdExpansion.GetBase()),
52 m_ncoeffs(stdExpansion.GetNcoeffs()), m_matrixType(matrixType),
53 m_nodalPointsType(nodalType), m_factors(factorMap),
54 m_varfactors(varFactorsMap), m_varcoeffs(varCoeffMap),
55 m_varfactor_hashes(varFactorsMap.size()),
56 m_varcoeff_hashes(varCoeffMap.size())
57{
58 // Create hash
59 int i = 0;
60 for (auto &x : varCoeffMap)
61 {
62 m_varcoeff_hashes[i] = hash_range(x.second.GetValue().begin(),
63 x.second.GetValue().begin() +
64 stdExpansion.GetTotPoints());
65 hash_combine(m_varcoeff_hashes[i], (int)x.first);
66 i++;
67 }
68
69 i = 0;
70 for (auto &x : varFactorsMap)
71 {
72 m_varfactor_hashes[i] = hash_range(x.second.begin(), x.second.end());
73 hash_combine(m_varfactor_hashes[i], (int)x.first);
74 i++;
75 }
76}
LibUtilities::PointsType m_nodalPointsType
Array< OneD, const LibUtilities::BasisSharedPtr > m_base
std::vector< std::size_t > m_varfactor_hashes
LibUtilities::ShapeType m_shapeType
std::vector< std::size_t > m_varcoeff_hashes
std::size_t hash_range(Iter first, Iter last)
Definition HashUtils.hpp:64
void hash_combine(std::size_t &seed)
Definition HashUtils.hpp:44

References Nektar::StdRegions::StdExpansion::GetTotPoints(), Nektar::hash_combine(), Nektar::hash_range(), m_varcoeff_hashes, and m_varfactor_hashes.

◆ StdMatrixKey() [2/4]

Nektar::StdRegions::StdMatrixKey::StdMatrixKey ( const StdMatrixKey rhs,
const StdRegions::MatrixType  matrixType 
)

Definition at line 78 of file StdMatrixKey.cpp.

80 : m_shapeType(rhs.m_shapeType), m_base(rhs.m_base),
81 m_ncoeffs(rhs.m_ncoeffs), m_matrixType(matrixType),
82 m_nodalPointsType(rhs.m_nodalPointsType), m_factors(rhs.m_factors),
83 m_varfactors(rhs.m_varfactors), m_varcoeffs(rhs.m_varcoeffs),
84 m_varfactor_hashes(rhs.m_varfactor_hashes),
85 m_varcoeff_hashes(rhs.m_varcoeff_hashes)
86{
87}

◆ StdMatrixKey() [3/4]

Nektar::StdRegions::StdMatrixKey::StdMatrixKey ( const StdMatrixKey rhs)

Definition at line 89 of file StdMatrixKey.cpp.

90 : m_shapeType(rhs.m_shapeType), m_base(rhs.m_base),
91 m_ncoeffs(rhs.m_ncoeffs), m_matrixType(rhs.m_matrixType),
92 m_nodalPointsType(rhs.m_nodalPointsType), m_factors(rhs.m_factors),
93 m_varfactors(rhs.m_varfactors), m_varcoeffs(rhs.m_varcoeffs),
94 m_varfactor_hashes(rhs.m_varfactor_hashes),
95 m_varcoeff_hashes(rhs.m_varcoeff_hashes)
96{
97}

◆ ~StdMatrixKey()

virtual Nektar::StdRegions::StdMatrixKey::~StdMatrixKey ( )
virtualdefault

◆ StdMatrixKey() [4/4]

Nektar::StdRegions::StdMatrixKey::StdMatrixKey ( )
private

Referenced by operator=().

Member Function Documentation

◆ ConstFactorExists()

bool Nektar::StdRegions::StdMatrixKey::ConstFactorExists ( const ConstFactorType factor) const
inline

◆ GetBase()

const Array< OneD, const LibUtilities::BasisSharedPtr > & Nektar::StdRegions::StdMatrixKey::GetBase ( ) const
inline

Definition at line 104 of file StdMatrixKey.h.

106 {
107 return m_base;
108 }

References m_base.

Referenced by Nektar::StdRegions::operator<<().

◆ GetBasis()

const LibUtilities::BasisSharedPtr Nektar::StdRegions::StdMatrixKey::GetBasis ( int  dir) const
inline

Definition at line 115 of file StdMatrixKey.h.

116 {
117 return (m_base[dir]);
118 }

References m_base.

Referenced by export_StdMatrixKey().

◆ GetConstFactor()

NekDouble Nektar::StdRegions::StdMatrixKey::GetConstFactor ( const ConstFactorType factor) const
inline

Definition at line 125 of file StdMatrixKey.h.

126 {
127 auto x = m_factors.find(factor);
128 ASSERTL1(x != m_factors.end(),
129 "Constant factor not defined: " +
130 std::string(StdRegions::ConstFactorTypeMap[factor]));
131 return x->second;
132 }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
const char *const ConstFactorTypeMap[]

References ASSERTL1, Nektar::StdRegions::ConstFactorTypeMap, and m_factors.

Referenced by Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::Expansion3D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion::LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdHexExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_GenMatrix(), Nektar::LocalRegions::Expansion1D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdSegExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter().

◆ GetConstFactors()

const ConstFactorMap & Nektar::StdRegions::StdMatrixKey::GetConstFactors ( ) const
inline

◆ GetMatrixType()

MatrixType Nektar::StdRegions::StdMatrixKey::GetMatrixType ( ) const
inline

Definition at line 84 of file StdMatrixKey.h.

85 {
86 return m_matrixType;
87 }

References m_matrixType.

Referenced by Nektar::StdRegions::StdExpansion::CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::Expansion3D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), export_StdMatrixKey(), Nektar::StdRegions::StdExpansion::GeneralMatrixOp(), Nektar::StdRegions::StdExpansion::GeneralMatrixOp_MatFree(), Nektar::LocalRegions::MatrixKey::opLess::operator()(), Nektar::StdRegions::operator<<(), Nektar::StdRegions::StdHexExp::v_GenMatrix(), Nektar::StdRegions::StdNodalPrismExp::v_GenMatrix(), Nektar::StdRegions::StdNodalTetExp::v_GenMatrix(), Nektar::StdRegions::StdNodalTriExp::v_GenMatrix(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_GenMatrix(), Nektar::LocalRegions::Expansion1D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::LocalRegions::HexExp::v_GenMatrix(), Nektar::LocalRegions::PrismExp::v_GenMatrix(), Nektar::LocalRegions::PyrExp::v_GenMatrix(), Nektar::LocalRegions::QuadExp::v_GenMatrix(), Nektar::LocalRegions::SegExp::v_GenMatrix(), Nektar::LocalRegions::TetExp::v_GenMatrix(), and Nektar::LocalRegions::TriExp::v_GenMatrix().

◆ GetNcoeffs()

int Nektar::StdRegions::StdMatrixKey::GetNcoeffs ( ) const
inline

Definition at line 99 of file StdMatrixKey.h.

100 {
101 return m_ncoeffs;
102 }

References m_ncoeffs.

Referenced by export_StdMatrixKey(), and Nektar::StdRegions::operator<<().

◆ GetNConstFactors()

int Nektar::StdRegions::StdMatrixKey::GetNConstFactors ( ) const
inline

Definition at line 120 of file StdMatrixKey.h.

121 {
122 return m_factors.size();
123 }

References m_factors.

◆ GetNodalPointsType()

LibUtilities::PointsType Nektar::StdRegions::StdMatrixKey::GetNodalPointsType ( ) const
inline

◆ GetNVarCoeff()

int Nektar::StdRegions::StdMatrixKey::GetNVarCoeff ( ) const
inline

◆ GetNVarFactors()

int Nektar::StdRegions::StdMatrixKey::GetNVarFactors ( ) const
inline

Definition at line 203 of file StdMatrixKey.h.

204 {
205 return m_varfactors.size();
206 }

References m_varfactors.

◆ GetShapeType()

LibUtilities::ShapeType Nektar::StdRegions::StdMatrixKey::GetShapeType ( ) const
inline

◆ GetVarCoeff()

const Array< OneD, const NekDouble > & Nektar::StdRegions::StdMatrixKey::GetVarCoeff ( const StdRegions::VarCoeffType coeff) const
inline

◆ GetVarCoeffAsMap()

const VarCoeffMap Nektar::StdRegions::StdMatrixKey::GetVarCoeffAsMap ( const VarCoeffType coeff) const
inline

Definition at line 159 of file StdMatrixKey.h.

160 {
161 VarCoeffMap m;
162 auto x = m_varcoeffs.find(coeff);
163 ASSERTL1(x != m_varcoeffs.end(),
164 "Variable coefficient not defined: " +
165 std::string(StdRegions::VarCoeffTypeMap[coeff]));
166 m[coeff] = x->second;
167 return m;
168 }
std::map< StdRegions::VarCoeffType, VarCoeffEntry > VarCoeffMap

References ASSERTL1, m_varcoeffs, and Nektar::StdRegions::VarCoeffTypeMap.

Referenced by Nektar::LocalRegions::Expansion2D::v_GenMatrix().

◆ GetVarCoeffHashes()

std::vector< std::size_t > Nektar::StdRegions::StdMatrixKey::GetVarCoeffHashes ( ) const
inline

Definition at line 110 of file StdMatrixKey.h.

111 {
112 return m_varcoeff_hashes;
113 }

References m_varcoeff_hashes.

Referenced by Nektar::StdRegions::operator<<().

◆ GetVarCoeffs()

const VarCoeffMap & Nektar::StdRegions::StdMatrixKey::GetVarCoeffs ( ) const
inline

◆ GetVarFactors() [1/2]

const VarFactorsMap & Nektar::StdRegions::StdMatrixKey::GetVarFactors ( ) const
inline

Definition at line 223 of file StdMatrixKey.h.

224 {
225 return m_varfactors;
226 }

References m_varfactors.

◆ GetVarFactors() [2/2]

const Array< OneD, const NekDouble > & Nektar::StdRegions::StdMatrixKey::GetVarFactors ( const StdRegions::ConstFactorType type) const
inline

◆ GetVarFactorsfHashes()

std::vector< std::size_t > Nektar::StdRegions::StdMatrixKey::GetVarFactorsfHashes ( ) const
inline

Definition at line 218 of file StdMatrixKey.h.

219 {
220 return m_varfactor_hashes;
221 }

References m_varfactor_hashes.

◆ HasVarCoeff()

bool Nektar::StdRegions::StdMatrixKey::HasVarCoeff ( const StdRegions::VarCoeffType coeff) const
inline

◆ HasVarCoeffForMatrixType()

bool Nektar::StdRegions::StdMatrixKey::HasVarCoeffForMatrixType ( const StdRegions::MatrixType mtype) const
inline

Definition at line 180 of file StdMatrixKey.h.

182 {
183 for (auto &x : StdRegions::MatrixTypeToVarCoeffsMap)
184 {
185 // Loop all matrix types with defined in MatrixTypeToVarCoeffsMap
186 if (x.first == mtype)
187 {
188 // If mtype defined in MatrixTypeToVarCoeffsMap,
189 // check if any varcoeffs are defined in this StdMatrixKey
190 for (auto &y : x.second)
191 {
192 if (m_varcoeffs.find(y) != m_varcoeffs.end())
193 {
194 return true;
195 }
196 }
197 return false;
198 }
199 }
200 return false;
201 }
constexpr std::array< std::pair< MatrixType, VarCoeffList >, 3 > MatrixTypeToVarCoeffsMap

References m_varcoeffs, and Nektar::StdRegions::MatrixTypeToVarCoeffsMap.

Referenced by Nektar::LocalRegions::Expansion2D::CreateMatrix(), and Nektar::LocalRegions::Expansion3D::CreateMatrix().

◆ HasVarFactors()

bool Nektar::StdRegions::StdMatrixKey::HasVarFactors ( const StdRegions::ConstFactorType type) const
inline

Definition at line 228 of file StdMatrixKey.h.

229 {
230 return (m_varfactors.find(type) != m_varfactors.end());
231 }

References m_varfactors.

Referenced by Nektar::LocalRegions::Expansion2D::v_GenMatrix(), and Nektar::LocalRegions::Expansion3D::v_GenMatrix().

◆ operator=()

StdMatrixKey Nektar::StdRegions::StdMatrixKey::operator= ( const StdMatrixKey inKey)

Definition at line 105 of file StdMatrixKey.cpp.

106{
107 return StdMatrixKey(inKey);
108}

References StdMatrixKey().

Friends And Related Symbol Documentation

◆ operator<

bool operator< ( const StdMatrixKey lhs,
const StdMatrixKey rhs 
)
friend

Used for finding value given the key in NekManager.

Definition at line 110 of file StdMatrixKey.cpp.

111{
112 if (lhs.m_matrixType < rhs.m_matrixType)
113 {
114 return true;
115 }
116
117 if (lhs.m_matrixType > rhs.m_matrixType)
118 {
119 return false;
120 }
121
122 if (lhs.m_ncoeffs < rhs.m_ncoeffs) // probably do not need this check since
123 // checking the m_base below?
124 {
125 return true;
126 }
127
128 if (lhs.m_ncoeffs > rhs.m_ncoeffs)
129 {
130 return false;
131 }
132
133 if (LibUtilities::ShapeTypeDimMap[lhs.m_shapeType] <
134 LibUtilities::ShapeTypeDimMap[rhs.m_shapeType])
135 {
136 return true;
137 }
138
139 if (LibUtilities::ShapeTypeDimMap[lhs.m_shapeType] >
140 LibUtilities::ShapeTypeDimMap[rhs.m_shapeType])
141 {
142 return false;
143 }
144
145 for (unsigned int i = 0; i < LibUtilities::ShapeTypeDimMap[lhs.m_shapeType];
146 ++i)
147 {
148 if (lhs.m_base[i].get() < rhs.m_base[i].get())
149 {
150 return true;
151 }
152
153 if (lhs.m_base[i].get() > rhs.m_base[i].get())
154 {
155 return false;
156 }
157 }
158
159 if (lhs.m_factors.size() < rhs.m_factors.size())
160 {
161 return true;
162 }
163 else if (lhs.m_factors.size() > rhs.m_factors.size())
164 {
165 return false;
166 }
167 else
168 {
169 for (auto x = lhs.m_factors.begin(), y = rhs.m_factors.begin();
170 x != lhs.m_factors.end(); ++x, ++y)
171 {
172 if (x->second < y->second)
173 {
174 return true;
175 }
176 if (x->second > y->second)
177 {
178 return false;
179 }
180 }
181 }
182
183 if (lhs.m_varfactors.size() < rhs.m_varfactors.size())
184 {
185 return true;
186 }
187
188 if (lhs.m_varfactors.size() > rhs.m_varfactors.size())
189 {
190 return false;
191 }
192
193 for (unsigned int i = 0; i < lhs.m_varfactor_hashes.size(); ++i)
194 {
195 if (lhs.m_varfactor_hashes[i] < rhs.m_varfactor_hashes[i])
196 {
197 return true;
198 }
199 if (lhs.m_varfactor_hashes[i] > rhs.m_varfactor_hashes[i])
200 {
201 return false;
202 }
203 }
204
205 if (lhs.m_varcoeffs.size() < rhs.m_varcoeffs.size())
206 {
207 return true;
208 }
209
210 if (lhs.m_varcoeffs.size() > rhs.m_varcoeffs.size())
211 {
212 return false;
213 }
214
215 for (unsigned int i = 0; i < lhs.m_varcoeff_hashes.size(); ++i)
216 {
217 if (lhs.m_varcoeff_hashes[i] < rhs.m_varcoeff_hashes[i])
218 {
219 return true;
220 }
221 if (lhs.m_varcoeff_hashes[i] > rhs.m_varcoeff_hashes[i])
222 {
223 return false;
224 }
225 }
226
227 if (lhs.m_nodalPointsType < rhs.m_nodalPointsType)
228 {
229 return true;
230 }
231
232 if (lhs.m_nodalPointsType > rhs.m_nodalPointsType)
233 {
234 return false;
235 }
236
237 return false;
238}
constexpr unsigned int ShapeTypeDimMap[SIZE_ShapeType]
Definition ShapeType.hpp:87

◆ operator==

bool operator== ( const StdMatrixKey lhs,
const StdMatrixKey rhs 
)
friend

Definition at line 240 of file StdMatrixKey.cpp.

241{
242 if (lhs.m_matrixType != rhs.m_matrixType)
243 {
244 return false;
245 }
246
247 if (lhs.m_ncoeffs != rhs.m_ncoeffs)
248 {
249 return false;
250 }
251
252 for (unsigned int i = 0; i < LibUtilities::ShapeTypeDimMap[lhs.m_shapeType];
253 ++i)
254 {
255 if (lhs.m_base[i].get() != rhs.m_base[i].get())
256 {
257 return false;
258 }
259 }
260
261 if (lhs.m_factors.size() != rhs.m_factors.size())
262 {
263 return false;
264 }
265
266 if (!std::equal(lhs.m_factors.begin(), lhs.m_factors.end(),
267 rhs.m_factors.begin()))
268 {
269 return false;
270 }
271
272 if (lhs.m_nodalPointsType != rhs.m_nodalPointsType)
273 {
274 return false;
275 }
276
277 if (lhs.m_varcoeffs.size() != rhs.m_varcoeffs.size())
278 {
279 return false;
280 }
281
282 if (lhs.m_varfactors.size() != rhs.m_varfactors.size())
283 {
284 return false;
285 }
286
287 for (unsigned int i = 0; i < lhs.m_varfactor_hashes.size(); ++i)
288 {
289 if (lhs.m_varfactor_hashes[i] != rhs.m_varfactor_hashes[i])
290 {
291 return false;
292 }
293 }
294
295 for (unsigned int i = 0; i < lhs.m_varcoeff_hashes.size(); ++i)
296 {
297 if (lhs.m_varcoeff_hashes[i] != rhs.m_varcoeff_hashes[i])
298 {
299 return false;
300 }
301 }
302
303 for (auto &x : lhs.m_varcoeffs)
304 {
305 auto y = rhs.m_varcoeffs.find(x.first);
306 // Check var coeff is found
307 if (y == rhs.m_varcoeffs.end())
308 {
309 return false;
310 }
311
312 if (x.second.GetValue() != y->second.GetValue())
313 {
314 return false;
315 }
316 }
317
318 for (unsigned int i = 0; i < lhs.m_varcoeffs.size(); ++i)
319 {
320 if (lhs.m_varcoeff_hashes[i] != rhs.m_varcoeff_hashes[i])
321 {
322 return false;
323 }
324 }
325
326 return true;
327}

◆ opLess::operator()

bool opLess::operator() ( const StdMatrixKey lhs,
const StdMatrixKey rhs 
) const
friend

Member Data Documentation

◆ m_base

Array<OneD, const LibUtilities::BasisSharedPtr> Nektar::StdRegions::StdMatrixKey::m_base
protected

Definition at line 235 of file StdMatrixKey.h.

Referenced by GetBase(), and GetBasis().

◆ m_factors

ConstFactorMap Nektar::StdRegions::StdMatrixKey::m_factors
protected

◆ m_matrixType

MatrixType Nektar::StdRegions::StdMatrixKey::m_matrixType
protected

◆ m_ncoeffs

unsigned int Nektar::StdRegions::StdMatrixKey::m_ncoeffs
protected

Definition at line 237 of file StdMatrixKey.h.

Referenced by GetNcoeffs().

◆ m_nodalPointsType

LibUtilities::PointsType Nektar::StdRegions::StdMatrixKey::m_nodalPointsType
protected

Definition at line 239 of file StdMatrixKey.h.

Referenced by GetNodalPointsType().

◆ m_shapeType

LibUtilities::ShapeType Nektar::StdRegions::StdMatrixKey::m_shapeType
protected

Definition at line 234 of file StdMatrixKey.h.

Referenced by GetShapeType().

◆ m_varcoeff_hashes

std::vector<std::size_t> Nektar::StdRegions::StdMatrixKey::m_varcoeff_hashes
protected

Definition at line 246 of file StdMatrixKey.h.

Referenced by GetVarCoeffHashes(), and StdMatrixKey().

◆ m_varcoeffs

VarCoeffMap Nektar::StdRegions::StdMatrixKey::m_varcoeffs
protected

◆ m_varfactor_hashes

std::vector<std::size_t> Nektar::StdRegions::StdMatrixKey::m_varfactor_hashes
protected

Definition at line 245 of file StdMatrixKey.h.

Referenced by GetVarFactorsfHashes(), and StdMatrixKey().

◆ m_varfactors

VarFactorsMap Nektar::StdRegions::StdMatrixKey::m_varfactors
protected

Definition at line 242 of file StdMatrixKey.h.

Referenced by GetNVarFactors(), GetVarFactors(), GetVarFactors(), and HasVarFactors().