Marine systems simulation
Netcage::CNetCageScreen Class Reference
+ Inheritance diagram for Netcage::CNetCageScreen:
+ Collaboration diagram for Netcage::CNetCageScreen:

Public Member Functions

 CNetCageScreen (const string &simobjectname, ISimObjectCreator *const creator)
 The constructor sets the pointer to the output object and the parser object.
 
virtual ~CNetCageScreen ()
 The destructor cleans up.
 
virtual void OdeFcn (const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
 
virtual void InitialConditionSetup (const double dT, const double *const adCurrentIC, double *const adUpdatedIC, ISimObjectCreator *const pCreator)
 
virtual void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const pCreator)
 
const double * outExternalNodeForce (const double dT, const double *const adX, int iExtNode)
 
virtual const double * NodePos (const double dT, const double *const adX, int iExtNode)
 Calculates the state derivatives. More...
 
virtual const double * NodeVel (const double dT, const double *const adX, int iExtNode)
 
virtual const double * BottomContact (const double dT, const double *const adX)
 
void SetAddedDragPerMPS (double AddedDragPerMPS)
 
const double * outSumHydDynForce (const double T, const double *const X)
 VARIABLES NEEDED AFTER REMOVING NETSTRUCTURE — END. More...
 
const double * outNodeSumForce (const double T, const double *const X)
 
const double * outNodeSumDragForceAbs (const double T, const double *const X)
 
const double * outNodeSumDragForceDirection (const double T, const double *const X)
 
const double * outNodeSumLiftForce (const double T, const double *const X)
 
const double * outBottomPosition (const double T, const double *const X)
 
const double * outSteadyStateEst_Tau (const double T, const double *const X)
 
const double * outSteadyStateEst_K (const double T, const double *const X)
 
const double * LowerMembranePosition (const double dT, const double *const adX)
 
const double * outMiddleCurrentVelocity (const double dT, const double *const adX)
 
const double * InternalNodeForce (const double dT, const double *const adX, int iExtNode)
 
const double * NodeForce (const double T, const double *const X, int iNode)
 
void GetNodePositionIndices (std::vector< int > &NodePositions)
 
void GetNodeVelocityIndices (std::vector< int > &NodeVelocities)
 
vector< CScreenElement3N * > getNetElements ()
 
void getNetElementConnections (vector< int * > &ElementConnections)
 
void setTraversedElements (vector< bool > TraversedElements)
 

Protected Member Functions

void DecomposeDragForcesInCurrentDirection (double *const DragForcesProjected, const double T, const double *const X)
 
bool SteadyStateEstimator (const double T, const double *const X)
 
void AddDeadFishWeightForce (const double T, const double *const X)
 
void SetExternalPos (const double dT, const double *const adX)
 
void SetExternalVel (const double dT, const double *const adX)
 
virtual void CreateDataStructures ()
 
virtual void AddInputPorts (ISimObjectCreator *pCreator)
 
virtual void CreateOutputPorts (ISimObjectCreator *pCreator)
 
virtual void CalcStateDerivatives (const double *const adX, double *const adXDot)
 
virtual double AddNodeBottomForce (const double *const adX, int iNode, double dDiam, double adForceInOut[3])
 
virtual void AddNetForces (const double dT, const double *const adX)
 
virtual void AddCableForces (const double dT, const double *const adX)
 
virtual void CreateNetPanels (std::vector< const CScreenElementDef * > VNetElementDefs, ISimObjectCreator *pCreator)
 VARIABLES NEEDED AFTER REMOVING NETSTRUCTURE — START.
 
virtual void CreateNetCables (std::vector< const CNetCableElementSpec * > VCableElements, ISimObjectCreator *pCreator)
 
void AddExternalForces (const double dT, const double *const adX)
 
void AddBottomForces (const double *const adX)
 
VSPairStrInt CreateExternalNodeMap (std::string sTag, int *piUsed, CScreenStructureSpec &ScreenSpec, ISimObjectCreator *pCreator)
 
void PRINTALLNODEFORCES (std::string spec, double dT)
 

Protected Attributes

ISignalPort ** m_InExternalPos
 
ISignalPort ** m_InExternalVel
 
