FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
TrawlDoorBase Class Reference
+ Inheritance diagram for TrawlDoorBase:
+ Collaboration diagram for TrawlDoorBase:

Public Member Functions

 TrawlDoorBase (std::string simObjectName, ISimObjectCreator *creator)
 The constructor sets the pointer to the output object and the parser object.
 
virtual void OdeFcn (const double dT, const double *const adX, double *const adXDot) const override
 Calculates the state derivatives.
 
Jacobian support for implicit integration

Partial analytical Jacobian. Only dominant stiff terms are covered:

  • pos_dot / localVel coupling (rotation matrix R)
  • localVel linear damping diagonal
  • omega linear damping diagonal Hydrodynamic forces, gravity orientation, quaternion kinematics, and bottom contact are omitted. Subclasses that add bottom contact (e.g. ToTrawlDoor) must override HasJacobians() to return false.
bool HasJacobians () const override
 
void OdeJacobian (double T, const double *X, double *J, int nStates) override
 
int GetJacobianSparsity (int nStates, int *rowPtr, int *colIdx) override
 

Protected Member Functions

virtual void TD_HydroForces (const double relVel[], double *alpha, double *beta, double *pU, double forceSS[])
 
virtual void TD_HydroForces_SS (double TD_Area, double rho, const double relVel[], double alpha, double beta, double U, double *coeffSS, double *forceSS)
 
virtual void TD_HydroCoeff_SS (double alpha, double beta, double coeffSS[])
 
virtual void TD_vel2HydroAng (const double relVel[], double *alpha, double *beta, double *pU)
 
virtual void AddExternalForces (double dT, const double *const adX)
 
virtual void AddInternalForces ()
 
virtual void AddHydroForces ()
 
virtual void AddDampingForces ()
 
virtual void AddBottomForces ()
 
virtual void CalcDerivatives (double dT, double *const adXDot, const double *const adX)
 
virtual void CalcFoundation (const double dT, const double *const adX, double *const adXDot)
 
virtual void AddExternalForce (const double adPos_d[3], const double adForceExternal_n[3])
 
virtual void CalcOutput (const double dT, const double *const adX)
 
void CalcOutputCommon (const double dT, const double *const adX) const
 
void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const creator)
 
const double * OutPos1 (const double dT, const double *const adX)
 
const double * OutPos3 (const double dT, const double *const adX)
 
const double * OutPos2 (const double dT, const double *const adX)
 
const double * OutVel1 (const double dT, const double *const adX)
 
const double * OutVel3 (const double dT, const double *const adX)
 
const double * OutVel2 (const double dT, const double *const adX)
 

Protected Attributes

bool m_isPort
 Is this a port trawl door?
 
double m_cOG [3]
 The trawl door center of gravity.
 
double m_area
 The trawldoor area.
 
double m_height
 
double m_length
 
double m_aR
 
double m_curvature
 
double m_mass
 The mass of the object.
 
double m_massInverse [6][6]
 
double m_mdCornerPos_body [4][3]
 
double m_rhoDoor
 The density of the trawl door material.
 
double m_outOfBoundCoeff [6]
 
double m_hydrodynamicCorrections [6]
 
double m_warpPos_d [3]
 
double m_lBPos_d [3]
 
double m_uBPos_d [3]
 
double m_rhoWater
 The density of the surrounding fluid.
 
double m_force_warp [3]
 A pointer to the Warp force.
 
double m_force_LB [3]
 A pointer to the force.
 
double m_force_UB [3]
 A pointer to the input force.
 
double m_waterVel_n [3]
 The water velocity in the door position.
 
ICommonComputation * m_commonCalc
 Calculations necessary for more than one output port.
 
environment::EnvironmentProvider * m_environment
 
ISignalPort * m_inWarp_F
 The cable length input port.
 
ISignalPort * m_inLB_F
 The cable length input port.
 
ISignalPort * m_inUB_F
 The cable length input port.
 
double m_outPos1 [3]
 
double m_outPos3 [3]
 
double m_outPos2 [3]
 
double m_outVel1 [3]
 
double m_outVel3 [3]
 
double m_outVel2 [3]
 
unsigned long m_IStatePos
 
unsigned long m_IStateQuater
 
unsigned long m_IStateLocalVel
 
unsigned long m_IStateOmega
 
unsigned long m_IStateHydroForce
 
double ma_adSumForces [6]
 
double ma_dAlpha
 
double ma_dBeta
 
double ma_dU
 
const double * ma_adXPos_n
 
const double * ma_adXQuater
 
const double * ma_adXVel_d
 
const double * ma_adXOmega
 
double ma_mdR [3][3]
 
double ma_adXVel_n [3]
 
double ma_adHydroForceSS [6]
 
double ma_adRelVel_d [6]
 
double ma_adWaterVel_d [3]
 

Member Function Documentation

◆ AddBottomForces()

virtual void TrawlDoorBase::AddBottomForces ( )
inlineprotectedvirtual

Reimplemented in ToTrawlDoor.

◆ OdeFcn()

virtual void TrawlDoorBase::OdeFcn ( const double  dT,
const double *const  adX,
double *const  adXDot 
) const
overridevirtual

Reimplemented in TrawlDoorAddedFoil.


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