2#include "SeafloorForcesInterface.h"
4#include <marenv/seafloor/BathymetryField.h>
22 explicit SeafloorForces(std::shared_ptr<marenv::seafloor::BathymetryField> bathymetrybroker);
76 double GetSubmergence(
const double pos[2],
const double objectDepth)
override;
78 void CalcBottomForceSphere(
double diameter,
const double pos[3],
const double vel[3],
double forceOut[3])
override;
80 void CalcBottomForceBeam(
double tangent[3],
double beamWidth,
double beamLength,
double beamHeight,
const double endAPos_ned[3],
const double endBPos_ned[3],
const double endAVel_ned[3],
const double endBVel_ned[3],
double forceOutA[3],
double forceOutB[3])
override;
82 void CalcBottomForceBeam(
double beamWidth,
double beamHeight,
const double endAPos_ned[3],
const double endBPos_ned[3],
const double endAVel_ned[3],
const double endBVel_ned[3],
double forceOutA[3],
double forceOutB[3])
override;
84 void AddBottomForceCylinder(
const double diameter,
const double endAPos_ned[3],
const double endBPos_ned[3],
const double endAVel_ned[3],
const double endBVel_ned[3],
double forceOutA[3],
double forceOutB[3])
override;
86 void CoulombNonDirectionalForce(
const double pos[3],
const double vel[3],
double frictionCoeff,
double verticalStiffness,
double speedFullCoulomb,
double touchDistance,
double forceOut[3])
override;
102 void CalcBottomForceBeam(
double tangent[3],
double beamWidth,
double beamLength,
double beamHeight,
double submergenceA,
double submergenceB,
const double endAVel_ned[3],
const double endBVel_ned[3],
double forceOutsA[3],
double forceOutsB[3]);
114 void AddBottomForceCylinderNode(
const double submergence,
const double diameter,
const double dL,
const double tangent[3],
const double endPos_ned[3],
const double endVel_ned[3],
double forceOut[3]);
123 void CalcBottomForceSphere(
double diameter,
double submergence,
const double vel[3],
double forceOut[3]);
125 double m_dSeaFloorDampingHor;
126 double m_dSeaFloorDampingVert;
127 double m_dSeaFloorHardness;
128 double m_dSeaFloorDensity;
129 double m_dCableDampingTangential;
130 double m_dCableDampingNormal;
131 double m_contactDampingRatio;
133 std::shared_ptr<marenv::seafloor::BathymetryField> m_bathymetry;
Definition SeafloorForces.h:16
void SetDensity(double dDensity)
void CalcBottomForceSphere(double diameter, const double pos[3], const double vel[3], double forceOut[3]) override
void AddBottomForceCylinder(const double diameter, const double endAPos_ned[3], const double endBPos_ned[3], const double endAVel_ned[3], const double endBVel_ned[3], double forceOutA[3], double forceOutB[3]) override
double GetCableDampingTangential()
Get cable tangential damping.
void SetDampingHor(double dDampingHor)
double GetHardness()
Get seafloor hardness.
double GetSubmergence(const double pos[2], const double objectDepth) override
void CalcBottomForceBeam(double tangent[3], double beamWidth, double beamLength, double beamHeight, const double endAPos_ned[3], const double endBPos_ned[3], const double endAVel_ned[3], const double endBVel_ned[3], double forceOutA[3], double forceOutB[3]) override
double GetSubmergence(const double pos[3]) override
void CalcBottomForceBeam(double beamWidth, double beamHeight, const double endAPos_ned[3], const double endBPos_ned[3], const double endAVel_ned[3], const double endBVel_ned[3], double forceOutA[3], double forceOutB[3]) override
SeafloorForces(std::shared_ptr< marenv::seafloor::BathymetryField > bathymetrybroker)
void CoulombNonDirectionalForce(const double pos[3], const double vel[3], double frictionCoeff, double verticalStiffness, double speedFullCoulomb, double touchDistance, double forceOut[3]) override
void SetCableDampingTangential(double dCableDampingTangential)
void SetContactDampingRatio(double ratio)
void SetDampingVert(double dDampingVert)
double GetContactDampingRatio() const
Get the damping ratio of the linear contact damping [-].
double GetDampingVert()
Get vertical damping coefficient.
double GetCableDampingNormal()
Get cable normal damping.
void SetHardness(double dHardness)
double GetDampingHor()
Get horizontal damping coefficient.
void SetCableDampingNormal(double dCableDampingNormal)
double GetDensity()
Get seafloor density.