35 #ifndef NEKTAR_SOLVERS_VORTEXWAVEINTERACTION_H
36 #define NEKTAR_SOLVERS_VORTEXWAVEINTERACTION_H
46 #if defined(_MSC_VER) && defined(MoveFile)
63 "FixedAlpha",
"FixedWaveForcing",
"FixedAlphaWaveForcing",
64 "FixedWaveForcingWithSubIterationOnAlpha"};
73 void ExecuteRoll(
void);
74 void ExecuteStreak(
void);
75 void ExecuteWave(
void);
77 void ExecuteLoop(
bool CalcWaveForce =
true);
78 void SaveLoopDetails(std::string dir,
int i);
80 void CalcNonLinearWaveForce(
void);
81 void CalcL2ToLinfPressure(
void);
83 void SaveFile(std::string fileend, std::string dir,
int n);
84 void MoveFile(std::string fileend, std::string dir,
int n);
85 void CopyFile(std::string file1end, std::string file2end);
87 bool CheckEigIsStationary(
bool reset =
false);
88 bool CheckIfAtNeutralPoint(
void);
89 void UpdateAlpha(
int n);
90 void UpdateWaveForceMag(
int n);
91 void UpdateDAlphaDWaveForceMag(
NekDouble alphainit);
93 void AppendEvlToFile(std::string file,
int n);
94 void AppendEvlToFile(std::string file,
NekDouble WaveForceMag);
108 return m_VWIIterationType;
113 return m_nOuterIterations;
118 return m_maxOuterIterations;
133 return m_waveForceMag[0];
138 return m_waveForceMagStep;
143 return m_dAlphaDWaveForceMag;
148 return m_maxWaveForceMagIter;
159 return m_minInnerIterations;
174 m_waveForceMag[0] = mag;
189 m_minInnerIterations = niter;
199 return m_iterinterface;
204 void FileRelaxation(
int reg);
NekDouble GetAlphaStep(void)
Array< OneD, MultiRegions::ExpListSharedPtr > m_streakField
void SetAlpha(NekDouble alpha)
int GetNOuterIterations(void)
bool m_useLinfPressureNorm
bool m_moveMeshToCriticalLayer
Array< OneD, Array< OneD, NekDouble > > m_vwiForcing
int GetMinInnerIterations(void)
LibUtilities::SessionReaderSharedPtr m_sessionVWI
void SetPrevAlpha(NekDouble alpha)
NekDouble m_dAlphaDWaveForceMag
LibUtilities::SessionReaderSharedPtr m_sessionRoll
NekDouble m_waveForceMagStep
Array< OneD, NekDouble > m_alpha
< Leading imaginary eigenvalue
LibUtilities::SessionReaderSharedPtr m_sessionStreak
NekDouble m_rollForceScale
NekDouble GetPrevAlpha(void)
NekDouble m_deltaFcnDecay
void SetAlphaStep(NekDouble step)
void SetMinInnerIterations(int niter)
int m_maxWaveForceMagIter
void SetWaveForceMag(NekDouble mag)
bool IfIterInterface(void)
NekDouble m_vwiRelaxation
VWIIterationType m_VWIIterationType
void SetEigRelTol(NekDouble tol)
int GetMaxOuterIterations(void)
int GetMaxWaveForceMagIter(void)
SolverUtils::ForcingProgrammaticSharedPtr m_vwiForcingObj
Array< OneD, MultiRegions::ExpListSharedPtr > m_waveVelocities
SpatialDomains::MeshGraphSharedPtr m_graphStreak
Array< OneD, Array< OneD, NekDouble > > m_bcsForcing
NekDouble GetDAlphaDWaveForceMag(void)
SpatialDomains::MeshGraphSharedPtr m_graphRoll
Array< OneD, MultiRegions::ExpListSharedPtr > m_rollField
NekDouble GetWaveForceMag(void)
SpatialDomains::MeshGraphSharedPtr m_graphWave
Array< OneD, NekDouble > m_waveForceMag
LibUtilities::SessionReaderSharedPtr m_sessionWave
MultiRegions::ExpListSharedPtr m_wavePressure
NekDouble GetEigRelTol(void)
NekDouble m_neutralPointTol
Array< OneD, NekDouble > m_leading_real_evl
std::string m_sessionName
NekDouble GetWaveForceMagStep(void)
Array< OneD, NekDouble > m_leading_imag_evl
< Leading real eigenvalue
VWIIterationType GetVWIIterationType(void)
EquationSystemSharedPtr m_solverRoll
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
std::shared_ptr< EquationSystem > EquationSystemSharedPtr
A shared pointer to an EquationSystem object.
SOLVER_UTILS_EXPORT typedef std::shared_ptr< ForcingProgrammatic > ForcingProgrammaticSharedPtr
A shared pointer to an EquationSystem object.
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
The above copyright notice and this permission notice shall be included.
const std::string VWIIterationTypeMap[]
@ eFixedWaveForcingWithSubIterationOnAlpha