Marine systems simulation
Loading...
Searching...
No Matches
marenv::seafloor::FlatSeafloor Class Reference

#include <FlatSeafloor.h>

+ Inheritance diagram for marenv::seafloor::FlatSeafloor:
+ Collaboration diagram for marenv::seafloor::FlatSeafloor:

Public Member Functions

 FlatSeafloor ()=default
 Constructor.
 
 ~FlatSeafloor () override=default
 Destructor.
 
marenv::Status GetDepth (const double pos[2], double &depthOut) override
 
marenv::Status ComputeSurfaceUnitNormal (const double pos[2], double unitNormalOut[3]) override
 
marenv::Status GetSeabedSigma (const double pos[3], double &sigmaOut) override
 
marenv::Status GetSeabedTau (const double pos[3], double &tauOut) override
 
marenv::Status GetSeabedRho (const double pos[3], double &rhoOut) override
 
marenv::Status ComputeRayIntersection (const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance=100, double startSearchDistance=-1, double stepSize=1.0, double convergenceTolerance=0.01) override
 
- Public Member Functions inherited from marenv::seafloor::BathymetryField
virtual ~BathymetryField ()=default
 Virtual destructor.
 

Additional Inherited Members

- Protected Member Functions inherited from marenv::seafloor::BathymetryField
 BathymetryField ()=default
 Constructor is empty.
 

Detailed Description

A flat seabed at 200 m depth.

Represents a simple featureless ocean floor.

Member Function Documentation

◆ ComputeRayIntersection()

marenv::Status marenv::seafloor::FlatSeafloor::ComputeRayIntersection ( const double  origin[3],
const double  direction[3],
double &  distanceOut,
double  maxSearchDistance = 100,
double  startSearchDistance = -1,
double  stepSize = 1.0,
double  convergenceTolerance = 0.01 
)
overridevirtual

Returns the distance a ray must travel before intercepting the seafloor.

Parameters
[in]originPosition (x,y,z) of the origin of the ray
[in]directionThe unit direction (x,y,z) of the ray
[out]distanceOutThe distance the beam travelled before reaching the seabed.
[in]maxSearchDistanceThe maximum distance from the origin to search for an intersection.
[in]startSearchDistanceThe distance from the origin to start searching for an intersection (initial guess). If less then zero, the algorithm will coarsely estimate the crossing assuming a flat seabed and search from there.
[in]stepSizeThe search step size.
[in]convergenceToleranceThe vertical error tolerance between a computed point on the ray and a point on the seafloor to consider an intersection found.
Returns
marenv::Status::OK on success. See marenv::Status for other values.

Implements marenv::seafloor::BathymetryField.

◆ ComputeSurfaceUnitNormal()

marenv::Status marenv::seafloor::FlatSeafloor::ComputeSurfaceUnitNormal ( const double  pos[2],
double  unitNormalOut[3] 
)
overridevirtual

Returns the unit normal vector of the seafloor at a specific position.

Parameters
[in]posPosition (x,y) for which the unit normal surface vector is desired.
[out]unitNormalOutThe unit normal surface vector at pos.
Returns
marenv::Status::OK on success. See marenv::Status for other values.flag

Implements marenv::seafloor::BathymetryField.

◆ GetDepth()

marenv::Status marenv::seafloor::FlatSeafloor::GetDepth ( const double  pos[2],
double &  depthOut 
)
overridevirtual

Returns the seafloor depth at a specific position.

Parameters
[in]posPosition (x,y) for which depth is desired.
[out]depthOutDepth at pos.
Returns
marenv::Status::OK on success. See marenv::Status for other values.flag

Implements marenv::seafloor::BathymetryField.

◆ GetSeabedRho()

marenv::Status marenv::seafloor::FlatSeafloor::GetSeabedRho ( const double  pos[3],
double &  rhoOut 
)
overridevirtual

Returns seabed density (ρ) in kg/m³.

Parameters
[in]posThe position in question.
[out]rhoOutDensity in the specified position.
Returns
marenv::Status::OK on success. See marenv::Status for other values.flag

Implements marenv::seafloor::BathymetryField.

◆ GetSeabedSigma()

marenv::Status marenv::seafloor::FlatSeafloor::GetSeabedSigma ( const double  pos[3],
double &  sigmaOut 
)
overridevirtual

Returns seabed σ in Pascals (Pa).

Parameters
[in]posThe position in question.
[out]sigmaOutSigma in the specified position.
Returns
marenv::Status::OK on success. See marenv::Status for other values.flag

Implements marenv::seafloor::BathymetryField.

◆ GetSeabedTau()

marenv::Status marenv::seafloor::FlatSeafloor::GetSeabedTau ( const double  pos[3],
double &  tauOut 
)
overridevirtual

Returns seabed shear stress τ.

Parameters
[in]posThe position in question.
[out]tauOutShear stress in the specified position.
Returns
marenv::Status::OK on success. See marenv::Status for other values.flag

Implements marenv::seafloor::BathymetryField.


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