public class Ray extends Object
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 |
Beam
,
Lobe
Constructor and Description |
---|
Ray()
Constructs a fixed size structure to trace a
ray of acoustic energy through the ocean.
|
Modifier and Type | Method and Description |
---|---|
double |
getAbsorption()
Returns the current total relaxation absorbtion in dB.
|
static boolean |
getAppendLineFeed()
This is a static method that returns the current line appendage.
|
double |
getAzimuth()
Returns the azimuthal angle.
|
Bottom |
getBottom()
Returns the handle to the bottom object.
|
int |
getCount()
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()
Returns the elevation angle.
|
Vec3d |
getNormal()
Returns the normal vector to the wavefront.
|
Vec3d |
getPosition()
Gets the position of the ray.
|
double |
getPositionX()
Returns the x-component of the position of the wavefront
|
double |
getPositionY()
Returns the y-component of the position of the wavefront
|
double |
getPositionZ()
Returns the z-component of the position of the wavefront.
|
double |
getReflectionPhase()
Returns the phase change of the wavefront
|
SSP |
getSsp()
Returns the handle to the sound speed profile object.
|
Surface |
getSurface()
Returns the handle to the surface object.
|
double |
getTime()
Returns the current simulation time.
|
double |
getTime(int index)
Returns a saved simulation time.
|
Vec3d |
getTrailingPosition()
Returns the position of the trailing edge of the wavefront.
|
boolean |
hasIntersectedBottom(Vec3d Pos)
Evaluates the 3-position of vectors whether they meet in interpolation current depth criteria.
|
String |
normalizedTime(int N,
double endtime)
Returns the requested normalized time as a string.
|
String |
position(int N)
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()
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)
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)
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)
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)
Sets the position of the ray.
|
void |
setSsp(SSP pSsp)
Sets the handle to the sound speed profile object.
|
void |
setSurface(Surface pSurface)
Sets the handle to the surface object.
|
double |
totalCurvature()
Returns the total curvature of the ray path since the last recorded point.
|
String |
trailingPosition(int N)
Returns the requested trailing edge of the ray as a String.
|
public Ray()
public void reset()
public Vec3d getNormal()
public void setAzimuth(double phi)
phi
- The azimuthal angle.public double getAzimuth()
public void setElevation(double beta)
beta
- The elevation angle.public double getElevation()
public void setPosition(double x, double y, double z)
x
- The oordinate x.y
- The coordinate y.z
- The coordinate z.public Vec3d getPosition()
public void setDeltaTime(double deltaTime)
deltaTime
- The time step of the ray.public double getDeltaTime()
public void setDuration(int duration)
duration
- The ping duration.public int getDuration()
public void setBottom(Bottom pBottom)
pBottom
- the Bottom object.public Bottom getBottom()
public void setSurface(Surface pSurface)
pSurface
- the Surface object.public Surface getSurface()
public void setSsp(SSP pSsp)
pSsp
- The SSP(Sound Speed Profile) object.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)
index
- The array of index.public void Propagate(double timeStep)
timeStep
- The time step of the ray.public int getCount()
public double getAbsorption()
public boolean reflected()
public void recordPoint()
public double totalCurvature()
public String position(int N)
N
- The index for array.public String trailingPosition(int N)
N
- The index for array.public String normalizedTime(int N, double endtime)
N
- The index for array.endtime
- The time of after the time step.public static void setAppendLineFeed(boolean pAppendLineFeed)
pAppendLineFeed
- 'true' indicates a linefeed is desired and 'false' indicates that a space
is desired"public static boolean getAppendLineFeed()
public boolean hasIntersectedBottom(Vec3d Pos)
Pos
- The 3-position of vectors.