|
Marine systems simulation
|
#include <BathymetryField.h>
Inheritance diagram for marenv::seafloor::BathymetryField:
Collaboration diagram for marenv::seafloor::BathymetryField:Public Member Functions | |
| virtual | ~BathymetryField ()=default |
| Virtual destructor. | |
| virtual Status | GetDepth (const double pos[2], double &depthOut)=0 |
| virtual Status | ComputeSurfaceUnitNormal (const double pos[2], double unitNormalOut[3])=0 |
| virtual Status | GetSeabedSigma (const double pos[3], double &sigmaOut)=0 |
| virtual Status | GetSeabedTau (const double pos[3], double &tauOut)=0 |
| virtual Status | GetSeabedRho (const double pos[3], double &rhoOut)=0 |
| virtual Status | ComputeRayIntersection (const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance, double startSearchDistance, double stepSize, double convergenceTolerance)=0 |
Protected Member Functions | |
| BathymetryField ()=default | |
| Constructor is empty. | |
The interface for an representing seafloor depths and material properties
As a basis for calculation seafloor forces, the following seafloor properties are defined:
|
pure virtual |
Returns the distance a ray must travel before intercepting the seafloor.
| [in] | origin | Position (x,y,z) of the origin of the ray |
| [in] | direction | The unit direction (x,y,z) of the ray |
| [out] | distanceOut | The distance the beam travelled before reaching the seabed. |
| [in] | maxSearchDistance | The maximum distance from the origin to search for an intersection. |
| [in] | startSearchDistance | The 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] | stepSize | The search step size. |
| [in] | convergenceTolerance | The vertical error tolerance between a computed point on the ray and a point on the seafloor to consider an intersection found. |
Implemented in environmentmodels::NetCdfSeafloorBathymetry, marenv::seafloor::BathymetryWaves, and marenv::seafloor::FlatSeafloor.
|
pure virtual |
Returns the unit normal vector of the seafloor at a specific position.
| [in] | pos | Position (x,y) for which the unit normal surface vector is desired. |
| [out] | unitNormalOut | The unit normal surface vector at pos. |
Implemented in environmentmodels::NetCdfSeafloorBathymetry, marenv::seafloor::BathymetryWaves, and marenv::seafloor::FlatSeafloor.
|
pure virtual |
Returns the seafloor depth at a specific position.
| [in] | pos | Position (x,y) for which depth is desired. |
| [out] | depthOut | Depth at pos. |
Implemented in environmentmodels::NetCdfSeafloorBathymetry, marenv::seafloor::BathymetryWaves, and marenv::seafloor::FlatSeafloor.
|
pure virtual |
Returns seabed density (ρ) in kg/m³.
| [in] | pos | The position in question. |
| [out] | rhoOut | Density in the specified position. |
Implemented in environmentmodels::NetCdfSeafloorBathymetry, marenv::seafloor::BathymetryWaves, and marenv::seafloor::FlatSeafloor.
|
pure virtual |
Returns seabed σ in Pascals (Pa).
| [in] | pos | The position in question. |
| [out] | sigmaOut | Sigma in the specified position. |
Implemented in environmentmodels::NetCdfSeafloorBathymetry, marenv::seafloor::BathymetryWaves, and marenv::seafloor::FlatSeafloor.
|
pure virtual |
Returns seabed shear stress τ.
| [in] | pos | The position in question. |
| [out] | tauOut | Shear stress in the specified position. |
Implemented in environmentmodels::NetCdfSeafloorBathymetry, marenv::seafloor::BathymetryWaves, and marenv::seafloor::FlatSeafloor.