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

Public Types

enum  EFileType { FILE_TYPE_VERES , FILE_TYPE_WAMIT }
 

Public Member Functions

void SetupFromFile (std::string fname, EFileType type, HullData *H)
 
void SetHullData (HullData *HD)
 
void SetTheoryFormulation (int theory)
 
void SetManoeuvreMinSpeed (double speed)
 Smallest speed [m/s] in v/u and r Lpp/u of the manoeuvring terms (the speed is held to it); must be positive.
 
void SetPhiAmplitudeHorizon (double horizon)
 
void GetViscousAddedMass (double u, double v, double r, Eigen::Matrix3d &Mat) const
 
double GetViscousSurge (double u, double v, double r) const
 
double GetViscousSway (double u, double v, double r) const
 
double GetViscousYaw (double u, double v, double r) const
 
double GetViscousRoll (double phiDot, double u=0) const
 
bool IsSkegStation (int station) const
 True when the skeg is on (WithSkeg not 0) and station is one of its stations: the eddy damping is zeroed there (MAR-0078)
 
double EddieDamping (double phiDot, double u=0) const
 
double BilgeKeelDamping (double phiDot, double u=0) const
 
double FricitonDamping (double phiDot, double u=0) const
 
double LiftDamping (double phiDot, double u=0) const
 
double SkegDamping (double phiDot, double u=0) const
 
double SkegLiftDamping (double phiDot, double u) const
 
double RollAmplitude () const
 The roll amplitude of the history: the largest value of |roll| within the amplitude horizon.
 
void AddToRollTimeHistory (const double T, double RollAngle, const bool bIsMajorTimeStep)
 
bool MakeBildgeKeel (double m_BilgeKeelStartPosition, double m_BilgeKeelEndPosition, double m_BilgeKeelHeight)
 False (and no bilge keel) when a start or end station of the range has no neighbour station on both sides (MAR-0075)
 
void SetSkeg (int startSection, int endSection, const std::vector< int > &startPoints, const std::vector< int > &endPoints)
 Sets the skeg stations startSection..endSection and, per station, the first and last vertex index of the skeg (one entry per station in each vector). Call after the hull is read.
 
bool HullHasTheSkegStations () const
 True when the hull has more than SkegEndSection stations and every skeg station has more vertices than its skeg end index (MAR-0078)
 
void SetHorizontalDampingBlend (double blendSpeed, double blendFraction=0.5)
 
void SetDpDampingX (double Xu, double Xv, double Xr)
 
void SetDpDampingY (double Yu, double Yv, double Yr)
 
void SetDpDampingN (double Nu, double Nv, double Nr)
 
const std::vector< double > & GetSectionLength () const
 The length of each station's section (half the spacing to each neighbour)
 
double ManeuverReferenceSpeed () const
 
void ManeuverReferenceSpeed (double val)
 

Public Attributes

double Yv_man
 
double Yr_man
 
double Yrd_man
 
double Yvd_man
 
double Nv_man
 
double Nr_man
 
double Nrd_man
 
double Nvd_man
 
double Xrr_man
 
double Xud_man
 
double Xvr_man
 
double Xvv_man
 
double Xvvvv_man
 
double Xu_dp
 
double Yu_dp
 
double Nu_dp
 
double Xv_dp
 
double Yv_dp
 
double Nv_dp
 
double Xr_dp
 
double Yr_dp
 
double Nr_dp
 
int m_withSkeg
 
bool m_skegLift
 
bool m_hullLift
 

Protected Member Functions

double deltaWingKP (double A_ratio) const
 
double deltaWingKV (double A_ratio) const
 
double deltaWingCL (double alfa, double Kp, double Kv) const
 
double ManoeuvreSpeed (double u) const
 
void ReadMainDimensionsVeres (std::string fname)
 
void ReadMainDimensionsWamit (std::string fname)
 

Protected Attributes

double m_manoeuvreMinSpeed = 0.1
 
double m_maneuverReferenceSpeed
 
double m_viscousDampingBlender
 
int m_bilgeKeelStartSection
 
int m_bilgeKeelEndSection
 
double m_startSectionFractionBK
 
double m_endSectionFractionBK
 
int rollDampingTheory
 
int SkegStartSection
 
int SkegEndSection
 
std::vector< int > SkegStartPoints
 
std::vector< int > SkegEndPoints
 
HullData * myHullData
 
double surfaceOfHull
 
double kinematicViscosity
 
std::vector< double > bilgeKeelHeight
 
std::vector< double > Ds
 
std::vector< double > Bs
 
std::vector< double > H0
 
std::vector< double > SigmaS
 
std::vector< double > A1
 
std::vector< double > A3
 
std::vector< double > Ms
 
double Lpp = kNotRead
 
double B = kNotRead
 
double T = kNotRead
 
double Cb = kNotRead
 
double VCG = kNotRead
 
double Lo
 
double Lr
 
double Kn
 
std::vector< double > SectionLength
 
std::deque< double > phi_history
 
std::deque< double > time_history
 
double phiAmplitude
 
double phiAmplitudeTime
 
double m_rf
 
double OG
 
double phiAmplitudeHorizon = 2.75*3.1622776601683795
 2.75 sqrt(10) s, as before the horizon was read
 
int numberOfStations
 

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