6#include <ISimObjectCreator.h> 
    9#include <net/CNetStructureWakeEffect.h> 
   10#include <environment/DeepSeaGravityWaves.h> 
   12#ifdef FH_VISUALIZATION 
  114    virtual void FinalSetup(
const double dT, 
const double *
const adX, ISimObjectCreator *
const pCreator);
 
  128    virtual void OdeFcn(
const double T, 
const double* 
const X, 
double* 
const XDot, 
const bool IsMajorTimeStep);
 
  190    const double* outSteadyStateEst_Tau(
const double T, 
const double* 
const X);
 
  191    const double* outSteadyStateEst_K(
const double T, 
const double* 
const X);
 
  192    const double* LowerMembranePosition(
const double dT, 
const double* 
const adX);
 
  193    const double* outMiddleCurrentVelocity(
const double dT, 
const double* 
const adX);
 
  194    const double* outNetPosition(
const double T, 
const double* 
const X, 
int iNode);
 
  217    const virtual double * 
NodeForce(
const double T, 
const double *
const X, 
int iNode);
 
  259#ifdef FH_VISUALIZATION 
  269    void RenderInit(Ogre::Root* 
const pOgreRoot, ISimObjectCreator* 
const pCreator); 
 
  278    virtual void RenderUpdate(
const double T, 
const double* 
const X);                                           
 
  283    void DecomposeDragForcesInCurrentDirection(
double* 
const DragForcesProjected, 
const double T, 
const double* 
const X);
 
  284    bool SteadyStateEstimator(
const double T, 
const double* 
const X);
 
  285    void AddDeadFishWeightForce(
const double T, 
const double* 
const X);
 
  287    void SetExternalPos(
const double dT, 
const double *
const adX);                                      
 
  288    void SetExternalVel(
const double dT, 
const double *
const adX);                                      
 
  290    virtual void CreateDataStructures();                                                                        
 
  291    virtual void AddInputPorts(ISimObjectCreator *pCreator);                                                    
 
  292    virtual void CreateOutputPorts(ISimObjectCreator *pCreator);                                                
 
  294    virtual double AddNodeBottomForce(
const double *
const adX, 
int iNode, 
double dDiam, 
double adForceInOut[3]);
 
  295    virtual void AddNetForces(
const double dT, 
const double *
const adX);                                        
 
  296    virtual void AddCableForces(
const double dT, 
const double *
const adX);                                      
 
  299    ISignalPort **m_InExternalPos;                                                                              
 
  300    ISignalPort **m_InExternalVel;                                                                              
 
  301    ISignalPort *m_MembraneDepth;                                                                               
 
  303    double*         m_NodeExternalPos;                                                                          
 
  304    double*         m_NodeExternalVel;                                                                          
 
  306    double          m_adNodeSumForce[3];
 
  307    double          m_adSumHydDynForce[3];
 
  308    double          m_dNodeSumDragForceAbs;
 
  309    double          m_dNodeSumDragDirection;
 
  310    double          m_dNodeSumLiftForce;
 
  311    double          m_MiddleCurrentVelocity[3];
 
  313    double*         m_adNodeHydDynForce;
 
  315    double*         m_NodeInternalForces;                                                                       
 
  317    int(*           m_hasPosAndVelStates)[2];                                                                   
 
  319    int m_NumNodesInputPosAndVel;                                                                               
 
  320    int m_NumNodesOutputForce;                                                                                  
 
  322    VSPairStrInt            m_VsNodesInputPosAndVel;                                                            
 
  323    VSPairStrInt            m_VsNodesOutputForce;                                                               
 
  325    Eigen::MatrixXd         m_SSPhi;                                                                            
 
  326    Eigen::MatrixXd         m_SSY;                                                                              
 
  329    sfh::timers::StopWatch m_SSCalcIntervalWatch;                                                               
 
  332    int m_MembraneIsInSystem;                                                                                   
 
  333    double m_LowerMembraneDepth;
 
  334    std::string m_simobjectname; 
 
  335    bool m_TerminateAtSteadyState;                                                                              
 
  343    int*    m_outNetPosIndex;
 
  346    std::string     m_CageShape;
 
  353    double*         m_CageCentre;
 
  355    int             m_BottomNodeIndex;
 
  356    double          m_DeadFishInertia[3]; 
 
  357    double          m_DeadFishWeigthForce;
 
  359    sfh::timers::StopWatch m_RealTimeWatch; 
 
  360    ICommonComputation* m_calcDynamics;
 
  361#ifdef FH_VISUALIZATION 
Definition: CNetStructureWakeEffect.h:204
 
Definition: CNetCageWakeEffect.h:99
 
CNetCageWakeEffect(const string &simObjectName, ISimObjectCreator *const creator)
Reads parameters, registers states, input/output ports and shared resources.
 
void getNetElementConnections(vector< int * > &ElementConnections)
Returns list of all node connections of all net elements.
 
const double * outNodeSumForce(const double T, const double *const X)
Output port. Returns the sum of forces acting on net structure.
 
virtual const double * NodeForce(const double T, const double *const X, int iNode)
Output port. Returns the forces acting on the node identified by the index iExtNode.
 
virtual void OdeFcn(const double T, const double *const X, double *const XDot, const bool IsMajorTimeStep)
Computes object derivatives as a function of time, states and input ports.
 
void calculations(const double T, const double *const X)
Performs a series of computations within the cable object.
 
virtual void CalcStateDerivatives(const double *const adX, double *const adXDot)
For screen model. Checking calculated total net force.
 
const double * outBottomPosition(const double T, const double *const X)
Output port. Returns the position of the bottom node in the net structure.
 
const double * outSumHydDynForce(const double T, const double *const X)
Output port. Returns the sum of hydrodynamic forces acting on net structure.
 
void setTraversedElements(vector< bool > TraversedElements)
Returns list that describes which net elements in structure have been traversed by ROV.
 
void GetNodeVelocityIndices(std::vector< int > &NodeVelocities)
Returns indices for memory locations of the velocities of all nodes in structure.
 
vector< CNetElement3NWakeEffect * > getNetElements()
Returns list of all net elements in structure.
 
void GetNodePositionIndices(std::vector< int > &NodePositions)
Returns indices for memory locations of the positions of all nodes in structure.
 
const double * outNodeSumDragForceDirection(const double T, const double *const X)
Output port. Returns the direction of the summed drag forces acting on net structure.
 
const double * outNodeSumDragForceAbs(const double T, const double *const X)
Output port. Returns the absolute value of the summed drag forces acting on net structure.
 
virtual const double * InternalNodeForce(const double T, const double *const X, int iExtNode)
Output port. Returns the internally computed forces acting on the node identified by the index iExtNo...
 
const double * outNodeSumLiftForce(const double T, const double *const X)
Output port. Returns the sum of lift forces acting on net structure.
 
Class modelling a Net cage.
Definition: CBottomRing.h:35