Nektar++
|
This class is the base class for Navier Stokes problems. More...
#include <IncNavierStokes.h>
Protected Member Functions | |
IncNavierStokes (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) | |
Constructor. More... | |
EquationType | GetEquationType (void) |
void | EvaluateAdvectionTerms (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
void | WriteModalEnergy (void) |
void | SetBoundaryConditions (NekDouble time) |
time dependent boundary conditions updating More... | |
void | SetRadiationBoundaryForcing (int fieldid) |
Set Radiation forcing term. More... | |
void | SetZeroNormalVelocity () |
Set Normal Velocity Component to Zero. More... | |
void | SetWomersleyBoundary (const int fldid, const int bndid) |
Set Womersley Profile if specified. More... | |
void | SetUpWomersley (const int fldid, const int bndid, std::string womstr) |
Set Up Womersley details. More... | |
void | SetMovingReferenceFrameBCs (const NekDouble &time) |
Set the moving reference frame boundary conditions. More... | |
void | SetMRFWallBCs (const NekDouble &time) |
void | SetMRFDomainVelBCs (const NekDouble &time) |
virtual MultiRegions::ExpListSharedPtr | v_GetPressure () override |
virtual void | v_TransCoeffToPhys (void) override |
Virtual function for transformation to physical space. More... | |
virtual void | v_TransPhysToCoeff (void) override |
Virtual function for transformation to coefficient space. More... | |
virtual int | v_GetForceDimension ()=0 |
virtual Array< OneD, NekDouble > | v_GetMaxStdVelocity (const NekDouble SpeedSoundFactor) override |
virtual bool | v_PreIntegrate (int step) override |
![]() | |
virtual SOLVER_UTILS_EXPORT bool | v_PostIntegrate (int step) override |
virtual SOLVER_UTILS_EXPORT Array< OneD, NekDouble > | v_GetMaxStdVelocity (const NekDouble SpeedSoundFactor=1.0) |
![]() | |
SOLVER_UTILS_EXPORT | UnsteadySystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises UnsteadySystem class members. More... | |
virtual SOLVER_UTILS_EXPORT void | v_InitObject (bool DeclareField=true) override |
Init object for UnsteadySystem class. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoSolve () override |
Solves an unsteady problem. More... | |
virtual SOLVER_UTILS_EXPORT void | v_PrintStatusInformation (const int step, const NekDouble cpuTime) |
Print Status Information. More... | |
virtual SOLVER_UTILS_EXPORT void | v_PrintSummaryStatistics (const NekDouble intTime) |
Print Summary Statistics. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoInitialise (bool dumpInitialConditions=true) override |
Sets up initial conditions. More... | |
virtual SOLVER_UTILS_EXPORT void | v_GenerateSummary (SummaryList &s) override |
Print a summary of time stepping parameters. More... | |
virtual SOLVER_UTILS_EXPORT NekDouble | v_GetTimeStep (const Array< OneD, const Array< OneD, NekDouble > > &inarray) |
Return the timestep to be used for the next step in the time-marching loop. More... | |
virtual SOLVER_UTILS_EXPORT bool | v_PreIntegrate (int step) |
virtual SOLVER_UTILS_EXPORT bool | v_PostIntegrate (int step) |
virtual SOLVER_UTILS_EXPORT bool | v_RequireFwdTrans () |
virtual SOLVER_UTILS_EXPORT void | v_SteadyStateResidual (int step, Array< OneD, NekDouble > &L2) |
virtual SOLVER_UTILS_EXPORT bool | v_UpdateTimeStepCheck () |
SOLVER_UTILS_EXPORT NekDouble | MaxTimeStepEstimator () |
Get the maximum timestep estimator for cfl control. More... | |
SOLVER_UTILS_EXPORT void | CheckForRestartTime (NekDouble &time, int &nchk) |
SOLVER_UTILS_EXPORT void | SVVVarDiffCoeff (const Array< OneD, Array< OneD, NekDouble > > vel, StdRegions::VarCoeffMap &varCoeffMap) |
Evaluate the SVV diffusion coefficient according to Moura's paper where it should proportional to h time velocity. More... | |
SOLVER_UTILS_EXPORT void | DoDummyProjection (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
Perform dummy projection. More... | |
![]() | |
SOLVER_UTILS_EXPORT | EquationSystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises EquationSystem class members. More... | |
virtual SOLVER_UTILS_EXPORT void | v_InitObject (bool DeclareFeld=true) |
Initialisation object for EquationSystem. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoInitialise (bool dumpInitialConditions=true) |
Virtual function for initialisation implementation. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoSolve () |
Virtual function for solve implementation. More... | |
virtual SOLVER_UTILS_EXPORT NekDouble | v_LinfError (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray) |
Virtual function for the L_inf error computation between fields and a given exact solution. More... | |
virtual SOLVER_UTILS_EXPORT NekDouble | v_L2Error (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray, bool Normalised=false) |
Virtual function for the L_2 error computation between fields and a given exact solution. More... | |
virtual SOLVER_UTILS_EXPORT void | v_TransCoeffToPhys () |
Virtual function for transformation to physical space. More... | |
virtual SOLVER_UTILS_EXPORT void | v_TransPhysToCoeff () |
Virtual function for transformation to coefficient space. More... | |
virtual SOLVER_UTILS_EXPORT void | v_GenerateSummary (SummaryList &l) |
Virtual function for generating summary information. More... | |
virtual SOLVER_UTILS_EXPORT void | v_SetInitialConditions (NekDouble initialtime=0.0, bool dumpInitialConditions=true, const int domain=0) |
virtual SOLVER_UTILS_EXPORT void | v_EvaluateExactSolution (unsigned int field, Array< OneD, NekDouble > &outfield, const NekDouble time) |
virtual SOLVER_UTILS_EXPORT void | v_Output (void) |
virtual SOLVER_UTILS_EXPORT MultiRegions::ExpListSharedPtr | v_GetPressure (void) |
virtual SOLVER_UTILS_EXPORT bool | v_NegatedOp (void) |
Virtual function to identify if operator is negated in DoSolve. More... | |
virtual SOLVER_UTILS_EXPORT void | v_ExtraFldOutput (std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables) |
![]() | |
virtual SOLVER_UTILS_EXPORT void | v_GetVelocity (const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &velocity)=0 |
virtual SOLVER_UTILS_EXPORT bool | v_HasConstantDensity ()=0 |
virtual SOLVER_UTILS_EXPORT void | v_GetDensity (const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, NekDouble > &density)=0 |
virtual SOLVER_UTILS_EXPORT void | v_GetPressure (const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, NekDouble > &pressure)=0 |
virtual SOLVER_UTILS_EXPORT void | v_SetMovingFrameVelocities (const Array< OneD, NekDouble > &vFrameVels) |
virtual SOLVER_UTILS_EXPORT void | v_GetMovingFrameVelocities (Array< OneD, NekDouble > &vFrameVels) |
virtual SOLVER_UTILS_EXPORT void | v_SetMovingFrameProjectionMat (const boost::numeric::ublas::matrix< NekDouble > &vProjMat) |
virtual SOLVER_UTILS_EXPORT void | v_GetMovingFrameProjectionMat (boost::numeric::ublas::matrix< NekDouble > &vProjMat) |
virtual SOLVER_UTILS_EXPORT void | v_SetMovingFrameAngles (const Array< OneD, NekDouble > &vFrameTheta) |
virtual SOLVER_UTILS_EXPORT void | v_GetMovingFrameAngles (Array< OneD, NekDouble > &vFrameTheta) |
Protected Attributes | |
ExtrapolateSharedPtr | m_extrapolation |
std::ofstream | m_mdlFile |
modal energy file More... | |
bool | m_SmoothAdvection |
bool to identify if advection term smoothing is requested More... | |
std::vector< SolverUtils::ForcingSharedPtr > | m_forcing |
Forcing terms. More... | |
int | m_nConvectiveFields |
Number of fields to be convected;. More... | |
Array< OneD, int > | m_velocity |
int which identifies which components of m_fields contains the velocity (u,v,w); More... | |
MultiRegions::ExpListSharedPtr | m_pressure |
Pointer to field holding pressure field. More... | |
NekDouble | m_kinvis |
Kinematic viscosity. More... | |
int | m_energysteps |
dump energy to file at steps time More... | |
EquationType | m_equationType |
equation type; More... | |
Array< OneD, Array< OneD, int > > | m_fieldsBCToElmtID |
Mapping from BCs to Elmt IDs. More... | |
Array< OneD, Array< OneD, int > > | m_fieldsBCToTraceID |
Mapping from BCs to Elmt Edge IDs. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_fieldsRadiationFactor |
RHS Factor for Radiation Condition. More... | |
int | m_intSteps |
Number of time integration steps AND Order of extrapolation for pressure boundary conditions. More... | |
Array< OneD, NekDouble > | m_pivotPoint |
std::map< int, std::map< int, WomersleyParamsSharedPtr > > | m_womersleyParams |
Womersley parameters if required. More... | |
![]() | |
SolverUtils::AdvectionSharedPtr | m_advObject |
Advection term. More... | |
![]() | |
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... | |
Static Protected Attributes | |
static std::string | eqTypeLookupIds [] |
![]() | |
static std::string | equationSystemTypeLookupIds [] |
static std::string | projectionTypeLookupIds [] |
Additional Inherited Members | |
![]() | |
static std::string | cmdSetStartTime |
static std::string | cmdSetStartChkNum |
![]() | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
This class is the base class for Navier Stokes problems.
Definition at line 146 of file IncNavierStokes.h.
|
virtual |
|
protected |
Constructor.
Constructor. Creates ...
param
Definition at line 83 of file IncNavierStokes.cpp.
void Nektar::IncNavierStokes::AddForcing | ( | const SolverUtils::ForcingSharedPtr & | pForce | ) |
Add an additional forcing term programmatically.
Definition at line 1131 of file IncNavierStokes.cpp.
References m_forcing.
Referenced by Nektar::VortexWaveInteraction::ExecuteRoll().
bool Nektar::IncNavierStokes::DefinedForcing | ( | const std::string & | sForce | ) |
Function to check the type of forcing
Definition at line 1308 of file IncNavierStokes.cpp.
References Nektar::SolverUtils::EquationSystem::m_session.
Referenced by GetPivotPoint(), and v_InitObject().
|
protected |
Evaluation -N(V) for all fields except pressure using m_velocity
Definition at line 399 of file IncNavierStokes.cpp.
References Nektar::SolverUtils::AdvectionSystem::m_advObject, Nektar::SolverUtils::EquationSystem::m_fields, m_forcing, m_nConvectiveFields, m_velocity, and Vmath::Vcopy().
Referenced by Nektar::CoupledLinearNS::EvaluateAdvection(), Nektar::CoupledLinearNS::EvaluateNewtonRHS(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSImplicit::v_SetUpPressureForcing(), and Nektar::VCSImplicit::v_SetUpViscousForcing().
|
inlineprotected |
Definition at line 245 of file IncNavierStokes.h.
References m_equationType.
|
inline |
Definition at line 155 of file IncNavierStokes.h.
References m_nConvectiveFields.
Get the pivot point for moving reference
Definition at line 1345 of file IncNavierStokes.cpp.
References DefinedForcing(), Nektar::LibUtilities::Equation::Evaluate(), Nektar::SolverUtils::EquationSystem::m_session, and Nektar::SolverUtils::EquationSystem::m_spacedim.
Referenced by v_InitObject().
time dependent boundary conditions updating
Time dependent boundary conditions updating
Definition at line 424 of file IncNavierStokes.cpp.
References Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_session, SetMovingReferenceFrameBCs(), SetRadiationBoundaryForcing(), SetWomersleyBoundary(), and SetZeroNormalVelocity().
Referenced by Nektar::VelocityCorrectionScheme::v_DoInitialise(), and v_PreIntegrate().
Set the moving reference frame boundary conditions.
Set boundary conditions for moving frame of reference
Definition at line 906 of file IncNavierStokes.cpp.
References SetMRFDomainVelBCs(), and SetMRFWallBCs().
Referenced by SetBoundaryConditions().
Set inlet boundary conditions for moving frame of reference
Definition at line 1032 of file IncNavierStokes.cpp.
References Nektar::MultiRegions::e3DH1D, Nektar::SpatialDomains::eDirichlet, Nektar::LibUtilities::Equation::Evaluate(), Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_movingFrameProjMat, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, Vmath::Svtvp(), and Vmath::Vmul().
Referenced by SetMovingReferenceFrameBCs().
Set Wall boundary conditions for moving frame of reference
Definition at line 915 of file IncNavierStokes.cpp.
References Nektar::MultiRegions::e3DH1D, Nektar::SpatialDomains::eDirichlet, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_movingFrameVelsxyz, m_pivotPoint, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, Vmath::Sadd(), Vmath::Smul(), Vmath::Svtsvtp(), Vmath::Svtvp(), and Vmath::Vmul().
Referenced by SetMovingReferenceFrameBCs().
|
protected |
Set Radiation forcing term.
Probably should be pushed back into ContField?
Definition at line 460 of file IncNavierStokes.cpp.
References Nektar::SpatialDomains::eRobin, Nektar::SolverUtils::EquationSystem::GetPhys_Offset(), Nektar::SolverUtils::EquationSystem::m_fields, m_fieldsBCToElmtID, m_fieldsBCToTraceID, m_fieldsRadiationFactor, m_velocity, and Vmath::Vmul().
Referenced by SetBoundaryConditions().
|
protected |
Set Up Womersley details.
Error value returned by TinyXML.
Definition at line 679 of file IncNavierStokes.cpp.
References ASSERTL0, ASSERTL1, Nektar::ParseUtils::GenerateVector(), Polylib::ImagBesselComp(), Nektar::SolverUtils::EquationSystem::m_fields, m_kinvis, m_womersleyParams, Nektar::LibUtilities::rad(), tinysimd::sqrt(), and Nektar::UnitTests::z().
Referenced by v_InitObject().
|
protected |
Set Womersley Profile if specified.
Womersley boundary condition defintion
Definition at line 610 of file IncNavierStokes.cpp.
References ASSERTL1, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_time, m_womersleyParams, Vmath::Smul(), and tinysimd::sqrt().
Referenced by SetBoundaryConditions().
|
protected |
Set Normal Velocity Component to Zero.
Definition at line 522 of file IncNavierStokes.cpp.
References Nektar::SpatialDomains::eDirichlet, Nektar::SolverUtils::EquationSystem::m_fields, m_fieldsBCToElmtID, m_fieldsBCToTraceID, Nektar::SolverUtils::EquationSystem::m_spacedim, m_velocity, Vmath::Neg(), and Vmath::Vvtvp().
Referenced by SetBoundaryConditions().
|
overridevirtual |
Implements Nektar::SolverUtils::FluidInterface.
Definition at line 1186 of file IncNavierStokes.cpp.
References Vmath::Fill().
|
protectedpure virtual |
Implemented in Nektar::VelocityCorrectionScheme, and Nektar::CoupledLinearNS.
Referenced by v_InitObject().
|
overrideprotectedvirtual |
Reimplemented from Nektar::SolverUtils::AdvectionSystem.
Definition at line 1139 of file IncNavierStokes.cpp.
References Nektar::SolverUtils::EquationSystem::eHomogeneous1D, m_extrapolation, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::SolverUtils::EquationSystem::m_HomogeneousType, and m_velocity.
|
overridevirtual |
Function to get the angles between the moving frame of reference and stationary inertial reference frame
Reimplemented from Nektar::SolverUtils::FluidInterface.
Definition at line 1294 of file IncNavierStokes.cpp.
References ASSERTL0, and Nektar::SolverUtils::EquationSystem::m_movingFrameTheta.
|
overridevirtual |
Definition at line 1256 of file IncNavierStokes.cpp.
References ASSERTL0, and Nektar::SolverUtils::EquationSystem::m_movingFrameProjMat.
|
overridevirtual |
Reimplemented from Nektar::SolverUtils::FluidInterface.
Definition at line 1222 of file IncNavierStokes.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::m_movingFrameVelsxyz, and Vmath::Vcopy().
|
inlineoverrideprotectedvirtual |
Reimplemented from Nektar::SolverUtils::EquationSystem.
Definition at line 280 of file IncNavierStokes.h.
References m_pressure.
|
overridevirtual |
Implements Nektar::SolverUtils::FluidInterface.
Definition at line 1176 of file IncNavierStokes.cpp.
References m_nConvectiveFields, and CG_Iterations::pressure.
|
overridevirtual |
Implements Nektar::SolverUtils::FluidInterface.
Definition at line 1197 of file IncNavierStokes.cpp.
References Nektar::SolverUtils::EquationSystem::m_spacedim.
|
inlineoverridevirtual |
Implements Nektar::SolverUtils::FluidInterface.
Definition at line 170 of file IncNavierStokes.h.
|
overridevirtual |
Init object for UnsteadySystem class.
Initialization object for UnsteadySystem class.
Reimplemented from Nektar::SolverUtils::AdvectionSystem.
Reimplemented in Nektar::CoupledLinearNS, Nektar::SmoothedProfileMethod, Nektar::VCSMapping, and Nektar::VelocityCorrectionScheme.
Definition at line 91 of file IncNavierStokes.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), DefinedForcing(), Nektar::SpatialDomains::eDirichlet, Nektar::eEquationTypeSize, Nektar::SpatialDomains::eRobin, Nektar::eSteadyLinearisedNS, Nektar::eSteadyNavierStokes, Nektar::eUnsteadyLinearisedNS, Nektar::eUnsteadyNavierStokes, Nektar::eUnsteadyStokes, Nektar::LibUtilities::Equation::Evaluate(), Nektar::SolverUtils::GetAdvectionFactory(), GetPivotPoint(), Nektar::kEquationTypeStr, Nektar::SolverUtils::Forcing::Load(), Nektar::SolverUtils::AdvectionSystem::m_advObject, Nektar::SolverUtils::EquationSystem::m_boundaryConditions, m_equationType, Nektar::SolverUtils::EquationSystem::m_fieldMetaDataMap, Nektar::SolverUtils::EquationSystem::m_fields, m_fieldsBCToElmtID, m_fieldsBCToTraceID, m_fieldsRadiationFactor, m_forcing, m_kinvis, Nektar::SolverUtils::EquationSystem::m_movingFrameProjMat, Nektar::SolverUtils::EquationSystem::m_movingFrameTheta, Nektar::SolverUtils::EquationSystem::m_movingFrameVelsxyz, m_pivotPoint, Nektar::SolverUtils::EquationSystem::m_session, Nektar::SolverUtils::EquationSystem::m_spacedim, Nektar::SolverUtils::EquationSystem::m_time, Nektar::SolverUtils::EquationSystem::m_timestep, m_velocity, m_womersleyParams, Nektar::LibUtilities::NullFieldMetaDataMap, SetUpWomersley(), v_GetForceDimension(), and Nektar::SolverUtils::AdvectionSystem::v_InitObject().
Referenced by Nektar::CoupledLinearNS::v_InitObject(), and Nektar::VelocityCorrectionScheme::v_InitObject().
|
overrideprotectedvirtual |
Perform the extrapolation.
Reimplemented from Nektar::SolverUtils::UnsteadySystem.
Definition at line 1397 of file IncNavierStokes.cpp.
References m_extrapolation, Nektar::SolverUtils::EquationSystem::m_time, Nektar::SolverUtils::EquationSystem::m_timestep, and SetBoundaryConditions().
|
overridevirtual |
Function to set the angles between the moving frame of reference and stationary inertial reference frame
Reimplemented from Nektar::SolverUtils::FluidInterface.
Definition at line 1279 of file IncNavierStokes.cpp.
References ASSERTL0, and Nektar::SolverUtils::EquationSystem::m_movingFrameTheta.
|
overridevirtual |
Function to set the rotation matrix computed in the forcing this gives access to the moving reference forcing to set the Projection matrix to be used later in IncNavierStokes calss for enforcing the boundary conditions
Definition at line 1238 of file IncNavierStokes.cpp.
References ASSERTL0, and Nektar::SolverUtils::EquationSystem::m_movingFrameProjMat.
|
overridevirtual |
Function to set the moving frame velocities calucated in the forcing this gives access to the moving reference forcing to set the velocities to be later used in enforcing the boundary condition in IncNavierStokes class
Reimplemented from Nektar::SolverUtils::FluidInterface.
Definition at line 1213 of file IncNavierStokes.cpp.
References ASSERTL0, Nektar::SolverUtils::EquationSystem::m_movingFrameVelsxyz, and Vmath::Vcopy().
Virtual function for transformation to physical space.
Reimplemented from Nektar::SolverUtils::EquationSystem.
Reimplemented in Nektar::CoupledLinearNS, and Nektar::VelocityCorrectionScheme.
Definition at line 285 of file IncNavierStokes.h.
References ASSERTL0.
Virtual function for transformation to coefficient space.
Reimplemented from Nektar::SolverUtils::EquationSystem.
Reimplemented in Nektar::CoupledLinearNS, and Nektar::VelocityCorrectionScheme.
Definition at line 290 of file IncNavierStokes.h.
References ASSERTL0.
|
staticprotected |
Definition at line 249 of file IncNavierStokes.h.
|
protected |
dump energy to file at steps time
Definition at line 221 of file IncNavierStokes.h.
|
protected |
equation type;
Definition at line 224 of file IncNavierStokes.h.
Referenced by GetEquationType(), Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoSolve(), Nektar::CoupledLinearNS::v_InitObject(), and v_InitObject().
|
protected |
Definition at line 198 of file IncNavierStokes.h.
Referenced by Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSImplicit::v_EvaluateAdvection_SetPressureBCs(), Nektar::VelocityCorrectionScheme::v_GenerateSummary(), Nektar::VCSImplicit::v_GenerateSummary(), Nektar::VCSWeakPressure::v_GenerateSummary(), v_GetMaxStdVelocity(), Nektar::CoupledLinearNS::v_InitObject(), Nektar::VCSMapping::v_InitObject(), v_PreIntegrate(), Nektar::VCSMapping::v_SetUpPressureForcing(), Nektar::VelocityCorrectionScheme::v_SolvePressure(), Nektar::VCSMapping::v_SolvePressure(), Nektar::VCSImplicit::v_SolvePressure(), Nektar::VCSWeakPressure::v_SolvePressure(), Nektar::VelocityCorrectionScheme::v_SolveUnsteadyStokesSystem(), and Nektar::SmoothedProfileMethod::v_SolveUnsteadyStokesSystem().
Mapping from BCs to Elmt IDs.
Definition at line 227 of file IncNavierStokes.h.
Referenced by SetRadiationBoundaryForcing(), SetZeroNormalVelocity(), and v_InitObject().
Mapping from BCs to Elmt Edge IDs.
Definition at line 229 of file IncNavierStokes.h.
Referenced by SetRadiationBoundaryForcing(), SetZeroNormalVelocity(), and v_InitObject().
RHS Factor for Radiation Condition.
Definition at line 231 of file IncNavierStokes.h.
Referenced by SetRadiationBoundaryForcing(), and v_InitObject().
|
protected |
Forcing terms.
Definition at line 207 of file IncNavierStokes.h.
Referenced by AddForcing(), Nektar::CoupledLinearNS::EvaluateAdvection(), EvaluateAdvectionTerms(), Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::CoupledLinearNS::Solve(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), v_InitObject(), Nektar::VCSImplicit::v_SetUpPressureForcing(), and Nektar::VCSImplicit::v_SetUpViscousForcing().
|
protected |
Number of time integration steps AND Order of extrapolation for pressure boundary conditions.
Definition at line 235 of file IncNavierStokes.h.
Referenced by Nektar::VCSMapping::v_InitObject().
|
protected |
Kinematic viscosity.
Definition at line 219 of file IncNavierStokes.h.
Referenced by Nektar::VelocityCorrectionScheme::AppendSVVFactors(), Nektar::VCSMapping::ApplyIncNSMappingForcing(), Nektar::CoupledLinearNS::Continuation(), Nektar::CoupledLinearNS::EvaluateNewtonRHS(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::VelocityCorrectionScheme::SetUpSVV(), SetUpWomersley(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::VCSMapping::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoSolve(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSImplicit::v_EvaluateAdvection_SetPressureBCs(), v_InitObject(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::VCSMapping::v_SetUpPressureForcing(), Nektar::VCSMapping::v_SetUpViscousForcing(), Nektar::VelocityCorrectionScheme::v_SolvePressure(), Nektar::VCSImplicit::v_SolvePressure(), Nektar::VCSWeakPressure::v_SolvePressure(), Nektar::VelocityCorrectionScheme::v_SolveUnsteadyStokesSystem(), Nektar::SmoothedProfileMethod::v_SolveUnsteadyStokesSystem(), and Nektar::VCSMapping::v_SolveViscous().
|
protected |
modal energy file
Definition at line 201 of file IncNavierStokes.h.
|
protected |
Number of fields to be convected;.
Definition at line 210 of file IncNavierStokes.h.
Referenced by Nektar::VCSMapping::ApplyIncNSMappingForcing(), EvaluateAdvectionTerms(), GetNConvectiveFields(), Nektar::VCSMapping::MappingAccelerationCorrection(), Nektar::VCSMapping::MappingAdvectionCorrection(), Nektar::VCSMapping::MappingPressureCorrection(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::VelocityCorrectionScheme::SetUpSVV(), Nektar::CoupledLinearNS::SolveUnsteadyStokesSystem(), Nektar::VCSMapping::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), v_GetPressure(), Nektar::CoupledLinearNS::v_InitObject(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::VCSMapping::v_SetUpPressureForcing(), Nektar::VelocityCorrectionScheme::v_SetUpViscousForcing(), Nektar::VCSImplicit::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SolvePressure(), Nektar::VelocityCorrectionScheme::v_SolveViscous(), Nektar::VCSMapping::v_SolveViscous(), and Nektar::VCSImplicit::v_SolveViscous().
Definition at line 239 of file IncNavierStokes.h.
Referenced by SetMRFWallBCs(), and v_InitObject().
|
protected |
Pointer to field holding pressure field.
Definition at line 217 of file IncNavierStokes.h.
Referenced by Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::SmoothedProfileMethod::SetUpExpansions(), Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::CoupledLinearNS::SolveLinearNS(), Nektar::VCSMapping::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), v_GetPressure(), Nektar::CoupledLinearNS::v_InitObject(), Nektar::VCSMapping::v_InitObject(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::CoupledLinearNS::v_Output(), Nektar::VCSImplicit::v_SetUpPressureForcing(), Nektar::VCSWeakPressure::v_SetUpPressureForcing(), Nektar::VelocityCorrectionScheme::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SetUpViscousForcing(), Nektar::VCSImplicit::v_SetUpViscousForcing(), Nektar::VelocityCorrectionScheme::v_SolvePressure(), Nektar::VCSMapping::v_SolvePressure(), Nektar::VCSImplicit::v_SolvePressure(), Nektar::VCSWeakPressure::v_SolvePressure(), and Nektar::SmoothedProfileMethod::v_SolveUnsteadyStokesSystem().
|
protected |
bool to identify if advection term smoothing is requested
Definition at line 204 of file IncNavierStokes.h.
Referenced by Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), and Nektar::VelocityCorrectionScheme::v_InitObject().
int which identifies which components of m_fields contains the velocity (u,v,w);
Definition at line 214 of file IncNavierStokes.h.
Referenced by Nektar::CoupledLinearNS::Continuation(), Nektar::CoupledLinearNS::DefineForcingTerm(), EvaluateAdvectionTerms(), Nektar::CoupledLinearNS::EvaluateNewtonRHS(), Nektar::CoupledLinearNS::InfNorm(), Nektar::CoupledLinearNS::L2Norm(), Nektar::SmoothedProfileMethod::ReadPhi(), Nektar::SmoothedProfileMethod::SetCorrectionPressureBCs(), SetMRFDomainVelBCs(), SetMRFWallBCs(), SetRadiationBoundaryForcing(), Nektar::SmoothedProfileMethod::SetUpCorrectionPressure(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::SmoothedProfileMethod::SetUpExpansions(), Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::VelocityCorrectionScheme::SetUpSVV(), SetZeroNormalVelocity(), Nektar::CoupledLinearNS::Solve(), Nektar::SmoothedProfileMethod::SolveCorrectedVelocity(), Nektar::CoupledLinearNS::SolveLinearNS(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::CoupledLinearNS::SolveUnsteadyStokesSystem(), Nektar::SmoothedProfileMethod::UpdateForcing(), Nektar::VCSImplicit::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::VCSImplicit::v_EvaluateAdvection_SetPressureBCs(), v_GetMaxStdVelocity(), Nektar::CoupledLinearNS::v_InitObject(), v_InitObject(), Nektar::SmoothedProfileMethod::v_InitObject(), Nektar::VCSMapping::v_InitObject(), Nektar::VelocityCorrectionScheme::v_SetUpPressureForcing(), Nektar::VCSImplicit::v_SetUpPressureForcing(), Nektar::VelocityCorrectionScheme::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SetUpViscousForcing(), Nektar::VCSImplicit::v_SetUpViscousForcing(), and Nektar::VCSImplicit::v_SolveViscous().
|
protected |
Womersley parameters if required.
Definition at line 278 of file IncNavierStokes.h.
Referenced by SetUpWomersley(), SetWomersleyBoundary(), and v_InitObject().