35 #ifndef NEKTAR_SOLVERS_VORTEXWAVEINTERACTION_H
36 #define NEKTAR_SOLVERS_VORTEXWAVEINTERACTION_H
46 #if defined(_MSC_VER) && defined(MoveFile)
67 "FixedAlphaWaveForcing",
68 "FixedWaveForcingWithSubIterationOnAlpha"
78 void ExecuteRoll(
void);
79 void ExecuteStreak(
void);
80 void ExecuteWave(
void);
82 void ExecuteLoop(
bool CalcWaveForce =
true);
83 void SaveLoopDetails(std::string dir,
int i);
85 void CalcNonLinearWaveForce(
void);
86 void CalcL2ToLinfPressure (
void);
88 void SaveFile(std::string fileend, std::string dir,
int n);
89 void MoveFile(std::string fileend, std::string dir,
int n);
90 void CopyFile(std::string file1end, std::string file2end);
93 bool CheckEigIsStationary(
bool reset =
false);
94 bool CheckIfAtNeutralPoint(
void);
95 void UpdateAlpha(
int n);
96 void UpdateWaveForceMag(
int n);
97 void UpdateDAlphaDWaveForceMag(
NekDouble alphainit);
101 void AppendEvlToFile(std::string file,
int n);
102 void AppendEvlToFile(std::string file,
NekDouble WaveForceMag);
116 return m_VWIIterationType;
121 return m_nOuterIterations;
126 return m_maxOuterIterations;
142 return m_waveForceMag[0];
147 return m_waveForceMagStep;
152 return m_dAlphaDWaveForceMag;
157 return m_maxWaveForceMagIter;
169 return m_minInnerIterations;
185 m_waveForceMag[0] = mag;
200 m_minInnerIterations = niter;
210 return m_iterinterface;
215 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
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)
Array< OneD, Array< OneD, NekDouble > > m_vwiForcing
void SetMinInnerIterations(int niter)
int m_maxWaveForceMagIter
void SetWaveForceMag(NekDouble mag)
bool IfIterInterface(void)
NekDouble m_vwiRelaxation
VWIIterationType m_VWIIterationType
Array< OneD, Array< OneD, NekDouble > > m_bcsForcing
void SetEigRelTol(NekDouble tol)
int GetMaxOuterIterations(void)
int GetMaxWaveForceMagIter(void)
SolverUtils::ForcingProgrammaticSharedPtr m_vwiForcingObj
Array< OneD, MultiRegions::ExpListSharedPtr > m_waveVelocities
SpatialDomains::MeshGraphSharedPtr m_graphStreak
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