Nektar++
|
#include <MMFAdvection.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 |
![]() | |
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 std::string | cmdSetStartTime |
static std::string | cmdSetStartChkNum |
Protected Attributes | |
SolverUtils::RiemannSolverSharedPtr | m_riemannSolver |
NekDouble | m_advx |
NekDouble | m_advy |
NekDouble | m_advz |
NekDouble | m_waveFreq |
NekDouble | m_RotAngle |
NekDouble | m_Mass0 |
int | m_VelProjection |
Array< OneD, Array< OneD, NekDouble > > | m_velocity |
Advection velocity. More... | |
Array< OneD, NekDouble > | m_traceVn |
Array< OneD, Array< OneD, NekDouble > > | m_veldotMF |
Array< OneD, NekDouble > | m_vellc |
int | m_planeNumber |
![]() | |
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 |
![]() | |
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... | |
![]() | |
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_movingFrameVelsxyz |
Moving frame of reference velocities. More... | |
Array< OneD, NekDouble > | m_movingFrameTheta |
Moving frame of reference angles with respect to the. More... | |
boost::numeric::ublas::matrix< NekDouble > | m_movingFrameProjMat |
Projection matrix for transformation between inertial and moving. 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... | |
![]() | |
SolverUtils::AdvectionSharedPtr | m_advObject |
Advection term. More... | |
Friends | |
class | MemoryManager< MMFAdvection > |
Additional Inherited Members | |
![]() | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
![]() | |
static std::string | equationSystemTypeLookupIds [] |
static std::string | projectionTypeLookupIds [] |
Definition at line 61 of file MMFAdvection.h.
|
virtual |
Destructor.
Unsteady linear advection equation destructor.
Definition at line 201 of file MMFAdvection.cpp.
|
protected |
Session reader.
Definition at line 51 of file MMFAdvection.cpp.
References m_planeNumber.
Definition at line 913 of file MMFAdvection.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_pi, tinysimd::sqrt(), and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
Definition at line 948 of file MMFAdvection.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_pi, tinysimd::sqrt(), and Nektar::UnitTests::z().
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
protected |
Definition at line 688 of file MMFAdvection.cpp.
References ASSERTL0, Nektar::SolverUtils::eIrregular, Nektar::SolverUtils::eNonconvex, Nektar::SolverUtils::eSphere, Nektar::SolverUtils::eTRSphere, Nektar::SolverUtils::MMFSystem::m_surfaceType, and tinysimd::sqrt().
Definition at line 1045 of file MMFAdvection.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().
Referenced by v_InitObject().
|
protected |
Definition at line 1105 of file MMFAdvection.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::MMFSystem::m_shapedim, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, and Vmath::Vvtvp().
Referenced by v_InitObject().
|
inlinestatic |
Creates an instance of this class.
Definition at line 68 of file MMFAdvection.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 457 of file MMFAdvection.cpp.
References ASSERTL0, Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, Nektar::MultiRegions::eMixed_CG_Discontinuous, Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetNpoints(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_projectionType, Nektar::SolverUtils::EquationSystem::SetBoundaryConditions(), and Vmath::Vcopy().
Referenced by v_InitObject().
|
protected |
Compute the RHS.
Compute the right-hand side for the linear advection equation.
inarray | Given fields. |
outarray | Calculated solution. |
time | Time. |
Definition at line 393 of file MMFAdvection.cpp.
References ASSERTL0, Nektar::MultiRegions::eDiscontinuous, Nektar::SolverUtils::EquationSystem::GetNpoints(), Nektar::SolverUtils::AdvectionSystem::m_advObject, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_projectionType, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, Vmath::Neg(), and WeakDGDirectionalAdvection().
Referenced by v_InitObject().
|
protected |
Definition at line 606 of file MMFAdvection.cpp.
References Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), Nektar::SolverUtils::MMFSystem::GramSchumitz(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, m_RotAngle, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, m_VelProjection, m_waveFreq, Nektar::SolverUtils::MMFSystem::RootMeanSquare(), Vmath::Vadd(), Vmath::Vcopy(), Nektar::SolverUtils::MMFSystem::VectorCrossProd(), Vmath::Vmul(), and Vmath::Vsub().
Referenced by v_InitObject().
|
protected |
Evaluate the flux at each solution point.
Return the flux vector for the linear advection equation.
i | Component of the flux vector to calculate. |
physfield | Fields. |
flux | Resulting flux. |
Definition at line 516 of file MMFAdvection.cpp.
References ASSERTL1, m_velocity, and Vmath::Vmul().
Referenced by v_InitObject().
|
protected |
Evaluate the flux at each solution point using dealiasing.
Get the normal velocity.
Get the normal velocity for the linear advection equation.
Definition at line 363 of file MMFAdvection.cpp.
References Nektar::SolverUtils::EquationSystem::GetTraceNpoints(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_traceNormals, m_traceVn, m_velocity, Vmath::Vvtvp(), and Vmath::Zero().
Referenced by v_InitObject().
|
protected |
Definition at line 1000 of file MMFAdvection.cpp.
References m_advx, m_advy, Nektar::SolverUtils::EquationSystem::m_fields, and Nektar::SolverUtils::MMFSystem::m_pi.
Referenced by v_EvaluateExactSolution(), and v_SetInitialConditions().
|
protected |
Definition at line 1022 of file MMFAdvection.cpp.
References m_advx, m_advy, m_advz, Nektar::SolverUtils::EquationSystem::m_fields, and Nektar::SolverUtils::MMFSystem::m_pi.
Referenced by v_EvaluateExactSolution(), and v_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 205 of file MMFAdvection.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::Checkpoint_Output(), Nektar::NekConstants::kNekZeroTol, Nektar::SolverUtils::UnsteadySystem::m_cflSafetyFactor, Nektar::SolverUtils::EquationSystem::m_checksteps, Nektar::SolverUtils::EquationSystem::m_checktime, 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, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Nektar::LibUtilities::Timer::TimePerTest().
|
overrideprotectedvirtual |
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 1125 of file MMFAdvection.cpp.
References AdvectionBellPlane(), AdvectionBellSphere(), eAdvectionBell, Nektar::eTestCube, Nektar::eTestPlane, eTestPlaneMassConsv, m_TestType, Test2Dproblem(), and Test3Dproblem().
|
overrideprotectedvirtual |
Print Summary.
Reimplemented from Nektar::SolverUtils::MMFSystem.
Definition at line 1162 of file MMFAdvection.cpp.
References Nektar::SolverUtils::AddSummaryItem(), m_RotAngle, 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::AdvectionSystem.
Definition at line 62 of file MMFAdvection.cpp.
References ASSERTL0, Nektar::SolverUtils::MMFSystem::AvgInt(), ComputeNablaCdotVelocity(), Nektar::SolverUtils::MMFSystem::ComputencdotMF(), ComputeveldotMF(), Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection(), DoOdeProjection(), DoOdeRhs(), Nektar::SolverUtils::eCube, Nektar::SolverUtils::eIrregular, Nektar::SolverUtils::eNonconvex, Nektar::SolverUtils::ePlane, Nektar::SolverUtils::eSphere, Nektar::SolverUtils::eTRSphere, EvaluateAdvectionVelocity(), Nektar::SolverUtils::GetAdvectionFactory(), GetFluxVector(), Nektar::SolverUtils::EquationSystem::GetFunction(), GetNormalVelocity(), Nektar::SolverUtils::GetRiemannSolverFactory(), Nektar::SolverUtils::EquationSystem::GetTraceNpoints(), Nektar::SolverUtils::AdvectionSystem::m_advObject, m_advx, m_advy, m_advz, Nektar::SolverUtils::UnsteadySystem::m_explicitAdvection, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::UnsteadySystem::m_ode, Nektar::SolverUtils::MMFSystem::m_pi, m_riemannSolver, m_RotAngle, Nektar::SolverUtils::EquationSystem::m_session, Nektar::SolverUtils::MMFSystem::m_shapedim, Nektar::SolverUtils::EquationSystem::m_spacedim, Nektar::SolverUtils::MMFSystem::m_surfaceType, m_TestType, m_traceVn, m_veldotMF, m_vellc, m_velocity, m_VelProjection, m_waveFreq, Nektar::SolverUtils::MMFSystem::MMFInitObject(), Nektar::SolverUtils::MMFSystem::RootMeanSquare(), Nektar::SIZE_TestType, Nektar::TestTypeMap, Nektar::SolverUtils::UnsteadySystem::v_InitObject(), and Vmath::Vmul().
|
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 822 of file MMFAdvection.cpp.
References AdvectionBellPlane(), AdvectionBellSphere(), eAdvectionBell, Nektar::eTestCube, Nektar::eTestPlane, eTestPlaneMassConsv, Nektar::SolverUtils::EquationSystem::m_fields, m_Mass0, Nektar::SolverUtils::EquationSystem::m_sessionName, m_TestType, Test2Dproblem(), Test3Dproblem(), and Nektar::SolverUtils::EquationSystem::WriteFld().
|
protected |
Definition at line 535 of file MMFAdvection.cpp.
References Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetTraceNpoints(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::MMFSystem::m_movingframes, Nektar::SolverUtils::MMFSystem::m_ncdotMFBwd, Nektar::SolverUtils::MMFSystem::m_ncdotMFFwd, Nektar::SolverUtils::MMFSystem::m_shapedim, m_traceVn, Vmath::Neg(), Vmath::Vadd(), and Vmath::Vmul().
Referenced by DoOdeRhs().
|
friend |
Definition at line 52 of file MMFAdvection.h.
|
static |
Name of class.
Definition at line 78 of file MMFAdvection.h.
|
protected |
Definition at line 88 of file MMFAdvection.h.
Referenced by Test2Dproblem(), Test3Dproblem(), and v_InitObject().
|
protected |
Definition at line 88 of file MMFAdvection.h.
Referenced by Test2Dproblem(), Test3Dproblem(), and v_InitObject().
|
protected |
Definition at line 88 of file MMFAdvection.h.
Referenced by Test3Dproblem(), and v_InitObject().
|
protected |
Definition at line 91 of file MMFAdvection.h.
Referenced by v_DoSolve(), and v_SetInitialConditions().
|
protected |
Definition at line 103 of file MMFAdvection.h.
Referenced by MMFAdvection().
|
protected |
Definition at line 86 of file MMFAdvection.h.
Referenced by v_InitObject().
|
protected |
Definition at line 89 of file MMFAdvection.h.
Referenced by EvaluateAdvectionVelocity(), v_GenerateSummary(), and v_InitObject().
TestType Nektar::MMFAdvection::m_TestType |
Definition at line 80 of file MMFAdvection.h.
Referenced by v_EvaluateExactSolution(), v_GenerateSummary(), v_InitObject(), and v_SetInitialConditions().
Definition at line 96 of file MMFAdvection.h.
Referenced by GetNormalVelocity(), v_InitObject(), and WeakDGDirectionalAdvection().
Definition at line 98 of file MMFAdvection.h.
Referenced by v_InitObject().
Definition at line 99 of file MMFAdvection.h.
Referenced by v_InitObject().
Advection velocity.
Definition at line 95 of file MMFAdvection.h.
Referenced by ComputeNablaCdotVelocity(), ComputeveldotMF(), DoOdeRhs(), EvaluateAdvectionVelocity(), GetFluxVector(), GetNormalVelocity(), and v_InitObject().
|
protected |
Definition at line 92 of file MMFAdvection.h.
Referenced by EvaluateAdvectionVelocity(), and v_InitObject().
|
protected |
Definition at line 89 of file MMFAdvection.h.
Referenced by EvaluateAdvectionVelocity(), and v_InitObject().