FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Ship::PotentialData Class Referenceabstract
+ Inheritance diagram for Ship::PotentialData:
+ Collaboration diagram for Ship::PotentialData:

Classes

struct  TimeDomainRadiation
 

Public Member Functions

virtual void Read (const std::string &fname, int flipPhaseForOSC=0)=0
 
virtual Eigen::Matrix< double, 6, 6 > GetHToO ()=0
 
const std::vector< std::string > & Warnings () const
 What the reader noted while it read the data (a missing optional file). The ship logs each once.
 
void ClearWarnings ()
 
virtual void SetOriginWorigin ()=0
 
virtual void SetOriginGorigin ()=0
 
virtual void SetOrigin (Eigen::Matrix< double, 3, 1 > &r)=0
 
Eigen::Matrix< double, 6, 6 > GetMassRigidBody ()
 
Eigen::Matrix< double, 6, 6 > GetAinf (unsigned int speedno=0)
 
Eigen::Matrix< double, 6, 6 > GetMassTotal (unsigned int speedno=0)
 
Eigen::Matrix< double, 6, 6 > GetAw (unsigned int FreqNo, unsigned int SpeedNo=0)
 
Eigen::Matrix< double, 6, 6 > GetBw (unsigned int FreqNo, unsigned int SpeedNo=0)
 
virtual Eigen::Matrix< double, 6, 6 > GetCw (unsigned int FreqNo, unsigned int SpeedNo=0)
 
Eigen::Matrix< double, 1, Eigen::Dynamic > GetAij (unsigned int DOF1, unsigned int DOF2, unsigned int SpeedNo=0)
 
Eigen::Matrix< double, 1, Eigen::Dynamic > GetBij (unsigned int DOF1, unsigned int DOF2, unsigned int SpeedNo=0)
 
Eigen::Matrix< double, 1, Eigen::Dynamic > GetCij (unsigned int DOF1, unsigned int DOF2, unsigned int SpeedNo=0)
 
Eigen::Matrix< double, 1, Eigen::Dynamic > GetSpeed ()
 
Eigen::Matrix< double, 1, Eigen::Dynamic > GetHeading ()
 
Eigen::Matrix< double, 1, Eigen::Dynamic > GetFrequency (int SpeedNo=0)
 
virtual Eigen::Matrix< double, 3, 1 > GetRg ()
 
virtual Eigen::Matrix< double, 3, 1 > GetRo ()
 
Eigen::Matrix< double, 6, 1 > GetFirstOrderForce (const Eigen::Matrix< double, 3, 1 > &Kxy, double ShipSpeed, double RaoSpeed, double WaveDirection, double WaveAmplitude, double WaveFrequency, double WaveNumber, double WavePhase, double Time)
 
Eigen::Matrix< double, 6, 1 > GetSecondOrderForce (Eigen::Matrix< double, 3, 1 > ShipPosition, double ShipSpeed, double WaveDirection, double WaveHeight, double WaveFrequency, double WaveNumber, double WavePhase, double Time)
 
void GenerateZeroSpeedTimeDomainApproximation ()
 
void GenerateTimeDomainApproximation ()
 
void PrintShip ()
 
size_t GetTimeDomainStateSize (int DOF1, int DOF2, int SpeedNo=0)
 
void ZeroSpeedIdentificaitonToCache ()
 
bool ZeroSpeedIdentificationFromCache ()
 
void IdentificaitonToCache ()
 
bool IdentificationFromCache ()
 
void RadiationDerivative (int DOF1, int DOF2, double *derivative, const double *const radiation_state, const double *ship_state, unsigned int SpeedNo=0)
 
double RadiationOutput (int DOF1, int DOF2, const double *const radiation_state, const double *const ship_state, unsigned int SpeedNo=0)
 

Public Attributes

std::map< int, TimeDomainRadiation, std::less< int >, Eigen::aligned_allocator< std::pair< const int, TimeDomainRadiation > > > RadiationApproximation
 

Protected Member Functions

virtual bool is2Ddata ()
 

Protected Attributes

std::string fname
 
std::vector< std::string > m_warnings
 
double Lpp = std::numeric_limits<double>::quiet_NaN()
 
double Bredth = std::numeric_limits<double>::quiet_NaN()
 
double Draught = std::numeric_limits<double>::quiet_NaN()
 
double LCG = std::numeric_limits<double>::quiet_NaN()
 
double VCG = std::numeric_limits<double>::quiet_NaN()
 
double LCB = std::numeric_limits<double>::quiet_NaN()
 
double VCB = std::numeric_limits<double>::quiet_NaN()
 
unsigned int NoSpeed = 0
 
unsigned int NoHeading
 
unsigned int NoDOF
 
unsigned int NoFrequency
 
std::vector< double > Speed
 
std::vector< double > Heading
 
std::vector< std::vector< double > > Frequency
 one row per speed; a row stays empty until it is read
 
std::unique_ptr< FroudeKrylovForce > FroudeFrylov
 
std::unique_ptr< WaveDriftForce > WaveDrift
 
Eigen::Matrix< double, 6, 6 > Mrbeig
 
std::vector< std::vector< Eigen::Matrix< double, 6, 6 > > > A
 
std::vector< std::vector< Eigen::Matrix< double, 6, 6 > > > B
 
std::vector< std::vector< Eigen::Matrix< double, 6, 6 > > > C
 
std::vector< std::vector< Eigen::Matrix< double, 6, 6 > > > Aadd
 
std::vector< std::vector< Eigen::Matrix< double, 6, 6 > > > Badd
 
std::vector< std::vector< Eigen::Matrix< double, 6, 6 > > > Cadd
 
Eigen::Matrix< double, 3, 1 > rg
 
Eigen::Matrix< double, 3, 1 > ro
 
std::map< std::string, double > param
 

Member Function Documentation

◆ GetFirstOrderForce()

Eigen::Matrix< double, 6, 1 > Ship::PotentialData::GetFirstOrderForce ( const Eigen::Matrix< double, 3, 1 > &  Kxy,
double  ShipSpeed,
double  RaoSpeed,
double  WaveDirection,
double  WaveAmplitude,
double  WaveFrequency,
double  WaveNumber,
double  WavePhase,
double  Time 
)
inline

The first-order excitation force. ShipSpeed gives the encounter frequency; RaoSpeed is the forward speed of the ship at which the excitation RAO is read (bilinear in speed and frequency, the speed held to the speeds of the data, MAR-0092).


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