Nektar++
MMFSystem.h
Go to the documentation of this file.
1///////////////////////////////////////////////////////////////////////////////
2//
3// File: MMFSystem.h
4//
5// For more information, please see: http://www.nektar.info
6//
7// The MIT License
8//
9// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10// Department of Aeronautics, Imperial College London (UK), and Scientific
11// Computing and Imaging Institute, University of Utah (USA).
12//
13// Permission is hereby granted, free of charge, to any person obtaining a
14// copy of this software and associated documentation files (the "Software"),
15// to deal in the Software without restriction, including without limitation
16// the rights to use, copy, modify, merge, publish, distribute, sublicense,
17// and/or sell copies of the Software, and to permit persons to whom the
18// Software is furnished to do so, subject to the following conditions:
19//
20// The above copyright notice and this permission notice shall be included
21// in all copies or substantial portions of the Software.
22//
23// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29// DEALINGS IN THE SOFTWARE.
30//
31// Description: MMF system
32//
33///////////////////////////////////////////////////////////////////////////////
34
35#ifndef NEKTAR_SOLVERUTILS_MMFSYSTEM_H
36#define NEKTAR_SOLVERUTILS_MMFSYSTEM_H
37
39
40namespace Nektar
41{
42namespace SolverUtils
43{
44
46{
54};
55
56const char *const SurfaceTypeMap[] = {
57 "Plane", "Sphere", "TRSphere", "Irregular", "Nonconvex", "Cube",
58};
59
61{
66 SIZE_BoundaryCopyType ///< Length of enum list
67};
68
69const char *const BoundaryCopyTypeMap[] = {
70 "Dirichlet",
71 "Neumann",
72 "FwdEQBwd",
73 "FwdEQNegBwd",
74};
75
77{
78 eNotSet, ///< flux not defined
79 eAverage, ///< averaged (or centred) flux
80 eLaxFriedrich, ///< Lax-Friedrich flux
81 eUpwind, /// Upwind
82 eRusanov, ///< Rusanov flux
83 eHLL, ///< Harten-Lax-Leer flux
84 eHLLC, ///< Harten-Lax-Leer Contact wave flux
85 SIZE_UpwindType ///< Length of enum list
86};
87
88const char *const UpwindTypeMap[] = {
89 "NoSet", "Average", "LaxFriedrich", "Upwind", "Rusanov", "HLL", "HLLC",
90};
91
93{
107 SIZE_TestMaxwellType ///< Length of enum list
109
110const char *const TestMaxwellTypeMap[] = {
111 "Maxwell1D", "TestMaxwell2DPEC", "TestMaxwell2DPECAVGFLUX",
112 "TestMaxwell2DPMC", "Maxwell3D", "ScatField1D",
113 "ScatField2D", "ScatField3D", "TotField1D",
114 "TotField2D", "TotField3D", "MaxwellSphere",
115 "ELF2DSurface",
116};
117
119{
124
125const char *const PolTypeMap[] = {
126 "TransMagnetic",
127 "TransElectric",
128};
129
131{
137
138const char *const IncTypeMap[] = {
139 "PlaneWave",
140 "PlaneWaveImag",
141 "CylindricalWave",
142};
143
144/// A base class for PDEs which include an advection component
145class MMFSystem : virtual public UnsteadySystem
146{
147public:
149
151
154
158
160
164
166
167 SOLVER_UTILS_EXPORT virtual void v_GenerateSummary(SummaryList &s) override;
168
170 const Array<OneD, const Array<OneD, NekDouble>> &Anisotropy,
171 const int TangentXelem = -1);
172
175 const BoundaryCopyType BDCopyType, const int var = 0,
176 const std::string btype = "NoUserDefined");
177
178protected:
180
184
187
190
193
196
197 // MFdim \times spacedim \times npts
200
205
210
213
216
217 // m_dedxi_cdot_e[m][j][n][] = de^m / d \xi^j \cdot e^n
220
222
224 const Array<OneD, const Array<OneD, NekDouble>> &Anisotropy,
225 const int TangentXelem);
226
228 const Array<OneD, const Array<OneD, NekDouble>> &movingframes);
229
231
233
235
237 const Array<OneD, const Array<OneD, NekDouble>> &v1,
238 const Array<OneD, const Array<OneD, NekDouble>> &v2,
240
242 const Array<OneD, const Array<OneD, NekDouble>> &v1,
243 const Array<OneD, const Array<OneD, NekDouble>> &v2,
245
247 const Array<OneD, NekDouble> &v2,
249
251 const Array<OneD, const Array<OneD, NekDouble>> &inarray,
252 Array<OneD, Array<OneD, NekDouble>> &outarray);
253
255 const Array<OneD, const Array<OneD, NekDouble>> &uvec,
256 unsigned int field);
257
259 Array<OneD, Array<OneD, NekDouble>> &CrossProductMF);
261
263 const int dir, const Array<OneD, Array<OneD, NekDouble>> &Fwd,
264 const Array<OneD, Array<OneD, NekDouble>> &Bwd,
265 const Array<OneD, const NekDouble> &imFwd,
266 const Array<OneD, const NekDouble> &imBwd,
267 Array<OneD, NekDouble> &outarrayFwd,
268 Array<OneD, NekDouble> &outarrayBwd);
269
271 const Array<OneD, Array<OneD, NekDouble>> &Fwd,
272 const Array<OneD, Array<OneD, NekDouble>> &Bwd,
273 const Array<OneD, const NekDouble> &im1Fwd,
274 const Array<OneD, const NekDouble> &im1Bwd,
275 const Array<OneD, const NekDouble> &im2Fwd,
276 const Array<OneD, const NekDouble> &im2Bwd,
277 Array<OneD, NekDouble> &outarrayFwd,
278 Array<OneD, NekDouble> &outarrayBwd);
279
281 const int dir, const Array<OneD, Array<OneD, NekDouble>> &Fwd,
282 const Array<OneD, Array<OneD, NekDouble>> &Bwd,
283 const Array<OneD, const NekDouble> &imFwd,
284 const Array<OneD, const NekDouble> &imBwd,
285 Array<OneD, NekDouble> &outarrayFwd,
286 Array<OneD, NekDouble> &outarrayBwd);
287
289 const Array<OneD, Array<OneD, NekDouble>> &Fwd,
290 const Array<OneD, Array<OneD, NekDouble>> &Bwd,
291 const Array<OneD, const NekDouble> &im1Fwd,
292 const Array<OneD, const NekDouble> &im1Bwd,
293 const Array<OneD, const NekDouble> &im2Fwd,
294 const Array<OneD, const NekDouble> &im2Bwd,
295 Array<OneD, NekDouble> &outarrayFwd,
296 Array<OneD, NekDouble> &outarrayBwd);
297
299 const NekDouble x0j, const NekDouble x1j, const NekDouble x2j,
300 NekDouble &sin_varphi, NekDouble &cos_varphi, NekDouble &sin_theta,
301 NekDouble &cos_theta);
302
306
308 const Array<OneD, const Array<OneD, NekDouble>> &physarray,
309 Array<OneD, Array<OneD, NekDouble>> &outarray);
310
312 const int var,
313 const Array<OneD, const Array<OneD, NekDouble>> &physfield,
315
317 const int var,
318 const Array<OneD, const Array<OneD, NekDouble>> &physfield,
320
322 const int var,
323 const Array<OneD, const Array<OneD, NekDouble>> &physfield,
325
327 Array<OneD, Array<OneD, NekDouble>> &physfield,
328 Array<OneD, Array<OneD, NekDouble>> &numfluxFwd,
329 Array<OneD, Array<OneD, NekDouble>> &numfluxBwd);
330
332 Array<OneD, Array<OneD, NekDouble>> &physfield,
333 Array<OneD, Array<OneD, NekDouble>> &numfluxFwd,
334 Array<OneD, Array<OneD, NekDouble>> &numfluxBwd);
335
337 Array<OneD, Array<OneD, NekDouble>> &physfield,
338 Array<OneD, Array<OneD, NekDouble>> &numfluxFwd,
339 Array<OneD, Array<OneD, NekDouble>> &numfluxBwd);
340
342 Array<OneD, Array<OneD, NekDouble>> &physfield,
343 Array<OneD, Array<OneD, NekDouble>> &numfluxFwd,
344 Array<OneD, Array<OneD, NekDouble>> &numfluxBwd,
345 const NekDouble time = 0.0);
346
348 Array<OneD, Array<OneD, NekDouble>> &physfield,
349 Array<OneD, Array<OneD, NekDouble>> &numfluxFwd,
350 Array<OneD, Array<OneD, NekDouble>> &numfluxBwd, const NekDouble time);
351
353 Array<OneD, Array<OneD, NekDouble>> &physfield,
354 Array<OneD, Array<OneD, NekDouble>> &numfluxFwd,
355 Array<OneD, Array<OneD, NekDouble>> &numfluxBwd, const NekDouble time);
356
358 const int var, const NekDouble time);
360
362 AvgInt(const Array<OneD, const NekDouble> &inarray);
370 const Array<OneD, const Array<OneD, NekDouble>> &inarray);
371
373 const Array<OneD, const Array<OneD, NekDouble>> &v1,
374 const Array<OneD, const Array<OneD, NekDouble>> &v2,
376 bool KeepTheMagnitude = true);
377
379 Array<OneD, NekDouble> &sortarray);
380};
381
382// Shared pointer to an MMFSystem class
383typedef std::shared_ptr<MMFSystem> MMFSystemSharedPtr;
384} // namespace SolverUtils
385} // namespace Nektar
386
387#endif
#define SOLVER_UTILS_EXPORT
A base class for PDEs which include an advection component.
Definition: MMFSystem.h:146
SOLVER_UTILS_EXPORT void LaxFriedrichMaxwellFlux1D(Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &numfluxFwd, Array< OneD, Array< OneD, NekDouble > > &numfluxBwd)
Definition: MMFSystem.cpp:1498
void CheckMovingFrames(const Array< OneD, const Array< OneD, NekDouble > > &movingframes)
Definition: MMFSystem.cpp:216
SOLVER_UTILS_EXPORT void ComputeNtimesF12(const Array< OneD, Array< OneD, NekDouble > > &Fwd, const Array< OneD, Array< OneD, NekDouble > > &Bwd, const Array< OneD, const NekDouble > &im1Fwd, const Array< OneD, const NekDouble > &im1Bwd, const Array< OneD, const NekDouble > &im2Fwd, const Array< OneD, const NekDouble > &im2Bwd, Array< OneD, NekDouble > &outarrayFwd, Array< OneD, NekDouble > &outarrayBwd)
Definition: MMFSystem.cpp:934
SOLVER_UTILS_EXPORT void VectorDotProd(const Array< OneD, const Array< OneD, NekDouble > > &v1, const Array< OneD, const Array< OneD, NekDouble > > &v2, Array< OneD, NekDouble > &v3)
Definition: MMFSystem.cpp:659
SOLVER_UTILS_EXPORT void ComputeCurl(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
Definition: MMFSystem.cpp:717
Array< OneD, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > > m_dedxi_cdot_e
Definition: MMFSystem.h:219
Array< OneD, Array< OneD, NekDouble > > m_ZimFwd
Definition: MMFSystem.h:206
SOLVER_UTILS_EXPORT void BubbleSort(Array< OneD, NekDouble > &refarray, Array< OneD, NekDouble > &sortarray)
Definition: MMFSystem.cpp:2357
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_ntimes_ntimesMFBwd
Definition: MMFSystem.h:204
SOLVER_UTILS_EXPORT void GetMaxwellFluxVector(const int var, const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &flux)
Definition: MMFSystem.cpp:1592
Array< OneD, Array< OneD, NekDouble > > m_DivMF
Definition: MMFSystem.h:194
SOLVER_UTILS_EXPORT void ComputeNtimesFz(const int dir, const Array< OneD, Array< OneD, NekDouble > > &Fwd, const Array< OneD, Array< OneD, NekDouble > > &Bwd, const Array< OneD, const NekDouble > &imFwd, const Array< OneD, const NekDouble > &imBwd, Array< OneD, NekDouble > &outarrayFwd, Array< OneD, NekDouble > &outarrayBwd)
Definition: MMFSystem.cpp:898
SOLVER_UTILS_EXPORT void NumericalMaxwellFluxTM(Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &numfluxFwd, Array< OneD, Array< OneD, NekDouble > > &numfluxBwd, const NekDouble time)
Definition: MMFSystem.cpp:1790
Array< OneD, Array< OneD, NekDouble > > m_nperpcdotMFFwd
Definition: MMFSystem.h:191
SOLVER_UTILS_EXPORT void GetMaxwellFlux1D(const int var, const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &flux)
Definition: MMFSystem.cpp:1622
Array< OneD, Array< OneD, NekDouble > > m_surfaceNormal
Definition: MMFSystem.h:186
virtual SOLVER_UTILS_EXPORT void v_GenerateSummary(SummaryList &s) override
Print a summary of time stepping parameters.
Definition: MMFSystem.cpp:2452
SOLVER_UTILS_EXPORT NekDouble AbsIntegral(const Array< OneD, const NekDouble > &inarray)
Definition: MMFSystem.cpp:2313
SOLVER_UTILS_EXPORT void DeriveCrossProductMF(Array< OneD, Array< OneD, NekDouble > > &CrossProductMF)
Definition: MMFSystem.cpp:554
SOLVER_UTILS_EXPORT void GetMaxwellFlux2D(const int var, const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &flux)
Definition: MMFSystem.cpp:1656
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_ntimes_ntimesMFFwd
Definition: MMFSystem.h:203
SOLVER_UTILS_EXPORT void VectorCrossProd(const Array< OneD, const Array< OneD, NekDouble > > &v1, const Array< OneD, const Array< OneD, NekDouble > > &v2, Array< OneD, Array< OneD, NekDouble > > &v3)
Definition: MMFSystem.cpp:682
SOLVER_UTILS_EXPORT void NumericalMaxwellFlux(Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &numfluxFwd, Array< OneD, Array< OneD, NekDouble > > &numfluxBwd, const NekDouble time=0.0)
Definition: MMFSystem.cpp:1713
SOLVER_UTILS_EXPORT NekDouble AvgInt(const Array< OneD, const NekDouble > &inarray)
Definition: MMFSystem.cpp:2281
SOLVER_UTILS_EXPORT void AdddedtMaxwell(const Array< OneD, const Array< OneD, NekDouble > > &physarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
Definition: MMFSystem.cpp:1353
SOLVER_UTILS_EXPORT void ComputeZimYim(Array< OneD, Array< OneD, NekDouble > > &epsvec, Array< OneD, Array< OneD, NekDouble > > &muvec)
Definition: MMFSystem.cpp:1091
SOLVER_UTILS_EXPORT MMFSystem(const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph)
Definition: MMFSystem.cpp:43
SOLVER_UTILS_EXPORT void AverageMaxwellFlux1D(Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &numfluxFwd, Array< OneD, Array< OneD, NekDouble > > &numfluxBwd)
Definition: MMFSystem.cpp:1551
Array< OneD, Array< OneD, NekDouble > > m_nperpcdotMFBwd
Definition: MMFSystem.h:192
Array< OneD, Array< OneD, NekDouble > > m_YimBwd
Definition: MMFSystem.h:209
SOLVER_UTILS_EXPORT NekDouble VectorAvgMagnitude(const Array< OneD, const Array< OneD, NekDouble > > &inarray)
Definition: MMFSystem.cpp:2341
Array< OneD, Array< OneD, NekDouble > > m_muvec
Definition: MMFSystem.h:212
SpatialDomains::GeomMMF m_MMFdir
Definition: MMFSystem.h:221
SOLVER_UTILS_EXPORT NekDouble AvgAbsInt(const Array< OneD, const NekDouble > &inarray)
Definition: MMFSystem.cpp:2296
Array< OneD, Array< OneD, NekDouble > > m_movingframes
Definition: MMFSystem.h:185
Array< OneD, NekDouble > m_MMFfactors
Definition: MMFSystem.h:159
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_ntimesMFBwd
Definition: MMFSystem.h:202
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_MFtraceFwd
Definition: MMFSystem.h:198
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_MFtraceBwd
Definition: MMFSystem.h:199
SOLVER_UTILS_EXPORT Array< OneD, NekDouble > GetIncidentField(const int var, const NekDouble time)
Definition: MMFSystem.cpp:1994
void SetUpMovingFrames(const Array< OneD, const Array< OneD, NekDouble > > &Anisotropy, const int TangentXelem)
Definition: MMFSystem.cpp:120
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_ntimesMFFwd
Definition: MMFSystem.h:201
virtual SOLVER_UTILS_EXPORT ~MMFSystem()
Definition: MMFSystem.cpp:49
SOLVER_UTILS_EXPORT void ComputeDivCurlMF()
Definition: MMFSystem.cpp:428
SOLVER_UTILS_EXPORT void GramSchumitz(const Array< OneD, const Array< OneD, NekDouble > > &v1, const Array< OneD, const Array< OneD, NekDouble > > &v2, Array< OneD, Array< OneD, NekDouble > > &outarray, bool KeepTheMagnitude=true)
Definition: MMFSystem.cpp:2388
Array< OneD, Array< OneD, NekDouble > > m_negepsvecminus1
Definition: MMFSystem.h:214
Array< OneD, Array< OneD, NekDouble > > m_ZimBwd
Definition: MMFSystem.h:207
SOLVER_UTILS_EXPORT Array< OneD, NekDouble > CartesianToMovingframes(const Array< OneD, const Array< OneD, NekDouble > > &uvec, unsigned int field)
Definition: MMFSystem.cpp:757
SOLVER_UTILS_EXPORT void ComputeNtimestimesdF12(const Array< OneD, Array< OneD, NekDouble > > &Fwd, const Array< OneD, Array< OneD, NekDouble > > &Bwd, const Array< OneD, const NekDouble > &im1Fwd, const Array< OneD, const NekDouble > &im1Bwd, const Array< OneD, const NekDouble > &im2Fwd, const Array< OneD, const NekDouble > &im2Bwd, Array< OneD, NekDouble > &outarrayFwd, Array< OneD, NekDouble > &outarrayBwd)
Definition: MMFSystem.cpp:1063
SOLVER_UTILS_EXPORT void CopyBoundaryTrace(const Array< OneD, const NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd, const BoundaryCopyType BDCopyType, const int var=0, const std::string btype="NoUserDefined")
Definition: MMFSystem.cpp:821
Array< OneD, Array< OneD, NekDouble > > m_ncdotMFBwd
Definition: MMFSystem.h:189
SOLVER_UTILS_EXPORT void ComputeMFtrace()
Definition: MMFSystem.cpp:505
Array< OneD, Array< OneD, NekDouble > > m_YimFwd
Definition: MMFSystem.h:208
Array< OneD, Array< OneD, NekDouble > > m_epsvec
Definition: MMFSystem.h:211
SOLVER_UTILS_EXPORT void UpwindMaxwellFlux1D(Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &numfluxFwd, Array< OneD, Array< OneD, NekDouble > > &numfluxBwd)
Definition: MMFSystem.cpp:1444
SOLVER_UTILS_EXPORT void ComputencdotMF()
Definition: MMFSystem.cpp:303
SOLVER_UTILS_EXPORT void CartesianToSpherical(const NekDouble x0j, const NekDouble x1j, const NekDouble x2j, NekDouble &sin_varphi, NekDouble &cos_varphi, NekDouble &sin_theta, NekDouble &cos_theta)
Definition: MMFSystem.cpp:778
Array< OneD, Array< OneD, NekDouble > > m_negmuvecminus1
Definition: MMFSystem.h:215
SOLVER_UTILS_EXPORT void ComputeNtimestimesdFz(const int dir, const Array< OneD, Array< OneD, NekDouble > > &Fwd, const Array< OneD, Array< OneD, NekDouble > > &Bwd, const Array< OneD, const NekDouble > &imFwd, const Array< OneD, const NekDouble > &imBwd, Array< OneD, NekDouble > &outarrayFwd, Array< OneD, NekDouble > &outarrayBwd)
Definition: MMFSystem.cpp:997
SOLVER_UTILS_EXPORT void NumericalMaxwellFluxTE(Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &numfluxFwd, Array< OneD, Array< OneD, NekDouble > > &numfluxBwd, const NekDouble time)
Definition: MMFSystem.cpp:1891
SOLVER_UTILS_EXPORT void ComputeNtimesMF()
Definition: MMFSystem.cpp:601
SOLVER_UTILS_EXPORT NekDouble RootMeanSquare(const Array< OneD, const NekDouble > &inarray)
Definition: MMFSystem.cpp:2327
Array< OneD, Array< OneD, NekDouble > > m_ncdotMFFwd
Definition: MMFSystem.h:188
SOLVER_UTILS_EXPORT void MMFInitObject(const Array< OneD, const Array< OneD, NekDouble > > &Anisotropy, const int TangentXelem=-1)
Definition: MMFSystem.cpp:53
TestMaxwellType m_TestMaxwellType
Definition: MMFSystem.h:155
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_CurlMF
Definition: MMFSystem.h:195
SOLVER_UTILS_EXPORT void Computedemdxicdote()
Definition: MMFSystem.cpp:1263
Base class for unsteady solvers.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
const char *const UpwindTypeMap[]
Definition: MMFSystem.h:88
const char *const IncTypeMap[]
Definition: MMFSystem.h:138
const char *const BoundaryCopyTypeMap[]
Definition: MMFSystem.h:69
std::vector< std::pair< std::string, std::string > > SummaryList
Definition: Misc.h:48
std::shared_ptr< MMFSystem > MMFSystemSharedPtr
Definition: MMFSystem.h:383
@ SIZE_TestMaxwellType
Length of enum list.
Definition: MMFSystem.h:107
@ SIZE_UpwindType
Length of enum list.
Definition: MMFSystem.h:85
@ eAverage
averaged (or centred) flux
Definition: MMFSystem.h:79
@ eHLL
Harten-Lax-Leer flux.
Definition: MMFSystem.h:83
@ eLaxFriedrich
Lax-Friedrich flux.
Definition: MMFSystem.h:80
@ eNotSet
flux not defined
Definition: MMFSystem.h:78
@ eHLLC
Harten-Lax-Leer Contact wave flux.
Definition: MMFSystem.h:84
@ eRusanov
Upwind.
Definition: MMFSystem.h:82
const char *const TestMaxwellTypeMap[]
Definition: MMFSystem.h:110
const char *const SurfaceTypeMap[]
Definition: MMFSystem.h:56
const char *const PolTypeMap[]
Definition: MMFSystem.h:125
@ SIZE_BoundaryCopyType
Length of enum list.
Definition: MMFSystem.h:66
GeomMMF
Principle direction for MMF.
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
Definition: MeshGraph.h:176
The above copyright notice and this permission notice shall be included.
Definition: CoupledSolver.h:2
double NekDouble