208 virtual void OdeFcn(
const double dT,
const double *
const adX,
double *
const adXDot,
const bool bIsMajorTimeStep);
209 virtual void InitialConditionSetup(
const double dT,
const double *
const adCurrentIC,
double *
const adUpdatedIC, ISimObjectCreator *
const pCreator);
210 virtual void FinalSetup(
const double dT,
const double *
const adX, ISimObjectCreator *
const pCreator);
211 const double * outExternalNodeForce(
const double dT,
const double *
const adX,
int iExtNode);
213#ifdef FH_VISUALIZATION
215 virtual void RenderInit(Ogre::Root *
const pOgreRoot, ISimObjectCreator *
const pCreator);
217 virtual void RenderUpdate(
const double dT,
const double *
const adX);
219 const virtual double * NodePos(
const double dT,
const double *
const adX,
int iExtNode);
220 const virtual double * NodeVel(
const double dT,
const double *
const adX,
int iExtNode);
221 const virtual double * BottomContact(
const double dT,
const double *
const adX);
223 const virtual double * StrainEnergy(
const double dT,
const double *
const adX);
224 const virtual double * VelNorm(
const double dT,
const double *
const adX);
227 void SetAddedDragPerMPS(
double AddedDragPerMPS);
229 virtual void CalcStateDerivatives(
const double *
const adX,
double *
const adXDot);
230 virtual void AddExternalForces(
const double dT,
const double *
const adX);
231 virtual void AddNetForces(
const double dT,
const double *
const adX);
232 virtual void AddCableForces(
const double dT,
const double *
const adX);
233 virtual double AddNodeBottomForce(
const double *
const adX,
int iNode,
double dDiam,
double adForceInOut[3]);
234 virtual void AddBottomForces(
const double *
const adX);
235 virtual void AddInputPorts(ISimObjectCreator *pCreator);
236 virtual void CreateNetPanels(std::vector<const CNetElementDef*> VNetElementDefs, ISimObjectCreator *pCreator);
237 virtual void CreateNetCables(std::vector<const CNetCableElementSpec*> VCableElements, ISimObjectCreator *pCreator);
238 virtual void CreateDataStructures();
239 virtual void CreateOutputPorts(ISimObjectCreator *pCreator);
240 VSPairStrInt CreateExternalNodeMap( std::string sTag,
int* piUsed,
CNetStructureSpec & NetSpec, ISimObjectCreator *pCreator);
241 void PRINTALLNODEFORCES(std::string spec,
double dT);
243 double m_StrainEnergy;
255 int m_iNumNodesOutputPosAndVel;
256 int m_iNumPanelsCalc;
257 int m_iNumCablesCalc;
258 int m_iNumNodesOriginal;
260 int m_iNumNodeOutputs;
266 double m_adBottomContact[6];
268 environment::EnvironmentProvider* m_pEnvironment;
269 environment::SeafloorForcesInterface *m_seafloor;
275 std::vector<CNetElement3N*> m_VpNetElements;
278 int** m_aaiCableConn;
280 bool m_bFoldingPointRefinementUsed;
287 VSPairStrInt m_VsNodesInputForce;
288 bool m_bUseTagForExternalNodes;
291 double* m_adNodeForce;
292 sfh::timers::StopWatch m_OdeTimer;
293 double* m_adAccelerationNorms;
295#ifdef CNetStructure_DO_PROFILE
296 sfh::timers::ProfilerWallclock m_Profiler;
299#ifdef FH_VISUALIZATION
300 bool m_bLineVisualization;
301 C3DLine *m_LineVisualizationPressure;
302 C3DLine *m_LineVisualizationStrain;