FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
rigidbody::CHydroCylinder Class Reference

#include <CHydroCylinder.h>

+ Inheritance diagram for rigidbody::CHydroCylinder:
+ Collaboration diagram for rigidbody::CHydroCylinder:

Public Member Functions

 CHydroCylinder (double innerRadius, double outerRadius, double height, double mass, CylinderEnd end, const std::string &material)
 
mat6 GetInertiaMatrix (const vec3 &r, double time, const double *states, environment::EnvironmentProvider *environment)
 
vec6 GetInternalForces (const vec6 &dX, const vec3 &r, const quat &q, environment::EnvironmentProvider *environment, double time, const double *states)
 
void SetWaterDensity (double waterDensity)
 The water density [kg/m^3] of the buoyancy, the drag and the added mass (BASE-0054); default 1025.
 
- Public Member Functions inherited from rigidbody::CRigidCylinder
 CRigidCylinder (double innerRadius, double outerRadius, double height, double mass, CylinderEnd end, const std::string &material)
 
mat6 GetInertiaMatrix (const vec3 &r, double time, const double *states, environment::EnvironmentProvider *environment)
 
vec6 GetInternalForces (const vec6 &dX, const vec3 &r, const quat &q, environment::EnvironmentProvider *environment, double time, const double *states)
 
mat64 GetGravityForceDerivative (const quat &q)
 
- Public Member Functions inherited from rigidbody::CRigidBody
vec13 GetSecondDerivative (const vec3 &r, const quat &q, const vec3 &v, const vec3 w, const vec6 &externalForces, environment::EnvironmentProvider *environment, double time, const double *states)
 
mat13 GetSecondDerivativeJacobian (const vec3 &r, const quat &q, const vec3 &v, const vec3 &w, const vec6 &externalForces, environment::EnvironmentProvider *environment, double time, const double *states)
 
void WriteStateJacobian (const double *X, int positionIndex, int quaterIndex, int velocityIndex, int omegaIndex, const vec6 &externalForces, environment::EnvironmentProvider *environment, double time, double *J, int nStates)
 

Protected Member Functions

vec6 GetBuoyancy (const vec3 &r, const quat &q, environment::EnvironmentProvider *environment, double time) const
 The buoyancy of the wetted material volume at its centre of buoyancy, body frame (R94, BASE-0067).
 

Protected Attributes

double m_waterDensity = marenv::seawaterDensity
 
- Protected Attributes inherited from rigidbody::CRigidCylinder
double iR
 
double oR
 
double h
 
double m
 
double V
 
CylinderEnd endType
 
std::string m_material
 

Additional Inherited Members

- Static Public Member Functions inherited from rigidbody::CRigidBody
static vec6 GetCoriolisForce (const vec6 &dX, const mat6 &Inertia)
 
static mat6 GetCoriolisForceDerivative (const vec6 &dX, const mat6 &Inertia)
 d(GetCoriolisForce)/d(dX) at a fixed inertia matrix, bodylocal.
 
static mat6 ReorientInertiaTranslateRotate (const mat6 &Inertia, const vec6 &orientation)
 
static mat3 MakeDyadic (const vec3 &vector)
 
static mat34 RotationDerivative (const quat &q, const vec3 &x)
 
static mat34 ConjugateRotationDerivative (const quat &q, const vec3 &x)
 
static mat3 GetRotation (const vec3 &angle)
 
static mat6 GetRotation6 (const vec3 &angle)
 

Detailed Description

A rigid cylinder in water: buoyancy, drag, torsion, spin lift, end-face drag and added mass (the anchor shank).

The cross-flow drag with the axial skin friction, the torsion and the added mass across the axis are fhsim_environment's wet-cylinder law (environment::wet_cylinder) with its Reynolds-number coefficients Cd(Re) and Ct(Re) and Ca 1 (owner ruling 2026-10-21, BASE-0085). These parts have no environment law and stay here: the spin lift 2 pi rho R^2 w_z across the axis; the end-face drag 1/2 rho A |v| v on the axis, with its floor 0.005 2R h on the area of an open end; the added mass along the axis, (4/3) rho pi R^3 (owner ruling R73), and in pitch and yaw, rho pi R^2 h^3 / 12.

Member Function Documentation

◆ GetInertiaMatrix()

mat6 rigidbody::CHydroCylinder::GetInertiaMatrix ( const vec3 &  r,
double  time,
const double *  states,
environment::EnvironmentProvider *  environment 
)
virtual

Implements rigidbody::CRigidBody.

◆ GetInternalForces()

vec6 rigidbody::CHydroCylinder::GetInternalForces ( const vec6 &  dX,
const vec3 &  r,
const quat &  q,
environment::EnvironmentProvider *  environment,
double  time,
const double *  states 
)
virtual

Implements rigidbody::CRigidBody.


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