ISignalPort * m_MembraneDepth
 
double * m_NodeExternalPos
 
double * m_NodeExternalVel
 
double m_adNodeSumForce [3]
 
double m_adSumHydDynForce [3]
 
double m_dNodeSumDragForceAbs
 
double m_dNodeSumDragDirection
 
double m_dNodeSumLiftForce
 
double m_MiddleCurrentVelocity [3]
 
double * m_adNodeHydDynForce
 
double * m_NodeInternalForces
 
int(* m_hasPosAndVelStates )[2]
 
int m_NumNodesInputPosAndVel
 
int m_NumNodesOutputForce
 
VSPairStrInt m_VsNodesInputPosAndVel
 
VSPairStrInt m_VsNodesOutputForce
 
Eigen::MatrixXd m_SSPhi
 
Eigen::MatrixXd m_SSY
 
double m_SS_Tau
 
double m_SS_K
 
sfh::timers::StopWatch m_SSCalcIntervalWatch
 
int m_IsMembrane
 
int m_MembraneIsInSystem
 
double m_LowerMembraneDepth
 
std::string m_simobjectname
 
bool m_TerminateAtSteadyState
 
double m_PI
 
std::string m_CageShape
 
double * m_CageCentre
 
int m_BottomNodeIndex
 
double m_DeadFishInertia [3]
 
double m_DeadFishWeigthForce
 
bool m_HasDeadFish
 
sfh::timers::StopWatch m_RealTimeWatch
 
int m_iNumNodeOutputs
 
int ** m_aaiCableConn
 
bool m_UseActualElementSizeInWakeEffect
 Set to true if actual size (number of u and v bars) of net element shall be used in wake effect calculation. If set to false, number of u and v bars will be set equal to m_NElementBarsInWakeEffectCalc.
 
int m_NElementBarsInWakeEffectCalc
 Number of u and v bars in calculation of wake effect if m_UseActualElementSizeInWakeEffect is set to false.
 
bool m_useReynoldsDependentDragCoefficients
 
float * m_afInertia
 
double * m_adNodeForce
 
double * m_NodeExternalForces
 
double m_adBottomContact [6]
 
int * m_aIStateVel
 
int m_iNumNodesCalc
 
int m_iNumNodesOriginal
 
int m_iNumNodesOutputPosAndVel
 
int m_iNumPanelsCalc
 
int m_iNumCablesCalc
 
int m_iNumNodesInputForce
 
int * m_aiNetConn
 
int * m_aIStatePos
 
bool m_bUseTagForExternalNodes
 
bool m_InternalElementWakeEffectsActive
 
bool m_bFoldingPointRefinementUsed
 
bool m_ExternalElementWakeEffectsActive
 
double m_harmForceCoeff [4]
 Spesific for screen model.
 
ISignalPort ** m_apInExternalForces
 Harmonic coeffisients in drag and lift force calculations (a3,a5,b4,b6) for CD/cd=a1*cos(Theta)+a3*cos(3*Theta)+a5*cos(5*Theta) and CL/cl=b2*sin(2*Theta)+b4*sin(4*Theta)+b6*sin(6*Theta)
 
CNetBottomContactFilter m_BottomContactFilter
 
SAdaptationSpec_t m_SAdaptations
 
CEnvironmentm_pEnvironment
 
ICurrentVel ** m_ppCurrentVel
 
VSPairStrInt m_VsNodesOutputPosAndVel
 
VSPairStrInt m_VsNodesInputForce
 
IBasicBottom ** m_ppBottom
 
std::vector< CNetCableElement * > m_VpCableElements
 
sfh::timers::StopWatch m_OdeTimer
 
std::vector< CScreenElement3N * > m_VpScreenElements
 

Member Function Documentation

◆ NodePos()

virtual const double * Netcage::CNetCageScreen::NodePos ( const double  dT,
const double *const  adX,
int  iExtNode 
)
virtual

VARIABLES NEEDED AFTER REMOVING NETSTRUCTURE — START

◆ outSumHydDynForce()

const double * Netcage::CNetCageScreen::outSumHydDynForce ( const double  T,
const double *const  X 
)

Output functions


The documentation for this class was generated from the following file: