boundary_model Class Reference
[Ocean Boundaries]

Collaboration diagram for boundary_model:
Collaboration graph
[legend]

Detailed Description

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

The modeled properties include the depth, reflection properties, and reverberation scattering strength 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:

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


Constructor & Destructor Documentation

boundary_model ( reflect_loss_model reflect_loss = NULL,
scattering_model scattering = NULL 
) [inline]

Initialize reflection loss components for a boundary.

Parameters:
reflect_loss Reflection loss model.
scattering Reverberation scattering strength model.
virtual ~boundary_model (  )  [inline, virtual]

Delete reflection loss model.


Member Function Documentation

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:
location Location at which to compute boundary.
rho Surface height in spherical earth coords (output).
normal Unit normal relative to location (output).
quick_interp Determines if you want a fast nearest or pchip interp

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

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:
location Location at which to compute boundary.
rho Surface height in spherical earth coords (output).
normal Unit normal relative to location (output).
quick_interp Determines if you want a fast nearest or pchip interp

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

virtual void reflect_loss ( const wposition1 location,
const seq_vector frequencies,
double  angle,
vector< double > *  amplitude,
vector< double > *  phase = NULL 
) [inline, virtual]

Computes the broadband reflection loss and phase change.

Parameters:
location Location at which to compute attenuation.
frequencies Frequencies over which to compute loss. (Hz)
angle Grazing angle relative to the interface (radians).
amplitude Change in ray strength in dB (output).
phase Change in ray phase in dB (output).

Implements reflect_loss_model.

void reflect_loss ( reflect_loss_model reflect_loss  )  [inline]

Define a new reflection loss model.

Parameters:
reflect_loss Reflection loss model.
virtual void scattering ( const wposition location,
const seq_vector frequencies,
double  de_incident,
matrix< double >  de_scattered,
double  az_incident,
matrix< double >  az_scattered,
matrix< vector< double > > *  amplitude 
) [inline, virtual]

Computes the broadband scattering strength for a collection of scattering angles from a common incoming ray.

Each scattering has its own location, de_scattered, and az_scattered. The result is a broadband reverberation scattering strength for each scattering.

Parameters:
location Location at which to compute attenuation.
frequencies Frequencies over which to compute loss. (Hz)
de_incident Depression incident angle (radians).
de_scattered Depression scattered angle (radians).
az_incident Azimuthal incident angle (radians).
az_scattered Azimuthal scattered angle (radians).
amplitude Reverberation scattering strength ratio (output).

Implements scattering_model.

virtual void scattering ( const wposition1 location,
const seq_vector frequencies,
double  de_incident,
double  de_scattered,
double  az_incident,
double  az_scattered,
vector< double > *  amplitude 
) [inline, virtual]

Computes the broadband scattering strength for a single location.

Parameters:
location Location at which to compute attenuation.
frequencies Frequencies over which to compute loss. (Hz)
de_incident Depression incident angle (radians).
de_scattered Depression scattered angle (radians).
az_incident Azimuthal incident angle (radians).
az_scattered Azimuthal scattered angle (radians).
amplitude Change in ray strength in dB (output).

Implements scattering_model.

void scattering ( scattering_model scattering  )  [inline]

Define a new reverberation scattering strength model.

Parameters:
scattering Scattering model for this boundary

Member Data Documentation

Reference to the reflection loss model.

Reference to the scattering strength model.


Generated on 4 May 2015 for USML by  doxygen 1.6.1