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

Public Member Functions

 Disk (const std::string &SimObjectName, ISimObjectCreator *const Creator)
 
void FinalSetup (const double T, const double *const X, ISimObjectCreator *const Creator)
 
void PreOdeFcn (double T, const double *X) override
 With CastWake: takes the disk axis from the Force input and rebuilds the wake when due.
 
const double * Position (const double T, const double *const X)
 
const double * Velocity (const double T, const double *const X)
 
void OdeFcn (const double T, const double *const X, double *const XDot) const
 
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
 
const environment::wake::BodyWake * Wake () const
 The wake: null without an Environment or before FinalSetup.
 

Member Function Documentation

◆ HasJacobians()

bool Disk::HasJacobians ( ) const
override

False while the disk was in contact with the seabed at the state of the last OdeFcn call: the soil load is not in OdeJacobian, so the engine's numerical Jacobian is used there (MARE-0134). HasJacobians is const and takes no state, so the contact it sees is that of the last OdeFcn call, which may have been at a perturbed or another stage's state, and there is none before the first call. FhSim reads it when it assembles the model (before any OdeFcn), to wire the solver's Jacobian, and again at each Jacobian assembly: a disk on the seabed at T = 0 is assembled as having an analytical Jacobian, and contact that starts between an OdeFcn and the next Jacobian evaluation gets the analytical block without the contact. Only the Newton matrix is affected, which may slow an implicit integrator at touchdown (MARE-0327, documented limitation; pinned by SimObject.Disk_HasJacobiansFollowsTheLastOdeFcnNotTheStateBeforeIt). OdeJacobian writes nothing while HasJacobians is false (FhSim's Jacobian checker, E12-Q3).


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