71 "StdSegExp",
"SegExp",
"StdQuadExp",
"StdTriExp",
"StdNodalTriExp",
72 "QuadExp",
"TriExp",
"NodalTriExp",
"StdHexExp",
"StdPrismExp",
73 "StdPyrExp",
"StdTetExp",
"StdNodalTetExp",
"HexExp",
"PrismExp",
74 "PyrExp",
"TetExp",
"NodalTetExp",
142 "Mass wiht Diagonal GJP",
154 "InvLaplacianWithUnityMean",
158 "WeakDirectionalDeriv",
159 "MassLevelCurvature",
161 "LinearAdvectionReaction",
162 "LinearAdvectionDiffusionReaction",
163 "LinearAdvectionDiffusionReaction with Diagonal GJP",
169 "IProductWRTDerivBase0",
170 "IProductWRTDerivBase1",
171 "IProductWRTDerivBase2",
176 "Helmholtz with Diagonal GJP",
178 "InvHybridDGHelmholtz",
179 "HybridDGHelmBndLam",
188 "PreconLinearSpaceMass",
191 "PhysInterpToEquiSpaced",
192 "EquiSpacedToCoeffs",
235 "VarCoeffMass",
"VarCoeffLaplacian",
"VarCoeffWeakDeriv",
236 "VarCoeffD00",
"VarCoeffD01",
"VarCoeffD02",
237 "VarCoeffD10",
"VarCoeffD11",
"VarCoeffD12",
238 "VarCoeffD20",
"VarCoeffD21",
"VarCoeffD22",
239 "VarCoeffVelX",
"VarCoeffVelY",
"VarCoeffVelZ",
240 "VarCoeffMF1x",
"VarCoeffMF1y",
"VarCoeffMF1z",
241 "VarCoeffMF1Div",
"VarCoeffMF1Mag",
"VarCoeffMF2x",
242 "VarCoeffMF2y",
"VarCoeffMF2z",
"VarCoeffMF2Div",
243 "VarCoeffMF2Mag",
"VarCoeffMF3x",
"VarCoeffMF3y",
244 "VarCoeffMF3z",
"VarCoeffMF3Div",
"VarCoeffMF3Mag",
245 "VarCoeffMF",
"VarCoeffMFDiv",
"VarCoeffGmat",
246 "VarCoeffGJPNormVel"};
375typedef std::map<StdRegions::VarCoeffType, VarCoeffEntry>
VarCoeffMap;
385 ret[x.first] = x.second.restrict(offset, cnt);
422 "FactorSVVCutoffRatio",
423 "FactorSVVDiffCoeff",
424 "FactorSVVPowerKerDiffCoeff",
425 "FactorSVVDGKerDiffCoeff",
460 "Dir1FwdDir1_Dir2FwdDir2",
461 "Dir1FwdDir1_Dir2BwdDir2",
462 "Dir1BwdDir1_Dir2FwdDir2",
463 "Dir1BwdDir1_Dir2BwdDir2",
464 "Dir1FwdDir2_Dir2FwdDir1",
465 "Dir1FwdDir2_Dir2BwdDir1",
466 "Dir1BwdDir2_Dir2FwdDir1",
467 "Dir1BwdDir2_Dir2BwdDir1"};
474template <
class InputIterator,
class EqualityComparable>
475InputIterator
find(InputIterator first, InputIterator last,
476 InputIterator startingpoint,
const EqualityComparable &value)
480 if (startingpoint == first)
482 val =
find(first, last, value);
486 val =
find(startingpoint, last, value);
489 val =
find(first, startingpoint, value);
490 if (val == startingpoint)
504 {0, 0.36212, 1, 0, 0, 0, 0, 0, 0, 0, 0},
505 {0, 0.70546, 0.078836, 1, 0, 0, 0, 0, 0, 0, 0},
506 {0, 0, 0.49411, 0.072394, 1, 0, 0, 0, 0, 0, 0},
507 {0, 0, 0.000073566, 0.40506, 0.094122, 1, 0, 0, 0, 0, 0},
508 {0, 0, 0, 0.0001422, 0.36863, 0.11815, 1, 0, 0, 0, 0},
509 {0, 0, 0, 0, 0.00019497, 0.41397, 0.16927, 1, 0, 0, 0},
510 {0, 0, 0, 0, 0, 0.0009762, 0.12747, 0.13763, 1, 0, 0},
511 {0, 0, 0, 0, 0, 0, 0.0023592, 0.23683, 0.17196, 1, 0},
512 {0, 0, 0, 0, 0, 0, 0, 0.0026055, 0.28682, 0.22473, 1}};
@ eFactorSVVDGKerDiffCoeff
@ eFactorSVVPowerKerDiffCoeff
InputIterator find(InputIterator first, InputIterator last, InputIterator startingpoint, const EqualityComparable &value)
const int kSVVDGFiltermodesmin
static FactorMap NullFactorMap
const char *const VarCoeffTypeMap[]
const int kSVVDGFiltermodesmax
const NekDouble kSVVDGFilter[9][11]
const char *const ConstFactorTypeMap[]
const char *const ElementTypeMap[]
@ eLinearAdvectionReaction
@ eLinearAdvectionDiffusionReaction
@ ePhysInterpToEquiSpaced
@ eLinearAdvectionDiffusionReactionGJP
@ eInvLaplacianWithUnityMean
const char *const MatrixTypeMap[]
VarCoeffMap RestrictCoeffMap(const VarCoeffMap &m, size_t offset, size_t cnt)
std::map< ConstFactorType, NekDouble > ConstFactorMap
static ConstFactorMap NullConstFactorMap
const char *const OrientationMap[]
@ eDir1BwdDir2_Dir2BwdDir1
@ eDir1FwdDir1_Dir2FwdDir2
@ eDir1BwdDir1_Dir2BwdDir2
@ eDir1BwdDir2_Dir2FwdDir1
@ eDir1FwdDir1_Dir2BwdDir2
@ eDir1BwdDir1_Dir2FwdDir2
@ eDir1FwdDir2_Dir2FwdDir1
@ eDir1FwdDir2_Dir2BwdDir1
static VarCoeffMap NullVarCoeffMap
std::map< StdRegions::VarCoeffType, VarCoeffEntry > VarCoeffMap
std::size_t hash_range(Iter first, Iter last)
Representation of a variable coefficient.
VarCoeffEntry restrict(size_t offset, size_t size) const
Array< OneD, NekDouble > m_coeffs
Storage for the variable coefficient entries.
std::size_t m_hash
Hash of the entries inside m_coeffs.
std::size_t GetHash() const
Returns the hash of this entry.
VarCoeffEntry()=default
Default constructor.
void ComputeHash()
Computes the hash of this entry using hash_range.
void operator=(const Array< OneD, const NekDouble > &rhs)
Assignment operator given an array rhs.
VarCoeffEntry(const Array< OneD, const NekDouble > &input)
Copy an array of values into this entry.
const Array< OneD, const NekDouble > & GetValue() const
Returns a const reference to the coefficients.
const NekDouble & operator[](std::size_t idx) const
Access an entry idx within m_coeffs.