Nektar++
|
#include <SmoothedProfileMethod.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 Public Member Functions inherited from Nektar::VelocityCorrectionScheme | |
static SolverUtils::EquationSystemSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Creates an instance of this class. More... | |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
Static Public Attributes inherited from Nektar::VelocityCorrectionScheme | |
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 Member Functions | |
void | v_SolveUnsteadyStokesSystem (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, NekDouble a_iixDt) override |
Linear terms due to pressure and visosity are calculated here. After solving the velocity filed without taking into account the immersed boundaries, a new correction is applied through the force \(f_s\): More... | |
void | SetUpCorrectionPressure (const Array< OneD, const Array< OneD, NekDouble > > &fields, Array< OneD, Array< OneD, NekDouble > > &Forcing) |
Sets the forcing term of the equation for the correction pressure \(p_p\): More... | |
void | SolveCorrectionPressure (const Array< OneD, NekDouble > &Forcing) |
Solves the Poisson equation for the correction pressure \(p_p\): More... | |
void | SolveCorrectedVelocity (Array< OneD, Array< OneD, NekDouble > > &Forcing, Array< OneD, Array< OneD, NekDouble > > &fields, NekDouble dt) |
Corrects the velocity field so that the IBs are taken into account. Solves the explicit equation: More... | |
void | SetCorrectionPressureBCs () |
Updates the BCs for boundaries with Neumann or periodic BCs in the pressure: More... | |
void | UpdatePhiUp (NekDouble time) |
Calculates the values of the shape function. More... | |
void | UpdateForcing (const Array< OneD, const Array< OneD, NekDouble > > &fields, NekDouble dt) |
For a body with a velocity \(\mathbf{u_p}\), the force \(\mathbf{f_s}\) applied to the fluid ensures that the IBC are met: More... | |
bool | GetVarTimeDependence (std::string funcName, std::string attrName) |
True if the function is timedependent, false otherwise. More... | |
TiXmlElement * | GetFunctionHdl (std::string functionName) |
Returns a handle to the requested function. Returns NULL if it does not exist. More... | |
void | ReadPhi () |
template<typename T > | |
void | SetUpExpansions (int nvel) |
Initialises the expansions for the intermediate pressure, the 'Phi' function and the IB forcing. More... | |
Protected Member Functions inherited from Nektar::VelocityCorrectionScheme | |
void | SetupFlowrate (NekDouble aii_dt) |
Set up the Stokes solution used to impose constant flowrate through a boundary. More... | |
NekDouble | MeasureFlowrate (const Array< OneD, Array< OneD, NekDouble > > &inarray) |
Measure the volumetric flow rate through the volumetric flow rate reference surface. More... | |
bool | v_PostIntegrate (int step) override |
void | v_GenerateSummary (SolverUtils::SummaryList &s) override |
Print a summary of time stepping parameters. More... | |
void | v_TransCoeffToPhys (void) override |
Virtual function for transformation to physical space. More... | |
void | v_TransPhysToCoeff (void) override |
Virtual function for transformation to coefficient space. More... | |
void | v_DoInitialise (bool dumpInitialConditions=true) override |
Sets up initial conditions. More... | |
Array< OneD, bool > | v_GetSystemSingularChecks () override |
int | v_GetForceDimension () override |
virtual void | v_SetUpPressureForcing (const Array< OneD, const Array< OneD, NekDouble > > &fields, Array< OneD, Array< OneD, NekDouble > > &Forcing, const NekDouble aii_Dt) |
virtual void | v_SetUpViscousForcing (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &Forcing, const NekDouble aii_Dt) |
virtual void | v_SolvePressure (const Array< OneD, NekDouble > &Forcing) |
virtual void | v_SolveViscous (const Array< OneD, const Array< OneD, NekDouble > > &Forcing, const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble aii_Dt) |
virtual void | v_SolveUnsteadyStokesSystem (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time, const NekDouble a_iixDt) |
virtual void | v_EvaluateAdvection_SetPressureBCs (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
bool | v_RequireFwdTrans () override |
virtual std::string | v_GetExtrapolateStr (void) |
virtual std::string | v_GetSubSteppingExtrapolateStr (const std::string &instr) |
void | SetUpSVV (void) |
void | SetUpExtrapolation (void) |
void | SVVVarDiffCoeff (const NekDouble velmag, Array< OneD, NekDouble > &diffcoeff, const Array< OneD, Array< OneD, NekDouble > > &vel=NullNekDoubleArrayOfArray) |
void | AppendSVVFactors (StdRegions::ConstFactorMap &factors, MultiRegions::VarFactorsMap &varFactorsMap) |
void | ComputeGJPNormalVelocity (const Array< OneD, const Array< OneD, NekDouble > > &inarray, StdRegions::VarCoeffMap &varcoeffs) |
Protected Member Functions inherited from Nektar::IncNavierStokes | |
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... | |
MultiRegions::ExpListSharedPtr | v_GetPressure () override |
void | v_TransCoeffToPhys (void) override |
Virtual function for transformation to physical space. More... | |
void | v_TransPhysToCoeff (void) override |
Virtual function for transformation to coefficient space. More... | |
virtual int | v_GetForceDimension ()=0 |
Array< OneD, NekDouble > | v_GetMaxStdVelocity (const NekDouble SpeedSoundFactor) override |
bool | v_PreIntegrate (int step) override |
SOLVER_UTILS_EXPORT bool | v_PostIntegrate (int step) override |
virtual SOLVER_UTILS_EXPORT Array< OneD, NekDouble > | v_GetMaxStdVelocity (const NekDouble SpeedSoundFactor=1.0) |
Protected Member Functions inherited from Nektar::SolverUtils::UnsteadySystem | |
SOLVER_UTILS_EXPORT | UnsteadySystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises UnsteadySystem class members. More... | |
SOLVER_UTILS_EXPORT void | v_InitObject (bool DeclareField=true) override |
Init object for UnsteadySystem class. More... | |
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... | |
SOLVER_UTILS_EXPORT void | v_DoInitialise (bool dumpInitialConditions=true) override |
Sets up initial conditions. More... | |
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... | |
Protected Member Functions inherited from Nektar::SolverUtils::EquationSystem | |
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, const int step) |
virtual SOLVER_UTILS_EXPORT bool | v_GetMovingFrameVelocities (Array< OneD, NekDouble > &vFrameVels, const int step) |
virtual SOLVER_UTILS_EXPORT void | v_SetMovingFrameDisp (const Array< OneD, NekDouble > &vFrameDisp, const int step) |
virtual SOLVER_UTILS_EXPORT void | v_SetMovingFramePivot (const Array< OneD, NekDouble > &vFramePivot) |
virtual SOLVER_UTILS_EXPORT bool | v_GetMovingFrameDisp (Array< OneD, NekDouble > &vFrameDisp, const int step) |
virtual SOLVER_UTILS_EXPORT void | v_SetAeroForce (Array< OneD, NekDouble > forces) |
virtual SOLVER_UTILS_EXPORT void | v_GetAeroForce (Array< OneD, NekDouble > forces) |
Protected Attributes | |
MultiRegions::ExpListSharedPtr | m_pressureP |
Correction pressure field for SPM. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_up |
Velocity of the immersed body(ies) More... | |
Array< OneD, Array< OneD, NekDouble > > | m_upPrev |
std::vector< std::string > | m_velName |
Vector storing the names of the components of \u_p. More... | |
bool | m_timeDependentUp |
Flag signaling if \(\u_p\) depends on time. More... | |
NekDouble | m_gamma0 |
Stiffly-stable scheme \(\gamma_0\) coefficient. More... | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fs |
Forcing function 'f_s'. More... | |
MultiRegions::ExpListSharedPtr | m_phi |
Shape function 'phi' as expansion list. More... | |
SolverUtils::SessionFunctionSharedPtr | m_phiEvaluator |
Function that evaluates the values of \Phi. More... | |
bool | m_timeDependentPhi |
Flag that is true when phi depends on time. More... | |
bool | m_filePhi |
Flag indicating that phi was defined in a file. More... | |
int | m_forcesFilter |
Position of "AeroForcesSPM" filter in 'm_session->GetFilters()'. More... | |
Protected Attributes inherited from Nektar::VelocityCorrectionScheme | |
bool | m_useHomo1DSpecVanVisc |
bool to identify if spectral vanishing viscosity is active. More... | |
bool | m_useSpecVanVisc |
bool to identify if spectral vanishing viscosity is active. More... | |
bool | m_useGJPStabilisation |
bool to identify if GJP semi-implicit is active. More... | |
bool | m_useGJPNormalVel |
bool to identify if GJP normal Velocity should be applied in explicit approach More... | |
NekDouble | m_GJPJumpScale |
NekDouble | m_sVVCutoffRatio |
cutt off ratio from which to start decayhing modes More... | |
NekDouble | m_sVVDiffCoeff |
Diffusion coefficient of SVV modes. More... | |
NekDouble | m_sVVCutoffRatioHomo1D |
NekDouble | m_sVVDiffCoeffHomo1D |
Diffusion coefficient of SVV modes in homogeneous 1D Direction. More... | |
Array< OneD, NekDouble > | m_svvVarDiffCoeff |
Array of coefficient if power kernel is used in SVV. More... | |
bool | m_IsSVVPowerKernel |
Identifier for Power Kernel otherwise DG kernel. More... | |
Array< OneD, NekDouble > | m_diffCoeff |
Diffusion coefficients (will be kinvis for velocities) More... | |
StdRegions::VarCoeffMap | m_varCoeffLap |
Variable Coefficient map for the Laplacian which can be activated as part of SVV or otherwise. More... | |
NekDouble | m_flowrate |
Desired volumetric flowrate. More... | |
NekDouble | m_flowrateArea |
Area of the boundary through which we are measuring the flowrate. More... | |
bool | m_homd1DFlowinPlane |
NekDouble | m_greenFlux |
Flux of the Stokes function solution. More... | |
NekDouble | m_alpha |
Current flowrate correction. More... | |
int | m_flowrateBndID |
Boundary ID of the flowrate reference surface. More... | |
int | m_planeID |
Plane ID for cases with homogeneous expansion. More... | |
MultiRegions::ExpListSharedPtr | m_flowrateBnd |
Flowrate reference surface. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_flowrateStokes |
Stokes solution used to impose flowrate. More... | |
std::ofstream | m_flowrateStream |
Output stream to record flowrate. More... | |
int | m_flowrateSteps |
Interval at which to record flowrate data. More... | |
NekDouble | m_flowrateAiidt |
Value of aii_dt used to compute Stokes flowrate solution. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_F |
Protected Attributes inherited from Nektar::IncNavierStokes | |
ExtrapolateSharedPtr | m_extrapolation |
IncBoundaryConditionsSharedPtr | m_IncNavierStokesBCs |
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 |
pivot point for moving reference frame More... | |
Array< OneD, NekDouble > | m_aeroForces |
std::map< int, std::map< int, WomersleyParamsSharedPtr > > | m_womersleyParams |
Womersley parameters if required. More... | |
Protected Attributes inherited from Nektar::SolverUtils::AdvectionSystem | |
SolverUtils::AdvectionSharedPtr | m_advObject |
Advection term. More... | |
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 |
Static Protected Attributes | |
static std::string | solverTypeLookupId |
Static Protected Attributes inherited from Nektar::VelocityCorrectionScheme | |
static std::string | solverTypeLookupId |
Static Protected Attributes inherited from Nektar::IncNavierStokes | |
static std::string | eqTypeLookupIds [] |
Static Protected Attributes inherited from Nektar::SolverUtils::EquationSystem | |
static std::string | equationSystemTypeLookupIds [] |
static std::string | projectionTypeLookupIds [] |
Additional Inherited Members | |
Protected Types inherited from Nektar::SolverUtils::EquationSystem | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
Definition at line 44 of file SmoothedProfileMethod.h.
Nektar::SmoothedProfileMethod::SmoothedProfileMethod | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
const SpatialDomains::MeshGraphSharedPtr & | pGraph | ||
) |
Construct a new Smoothed Profile Method object.
pSession | |
pGraph |
Definition at line 62 of file SmoothedProfileMethod.cpp.
|
override |
Destroy the Smoothed Profile Method object.
Definition at line 74 of file SmoothedProfileMethod.cpp.
|
inlinestatic |
Creates an instance of this class.
Definition at line 48 of file SmoothedProfileMethod.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
protected |
Returns a handle to the requested function. Returns NULL if it does not exist.
functionName |
Definition at line 572 of file SmoothedProfileMethod.cpp.
References Nektar::SolverUtils::EquationSystem::m_session.
Referenced by GetVarTimeDependence(), and ReadPhi().
|
protected |
True if the function is timedependent, false otherwise.
name | |
type | |
attribute |
Definition at line 532 of file SmoothedProfileMethod.cpp.
References ASSERTL0, and GetFunctionHdl().
Referenced by ReadPhi().
|
protected |
Definition at line 589 of file SmoothedProfileMethod.cpp.
References ASSERTL0, Nektar::LibUtilities::FieldIO::CreateForFile(), Nektar::SolverUtils::EquationSystem::GetFunction(), GetFunctionHdl(), GetVarTimeDependence(), m_filePhi, m_phi, m_phiEvaluator, Nektar::SolverUtils::EquationSystem::m_session, m_timeDependentPhi, m_timeDependentUp, and Nektar::IncNavierStokes::m_velocity.
Referenced by v_InitObject().
|
protected |
Updates the BCs for boundaries with Neumann or periodic BCs in the pressure:
\[ \frac{\partial p_p}{\partial\mathbf{n}} = \mathbf{f_s}\cdot\mathbf{n} \]
Definition at line 404 of file SmoothedProfileMethod.cpp.
References Nektar::SpatialDomains::eNeumann, Nektar::SpatialDomains::ePeriodic, m_fs, m_pressureP, and Nektar::IncNavierStokes::m_velocity.
Referenced by SetUpCorrectionPressure().
|
protected |
Sets the forcing term of the equation for the correction pressure \(p_p\):
\[ \nabla\cdot\mathbf{f_s} \]
fields | |
Forcing |
Definition at line 301 of file SmoothedProfileMethod.cpp.
References Nektar::MultiRegions::DirCartesianMap, Nektar::MultiRegions::eX, Nektar::SolverUtils::EquationSystem::m_fields, m_fs, Nektar::IncNavierStokes::m_velocity, SetCorrectionPressureBCs(), and Vmath::Vadd().
Referenced by v_SolveUnsteadyStokesSystem().
|
inlineprotected |
Initialises the expansions for the intermediate pressure, the 'Phi' function and the IB forcing.
Definition at line 132 of file SmoothedProfileMethod.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SolverUtils::EquationSystem::eNotHomogeneous, Nektar::SolverUtils::EquationSystem::m_fields, m_fs, Nektar::SolverUtils::EquationSystem::m_HomogeneousType, m_phi, Nektar::IncNavierStokes::m_pressure, m_pressureP, and Nektar::IncNavierStokes::m_velocity.
|
protected |
Corrects the velocity field so that the IBs are taken into account. Solves the explicit equation:
\[ \frac{\gamma_0(\mathbf{u_p}^{n+1} - \mathbf{u}^*)}{\Delta t} = \mathbf{f_s} - \nabla p_p \]
Forcing | |
fields | |
dt |
Definition at line 357 of file SmoothedProfileMethod.cpp.
References Blas::Daxpy(), m_fs, m_gamma0, m_phi, m_pressureP, Nektar::SolverUtils::EquationSystem::m_session, Nektar::IncNavierStokes::m_velocity, Vmath::Vadd(), Vmath::Vsub(), and Vmath::Vvtvm().
Referenced by v_SolveUnsteadyStokesSystem().
|
protected |
Solves the Poisson equation for the correction pressure \(p_p\):
\[ \nabla^2 p_p = \nabla\cdot\mathbf{f_s} \]
Forcing |
Definition at line 332 of file SmoothedProfileMethod.cpp.
References Nektar::StdRegions::eFactorLambda, Nektar::VarcoeffHashingTest::factors, and m_pressureP.
Referenced by v_SolveUnsteadyStokesSystem().
|
protected |
For a body with a velocity \(\mathbf{u_p}\), the force \(\mathbf{f_s}\) applied to the fluid ensures that the IBC are met:
\[ \mathbf{f_s} = \frac{\Phi^{n+1}\left(\mathbf{u_p}^{n+1} - \mathbf{u^*}\right)}{\Delta t} \]
fields | |
dt | |
f_s |
Definition at line 484 of file SmoothedProfileMethod.cpp.
References Nektar::SolverUtils::EquationSystem::eNotHomogeneous, Nektar::SolverUtils::EquationSystem::m_fields, m_fs, m_gamma0, Nektar::SolverUtils::EquationSystem::m_HomogeneousType, m_phi, m_up, Nektar::IncNavierStokes::m_velocity, Vmath::Smul(), Vmath::Vmul(), and Vmath::Vsub().
Referenced by v_SolveUnsteadyStokesSystem().
Calculates the values of the shape function.
t |
Definition at line 440 of file SmoothedProfileMethod.cpp.
References m_filePhi, m_phi, m_phiEvaluator, m_timeDependentPhi, m_timeDependentUp, m_up, m_upPrev, and m_velName.
Referenced by v_InitObject(), and v_SolveUnsteadyStokesSystem().
|
overridevirtual |
Generates the summary of the current simulation.
s |
Reimplemented from Nektar::SolverUtils::UnsteadySystem.
Definition at line 233 of file SmoothedProfileMethod.cpp.
References Nektar::SolverUtils::AddSummaryItem(), and Nektar::VelocityCorrectionScheme::v_GenerateSummary().
|
overridevirtual |
Initialisation object for EquationSystem.
Continuous field
Setting up the normals
Setting up the normals
Reimplemented from Nektar::IncNavierStokes.
Definition at line 78 of file SmoothedProfileMethod.cpp.
References ASSERTL0, Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineImplicitSolve(), Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, Nektar::SolverUtils::EquationSystem::eHomogeneous1D, Nektar::SolverUtils::EquationSystem::eHomogeneous2D, Nektar::SolverUtils::EquationSystem::eHomogeneous3D, Nektar::SolverUtils::EquationSystem::eNotHomogeneous, m_forcesFilter, m_gamma0, Nektar::SolverUtils::EquationSystem::m_HomogeneousType, Nektar::SolverUtils::UnsteadySystem::m_ode, m_phi, Nektar::SolverUtils::EquationSystem::m_projectionType, Nektar::SolverUtils::EquationSystem::m_session, m_up, m_velName, Nektar::IncNavierStokes::m_velocity, Nektar::LibUtilities::TimeIntScheme::method, Nektar::LibUtilities::TimeIntScheme::order, ReadPhi(), UpdatePhiUp(), Nektar::VelocityCorrectionScheme::v_InitObject(), and v_SolveUnsteadyStokesSystem().
|
overrideprotectedvirtual |
Linear terms due to pressure and visosity are calculated here. After solving the velocity filed without taking into account the immersed boundaries, a new correction is applied through the force \(f_s\):
\[ \mathbf{f_s} = \frac{\Phi^{n+1}(\mathbf{u_p}-\mathbf{u^*})} {\Delta t} \]
inarray | |
outarray | |
time | |
a_iixDt |
Reimplemented from Nektar::VelocityCorrectionScheme.
Definition at line 254 of file SmoothedProfileMethod.cpp.
References Nektar::IncNavierStokes::m_extrapolation, Nektar::VelocityCorrectionScheme::m_F, Nektar::SolverUtils::UnsteadySystem::m_filters, m_forcesFilter, Nektar::IncNavierStokes::m_kinvis, m_phi, Nektar::IncNavierStokes::m_pressure, m_pressureP, m_upPrev, SetUpCorrectionPressure(), SolveCorrectedVelocity(), SolveCorrectionPressure(), UpdateForcing(), UpdatePhiUp(), Nektar::VelocityCorrectionScheme::v_SolveUnsteadyStokesSystem(), and Vmath::Vadd().
Referenced by v_InitObject().
|
static |
Name of class.
Definition at line 60 of file SmoothedProfileMethod.h.
|
protected |
Flag indicating that phi was defined in a file.
Definition at line 94 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
|
protected |
Position of "AeroForcesSPM" filter in 'm_session->GetFilters()'.
Definition at line 96 of file SmoothedProfileMethod.h.
Referenced by v_InitObject(), and v_SolveUnsteadyStokesSystem().
|
protected |
Forcing function 'f_s'.
Definition at line 86 of file SmoothedProfileMethod.h.
Referenced by SetCorrectionPressureBCs(), SetUpCorrectionPressure(), SetUpExpansions(), SolveCorrectedVelocity(), and UpdateForcing().
|
protected |
Stiffly-stable scheme \(\gamma_0\) coefficient.
Definition at line 84 of file SmoothedProfileMethod.h.
Referenced by SolveCorrectedVelocity(), UpdateForcing(), and v_InitObject().
|
protected |
Shape function 'phi' as expansion list.
Definition at line 88 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), SetUpExpansions(), SolveCorrectedVelocity(), UpdateForcing(), UpdatePhiUp(), v_InitObject(), and v_SolveUnsteadyStokesSystem().
|
protected |
Function that evaluates the values of \Phi.
Definition at line 90 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
|
protected |
Correction pressure field for SPM.
Definition at line 75 of file SmoothedProfileMethod.h.
Referenced by SetCorrectionPressureBCs(), SetUpExpansions(), SolveCorrectedVelocity(), SolveCorrectionPressure(), and v_SolveUnsteadyStokesSystem().
|
protected |
Flag that is true when phi depends on time.
Definition at line 92 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
|
protected |
Flag signaling if \(\u_p\) depends on time.
Definition at line 82 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
Velocity of the immersed body(ies)
Definition at line 77 of file SmoothedProfileMethod.h.
Referenced by UpdateForcing(), UpdatePhiUp(), and v_InitObject().
Definition at line 78 of file SmoothedProfileMethod.h.
Referenced by UpdatePhiUp(), and v_SolveUnsteadyStokesSystem().
|
protected |
Vector storing the names of the components of \u_p.
Definition at line 80 of file SmoothedProfileMethod.h.
Referenced by UpdatePhiUp(), and v_InitObject().
|
staticprotected |
Definition at line 98 of file SmoothedProfileMethod.h.