|
Nektar++
|
#include <RigidSolver.h>
Public Member Functions | |
| void | InitObject (const LibUtilities::SessionReaderSharedPtr session, const MultiRegions::ExpListSharedPtr &pField, Array< OneD, NekDouble > pivot) |
| void | SetMovableDoFs (std::vector< bool > &moveDoFs) |
| void | SetInitialConditions (const LibUtilities::SessionReaderSharedPtr session, Array< OneD, NekDouble > MRFData) |
| void | UpdateFrameVelocity (Array< OneD, NekDouble > &aeroforce, const NekDouble &time, Array< OneD, NekDouble > &MRFData) |
| Updates the forcing array with the current required forcing. | |
| void | SetNewmarkBetaSolver (Array< OneD, NekDouble > &AddedMass) |
| void | GetFilterInfo (const LibUtilities::SessionReaderSharedPtr session, std::map< std::string, std::string > &vParams) |
| bool | HasFreeDoFs () |
| void | SetOldFvis (Array< OneD, NekDouble > force) |
Protected Member Functions | |
| void | LoadParameters (const LibUtilities::SessionReaderSharedPtr session, const TiXmlElement *pSolver) |
| void | InitBodySolver (const LibUtilities::SessionReaderSharedPtr session, const TiXmlElement *pSolver, Array< OneD, NekDouble > pivot) |
| NekDouble | EvaluateExpression (const LibUtilities::SessionReaderSharedPtr session, std::string expression) |
| void | UpdatePrescribed (const NekDouble &time, std::map< int, NekDouble > &Dirs) |
| void | UpdateMRFData (Array< OneD, NekDouble > &MRFData) |
| void | SetInitialConditions (std::map< int, NekDouble > &Dirs) |
| void | SolveBodyMotion (Array< OneD, Array< OneD, NekDouble > > &bodyVel, const Array< OneD, NekDouble > &forcebody, std::map< int, NekDouble > &Dirs) |
| void | ParserFunctionToMap (const bool allowzero, const LibUtilities::SessionReaderSharedPtr session, const std::string &FuncName, const std::string &var, std::map< int, LibUtilities::EquationSharedPtr > &result, const int i) |
| void | CheckParameters () |
Private Member Functions | |
| void | SolveInertialFrame (Array< OneD, Array< OneD, NekDouble > > &bodyVel, const Array< OneD, NekDouble > &forcebody, std::map< int, NekDouble > &Dirs) |
| void | SolveBodyFrame (Array< OneD, Array< OneD, NekDouble > > &bodyVel, const Array< OneD, NekDouble > &forcebody, std::map< int, NekDouble > &Dirs) |
| void | SolveRotOneFree (Array< OneD, Array< OneD, NekDouble > > &bodyVel, const Array< OneD, NekDouble > &forcebody, std::map< int, NekDouble > &Dirs) |
Private Attributes | |
| int | m_solveType |
| int | m_index |
| NekDouble | m_currentTime |
| NekDouble | m_timestep |
| NekDouble | m_beta |
| NekDouble | m_gamma |
| int | m_spacedim |
| bool | m_isRoot |
| bool | m_hasFreeMotion |
| bool | m_hasRotation |
| int | m_outputFrequency |
| std::ofstream | m_outputStream |
| std::set< int > | m_dirDoFs |
| Array< OneD, NekDouble > | m_inertialPosition |
| Array< OneD, Array< OneD, NekDouble > > | m_vel |
| std::map< int, LibUtilities::EquationSharedPtr > | m_extForceFunction |
| std::map< int, LibUtilities::EquationSharedPtr > | m_frameVelFunction |
| Array< OneD, NekDouble > | m_extForceXYZ |
| Array< OneD, NekDouble > | m_pivot |
| NekDouble | m_pivotdistance |
| Array< OneD, NekDouble > | m_oldFvis |
| NekDouble | m_mass |
| NekDouble | m_rotaionInertia |
| Array< OneD, NekDouble > | m_M |
| Array< OneD, NekDouble > | m_C |
| Array< OneD, NekDouble > | m_K |
| Newmark_BetaSolver | m_bodySolver |
| FrameTransform | m_frame |
Definition at line 106 of file RigidSolver.h.
|
protected |
Definition at line 83 of file RigidSolver.cpp.
References ASSERTL0, Nektar::NekConstants::kNekZeroTol, m_C, m_dirDoFs, m_hasRotation, m_inertialPosition, m_K, m_solveType, and m_spacedim.
Referenced by InitObject().
|
protected |
Definition at line 173 of file RigidSolver.cpp.
References Nektar::ErrorUtil::efatal, Nektar::LibUtilities::Equation::Evaluate(), and NEKERROR.
Referenced by InitBodySolver(), and LoadParameters().
| void Nektar::RigidSolver::GetFilterInfo | ( | const LibUtilities::SessionReaderSharedPtr | session, |
| std::map< std::string, std::string > & | vParams | ||
| ) |
Definition at line 982 of file RigidSolver.cpp.
References ASSERTL0.
Referenced by Nektar::VCSFSI::InitialiseFilter().
|
inline |
Definition at line 122 of file RigidSolver.h.
References m_hasFreeMotion.
Referenced by Nektar::VCSFSI::InitialiseFilter(), and Nektar::VCSFSI::v_SolveSolid().
|
protected |
Definition at line 329 of file RigidSolver.cpp.
References ASSERTL0, EvaluateExpression(), Nektar::ParseUtils::GenerateVector(), m_beta, m_C, m_dirDoFs, m_gamma, m_hasFreeMotion, m_hasRotation, m_K, m_M, m_mass, m_pivot, m_pivotdistance, m_rotaionInertia, m_spacedim, m_timestep, m_vel, and Vmath::Vcopy().
Referenced by InitObject().
| void Nektar::RigidSolver::InitObject | ( | const LibUtilities::SessionReaderSharedPtr | session, |
| const MultiRegions::ExpListSharedPtr & | pField, | ||
| Array< OneD, NekDouble > | pivot | ||
| ) |
Definition at line 56 of file RigidSolver.cpp.
References CheckParameters(), InitBodySolver(), LoadParameters(), m_currentTime, m_extForceXYZ, m_index, m_isRoot, m_oldFvis, and m_spacedim.
Referenced by Nektar::PressDecompVCSFSI::v_InitObject(), and Nektar::VCSFSI::v_InitObject().
|
protected |
Definition at line 205 of file RigidSolver.cpp.
References ASSERTL0, EvaluateExpression(), m_extForceFunction, m_frameVelFunction, m_hasRotation, m_isRoot, m_outputFrequency, m_outputStream, m_spacedim, and ParserFunctionToMap().
Referenced by InitObject().
|
protected |
Definition at line 189 of file RigidSolver.cpp.
Referenced by LoadParameters().
| void Nektar::RigidSolver::SetInitialConditions | ( | const LibUtilities::SessionReaderSharedPtr | session, |
| Array< OneD, NekDouble > | MRFData | ||
| ) |
Definition at line 860 of file RigidSolver.cpp.
References Nektar::FrameTransform::BodyToInerital(), Nektar::LibUtilities::FieldIO::CreateForFile(), Nektar::LibUtilities::eFunctionTypeFile, m_frame, m_hasRotation, m_inertialPosition, m_isRoot, m_outputStream, m_spacedim, m_vel, Nektar::LibUtilities::NullFieldMetaDataMap, Nektar::LibUtilities::PortablePath(), Nektar::FrameTransform::SetAngle(), SetInitialConditions(), UpdateMRFData(), UpdatePrescribed(), and Vmath::Vcopy().
Referenced by SetInitialConditions(), Nektar::PressDecompVCSFSI::v_DoInitialise(), and Nektar::VCSFSI::v_DoInitialise().
Definition at line 1000 of file RigidSolver.cpp.
References m_vel.
| void Nektar::RigidSolver::SetMovableDoFs | ( | std::vector< bool > & | moveDoFs | ) |
Definition at line 141 of file RigidSolver.cpp.
References m_dirDoFs, m_frameVelFunction, and m_spacedim.
Referenced by Nektar::PressDecompVCSFSI::v_InitObject(), and Nektar::VCSFSI::v_InitObject().
Definition at line 849 of file RigidSolver.cpp.
References m_beta, m_bodySolver, m_C, m_dirDoFs, m_gamma, m_K, m_M, m_solveType, m_spacedim, m_timestep, Nektar::Newmark_BetaSolver::SetNewmarkBeta(), and Vmath::Vadd().
Referenced by Nektar::PressDecompVCSFSI::v_DoInitialise(), and Nektar::VCSFSI::v_DoInitialise().
Definition at line 522 of file RigidSolver.cpp.
References m_oldFvis.
Referenced by Nektar::PressDecompVCSFSI::v_DoInitialise(), and Nektar::VCSFSI::v_DoInitialise().
|
private |
Definition at line 716 of file RigidSolver.cpp.
References Nektar::FrameTransform::IneritalToBody(), m_bodySolver, m_dirDoFs, m_extForceXYZ, m_frame, m_hasFreeMotion, m_mass, m_pivotdistance, m_spacedim, Nektar::FrameTransform::SetAngle(), Nektar::Newmark_BetaSolver::SolveFreeVarMat(), Nektar::Newmark_BetaSolver::SolvePrescribed(), and Vmath::Vcopy().
Referenced by SolveBodyMotion().
|
protected |
Definition at line 647 of file RigidSolver.cpp.
References ASSERTL0, m_solveType, SolveBodyFrame(), SolveInertialFrame(), and SolveRotOneFree().
Referenced by UpdateFrameVelocity().
|
private |
Definition at line 669 of file RigidSolver.cpp.
References m_bodySolver, m_extForceXYZ, m_hasFreeMotion, m_spacedim, Nektar::Newmark_BetaSolver::SolveFreeFixMat(), and Nektar::Newmark_BetaSolver::SolvePrescribed().
Referenced by SolveBodyMotion().
|
private |
Definition at line 689 of file RigidSolver.cpp.
References Nektar::FrameTransform::IneritalToBody(), m_bodySolver, m_extForceXYZ, m_frame, m_mass, m_pivotdistance, m_spacedim, Nektar::FrameTransform::SetAngle(), Nektar::Newmark_BetaSolver::SolveOneFree(), and Nektar::Newmark_BetaSolver::SolvePrescribed().
Referenced by SolveBodyMotion().
| void Nektar::RigidSolver::UpdateFrameVelocity | ( | Array< OneD, NekDouble > & | aeroforce, |
| const NekDouble & | time, | ||
| Array< OneD, NekDouble > & | MRFData | ||
| ) |
Updates the forcing array with the current required forcing.
| pFields | |
| time |
Definition at line 535 of file RigidSolver.cpp.
References Nektar::FrameTransform::BodyToInerital(), m_currentTime, m_extForceFunction, m_extForceXYZ, m_frame, m_hasFreeMotion, m_hasRotation, m_index, m_inertialPosition, m_isRoot, m_oldFvis, m_outputFrequency, m_outputStream, m_spacedim, m_timestep, m_vel, Nektar::FrameTransform::SetAngle(), SolveBodyMotion(), UpdateMRFData(), UpdatePrescribed(), and Vmath::Vcopy().
Referenced by Nektar::VCSFSI::v_SolveSolid().
MRFData: X, Y, Z, Theta_x, Theta_y, Theta_z, [inertial frame 0-5] U, V, W, Omega_x, Omega_y, Omega_z, [body frame 6-11] A_x, A_y, A_z, DOmega_x, DOmega_y, DOmega_z, [body frame 12-17] pivot_x, pivot_y, pivot_z, [body frame]
Definition at line 606 of file RigidSolver.cpp.
References m_hasRotation, m_inertialPosition, m_spacedim, and m_vel.
Referenced by SetInitialConditions(), and UpdateFrameVelocity().
|
protected |
Definition at line 478 of file RigidSolver.cpp.
References m_dirDoFs, m_frameVelFunction, and m_spacedim.
Referenced by SetInitialConditions(), and UpdateFrameVelocity().
|
private |
Definition at line 170 of file RigidSolver.h.
Referenced by InitBodySolver(), and SetNewmarkBetaSolver().
|
private |
Definition at line 200 of file RigidSolver.h.
Referenced by SetNewmarkBetaSolver(), SolveBodyFrame(), SolveInertialFrame(), and SolveRotOneFree().
Definition at line 197 of file RigidSolver.h.
Referenced by CheckParameters(), InitBodySolver(), and SetNewmarkBetaSolver().
|
private |
Definition at line 168 of file RigidSolver.h.
Referenced by InitObject(), and UpdateFrameVelocity().
|
private |
Definition at line 178 of file RigidSolver.h.
Referenced by CheckParameters(), InitBodySolver(), SetMovableDoFs(), SetNewmarkBetaSolver(), SolveBodyFrame(), and UpdatePrescribed().
|
private |
Definition at line 186 of file RigidSolver.h.
Referenced by LoadParameters(), and UpdateFrameVelocity().
Definition at line 188 of file RigidSolver.h.
Referenced by InitObject(), SolveBodyFrame(), SolveInertialFrame(), SolveRotOneFree(), and UpdateFrameVelocity().
|
private |
Definition at line 201 of file RigidSolver.h.
Referenced by SetInitialConditions(), SolveBodyFrame(), SolveRotOneFree(), and UpdateFrameVelocity().
|
private |
Definition at line 187 of file RigidSolver.h.
Referenced by LoadParameters(), SetMovableDoFs(), and UpdatePrescribed().
|
private |
Definition at line 171 of file RigidSolver.h.
Referenced by InitBodySolver(), and SetNewmarkBetaSolver().
|
private |
Definition at line 174 of file RigidSolver.h.
Referenced by HasFreeDoFs(), InitBodySolver(), SolveBodyFrame(), SolveInertialFrame(), and UpdateFrameVelocity().
|
private |
Definition at line 175 of file RigidSolver.h.
Referenced by CheckParameters(), InitBodySolver(), LoadParameters(), SetInitialConditions(), UpdateFrameVelocity(), and UpdateMRFData().
|
private |
Definition at line 167 of file RigidSolver.h.
Referenced by InitObject(), and UpdateFrameVelocity().
Definition at line 183 of file RigidSolver.h.
Referenced by CheckParameters(), SetInitialConditions(), UpdateFrameVelocity(), and UpdateMRFData().
|
private |
Definition at line 173 of file RigidSolver.h.
Referenced by InitObject(), LoadParameters(), SetInitialConditions(), and UpdateFrameVelocity().
Definition at line 198 of file RigidSolver.h.
Referenced by CheckParameters(), InitBodySolver(), and SetNewmarkBetaSolver().
Definition at line 196 of file RigidSolver.h.
Referenced by InitBodySolver(), and SetNewmarkBetaSolver().
|
private |
Definition at line 194 of file RigidSolver.h.
Referenced by InitBodySolver(), SolveBodyFrame(), and SolveRotOneFree().
Definition at line 192 of file RigidSolver.h.
Referenced by InitObject(), SetOldFvis(), and UpdateFrameVelocity().
|
private |
Definition at line 176 of file RigidSolver.h.
Referenced by LoadParameters(), and UpdateFrameVelocity().
|
private |
Definition at line 177 of file RigidSolver.h.
Referenced by LoadParameters(), SetInitialConditions(), and UpdateFrameVelocity().
Definition at line 189 of file RigidSolver.h.
Referenced by InitBodySolver().
|
private |
Definition at line 190 of file RigidSolver.h.
Referenced by InitBodySolver(), SolveBodyFrame(), and SolveRotOneFree().
|
private |
Definition at line 195 of file RigidSolver.h.
Referenced by InitBodySolver().
|
private |
Definition at line 152 of file RigidSolver.h.
Referenced by CheckParameters(), SetNewmarkBetaSolver(), and SolveBodyMotion().
|
private |
Definition at line 172 of file RigidSolver.h.
Referenced by CheckParameters(), InitBodySolver(), InitObject(), LoadParameters(), SetInitialConditions(), SetMovableDoFs(), SetNewmarkBetaSolver(), SolveBodyFrame(), SolveInertialFrame(), SolveRotOneFree(), UpdateFrameVelocity(), UpdateMRFData(), and UpdatePrescribed().
|
private |
Definition at line 169 of file RigidSolver.h.
Referenced by InitBodySolver(), SetNewmarkBetaSolver(), and UpdateFrameVelocity().
Definition at line 184 of file RigidSolver.h.
Referenced by InitBodySolver(), SetInitialConditions(), SetInitialConditions(), UpdateFrameVelocity(), and UpdateMRFData().