30 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
32 CBarge(std::string sSimObjectName, ISimObjectCreator* pCreator);
33 virtual void FinalSetup(
const double dT,
const double*
const adX, ISimObjectCreator*
const pCreator);
34 virtual void InitialConditionSetup(
const double T,
const double *
const currentIC,
double* updatedIC, ISimObjectCreator* creator);
37#ifdef FH_VISUALIZATION
39 virtual void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
42 virtual void RenderUpdate(
const double dT,
const double*
const adX);
45 void DrawBody(Ogre::SceneNode* renderNode, Ogre::SceneManager* sceneMgr,
const int& pi);
49 virtual void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot,
const bool bIsMajorTimeStep);
55 virtual vec6 GetInternalForces(
const int& pi,
const vec6& dX,
const vec3& r,
const quat& ql2g,
const quat& qg2l,
double time,
const double*
const states);
58 virtual mat6 GetInertiaMatrix(
const int& pi,
const vec3& r,
const quat& q,
const double dT,
const double*
const adX);
61 virtual vec13 GetSecondDerivative(
const int& pi,
const vec3& r,
const quat& ql2g,
const quat& qg2l,
const vec3& v,
const vec3& w,
const vec6& externalForces,
const double time,
const double*
const states);
64 static vec6 GetCoriolisForce(
const vec6& dX,
const mat6& Inertia);
68 virtual vec6 CalConnectForce(
const vec3& r,
const vec6& dX,
const quat& ql2g,
const quat& qg2l,
const double dT,
const double*
const adX);
72 virtual vec6 CalcHydroforcesBarge(
const int& pi,
const vec6& dX,
const vec3& r,
const quat& ql2g,
const quat& qg2l,
double time,
const double*
const states);
73 virtual vec6 FroudeKriloffBarge(
const int& pi,
const vec6& dX,
const vec3& r,
const quat& ql2g,
const quat& qg2l,
double time,
const double*
const states);
74 virtual vec6 DiffractionBarge(
const int& pi,
const vec6& dX,
const vec3& r,
const quat& ql2g,
const quat& qg2l,
double time,
const double*
const states);
76 virtual vec6 CalWaveOverToppingBarge(
const int& pi,
const vec6& dX,
const vec3& r,
const quat& ql2g,
const quat& qg2l,
double time,
const double*
const states);
84 virtual const double* BargeState(
const double dT,
const double*
const adX);
85 virtual const double* ConnectForce(
const double dT,
const double*
const adX);
86 virtual const double* RadiationDamping(
const double dT,
const double*
const adX);
87 virtual const double* FirstOrderWave(
const double dT,
const double*
const adX);
122 virtual const double*
ConnectPos(
const double dT,
const double*
const adX,
int iConnect);
123 virtual const double* ConnectVel(
const double dT,
const double*
const adX,
int iConnect);
124 ISignalPort ** m_ConnectForce;
126 double m_StructConnectForce[8];
135 Eigen::Matrix<double, sys_size, sys_size>* m_SSpaceA;
136 Eigen::Matrix<double, sys_size,1>* m_SSpaceB;
137 Eigen::Matrix<double,1, sys_size>* m_SSpaceC;
138 Eigen::Matrix<double,1,1>* m_SSpaceD;
139 double* m_SSpaceSDot;
141 virtual vec6 CalStateSpaceStructure(
const int& pi,
const double dT,
const double*
const adX,
const vec6& VS);
146 std::vector<double> m_WaveF;
147 std::vector<double> m_WaveA;
148 std::vector<double> m_WaveP;
149 std::vector<double> m_WaveD;
150 std::vector<double> m_WaveN;
176 int m_wodwriteoutput;
177 std::ofstream m_wodoutputfile1;
178 std::ofstream m_wodoutputfile2;
179 bool m_isMajorTimeStep;
182 std::valarray<double> m_x;
184 std::valarray<double> m_u;
185 std::valarray<double> m_q1;
186 std::valarray<double> m_q2;
196 double m_radiationForce[6];
197 double m_firstOrderWave[6];
204#ifdef FH_VISUALIZATION
206 Ogre::SceneNode** m_RenderNodes;
207 Ogre::SceneManager* m_SceneMgr;
208 vector<Ogre::ManualObject*> m_Manual;
virtual void OdeFcn(const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
Calculates the state derivatives.
virtual const double * ConnectPos(const double dT, const double *const adX, int iConnect)
List of velocities (u,v,w) of the connections.
Definition Subroutines.h:265