Marine systems simulation
Loading...
Searching...
No Matches
environment::SeafloorForces Class Reference

#include <SeafloorForces.h>

+ Inheritance diagram for environment::SeafloorForces:
+ Collaboration diagram for environment::SeafloorForces:

Public Member Functions

 SeafloorForces (std::shared_ptr< marenv::seafloor::BathymetryField > bathymetrybroker)
 
void SetDampingHor (double dDampingHor)
 
void SetDampingVert (double dDampingVert)
 
void SetHardness (double dHardness)
 
void SetDensity (double dDensity)
 
void SetCableDampingTangential (double dCableDampingTangential)
 
void SetCableDampingNormal (double dCableDampingNormal)
 
double GetDampingHor ()
 Get horizontal damping coefficient.
 
double GetDampingVert ()
 Get vertical damping coefficient.
 
double GetHardness ()
 Get seafloor hardness.
 
double GetDensity ()
 Get seafloor density.
 
double GetCableDampingTangential ()
 Get cable tangential damping.
 
double GetCableDampingNormal ()
 Get cable normal damping.
 
double GetSubmergence (const double pos[3]) override
 
double GetSubmergence (const double pos[2], const double objectDepth) override
 
void CalcBottomForceSphere (double diameter, const double pos[3], const double vel[3], double forceOut[3]) 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
 
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
 
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
 
void CoulombNonDirectionalForce (const double pos[3], const double vel[3], double frictionCoeff, double verticalStiffness, double speedFullCoulomb, double touchDistance, double forceOut[3]) override
 

Detailed Description

Implementation of seafloor force calculations.

Computes hydrodynamic interaction forces between submerged objects and the seafloor, including damping, hardness, and friction models. Requires a BathymetryField for depth queries.

Constructor & Destructor Documentation

◆ SeafloorForces()

environment::SeafloorForces::SeafloorForces ( std::shared_ptr< marenv::seafloor::BathymetryField bathymetrybroker)
explicit

Construct SeafloorForces with bathymetry provider.

Parameters
[in]bathymetrybrokerProvider for seabed depth queries.

Member Function Documentation

◆ AddBottomForceCylinder()

void environment::SeafloorForces::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

◆ CalcBottomForceBeam() [1/2]

void environment::SeafloorForces::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

◆ CalcBottomForceBeam() [2/2]

void environment::SeafloorForces::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

◆ CalcBottomForceSphere()

void environment::SeafloorForces::CalcBottomForceSphere ( double  diameter,
const double  pos[3],
const double  vel[3],
double  forceOut[3] 
)
override

◆ CoulombNonDirectionalForce()

void environment::SeafloorForces::CoulombNonDirectionalForce ( const double  pos[3],
const double  vel[3],
double  frictionCoeff,
double  verticalStiffness,
double  speedFullCoulomb,
double  touchDistance,
double  forceOut[3] 
)
override

◆ GetSubmergence() [1/2]

double environment::SeafloorForces::GetSubmergence ( const double  pos[2],
const double  objectDepth 
)
override

◆ GetSubmergence() [2/2]

double environment::SeafloorForces::GetSubmergence ( const double  pos[3])
override

◆ SetCableDampingNormal()

void environment::SeafloorForces::SetCableDampingNormal ( double  dCableDampingNormal)

Set cable damping (normal component).

Parameters
[in]dCableDampingNormalNormal damping [-].

◆ SetCableDampingTangential()

void environment::SeafloorForces::SetCableDampingTangential ( double  dCableDampingTangential)

Set cable damping (tangential component).

Parameters
[in]dCableDampingTangentialTangential damping [-].

◆ SetDampingHor()

void environment::SeafloorForces::SetDampingHor ( double  dDampingHor)

Set horizontal damping coefficient.

Parameters
[in]dDampingHorHorizontal damping [N/m/s].

◆ SetDampingVert()

void environment::SeafloorForces::SetDampingVert ( double  dDampingVert)

Set vertical damping coefficient.

Parameters
[in]dDampingVertVertical damping [N/m/s].

◆ SetDensity()

void environment::SeafloorForces::SetDensity ( double  dDensity)

Set seafloor density.

Parameters
[in]dDensitySeafloor density [kg/m³].

◆ SetHardness()

void environment::SeafloorForces::SetHardness ( double  dHardness)

Set seafloor hardness.

Parameters
[in]dHardnessSeafloor hardness [N/m].

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