FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CHydroCylinder.h
1#ifndef C_HydroCylinder_H
2#define C_HydroCylinder_H
3
4#include "CRigidCylinder.h"
5
6#include <marenv/marenv.h>
7
8namespace rigidbody
9{
11{
12 public:
14 virtual ~CHydroCylinder();
15 CHydroCylinder(double innerRadius, double outerRadius, double height, double mass, CylinderEnd end, const std::string& material);
16 mat6 GetInertiaMatrix(const vec3& r, double time, const double* states, environment::EnvironmentProvider* environment);
17 vec6 GetInternalForces(const vec6& dX, const vec3& r, const quat& q, environment::EnvironmentProvider* environment, double time, const double* states);
18
20 void SetWaterDensity(double waterDensity) { m_waterDensity = waterDensity; }
21
22 protected:
23 double m_waterDensity = marenv::seawaterDensity;
24
26 vec6 GetBuoyancy(const vec3& r, const quat& q, environment::EnvironmentProvider* environment, double time) const;
27};
28}; // namespace rigidbody
29#endif
Definition CHydroCylinder.h:11
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,...
void SetWaterDensity(double waterDensity)
The water density [kg/m^3] of the buoyancy, the drag and the added mass (BASE-0054); default 1025.
Definition CHydroCylinder.h:20
Definition CRigidCylinder.h:16
constexpr double seawaterDensity
Ocean water density.
Definition marenv.h:20