|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--mil.navy.nps.rra.Ray
Ray implements the Recursive Ray Acoustics (rra) Algorithm derived by Professor Lawrence Ziomek to rapidly calculate a sound ray's 3D path through water, taking into account piecewise-local SSP, Surface and Bottom conditions.
Any wave front can be decomposed into a set of plane waves with the plane waves travelling in the direction of the normal to the wave front. The normal for each plane wave is defined by the normal to the wave front at the point where the front and the plane wave touch. The rra algorithm uses a difference-equation formulation of the ray theory solution to the linear acoustic wave equation. This provides a computationally rapid and theoretically general approach to simulate one ray on the surface of a wavefront as it propagates through the ocean. This makes rra an excellent choice to simulate underwater sonar under a very wide range of underwater environments.
Contact: Don Brutzman (web.nps.navy.mil/~brutzman) brutzman@nps.navy.mil
1 Nov 97 | Timothy M. Holliday | New |
17 Mar 98 | Timothy M. Holliday | Added HTML comment convention |
12 Apr 98 | Timothy M. Holliday | Parameterless Constructors |
14 Apr 98 | Timothy M. Holliday | Simplified VRML Routines |
10 Oct 98 | Don Brutzman | Javadoc updates for jdk1.2b4 |
25 April 99 | Don Brutzman | Javadoc updates for jdk1.2.1 |
ExampleRay
,
Beam
,
Lobe
Constructor Summary | |
Ray()
Constructs a fixed size structure to trace a ray of acoustic energy through the ocean. |
Method Summary | |
double |
getAbsorption()
This method returns the current total relaxation absorbtion in dB. |
static boolean |
getAppendLineFeed()
This is a static method that returns the current line appendage. |
double |
getAzimuth()
This method returns the azimuthal angle. |
Bottom |
getBottom()
This method returns the handle to the bottom object. |
int |
getCount()
This method returns the current number of points stored for the ray. |
double |
getDeltaTime()
This method is returns the time step of the ray. |
int |
getDuration()
This returns the ping duration. |
double |
getElevation()
This method returns the elevation angle. |
Vec3d |
getNormal()
This method returns the normal vector to the wavefront. |
Vec3d |
getPosition()
This method gets the position of the ray. |
double |
getPositionX()
This method returns the x-component of the position of the wavefront |
double |
getPositionY()
This method returns the y-component of the position of the wavefront |
double |
getPositionZ()
This method returns the z-component of the position of the wavefront |
double |
getReflectionPhase()
This method returns the phase change of the wavefront |
SSP |
getSsp()
This method returns the handle to the sound speed profile object. |
Surface |
getSurface()
This method returns the handle to the surface object. |
double |
getTime()
This method returns the current simulation time. |
double |
getTime(int index)
This method returns a saved simulation time. |
Vec3d |
getTrailingPosition()
This method returns the position of the trailing edge of the wavefront |
java.lang.String |
normalizedTime(int N,
double endtime)
This method returns the requested normalized time as a string. |
java.lang.String |
position(int N)
This method returns the requested position as a String. |
void |
Propagate(double timeStep)
This method causes the ray to propagate one timestep into the future. |
void |
recordPoint()
This method forces a recording of the current ray position. |
boolean |
reflected()
This method returns whether or not the ray has been reflected in the most recent time step. |
void |
reset()
This method resets all of the ray parameters after instantiation has occurred since reuse is more time efficient than garbage collection and reallocation. |
static void |
setAppendLineFeed(boolean pAppendLineFeed)
This is a static method used to indicate whether a line feed is desired at the end of every line. |
void |
setAzimuth(double phi)
This method sets the azimuthal angle, which is the angle from the x-axis to the z-axis rotating about the y-axis. |
void |
setBottom(Bottom pBottom)
This method sets the handle to the bottom object. |
void |
setDeltaTime(double deltaTime)
This method is used to change the time step of the ray after instanciation. |
void |
setDuration(int duration)
This method sets the ping duration. |
void |
setElevation(double beta)
This method sets the elevation angle, which is the angle from the y-axis to the x-axis rotating about the z-axis. |
void |
setPosition(double x,
double y,
double z)
This method sets the position of the ray. |
void |
setSsp(SSP pSsp)
This method sets the handle to the sound speed profile object. |
void |
setSurface(Surface pSurface)
This method sets the handle to the surface object. |
double |
totalCurvature()
This returns the total curvature of the ray path since the last recorded point. |
java.lang.String |
trailingPosition(int N)
This method returns the requested trailing edge of the ray as a String. |
Methods inherited from class java.lang.Object |
|
Constructor Detail |
public Ray()
Method Detail |
public void reset()
public Vec3d getNormal()
public void setAzimuth(double phi)
public double getAzimuth()
public void setElevation(double beta)
public double getElevation()
public void setPosition(double x, double y, double z)
public Vec3d getPosition()
public void setDeltaTime(double deltaTime)
public double getDeltaTime()
public void setDuration(int duration)
public int getDuration()
public void setBottom(Bottom pBottom)
public Bottom getBottom()
public void setSurface(Surface pSurface)
public Surface getSurface()
public void setSsp(SSP pSsp)
public SSP getSsp()
public double getReflectionPhase()
public double getPositionX()
public double getPositionY()
public double getPositionZ()
public Vec3d getTrailingPosition()
public double getTime()
public double getTime(int index)
public void Propagate(double timeStep)
public int getCount()
public double getAbsorption()
public boolean reflected()
public void recordPoint()
public double totalCurvature()
public java.lang.String position(int N)
public java.lang.String trailingPosition(int N)
public java.lang.String normalizedTime(int N, double endtime)
public static void setAppendLineFeed(boolean pAppendLineFeed)
public static boolean getAppendLineFeed()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |