36#ifndef NEKTAR_SOLVERS_RIGIDSOLVER
37#define NEKTAR_SOLVERS_RIGIDSOLVER
48#include <boost/numeric/ublas/io.hpp>
49#include <boost/numeric/ublas/matrix.hpp>
50#include <boost/numeric/ublas/vector.hpp>
72 std::map<int, NekDouble> motionPrescribed);
121 std::map<std::string, std::string> &vParams);
130 const TiXmlElement *pSolver);
132 const TiXmlElement *pSolver,
136 std::string expression);
138 std::map<int, NekDouble> &Dirs);
143 std::map<int, NekDouble> &Dirs);
145 const bool allowzero,
147 const std::string &FuncName,
const std::string &var,
148 std::map<int, LibUtilities::EquationSharedPtr> &result,
const int i);
158 std::map<int, NekDouble> &Dirs);
162 std::map<int, NekDouble> &Dirs);
166 std::map<int, NekDouble> &Dirs);
Array< OneD, Array< OneD, NekDouble > > m_M
Array< OneD, Array< OneD, NekDouble > > m_Matrix
void SolveFreeVarMat(Array< OneD, Array< OneD, NekDouble > > u, Array< OneD, NekDouble > force, const NekDouble mass)
void SolveOneFree(Array< OneD, Array< OneD, NekDouble > > u, Array< OneD, NekDouble > force, const Array< OneD, NekDouble > theta, const NekDouble uy, const NekDouble mass)
void SolveFreeFixMat(Array< OneD, Array< OneD, NekDouble > > u, Array< OneD, NekDouble > force)
Array< OneD, NekDouble > m_coeffs
std::vector< int > m_index
Array< OneD, Array< OneD, NekDouble > > m_C
Array< OneD, Array< OneD, NekDouble > > m_K
void SetNewmarkBeta(NekDouble beta, NekDouble gamma, NekDouble dt, Array< OneD, NekDouble > M, Array< OneD, NekDouble > C, Array< OneD, NekDouble > K, std::set< int > DirDoFs, int solveType)
void SolvePrescribed(Array< OneD, Array< OneD, NekDouble > > u, std::map< int, NekDouble > motionPrescribed)
Array< OneD, NekDouble > m_pivot
void UpdateMRFData(Array< OneD, NekDouble > &MRFData)
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)
Array< OneD, NekDouble > m_C
void LoadParameters(const LibUtilities::SessionReaderSharedPtr session, const TiXmlElement *pSolver)
Newmark_BetaSolver m_bodySolver
NekDouble m_pivotdistance
std::set< int > m_dirDoFs
Array< OneD, NekDouble > m_inertialPosition
void SetNewmarkBetaSolver(Array< OneD, NekDouble > &AddedMass)
void UpdatePrescribed(const NekDouble &time, std::map< int, NekDouble > &Dirs)
NekDouble EvaluateExpression(const LibUtilities::SessionReaderSharedPtr session, std::string expression)
void InitBodySolver(const LibUtilities::SessionReaderSharedPtr session, const TiXmlElement *pSolver, Array< OneD, NekDouble > pivot)
Array< OneD, NekDouble > m_K
NekDouble m_rotaionInertia
void SolveBodyFrame(Array< OneD, Array< OneD, NekDouble > > &bodyVel, const Array< OneD, NekDouble > &forcebody, std::map< int, NekDouble > &Dirs)
void InitObject(const LibUtilities::SessionReaderSharedPtr session, const MultiRegions::ExpListSharedPtr &pField, Array< OneD, NekDouble > pivot)
void SetMovableDoFs(std::vector< bool > &moveDoFs)
std::ofstream m_outputStream
std::map< int, LibUtilities::EquationSharedPtr > m_frameVelFunction
void SetOldFvis(Array< OneD, NekDouble > force)
Array< OneD, NekDouble > m_M
void SetInitialConditions(const LibUtilities::SessionReaderSharedPtr session, Array< OneD, NekDouble > MRFData)
void SolveInertialFrame(Array< OneD, Array< OneD, NekDouble > > &bodyVel, const Array< OneD, NekDouble > &forcebody, std::map< int, NekDouble > &Dirs)
void GetFilterInfo(const LibUtilities::SessionReaderSharedPtr session, std::map< std::string, std::string > &vParams)
Array< OneD, Array< OneD, NekDouble > > m_vel
std::map< int, LibUtilities::EquationSharedPtr > m_extForceFunction
Array< OneD, NekDouble > m_oldFvis
Array< OneD, NekDouble > m_extForceXYZ
void SolveBodyMotion(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)
void UpdateFrameVelocity(Array< OneD, NekDouble > &aeroforce, const NekDouble &time, Array< OneD, NekDouble > &MRFData)
Updates the forcing array with the current required forcing.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
@ beta
Gauss Radau pinned at x=-1,.
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.