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

Classes

struct  FoilLoad
 The foil's load at the plate-door inflow of a state: its wrench in the door frame and its chord-normal force. More...
 

Public Member Functions

 TrawlDoorAddedFoil (std::string simObjectName, ISimObjectCreator *creator)
 The constructor sets the pointer to the output object and the parser object.
 
void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const creator)
 
const double * OutFoilEnergyConsumed (const double dT, const double *const adX)
 Output port returning the foil energy consumption.
 
- Public Member Functions inherited from ToTrawlDoor
 ToTrawlDoor (std::string simObjectName, ISimObjectCreator *creator)
 The constructor sets the pointer to the output object and the parser object.
 
const double * OutRoll (const double dT, const double *const adX)
 Output port returning the roll angle of the trawl door.
 
const double * OutPitch (const double dT, const double *const adX)
 
const double * OutAngleOfAttack (const double dT, const double *const adX)
 
const double * OutHydroLoad (const double dT, const double *const adX)
 Output port returning the hydrodynamic load on the door: NED force then NED moment about the door origin.
 
const double * OutSeabedLoad (const double dT, const double *const adX)
 Output port returning the seabed load on the door: NED force then NED moment about the door origin.
 
- Public Member Functions inherited from TrawlDoorBase
 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.
 
void PreOdeFcn (double T, const double *X) override
 Rebuilds the door's wake when due (CastWake) and takes the other objects' wakes at the door.
 
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

FoilLoad Foil (double T, const double *X, const plate_door::Inflow &inflow) const
 The foil's load at time T and global state X, at the plate-door inflow of that state.
 
void AddInflowDependentForces (double T, const double *X, const plate_door::Inflow &inflow, hydro_body::Wrench &wrench) const override
 Adds the foil's wrench (Foil()).
 
void AddOwnDerivatives (double T, const double *X, const plate_door::Inflow &inflow, double *XDot) const override
 The derivative of the foil energy: the power the actuator delivers against the foil's hinge moment.
 
void SetFoilRatio (const double dT, const double *const adX)
 
- Protected Member Functions inherited from ToTrawlDoor
void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const creator)
 Resolves the SeafloorForces resource after the base class has resolved the environment.
 
void AddBottomForces (const hydro_body::FlowFrame &frame, hydro_body::Wrench &wrench) const override
 Adds the seabed load of the evaluator to the trawl door, in the body frame.
 
environment::seabed::ContactLoad< double > SeabedLoadOf (const hydro_body::FlowFrame &frame) const
 The seabed load of the door in the pose and with the velocity of frame: NED, moment about the door origin.
 
bool HasJacobians () const override
 
- Protected Member Functions inherited from TrawlDoorBase
void HydroForceAt (const double *X, const double relVel_n[3], double force_n[3]) const
 plate_door::SteadyLoad at the velocity relVel_n relative to the water (NED) and the attitude and rates of the global state X; the force in NED.
 
void OutOfBoundRotationalDamping (const hydro_body::FlowFrame &frame, double damping[3]) const
 The derivative of the out-of-bound rotational damping moments against the angular rate, at frame.
 
hydro_body::Wrench SumLoads (double T, const double *X, const hydro_body::FlowFrame &frame, plate_door::Inflow &inflow) const
 
virtual void AddExternalForces (double T, const double *X, const hydro_body::FlowFrame &frame, hydro_body::Wrench &wrench) const
 Adds the warp and bridle forces of the input ports at their fastening points.
 
void AddInternalForces (double T, const hydro_body::FlowFrame &frame, hydro_body::Wrench &wrench) const
 Adds gravity at COG and the buoyancy of the wet part of the plate (R66, FISH-0092).
 
hydro_body::Wrench WaterLoad (double T, const double *X, const hydro_body::FlowFrame &frame) const
 
plate_door::Inflow AddHydroForces (const hydro_body::FlowFrame &frame, hydro_body::Wrench &wrench) const
 
void AddDampingForces (const hydro_body::FlowFrame &frame, hydro_body::Wrench &wrench) const
 Adds the linear damping, a numerical stabiliser on the door's own velocity and rates (R75, FISH-0091).
 
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)
 

Static Protected Member Functions

static FoilPolar ReadFoilPolar (ISimObjectCreator *creator)
 Reads the FoilHydro_* polar, reporting a parameter error when it is malformed.
 

Protected Attributes

ISignalPort * m_inFoilRelAoa
 
ISignalPort * m_inFoilRelAoaRate
 
ISignalPort * m_inFoilExposedAreaRatio
 
ISignalPort * m_inFoilRelPosition
 
FoilPolar m_foilPolar
 
double m_foilCord
 
double m_foilSpan
 
double m_foilHingeOffset
 Hinge to pressure centre along the chord.
 
int m_IStateEnergy
 
bool m_foilIsVertical
 
- Protected Attributes inherited from ToTrawlDoor
ISimObjectCreator * m_creator = nullptr
 
environment::SeafloorForcesInterface * m_seafloorForces = nullptr
 The shared "SeafloorForces", from FinalSetup.
 
double m_shoeWidth
 Width of the shoe [m], from ShoeWidth.
 
double m_outHydroLoad [6] = {0, 0, 0, 0, 0, 0}
 Output port HydroLoad.
 
double m_outSeabedLoad [6] = {0, 0, 0, 0, 0, 0}
 Output port SeabedLoad.
 
double m_roll
 
double m_pitch
 
- Protected Attributes inherited from TrawlDoorBase
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_mdCornerPos_body [4][3]
 
double m_rhoDoor
 The density of the trawl door material.
 
plate_door::Door m_law
 The door's constants for the plate-door law (Area, AR, Rho, IsPort, MaxLiftCoeff, DragCoeffAtMaxLift).
 
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.
 
ICommonComputation * m_commonCalc
 Calculations necessary for more than one output port.
 
environment::EnvironmentProvider * m_environment = nullptr
 m_flow's Environment, from FinalSetup.
 
DoorCaster m_caster
 The door for its wake; declared before m_flow, which keeps a pointer to it.
 
environment::wake::BodyFlowInteraction m_flow
 The wake the door casts and receives.
 
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]
 
HydroBody m_body
 The states Pos, Quater, LocalVel and Omega, the inertia (R70) and the derivatives.
 
unsigned long m_IStatePos
 
unsigned long m_IStateQuater
 
unsigned long m_IStateLocalVel
 
unsigned long m_IStateOmega
 
unsigned long m_IStateHydroForce
 
double m_outAlpha
 
plate_door::Inflow m_lastInflow {}
 The inflow of the last OdeFcn, for the render only (the billboard label); never read by the dynamics.
 

Member Function Documentation

◆ AddInflowDependentForces()

void TrawlDoorAddedFoil::AddInflowDependentForces ( double  T,
const double *  X,
const plate_door::Inflow &  inflow,
hydro_body::Wrench &  wrench 
) const
overrideprotectedvirtual

Reimplemented from TrawlDoorBase.

◆ AddOwnDerivatives()

void TrawlDoorAddedFoil::AddOwnDerivatives ( double  T,
const double *  X,
const plate_door::Inflow &  inflow,
double *  XDot 
) const
overrideprotectedvirtual

Reimplemented from TrawlDoorBase.


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