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 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 std::string | className |
Name of class. More... | |
Protected Member Functions | |
virtual void | v_SolveUnsteadyStokesSystem (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, NekDouble a_iixDt) |
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... | |
![]() | |
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... | |
virtual bool | v_PostIntegrate (int step) |
virtual void | v_TransCoeffToPhys (void) |
Virtual function for transformation to physical space. More... | |
virtual void | v_TransPhysToCoeff (void) |
Virtual function for transformation to coefficient space. More... | |
virtual void | v_DoInitialise (void) |
Sets up initial conditions. More... | |
virtual Array< OneD, bool > | v_GetSystemSingularChecks () |
virtual int | v_GetForceDimension () |
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, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble aii_Dt) |
virtual void | v_EvaluateAdvection_SetPressureBCs (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
virtual bool | v_RequireFwdTrans () |
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) |
![]() | |
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... | |
virtual MultiRegions::ExpListSharedPtr | v_GetPressure () |
virtual Array< OneD, NekDouble > | v_GetMaxStdVelocity (const NekDouble SpeedSoundFactor) |
virtual bool | v_PreIntegrate (int step) |
![]() | |
SOLVER_UTILS_EXPORT | UnsteadySystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises UnsteadySystem class members. More... | |
SOLVER_UTILS_EXPORT NekDouble | MaxTimeStepEstimator () |
Get the maximum timestep estimator for cfl control. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoSolve () |
Solves an unsteady problem. More... | |
virtual SOLVER_UTILS_EXPORT void | v_AppendOutput1D (Array< OneD, Array< OneD, NekDouble >> &solution1D) |
Print the solution at each solution point in a txt file. 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 void | v_SteadyStateResidual (int step, Array< OneD, NekDouble > &L2) |
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... | |
virtual SOLVER_UTILS_EXPORT bool | UpdateTimeStepCheck () |
![]() | |
SOLVER_UTILS_EXPORT | EquationSystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises EquationSystem class members. 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_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 void | v_ExtraFldOutput (std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables) |
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... | |
![]() | |
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... | |
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 |
![]() | |
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... | |
std::map< int, std::map< int, WomersleyParamsSharedPtr > > | m_womersleyParams |
Womersley parameters if required. More... | |
![]() | |
SolverUtils::AdvectionSharedPtr | m_advObject |
Advection term. More... | |
![]() | |
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... | |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
![]() | |
static std::string | equationSystemTypeLookupIds [] |
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 59 of file SmoothedProfileMethod.cpp.
|
virtual |
Destroy the Smoothed Profile Method object.
Definition at line 72 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 593 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 552 of file SmoothedProfileMethod.cpp.
References ASSERTL0, and GetFunctionHdl().
Referenced by ReadPhi().
|
protected |
Definition at line 610 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 421 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 311 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 148 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 368 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 342 of file SmoothedProfileMethod.cpp.
References Nektar::StdRegions::eFactorLambda, and m_pressureP.
Referenced by v_SolveUnsteadyStokesSystem().
|
inline |
Definition at line 76 of file SmoothedProfileMethod.h.
References v_SolveUnsteadyStokesSystem().
Referenced by v_InitObject().
|
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 503 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 459 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().
|
virtual |
Generates the summary of the current simulation.
s |
Reimplemented from Nektar::VelocityCorrectionScheme.
Definition at line 238 of file SmoothedProfileMethod.cpp.
References Nektar::SolverUtils::AddSummaryItem(), and Nektar::VelocityCorrectionScheme::v_GenerateSummary().
|
virtual |
Init object for UnsteadySystem class.
Initialization object for UnsteadySystem class.
Reimplemented from Nektar::VelocityCorrectionScheme.
Definition at line 77 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(), SolveUnsteadyStokesSystem(), UpdatePhiUp(), and Nektar::VelocityCorrectionScheme::v_InitObject().
|
protectedvirtual |
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 |
Definition at line 259 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(), Nektar::VelocityCorrectionScheme::SolveUnsteadyStokesSystem(), UpdateForcing(), UpdatePhiUp(), and Vmath::Vadd().
Referenced by SolveUnsteadyStokesSystem().
|
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 106 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
|
protected |
Position of "AeroForcesSPM" filter in 'm_session->GetFilters()'.
Definition at line 108 of file SmoothedProfileMethod.h.
Referenced by v_InitObject(), and v_SolveUnsteadyStokesSystem().
|
protected |
Forcing function 'f_s'.
Definition at line 98 of file SmoothedProfileMethod.h.
Referenced by SetCorrectionPressureBCs(), SetUpCorrectionPressure(), SetUpExpansions(), SolveCorrectedVelocity(), and UpdateForcing().
|
protected |
Stiffly-stable scheme \(\gamma_0\) coefficient.
Definition at line 96 of file SmoothedProfileMethod.h.
Referenced by SolveCorrectedVelocity(), UpdateForcing(), and v_InitObject().
|
protected |
Shape function 'phi' as expansion list.
Definition at line 100 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 102 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
|
protected |
Correction pressure field for SPM.
Definition at line 87 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 104 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
|
protected |
Flag signaling if \(\u_p\) depends on time.
Definition at line 94 of file SmoothedProfileMethod.h.
Referenced by ReadPhi(), and UpdatePhiUp().
Velocity of the immersed body(ies)
Definition at line 89 of file SmoothedProfileMethod.h.
Referenced by UpdateForcing(), UpdatePhiUp(), and v_InitObject().
Definition at line 90 of file SmoothedProfileMethod.h.
Referenced by UpdatePhiUp(), and v_SolveUnsteadyStokesSystem().
|
protected |
Vector storing the names of the components of \u_p.
Definition at line 92 of file SmoothedProfileMethod.h.
Referenced by UpdatePhiUp(), and v_InitObject().