35 #ifndef STDREGIONS_HPP
36 #define STDREGIONS_HPP
77 "StdSegExp",
"SegExp",
"StdQuadExp",
"StdTriExp",
"StdNodalTriExp",
78 "QuadExp",
"TriExp",
"NodalTriExp",
"StdHexExp",
"StdPrismExp",
79 "StdPyrExp",
"StdTetExp",
"StdNodalTetExp",
"HexExp",
"PrismExp",
80 "PyrExp",
"TetExp",
"NodalTetExp",
145 "Mass wiht Diagonal GJP",
157 "InvLaplacianWithUnityMean",
161 "WeakDirectionalDeriv",
162 "MassLevelCurvature",
163 "LinearAdvectionReaction",
164 "LinearAdvectionDiffusionReaction",
170 "IProductWRTDerivBase0",
171 "IProductWRTDerivBase1",
172 "IProductWRTDerivBase2",
177 "Helmholtz with Diagonal GJP",
179 "InvHybridDGHelmholtz",
180 "HybridDGHelmBndLam",
189 "PreconLinearSpaceMass",
192 "PhysInterpToEquiSpaced",
193 "EquiSpacedToCoeffs",
233 "VarCoeffMass",
"VarCoeffLaplacian",
"VarCoeffWeakDeriv",
234 "VarCoeffD00",
"VarCoeffD11",
"VarCoeffD22",
235 "VarCoeffD01",
"VarCoeffD02",
"VarCoeffD12",
236 "VarCoeffVelX",
"VarCoeffVelY",
"VarCoeffVelZ",
237 "VarCoeffMF1x",
"VarCoeffMF1y",
"VarCoeffMF1z",
238 "VarCoeffMF1Div",
"VarCoeffMF1Mag",
"VarCoeffMF2x",
239 "VarCoeffMF2y",
"VarCoeffMF2z",
"VarCoeffMF2Div",
240 "VarCoeffMF2Mag",
"VarCoeffMF3x",
"VarCoeffMF3y",
241 "VarCoeffMF3z",
"VarCoeffMF3Div",
"VarCoeffMF3Mag",
242 "VarCoeffMF",
"VarCoeffMFDiv",
"VarCoeffGmat",
243 "VarCoeffGJPNormVel"};
343 typedef std::map<StdRegions::VarCoeffType, VarCoeffEntry>
VarCoeffMap;
391 "FactorSVVCutoffRatio",
392 "FactorSVVDiffCoeff",
393 "FactorSVVPowerKerDiffCoeff",
394 "FactorSVVDGKerDiffCoeff",
429 "Dir1FwdDir1_Dir2FwdDir2",
430 "Dir1FwdDir1_Dir2BwdDir2",
431 "Dir1BwdDir1_Dir2FwdDir2",
432 "Dir1BwdDir1_Dir2BwdDir2",
433 "Dir1FwdDir2_Dir2FwdDir1",
434 "Dir1FwdDir2_Dir2BwdDir1",
435 "Dir1BwdDir2_Dir2FwdDir1",
436 "Dir1BwdDir2_Dir2BwdDir1"};
443 template <
class InputIterator,
class EqualityComparable>
444 InputIterator
find(InputIterator first, InputIterator last,
445 InputIterator startingpoint,
const EqualityComparable &value)
449 if (startingpoint == first)
451 val =
find(first, last, value);
455 val =
find(startingpoint, last, value);
458 val =
find(first, startingpoint, value);
459 if (val == startingpoint)
473 {0, 0.36212, 1, 0, 0, 0, 0, 0, 0, 0, 0},
474 {0, 0.70546, 0.078836, 1, 0, 0, 0, 0, 0, 0, 0},
475 {0, 0, 0.49411, 0.072394, 1, 0, 0, 0, 0, 0, 0},
476 {0, 0, 0.000073566, 0.40506, 0.094122, 1, 0, 0, 0, 0, 0},
477 {0, 0, 0, 0.0001422, 0.36863, 0.11815, 1, 0, 0, 0, 0},
478 {0, 0, 0, 0, 0.00019497, 0.41397, 0.16927, 1, 0, 0, 0},
479 {0, 0, 0, 0, 0, 0.0009762, 0.12747, 0.13763, 1, 0, 0},
480 {0, 0, 0, 0, 0, 0, 0.0023592, 0.23683, 0.17196, 1, 0},
481 {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
@ 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
The above copyright notice and this permission notice shall be included.
std::size_t hash_range(Iter first, Iter last)
Representation of a variable coefficient.
Array< OneD, NekDouble > m_coeffs
Storage for the variable coefficient entries.
const NekDouble & operator[](std::size_t idx) const
Access an entry idx within m_coeffs.
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.