Nektar++
|
#include <NonlinearPeregrine.h>
Static Public Member Functions | |
static SolverUtils::EquationSystemSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Creates an instance of this class. More... | |
![]() | |
static SolverUtils::EquationSystemSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Creates an instance of this class. More... | |
Public Attributes | |
ProblemType | m_problemType |
![]() | |
NekDouble | m_cflSafetyFactor |
CFL safety factor (comprise between 0 to 1). More... | |
NekDouble | m_cflNonAcoustic |
NekDouble | m_CFLGrowth |
CFL growth rate. More... | |
NekDouble | m_CFLEnd |
maximun cfl in cfl growth More... | |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
![]() | |
static std::string | className |
Name of class. More... | |
Protected Attributes | |
StdRegions::ConstFactorMap | m_factors |
Array< OneD, NekDouble > | m_dFwd |
Still water depth traces. More... | |
Array< OneD, NekDouble > | m_dBwd |
![]() | |
SolverUtils::RiemannSolverSharedPtr | m_riemannSolver |
SolverUtils::RiemannSolverSharedPtr | m_riemannSolverLDG |
SolverUtils::AdvectionSharedPtr | m_advection |
SolverUtils::DiffusionSharedPtr | m_diffusion |
bool | m_primitive |
Indicates if variables are primitive or conservative. More... | |
bool | m_constantDepth |
Indicates if constant depth case. More... | |
NekDouble | m_g |
Acceleration of gravity. More... | |
Array< OneD, NekDouble > | m_depth |
Still water depth. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_bottomSlope |
Array< OneD, NekDouble > | m_coriolis |
Coriolis force More... | |
Array< OneD, Array< OneD, NekDouble > > | m_vecLocs |
![]() | |
int | m_infosteps |
Number of time steps between outputting status information. More... | |
int | m_abortSteps |
Number of steps between checks for abort conditions. More... | |
int | m_filtersInfosteps |
Number of time steps between outputting filters information. More... | |
int | m_nanSteps |
LibUtilities::TimeIntegrationSchemeSharedPtr | m_intScheme |
Wrapper to the time integration scheme. More... | |
LibUtilities::TimeIntegrationSchemeOperators | m_ode |
The time integration scheme operators to use. More... | |
NekDouble | m_epsilon |
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... | |
bool | m_homoInitialFwd |
Flag to determine if simulation should start in homogeneous forward transformed state. More... | |
NekDouble | m_steadyStateTol |
Tolerance to which steady state should be evaluated at. More... | |
int | m_steadyStateSteps |
Check for steady state at step interval. More... | |
NekDouble | m_steadyStateRes = 1.0 |
NekDouble | m_steadyStateRes0 = 1.0 |
Array< OneD, Array< OneD, NekDouble > > | m_previousSolution |
Storage for previous solution for steady-state check. More... | |
std::ofstream | m_errFile |
std::vector< int > | m_intVariables |
std::vector< std::pair< std::string, FilterSharedPtr > > | m_filters |
NekDouble | m_filterTimeWarning |
Number of time steps between outputting status information. More... | |
NekDouble | m_TimeIntegLambda =0.0 |
coefff of spacial derivatives(rhs or m_F in GLM) in calculating the residual of the whole equation(used in unsteady time integrations) More... | |
bool | m_flagImplicitItsStatistics |
bool | m_flagImplicitSolver = false |
Array< OneD, NekDouble > | m_magnitdEstimat |
estimate the magnitude of each conserved varibles More... | |
Array< OneD, NekDouble > | m_locTimeStep |
local time step(notice only for jfnk other see m_cflSafetyFactor) More... | |
NekDouble | m_inArrayNorm =-1.0 |
int | m_TotLinItePerStep =0 |
int | m_StagesPerStep =1 |
bool | m_flagUpdatePreconMat |
int | m_maxLinItePerNewton |
int | m_TotNewtonIts =0 |
int | m_TotLinIts =0 |
int | m_TotImpStages =0 |
bool | m_CalcPhysicalAV = true |
flag to update artificial viscosity More... | |
![]() | |
LibUtilities::CommSharedPtr | m_comm |
Communicator. More... | |
bool | m_verbose |
bool | m_root |
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_timestepMax = -1.0 |
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_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... | |
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... | |
Private Attributes | |
NekDouble | m_const_depth |
Friends | |
class | MemoryManager< NonlinearPeregrine > |
Additional Inherited Members | |
![]() | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
![]() | |
static std::string | equationSystemTypeLookupIds [] |
Definition at line 58 of file NonlinearPeregrine.h.
|
virtual |
|
protected |
Definition at line 55 of file NonlinearPeregrine.cpp.
References Nektar::StdRegions::eFactorLambda, Nektar::StdRegions::eFactorTau, and m_factors.
|
private |
Definition at line 175 of file NonlinearPeregrine.cpp.
References ASSERTL0, Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, Nektar::MultiRegions::eMixed_CG_Discontinuous, Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::ShallowWaterSystem::m_coriolis, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_projectionType, Vmath::Neg(), Vmath::Vadd(), and Vmath::Vmul().
Referenced by DoOdeRhs().
|
private |
Definition at line 227 of file NonlinearPeregrine.cpp.
References ASSERTL0, Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, Nektar::MultiRegions::eMixed_CG_Discontinuous, Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::ShallowWaterSystem::m_bottomSlope, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::ShallowWaterSystem::m_g, Nektar::SolverUtils::EquationSystem::m_projectionType, Nektar::SolverUtils::EquationSystem::m_spacedim, Vmath::Smul(), Vmath::Vadd(), and Vmath::Vmul().
|
private |
Definition at line 751 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::ShallowWaterSystem::m_depth, Vmath::Vcopy(), Vmath::Vdiv(), and Vmath::Vsub().
|
inlinestatic |
Creates an instance of this class.
Definition at line 64 of file NonlinearPeregrine.h.
References CellMLToNektar.cellml_metadata::p.
|
protected |
Definition at line 494 of file NonlinearPeregrine.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, SetBoundaryConditions(), Nektar::SolverUtils::EquationSystem::SetBoundaryConditions(), and Vmath::Vcopy().
Referenced by v_InitObject().
|
protected |
Definition at line 271 of file NonlinearPeregrine.cpp.
References AddCoriolis(), ASSERTL0, Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, Nektar::MultiRegions::eMixed_CG_Discontinuous, Nektar::SolverUtils::EquationSystem::GetNcoeffs(), Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), Nektar::ShallowWaterSystem::m_advection, m_const_depth, Nektar::ShallowWaterSystem::m_constantDepth, Nektar::ShallowWaterSystem::m_coriolis, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_projectionType, Vmath::Neg(), NumericalFluxConsVariables(), NumericalFluxForcing(), SetBoundaryConditionsContVariables(), SetBoundaryConditionsForcing(), Vmath::Smul(), Vmath::Vadd(), Vmath::Vcopy(), and WCESolve().
Referenced by v_InitObject().
Definition at line 122 of file NonlinearPeregrine.h.
References m_dBwd.
Definition at line 118 of file NonlinearPeregrine.h.
References m_dFwd.
|
protected |
Definition at line 712 of file NonlinearPeregrine.cpp.
References GetVelocityVector(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::ShallowWaterSystem::m_g, Nektar::SolverUtils::EquationSystem::m_spacedim, Vmath::Smul(), Vmath::Vadd(), Vmath::Vcopy(), and Vmath::Vmul().
Referenced by v_InitObject().
|
private |
Compute the velocity field \( \mathbf{v} \) given the momentum \( h\mathbf{v} \).
physfield | Momentum field. |
velocity | Velocity field. |
Definition at line 874 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::m_spacedim, and Vmath::Vdiv().
Referenced by GetFluxVector().
|
private |
Definition at line 1164 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::ShallowWaterSystem::m_g, Vmath::Sadd(), tinysimd::sqrt(), Vmath::Vcopy(), and Vmath::Vmul().
Referenced by v_SetInitialConditions().
|
private |
|
private |
|
private |
Definition at line 1130 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), and Nektar::SolverUtils::EquationSystem::m_fields.
Referenced by DoOdeRhs().
|
private |
Definition at line 921 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), and Nektar::SolverUtils::EquationSystem::m_fields.
Referenced by DoOdeRhs().
|
private |
Definition at line 807 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::ShallowWaterSystem::m_depth, Vmath::Vadd(), Vmath::Vcopy(), and Vmath::Vmul().
|
private |
Definition at line 539 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), Nektar::SolverUtils::EquationSystem::m_fields, and WallBoundary2D().
Referenced by DoOdeProjection().
|
private |
Definition at line 1071 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, and WallBoundaryContVariables().
Referenced by DoOdeRhs().
|
private |
Definition at line 959 of file NonlinearPeregrine.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::m_fields, and WallBoundaryForcing().
Referenced by DoOdeRhs().
|
protectedvirtual |
Reimplemented from Nektar::ShallowWaterSystem.
Definition at line 790 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::ShallowWaterSystem::m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Vdiv(), and Vmath::Vsub().
|
protectedvirtual |
Print a summary of time stepping parameters.
Reimplemented from Nektar::ShallowWaterSystem.
Definition at line 886 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::AddSummaryItem(), and Nektar::ShallowWaterSystem::v_GenerateSummary().
|
protectedvirtual |
Init object for UnsteadySystem class.
Initialization object for UnsteadySystem class.
Reimplemented from Nektar::ShallowWaterSystem.
Definition at line 66 of file NonlinearPeregrine.cpp.
References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection(), DoOdeProjection(), DoOdeRhs(), Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, Nektar::SolverUtils::GetAdvectionFactory(), Nektar::ShallowWaterSystem::GetDepth(), GetFluxVector(), Nektar::ShallowWaterSystem::GetGravity(), Nektar::ShallowWaterSystem::GetNormals(), Nektar::SolverUtils::GetRiemannSolverFactory(), Nektar::ShallowWaterSystem::GetVecLocs(), Nektar::ShallowWaterSystem::m_advection, m_const_depth, Nektar::SolverUtils::UnsteadySystem::m_explicitAdvection, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::UnsteadySystem::m_ode, m_problemType, Nektar::SolverUtils::EquationSystem::m_projectionType, Nektar::ShallowWaterSystem::m_riemannSolver, Nektar::SolverUtils::EquationSystem::m_session, Nektar::ProblemTypeMap, Nektar::SIZE_ProblemType, and Nektar::ShallowWaterSystem::v_InitObject().
|
protectedvirtual |
Reimplemented from Nektar::ShallowWaterSystem.
Definition at line 850 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTotPoints(), Nektar::ShallowWaterSystem::m_depth, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Vadd(), and Vmath::Vmul().
|
protectedvirtual |
Set the initial conditions.
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 1213 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::Checkpoint_Output(), Nektar::eSolitaryWave, LaitoneSolitaryWave(), m_const_depth, m_problemType, and Nektar::SolverUtils::EquationSystem::v_SetInitialConditions().
|
private |
Wall boundary condition.
Definition at line 583 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_spacedim, Nektar::SolverUtils::EquationSystem::m_traceNormals, Vmath::Smul(), Vmath::Vcopy(), and Vmath::Vvtvp().
|
private |
Definition at line 631 of file NonlinearPeregrine.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::m_expdim, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_traceNormals, Vmath::Neg(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vvtvm(), and Vmath::Vvtvp().
Referenced by SetBoundaryConditions().
|
private |
Definition at line 1098 of file NonlinearPeregrine.cpp.
References Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), Nektar::SolverUtils::EquationSystem::m_fields, and Vmath::Vcopy().
Referenced by SetBoundaryConditionsContVariables().
|
private |
Definition at line 987 of file NonlinearPeregrine.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), Nektar::SolverUtils::EquationSystem::m_expdim, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_traceNormals, Vmath::Neg(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vvtvm(), and Vmath::Vvtvp().
Referenced by SetBoundaryConditionsForcing().
|
private |
Definition at line 895 of file NonlinearPeregrine.cpp.
References Nektar::StdRegions::eFactorLambda, Nektar::SolverUtils::EquationSystem::GetTotPoints(), m_factors, Nektar::SolverUtils::EquationSystem::m_fields, and Vmath::Vcopy().
Referenced by DoOdeRhs().
|
friend |
Definition at line 51 of file NonlinearPeregrine.h.
|
static |
Name of class.
Definition at line 74 of file NonlinearPeregrine.h.
|
private |
Definition at line 128 of file NonlinearPeregrine.h.
Referenced by DoOdeRhs(), v_InitObject(), and v_SetInitialConditions().
Definition at line 91 of file NonlinearPeregrine.h.
Referenced by GetDepthBwd().
Still water depth traces.
Definition at line 90 of file NonlinearPeregrine.h.
Referenced by GetDepthFwd().
|
protected |
Definition at line 82 of file NonlinearPeregrine.h.
Referenced by NonlinearPeregrine(), and WCESolve().
ProblemType Nektar::NonlinearPeregrine::m_problemType |
Definition at line 79 of file NonlinearPeregrine.h.
Referenced by v_InitObject(), and v_SetInitialConditions().