USML
boundary_model Class Referenceabstract
Collaboration diagram for boundary_model:

Detailed Description

A "boundary model" computes the environmental parameters of the ocean's surface or bottom.

The modeled properties include the depth and reflection properties of the interface. This class implements a reflection loss model through delegation. The delegated model is defined separately and added to its host during/after construction. The host is defined as a reflect_loss_model subclass so that it's children can share the reflection loss model through this delegation.

This implementation defines the unit normal using cartesian coordinates in the $(\rho,\theta,\phi)$ directions relative to its location. Given this definition, the normal can be computed from the depth derivatives or slope angles using:

\[ s_\theta = tan(\sigma_\theta) = \frac{1}{\rho} \frac{ \partial h }{ \partial \theta } \]

\[ s_\phi = tan(\sigma_\phi) = \frac{1}{\rho sin(\theta)} \frac{ \partial h }{ \partial \phi} \]

\[ n_\theta = - sin(\sigma_\theta) = - \frac{ s_\theta }{ \sqrt{ 1 + s_\theta^2 } } \]

\[ n_\phi = - sin(\sigma_\phi) = - \frac{ s_\phi }{ \sqrt{ 1 + s_\phi^2 } } \]

\[ n_\rho = \sqrt{ 1 - ( n_\theta^2 + n_\phi^2 ) } \]

where:

  • $ (\rho,\theta,\phi) $ = location at which normal is computed,
  • $ ( \frac{\partial h}{\partial \theta}, \frac{\partial h}{\partial \phi} ) $ = depth derivative in the $(\rho,\theta)$ and $(\rho,\phi)$ planes (meters/radian),
  • $ ( s_\theta,s_\phi ) $ = slope in the $(\rho,\theta)$ and $(\rho,\phi)$ planes (meters/meter),
  • $ ( \sigma_\theta,\sigma_\phi ) $ = slope angle in the $(\rho,\theta)$ and $(\rho,\phi)$ planes (radians), and
  • $ ( n_\rho,n_\theta,n_\phi ) $ = unit normal components in "rho","theta", and "phi" directions (meters).

This definition of the unit normal saves processing time during reflection processing.

Constructor & Destructor Documentation

boundary_model ( reflect_loss_model reflect_loss = NULL)
inline

Initialize reflection loss components for a boundary.

Parameters
reflect_lossReflection loss model.
virtual ~boundary_model ( )
inlinevirtual

Delete reflection loss model.

Member Function Documentation

virtual void height ( const wposition location,
matrix< double > *  rho,
wvector normal = NULL,
bool  quick_interp = false 
)
pure virtual

Compute the height of the boundary and it's surface normal at a series of locations.

Parameters
locationLocation at which to compute boundary.
rhoSurface height in spherical earth coords (output).
normalUnit normal relative to location (output).
quick_interpDetermines if you want a fast nearest or pchip interp

Implemented in boundary_grid_fast, boundary_slope, boundary_grid< DATA_TYPE, NUM_DIMS >, and boundary_flat.

virtual void height ( const wposition1 location,
double *  rho,
wvector1 normal = NULL,
bool  quick_interp = false 
)
pure virtual

Compute the height of the boundary and it's surface normal at a single location.

Often used during reflection processing.

Parameters
locationLocation at which to compute boundary.
rhoSurface height in spherical earth coords (output).
normalUnit normal relative to location (output).
quick_interpDetermines if you want a fast nearest or pchip interp

Implemented in boundary_grid< DATA_TYPE, NUM_DIMS >, boundary_grid_fast, boundary_slope, and boundary_flat.

void reflect_loss ( reflect_loss_model reflect_loss)
inline

Define a new reflection loss model.

Parameters
reflect_lossReflection loss model.
virtual void reflect_loss ( const wposition1 location,
const seq_vector frequencies,
double  angle,
vector< double > *  amplitude,
vector< double > *  phase = NULL 
)
inlinevirtual

Computes the broadband reflection loss and phase change.

Parameters
locationLocation at which to compute attenuation.
frequenciesFrequencies over which to compute loss. (Hz)
angleGrazing angle relative to the interface (radians).
amplitudeChange in ray strength in dB (output).
phaseChange in ray phase in dB (output).

Implements reflect_loss_model.

Member Data Documentation

reflect_loss_model* _reflect_loss_model
protected

Reference to the reflection loss model.