Nektar++
|
#include <MMFSWE.h>
Static Public Member Functions | |
static SolverUtils::EquationSystemSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Creates an instance of this class. More... | |
Public Attributes | |
TestType | m_TestType |
Public Attributes inherited from Nektar::SolverUtils::MMFSystem | |
NekDouble | m_pi |
int | m_shapedim |
SurfaceType | m_surfaceType |
UpwindType | m_upwindType |
TestMaxwellType | m_TestMaxwellType |
PolType | m_PolType |
IncType | m_IncType |
Array< OneD, NekDouble > | m_MMFfactors |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
Static Public Attributes inherited from Nektar::SolverUtils::UnsteadySystem | |
static std::string | cmdSetStartTime |
static std::string | cmdSetStartChkNum |
Protected Attributes | |
Array< OneD, NekDouble > | m_depth |
Still water depth. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_Derivdepth |
Array< OneD, NekDouble > | m_coriolis |
Coriolis force. More... | |
int | m_AddCoriolis |
int | m_AddRotation |
NekDouble | m_g |
NekDouble | m_alpha |
NekDouble | m_u0 |
NekDouble | m_Omega |
NekDouble | m_H0 |
NekDouble | m_Hvar |
NekDouble | m_k2 |
NekDouble | m_hs0 |
NekDouble | m_uthetamax |
NekDouble | m_theta0 |
NekDouble | m_theta1 |
NekDouble | m_en |
NekDouble | m_hbar |
NekDouble | m_angfreq |
NekDouble | m_K |
NekDouble | m_Vorticity0 |
NekDouble | m_Mass0 |
NekDouble | m_Energy0 |
NekDouble | m_Enstrophy0 |
bool | m_primitive |
Indicates if variables are primitive or conservative. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_velocity |
Advection velocity. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_veldotMF |
Array< OneD, NekDouble > | m_vellc |
int | m_planeNumber |
Protected Attributes inherited from Nektar::SolverUtils::MMFSystem | |
NekDouble | m_alpha |
NekDouble | m_Incfreq |
int | m_SmoothFactor |
NekDouble | m_SFinit |
Array< OneD, Array< OneD, NekDouble > > | m_movingframes |
Array< OneD, Array< OneD, NekDouble > > | m_surfaceNormal |
Array< OneD, Array< OneD, NekDouble > > | m_ncdotMFFwd |
Array< OneD, Array< OneD, NekDouble > > | m_ncdotMFBwd |
Array< OneD, Array< OneD, NekDouble > > | m_nperpcdotMFFwd |
Array< OneD, Array< OneD, NekDouble > > | m_nperpcdotMFBwd |
Array< OneD, Array< OneD, NekDouble > > | m_DivMF |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_CurlMF |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_MFtraceFwd |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_MFtraceBwd |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_ntimesMFFwd |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_ntimesMFBwd |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_ntimes_ntimesMFFwd |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_ntimes_ntimesMFBwd |
Array< OneD, Array< OneD, NekDouble > > | m_ZimFwd |
Array< OneD, Array< OneD, NekDouble > > | m_ZimBwd |
Array< OneD, Array< OneD, NekDouble > > | m_YimFwd |
Array< OneD, Array< OneD, NekDouble > > | m_YimBwd |
Array< OneD, Array< OneD, NekDouble > > | m_epsvec |
Array< OneD, Array< OneD, NekDouble > > | m_muvec |
Array< OneD, Array< OneD, NekDouble > > | m_negepsvecminus1 |
Array< OneD, Array< OneD, NekDouble > > | m_negmuvecminus1 |
Array< OneD, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > > | m_dedxi_cdot_e |
SpatialDomains::GeomMMF | m_MMFdir |
Protected Attributes inherited from Nektar::SolverUtils::UnsteadySystem | |
LibUtilities::TimeIntegrationSchemeSharedPtr | m_intScheme |
Wrapper to the time integration scheme. More... | |
LibUtilities::TimeIntegrationSchemeOperators | m_ode |
The time integration scheme operators to use. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_previousSolution |
Storage for previous solution for steady-state check. More... | |
std::vector< int > | m_intVariables |
NekDouble | m_cflSafetyFactor |
CFL safety factor (comprise between 0 to 1). More... | |
NekDouble | m_CFLGrowth |
CFL growth rate. More... | |
NekDouble | m_CFLEnd |
Maximun cfl in cfl growth. More... | |
int | m_abortSteps |
Number of steps between checks for abort conditions. More... | |
bool | m_explicitDiffusion |
Indicates if explicit or implicit treatment of diffusion is used. More... | |
bool | m_explicitAdvection |
Indicates if explicit or implicit treatment of advection is used. More... | |
bool | m_explicitReaction |
Indicates if explicit or implicit treatment of reaction is used. More... | |
int | m_steadyStateSteps |
Check for steady state at step interval. More... | |
NekDouble | m_steadyStateTol |
Tolerance to which steady state should be evaluated at. More... | |
int | m_filtersInfosteps |
Number of time steps between outputting filters information. More... | |
std::vector< std::pair< std::string, FilterSharedPtr > > | m_filters |
bool | m_homoInitialFwd |
Flag to determine if simulation should start in homogeneous forward transformed state. More... | |
std::ofstream | m_errFile |
NekDouble | m_epsilon |
Diffusion coefficient. More... | |
Protected Attributes inherited from Nektar::SolverUtils::EquationSystem | |
LibUtilities::CommSharedPtr | m_comm |
Communicator. More... | |
bool | m_verbose |
LibUtilities::SessionReaderSharedPtr | m_session |
The session reader. More... | |
std::map< std::string, SolverUtils::SessionFunctionSharedPtr > | m_sessionFunctions |
Map of known SessionFunctions. More... | |
LibUtilities::FieldIOSharedPtr | m_fld |
Field input/output. More... | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fields |
Array holding all dependent variables. More... | |
SpatialDomains::BoundaryConditionsSharedPtr | m_boundaryConditions |
Pointer to boundary conditions object. More... | |
SpatialDomains::MeshGraphSharedPtr | m_graph |
Pointer to graph defining mesh. More... | |
std::string | m_sessionName |
Name of the session. More... | |
NekDouble | m_time |
Current time of simulation. More... | |
int | m_initialStep |
Number of the step where the simulation should begin. More... | |
NekDouble | m_fintime |
Finish time of the simulation. More... | |
NekDouble | m_timestep |
Time step size. More... | |
NekDouble | m_lambda |
Lambda constant in real system if one required. More... | |
NekDouble | m_checktime |
Time between checkpoints. More... | |
NekDouble | m_lastCheckTime |
NekDouble | m_TimeIncrementFactor |
int | m_nchk |
Number of checkpoints written so far. More... | |
int | m_steps |
Number of steps to take. More... | |
int | m_checksteps |
Number of steps between checkpoints. More... | |
int | m_infosteps |
Number of time steps between outputting status information. More... | |
int | m_iterPIT = 0 |
Number of parallel-in-time time iteration. More... | |
int | m_windowPIT = 0 |
Index of windows for parallel-in-time time iteration. More... | |
int | m_spacedim |
Spatial dimension (>= expansion dim). More... | |
int | m_expdim |
Expansion dimension. More... | |
bool | m_singleMode |
Flag to determine if single homogeneous mode is used. More... | |
bool | m_halfMode |
Flag to determine if half homogeneous mode is used. More... | |
bool | m_multipleModes |
Flag to determine if use multiple homogenenous modes are used. More... | |
bool | m_useFFT |
Flag to determine if FFT is used for homogeneous transform. More... | |
bool | m_homogen_dealiasing |
Flag to determine if dealiasing is used for homogeneous simulations. More... | |
bool | m_specHP_dealiasing |
Flag to determine if dealisising is usde for the Spectral/hp element discretisation. More... | |
enum MultiRegions::ProjectionType | m_projectionType |
Type of projection; e.g continuous or discontinuous. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_traceNormals |
Array holding trace normals for DG simulations in the forwards direction. More... | |
Array< OneD, bool > | m_checkIfSystemSingular |
Flag to indicate if the fields should be checked for singularity. More... | |
LibUtilities::FieldMetaDataMap | m_fieldMetaDataMap |
Map to identify relevant solver info to dump in output fields. More... | |
Array< OneD, NekDouble > | m_movingFrameData |
Moving reference frame status in the inertial frame X, Y, Z, Theta_x, Theta_y, Theta_z, U, V, W, Omega_x, Omega_y, Omega_z, A_x, A_y, A_z, DOmega_x, DOmega_y, DOmega_z, pivot_x, pivot_y, pivot_z. More... | |
std::vector< std::string > | m_strFrameData |
variable name in m_movingFrameData More... | |
int | m_NumQuadPointsError |
Number of Quadrature points used to work out the error. More... | |
enum HomogeneousType | m_HomogeneousType |
NekDouble | m_LhomX |
physical length in X direction (if homogeneous) More... | |
NekDouble | m_LhomY |
physical length in Y direction (if homogeneous) More... | |
NekDouble | m_LhomZ |
physical length in Z direction (if homogeneous) More... | |
int | m_npointsX |
number of points in X direction (if homogeneous) More... | |
int | m_npointsY |
number of points in Y direction (if homogeneous) More... | |
int | m_npointsZ |
number of points in Z direction (if homogeneous) More... | |
int | m_HomoDirec |
number of homogenous directions More... | |
Protected Attributes inherited from Nektar::SolverUtils::ALEHelper | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fieldsALE |
Array< OneD, Array< OneD, NekDouble > > | m_gridVelocity |
Array< OneD, Array< OneD, NekDouble > > | m_gridVelocityTrace |
std::vector< ALEBaseShPtr > | m_ALEs |
bool | m_ALESolver = false |
bool | m_ImplicitALESolver = false |
NekDouble | m_prevStageTime = 0.0 |
int | m_spaceDim |
Private Member Functions | |
void | TestSWE2Dproblem (const NekDouble time, unsigned int field, Array< OneD, NekDouble > &outfield) |
void | Checkpoint_Output_Cartesian (std::string outname) |
Private Attributes | |
int | m_RossbyDisturbance |
int | m_PurturbedJet |
Friends | |
class | MemoryManager< MMFSWE > |
Additional Inherited Members | |
Protected Types inherited from Nektar::SolverUtils::EquationSystem | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
Static Protected Attributes inherited from Nektar::SolverUtils::EquationSystem | |
static std::string | equationSystemTypeLookupIds [] |
static std::string | projectionTypeLookupIds [] |
|
overridedefault |
Destructor.
|
protected |
Session reader.
Definition at line 51 of file MMFSWE.cpp.
References m_planeNumber.
|
protected |
Definition at line 1206 of file MMFSWE.cpp.
References m_coriolis, m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_shapedim, Vmath::Neg(), Vmath::Vadd(), and Vmath::Vmul().
Referenced by DoOdeRhs().
|
protected |
Definition at line 542 of file MMFSWE.cpp.
References GetSWEFluxVector(), Nektar::SolverUtils::MMFSystem::m_DivMF, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_shapedim, Vmath::Neg(), Vmath::Vadd(), and Vmath::Vmul().
Referenced by DoOdeRhs().
|
protected |
Definition at line 1251 of file MMFSWE.cpp.
References m_depth, m_Derivdepth, Nektar::SolverUtils::EquationSystem::m_fields, m_g, Nektar::SolverUtils::MMFSystem::m_shapedim, Vmath::Smul(), Vmath::Vadd(), and Vmath::Vmul().
Referenced by DoOdeRhs().
|
protected |
Definition at line 1280 of file MMFSWE.cpp.
References Compute_demdt_cdot_ek(), m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Neg(), Vmath::Vadd(), Vmath::Vmul(), and Vmath::Vvtvp().
Referenced by DoOdeRhs().
|
protected |
Definition at line 961 of file MMFSWE.cpp.
References ComputeMagAndDot(), and m_g.
Referenced by NumericalSWEFlux().
|
private |
Definition at line 2767 of file MMFSWE.cpp.
References ComputeVorticity(), m_depth, Nektar::SolverUtils::EquationSystem::m_fields, m_H0, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::EquationSystem::m_spacedim, Vmath::Neg(), Vmath::Sadd(), Vmath::Smul(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vvtvp(), and Nektar::SolverUtils::EquationSystem::WriteFld().
Referenced by v_SetInitialConditions().
|
protected |
Definition at line 1327 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::MMFSystem::m_shapedim, Nektar::SolverUtils::EquationSystem::m_spacedim, Vmath::Vcopy(), Vmath::Vmul(), and Vmath::Vvtvp().
Referenced by AddRotation().
|
protected |
Definition at line 2153 of file MMFSWE.cpp.
References m_depth, Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_H0, Vmath::Sadd(), Vmath::Smul(), Vmath::Vadd(), Vmath::Vmul(), Vmath::Vsub(), and Vmath::Vvtvp().
Referenced by v_DoSolve(), and v_SetInitialConditions().
|
protected |
Definition at line 2182 of file MMFSWE.cpp.
References ComputeVorticity(), m_coriolis, m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_spacedim, Vmath::Smul(), Vmath::Vadd(), Vmath::Vdiv(), and Vmath::Vmul().
Referenced by v_DoSolve(), and v_SetInitialConditions().
|
protected |
Definition at line 883 of file MMFSWE.cpp.
References m_g, and tinysimd::sqrt().
Referenced by RiemannSolverHLLC().
|
protected |
Definition at line 1168 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::m_MFtraceBwd, and Nektar::SolverUtils::MMFSystem::m_MFtraceFwd.
Referenced by AverageFlux(), LaxFriedrichFlux(), and RusanovFlux().
Definition at line 2143 of file MMFSWE.cpp.
References m_depth, Nektar::SolverUtils::EquationSystem::m_fields, and Vmath::Vadd().
Referenced by v_DoSolve(), and v_SetInitialConditions().
Definition at line 2234 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::MMFSystem::m_shapedim, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, Vmath::Vvtvp(), and Vmath::Zero().
Definition at line 2737 of file MMFSWE.cpp.
References ComputeUnstableJetuphi(), and m_Omega.
Referenced by UnstableJetFlow().
Definition at line 2749 of file MMFSWE.cpp.
References m_en, m_theta0, m_theta1, and m_uthetamax.
Referenced by ComputeUnstableJetEta(), and UnstableJetFlow().
|
protected |
Definition at line 2213 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::m_CurlMF, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Vmath::Neg(), Vmath::Vadd(), and Vmath::Vvtvp().
Referenced by Checkpoint_Output_Cartesian(), ComputeEnstrophy(), TestVorticityComputation(), and v_DoSolve().
Definition at line 2912 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Vdiv(), and Vmath::Vsub().
Referenced by DoOdeProjection(), DoOdeRhs(), and v_DoSolve().
|
protected |
Definition at line 2832 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_depth, Vmath::Vcopy(), Vmath::Vdiv(), and Vmath::Vsub().
|
inlinestatic |
Creates an instance of this class.
Definition at line 66 of file MMFSWE.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
protected |
Compute the projection.
Compute the projection for the linear advection equation.
inarray | Given fields. |
outarray | Calculated solution. |
time | Time. |
Definition at line 1363 of file MMFSWE.cpp.
References ASSERTL0, ConservativeToPrimitive(), Nektar::MultiRegions::eDiscontinuous, Nektar::SolverUtils::EquationSystem::m_projectionType, PrimitiveToConservative(), and SetBoundaryConditions().
Referenced by v_InitObject().
|
protected |
Compute the RHS.
Definition at line 418 of file MMFSWE.cpp.
References AddCoriolis(), AddDivForGradient(), AddElevationEffect(), AddRotation(), ConservativeToPrimitive(), Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_AddCoriolis, m_AddRotation, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Neg(), and WeakDGSWEDirDeriv().
Referenced by v_InitObject().
Definition at line 1702 of file MMFSWE.cpp.
References Nektar::eTestIsolatedMountain, Nektar::eTestPlane, Nektar::eTestRossbyWave, Nektar::eTestSteadyZonal, Nektar::eTestUnstableJet, Nektar::eTestUnsteadyZonal, EvaluateCoriolisForZonalFlow(), EvaluateStandardCoriolis(), Nektar::SolverUtils::EquationSystem::GetFunction(), m_coriolis, and m_TestType.
Referenced by v_DoInitialise().
Definition at line 1732 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_alpha, Nektar::SolverUtils::EquationSystem::m_fields, m_Omega, and Nektar::UnitTests::z().
Referenced by EvaluateCoriolis().
Definition at line 1764 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::SolverUtils::EquationSystem::m_fields, m_Omega, and Nektar::UnitTests::z().
Referenced by EvaluateCoriolis().
Definition at line 1562 of file MMFSWE.cpp.
References tinysimd::abs(), Nektar::SolverUtils::MMFSystem::AvgAbsInt(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), Nektar::eTestIsolatedMountain, Nektar::eTestPlane, Nektar::eTestRossbyWave, Nektar::eTestSteadyZonal, Nektar::eTestUnstableJet, Nektar::eTestUnsteadyZonal, Vmath::Fill(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_depth, m_Derivdepth, Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_H0, m_hs0, m_k2, Nektar::SolverUtils::MMFSystem::m_movingframes, m_Omega, Nektar::SolverUtils::MMFSystem::m_pi, Nektar::SolverUtils::MMFSystem::m_shapedim, m_TestType, tinysimd::sqrt(), Vmath::Vamax(), Nektar::UnitTests::z(), and Vmath::Zero().
Referenced by v_DoInitialise().
|
protected |
Definition at line 572 of file MMFSWE.cpp.
References Blas::Daxpy(), m_depth, Nektar::SolverUtils::EquationSystem::m_fields, m_g, Vmath::Vadd(), and Vmath::Vmul().
Referenced by AddDivForGradient(), and WeakDGSWEDirDeriv().
|
protected |
Definition at line 2395 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_Omega, Nektar::SolverUtils::EquationSystem::m_spacedim, m_u0, and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
protected |
Definition at line 1015 of file MMFSWE.cpp.
References ComputeMagAndDot(), m_g, Nektar::SolverUtils::MMFSystem::m_ncdotMFBwd, Nektar::SolverUtils::MMFSystem::m_ncdotMFFwd, tinysimd::sqrt(), and Vmath::Vamax().
Referenced by NumericalSWEFlux().
|
protected |
Definition at line 667 of file MMFSWE.cpp.
References ASSERTL0, AverageFlux(), Nektar::SolverUtils::MMFSystem::CopyBoundaryTrace(), Nektar::SolverUtils::eAverage, Nektar::SolverUtils::eFwdEQBwd, Nektar::SolverUtils::eHLLC, Nektar::SolverUtils::eLaxFriedrich, Nektar::SolverUtils::eRusanov, Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), LaxFriedrichFlux(), m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_ncdotMFBwd, Nektar::SolverUtils::MMFSystem::m_ncdotMFFwd, Nektar::SolverUtils::MMFSystem::m_nperpcdotMFBwd, Nektar::SolverUtils::MMFSystem::m_nperpcdotMFFwd, Nektar::SolverUtils::MMFSystem::m_shapedim, Nektar::SolverUtils::MMFSystem::m_upwindType, RiemannSolverHLLC(), and RusanovFlux().
Referenced by WeakDGSWEDirDeriv().
Definition at line 2929 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Vadd(), and Vmath::Vmul().
Referenced by DoOdeProjection(), v_DoInitialise(), and v_DoSolve().
|
protected |
Definition at line 2871 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_depth, Vmath::Vadd(), Vmath::Vcopy(), and Vmath::Vmul().
|
protected |
Definition at line 838 of file MMFSWE.cpp.
References Computehhuhvflux(), m_g, and tinysimd::sqrt().
Referenced by NumericalSWEFlux().
|
protected |
Definition at line 2592 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_angfreq, Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_H0, m_K, m_Omega, Nektar::SolverUtils::MMFSystem::m_pi, m_RossbyDisturbance, Nektar::SolverUtils::EquationSystem::m_spacedim, and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
protected |
Definition at line 1090 of file MMFSWE.cpp.
References ComputeMagAndDot(), m_g, Nektar::SolverUtils::MMFSystem::m_ncdotMFBwd, Nektar::SolverUtils::MMFSystem::m_ncdotMFFwd, and tinysimd::sqrt().
Referenced by NumericalSWEFlux().
|
protected |
Definition at line 1382 of file MMFSWE.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::m_expdim, Nektar::SolverUtils::EquationSystem::m_fields, and WallBoundary2D().
Referenced by DoOdeProjection().
|
protected |
Definition at line 2052 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_alpha, Nektar::SolverUtils::EquationSystem::m_fields, m_H0, m_Hvar, Nektar::SolverUtils::EquationSystem::m_spacedim, m_u0, and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
private |
Definition at line 1988 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::m_fields, and Nektar::SolverUtils::EquationSystem::m_spacedim.
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
Definition at line 2946 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::AvgAbsInt(), Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), ComputeVorticity(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_spacedim, tinysimd::sqrt(), Vmath::Vamax(), Vmath::Vsub(), and Nektar::UnitTests::z().
Referenced by v_InitObject().
|
protected |
Definition at line 2483 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), ComputeUnstableJetEta(), ComputeUnstableJetuphi(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_hbar, Nektar::SolverUtils::MMFSystem::m_pi, m_PurturbedJet, Nektar::SolverUtils::EquationSystem::m_spacedim, and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
protected |
Definition at line 2294 of file MMFSWE.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_alpha, Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_Omega, Nektar::SolverUtils::EquationSystem::m_spacedim, m_u0, and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
overrideprotectedvirtual |
Sets up initial conditions.
Sets the initial conditions.
Reimplemented from Nektar::SolverUtils::UnsteadySystem.
Definition at line 1545 of file MMFSWE.cpp.
References EvaluateCoriolis(), EvaluateWaterDepth(), Nektar::SolverUtils::EquationSystem::m_fields, PrimitiveToConservative(), and Nektar::SolverUtils::EquationSystem::SetInitialConditions().
Solves an unsteady problem.
Initialises the time integration scheme (as specified in the session file), and perform the time integration.
Reimplemented from Nektar::SolverUtils::UnsteadySystem.
Definition at line 241 of file MMFSWE.cpp.
References tinysimd::abs(), ASSERTL0, Nektar::SolverUtils::EquationSystem::Checkpoint_Output(), ComputeEnergy(), ComputeEnstrophy(), ComputeMass(), ComputeVorticity(), ConservativeToPrimitive(), Nektar::NekConstants::kNekZeroTol, Nektar::SolverUtils::UnsteadySystem::m_cflSafetyFactor, Nektar::SolverUtils::EquationSystem::m_checksteps, Nektar::SolverUtils::EquationSystem::m_checktime, m_Energy0, m_Enstrophy0, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_fintime, Nektar::SolverUtils::EquationSystem::m_infosteps, Nektar::SolverUtils::UnsteadySystem::m_intScheme, Nektar::SolverUtils::UnsteadySystem::m_intVariables, m_Mass0, Nektar::SolverUtils::UnsteadySystem::m_ode, Nektar::SolverUtils::EquationSystem::m_session, Nektar::SolverUtils::EquationSystem::m_steps, Nektar::SolverUtils::EquationSystem::m_time, Nektar::SolverUtils::EquationSystem::m_timestep, m_Vorticity0, PrimitiveToConservative(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Nektar::LibUtilities::Timer::TimePerTest().
|
overrideprotectedvirtual |
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 3218 of file MMFSWE.cpp.
References Nektar::eTestIsolatedMountain, Nektar::eTestPlane, Nektar::eTestRossbyWave, Nektar::eTestSteadyZonal, Nektar::eTestUnstableJet, Nektar::eTestUnsteadyZonal, FilterPython_Function::field, IsolatedMountainFlow(), m_TestType, RossbyWave(), SteadyZonalFlow(), TestSWE2Dproblem(), UnstableJetFlow(), and UnsteadyZonalFlow().
Referenced by v_L2Error().
|
overrideprotectedvirtual |
Print Summary.
Reimplemented from Nektar::SolverUtils::MMFSystem.
Definition at line 3265 of file MMFSWE.cpp.
References Nektar::SolverUtils::AddSummaryItem(), Nektar::eTestRossbyWave, Nektar::eTestSteadyZonal, Nektar::eTestUnstableJet, m_alpha, m_PurturbedJet, m_RossbyDisturbance, m_TestType, Nektar::TestTypeMap, and Nektar::SolverUtils::MMFSystem::v_GenerateSummary().
|
overrideprotectedvirtual |
Initialise the object.
Initialisation object for the unsteady linear advection equation.
Reimplemented from Nektar::SolverUtils::UnsteadySystem.
Definition at line 61 of file MMFSWE.cpp.
References ASSERTL0, Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection(), DoOdeProjection(), DoOdeRhs(), Nektar::SolverUtils::eSphere, Nektar::eTestIsolatedMountain, Nektar::eTestRossbyWave, Nektar::eTestSteadyZonal, Nektar::eTestUnstableJet, Nektar::eTestUnsteadyZonal, m_AddCoriolis, m_AddRotation, m_alpha, m_angfreq, m_en, Nektar::SolverUtils::UnsteadySystem::m_explicitAdvection, Nektar::SolverUtils::EquationSystem::m_fields, m_g, m_H0, m_hbar, m_hs0, m_Hvar, m_K, m_k2, Nektar::SolverUtils::UnsteadySystem::m_ode, m_Omega, Nektar::SolverUtils::MMFSystem::m_pi, m_PurturbedJet, m_RossbyDisturbance, Nektar::SolverUtils::EquationSystem::m_session, Nektar::SolverUtils::MMFSystem::m_surfaceType, m_TestType, m_theta0, m_theta1, m_u0, m_uthetamax, Nektar::SolverUtils::MMFSystem::MMFInitObject(), Nektar::SIZE_TestType, Nektar::TestTypeMap, TestVorticityComputation(), and Nektar::SolverUtils::UnsteadySystem::v_InitObject().
|
overrideprotectedvirtual |
Virtual function for the L_2 error computation between fields and a given exact solution.
Compute the error in the L2-norm.
field | The field to compare. |
exactsoln | The exact solution to compare with. |
Normalised | Normalise L2-error. |
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 3032 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::ErrorExtraPoints(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::GetNpoints(), Nektar::SolverUtils::EquationSystem::m_comm, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_NumQuadPointsError, Nektar::SolverUtils::EquationSystem::m_time, Nektar::LibUtilities::ReduceSum, tinysimd::sqrt(), v_EvaluateExactSolution(), Vmath::Vabs(), Vmath::Vmul(), Vmath::Vsqrt(), Vmath::Vsub(), and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Virtual function for the L_inf error computation between fields and a given exact solution.
Compute the error in the L_inf-norm
field | The field to compare. |
exactsoln | The exact solution to compare with. |
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 3128 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::EvaluateExactSolution(), FilterPython_Function::field, Nektar::SolverUtils::EquationSystem::LinfError(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_time, Vmath::Vadd(), Vmath::Vamax(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vsqrt(), Vmath::Vsub(), and Nektar::UnitTests::z().
|
overrideprotectedvirtual |
Set the physical fields based on a restart file, or a function describing the initial condition given in the session.
initialtime | Time at which to evaluate the function. |
dumpInitialConditions | Write the initial condition to file? |
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 1791 of file MMFSWE.cpp.
References Checkpoint_Output_Cartesian(), ComputeEnergy(), ComputeEnstrophy(), ComputeMass(), Nektar::eTestIsolatedMountain, Nektar::eTestPlane, Nektar::eTestRossbyWave, Nektar::eTestSteadyZonal, Nektar::eTestUnstableJet, Nektar::eTestUnsteadyZonal, Nektar::SolverUtils::EquationSystem::GetTotPoints(), IsolatedMountainFlow(), m_Energy0, m_Enstrophy0, Nektar::SolverUtils::EquationSystem::m_fields, m_Mass0, Nektar::SolverUtils::EquationSystem::m_sessionName, m_TestType, m_Vorticity0, RossbyWave(), SteadyZonalFlow(), TestSWE2Dproblem(), UnstableJetFlow(), UnsteadyZonalFlow(), and Nektar::SolverUtils::EquationSystem::WriteFld().
|
protected |
Definition at line 1432 of file MMFSWE.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::GetExpSize(), Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), Nektar::SolverUtils::EquationSystem::m_expdim, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_ncdotMFFwd, Nektar::SolverUtils::MMFSystem::m_nperpcdotMFFwd, Vmath::Neg(), Vmath::Vcopy(), Vmath::Vdiv(), Vmath::Vmul(), Vmath::Vvtvm(), and Vmath::Vvtvp().
Referenced by SetBoundaryConditions().
|
protected |
Definition at line 472 of file MMFSWE.cpp.
References Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetNpoints(), GetSWEFluxVector(), Nektar::SolverUtils::EquationSystem::GetTraceNpoints(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::MMFSystem::m_shapedim, Vmath::Neg(), NumericalSWEFlux(), and Vmath::Vadd().
Referenced by DoOdeRhs().
|
friend |
|
static |
Name of class.
|
protected |
Definition at line 91 of file MMFSWE.h.
Referenced by DoOdeRhs(), and v_InitObject().
|
protected |
Definition at line 91 of file MMFSWE.h.
Referenced by DoOdeRhs(), and v_InitObject().
|
protected |
Definition at line 94 of file MMFSWE.h.
Referenced by EvaluateCoriolisForZonalFlow(), SteadyZonalFlow(), UnsteadyZonalFlow(), v_GenerateSummary(), and v_InitObject().
|
protected |
Definition at line 98 of file MMFSWE.h.
Referenced by RossbyWave(), and v_InitObject().
Coriolis force.
Definition at line 89 of file MMFSWE.h.
Referenced by AddCoriolis(), ComputeEnstrophy(), and EvaluateCoriolis().
Still water depth.
Definition at line 85 of file MMFSWE.h.
Referenced by AddCoriolis(), AddElevationEffect(), AddRotation(), Checkpoint_Output_Cartesian(), ComputeEnergy(), ComputeEnstrophy(), ComputeMass(), ConservativeToPrimitive(), EvaluateWaterDepth(), GetSWEFluxVector(), NumericalSWEFlux(), and PrimitiveToConservative().
Definition at line 86 of file MMFSWE.h.
Referenced by AddElevationEffect(), and EvaluateWaterDepth().
|
protected |
Definition at line 97 of file MMFSWE.h.
Referenced by ComputeUnstableJetuphi(), and v_InitObject().
|
protected |
Definition at line 100 of file MMFSWE.h.
Referenced by v_DoSolve(), and v_SetInitialConditions().
|
protected |
Definition at line 100 of file MMFSWE.h.
Referenced by v_DoSolve(), and v_SetInitialConditions().
|
protected |
Definition at line 93 of file MMFSWE.h.
Referenced by AddElevationEffect(), AverageFlux(), ComputeEnergy(), Computehhuhvflux(), EvaluateWaterDepth(), GetSWEFluxVector(), IsolatedMountainFlow(), LaxFriedrichFlux(), RiemannSolverHLLC(), RossbyWave(), RusanovFlux(), UnstableJetFlow(), UnsteadyZonalFlow(), and v_InitObject().
|
protected |
Definition at line 94 of file MMFSWE.h.
Referenced by Checkpoint_Output_Cartesian(), ComputeEnergy(), EvaluateWaterDepth(), RossbyWave(), SteadyZonalFlow(), and v_InitObject().
|
protected |
Definition at line 97 of file MMFSWE.h.
Referenced by UnstableJetFlow(), and v_InitObject().
|
protected |
Definition at line 96 of file MMFSWE.h.
Referenced by EvaluateWaterDepth(), and v_InitObject().
|
protected |
Definition at line 94 of file MMFSWE.h.
Referenced by SteadyZonalFlow(), and v_InitObject().
|
protected |
Definition at line 98 of file MMFSWE.h.
Referenced by RossbyWave(), and v_InitObject().
|
protected |
Definition at line 95 of file MMFSWE.h.
Referenced by EvaluateWaterDepth(), and v_InitObject().
|
protected |
Definition at line 100 of file MMFSWE.h.
Referenced by v_DoSolve(), and v_SetInitialConditions().
|
protected |
Definition at line 94 of file MMFSWE.h.
Referenced by ComputeUnstableJetEta(), EvaluateCoriolisForZonalFlow(), EvaluateStandardCoriolis(), EvaluateWaterDepth(), IsolatedMountainFlow(), RossbyWave(), UnsteadyZonalFlow(), and v_InitObject().
|
protected |
|
protected |
|
private |
Definition at line 270 of file MMFSWE.h.
Referenced by UnstableJetFlow(), v_GenerateSummary(), and v_InitObject().
|
private |
Definition at line 269 of file MMFSWE.h.
Referenced by RossbyWave(), v_GenerateSummary(), and v_InitObject().
TestType Nektar::MMFSWE::m_TestType |
Definition at line 78 of file MMFSWE.h.
Referenced by EvaluateCoriolis(), EvaluateWaterDepth(), v_EvaluateExactSolution(), v_GenerateSummary(), v_InitObject(), and v_SetInitialConditions().
|
protected |
Definition at line 97 of file MMFSWE.h.
Referenced by ComputeUnstableJetuphi(), and v_InitObject().
|
protected |
Definition at line 97 of file MMFSWE.h.
Referenced by ComputeUnstableJetuphi(), and v_InitObject().
|
protected |
Definition at line 94 of file MMFSWE.h.
Referenced by IsolatedMountainFlow(), SteadyZonalFlow(), UnsteadyZonalFlow(), and v_InitObject().
|
protected |
Definition at line 97 of file MMFSWE.h.
Referenced by ComputeUnstableJetuphi(), and v_InitObject().
Advection velocity.
Definition at line 106 of file MMFSWE.h.
Referenced by ComputeNablaCdotVelocity().
|
protected |
Definition at line 100 of file MMFSWE.h.
Referenced by v_DoSolve(), and v_SetInitialConditions().