edu.sc.seis.TauP
Class SphericalSModel

java.lang.Object
  extended by edu.sc.seis.TauP.SlownessModel
      extended by edu.sc.seis.TauP.SphericalSModel
All Implemented Interfaces:
java.io.Serializable

public class SphericalSModel
extends SlownessModel
implements java.io.Serializable

This class provides storage and methods for generating slowness-depth pairs in a spherical earth model.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.sc.seis.TauP.SlownessModel
allowInnerCoreS, criticalDepths, DEBUG, DEFAULT_SLOWNESS_TOLERANCE, fluidLayerDepths, highSlownessLayerDepthsP, highSlownessLayerDepthsS, maxDeltaP, maxDepthInterval, maxInterpError, maxRangeInterval, minDeltaP, PLayers, PWAVE, radiusOfEarth, SLayers, slownessTolerance, SWAVE, vectorLength, verbose, vMod
 
Constructor Summary
SphericalSModel(double radiusOfEarth, VelocityModel vMod, java.util.List<CriticalDepth> criticalDepths, java.util.List<DepthRange> highSlownessLayerDepthsP, java.util.List<DepthRange> highSlownessLayerDepthsS, java.util.List<DepthRange> fluidLayerDepths, java.util.List<SlownessLayer> pLayers, java.util.List<SlownessLayer> sLayers, double minDeltaP, double maxDeltaP, double maxDepthInterval, double maxRangeInterval, double maxInterpError, boolean allowInnerCoreS, double slownessTolerance)
           
SphericalSModel(VelocityModel vMod)
           
SphericalSModel(VelocityModel vMod, double minDeltaP, double maxDeltaP, double maxDepthInterval, double maxRangeInterval, double maxInterpError, boolean allowInnerCoreS, double slownessTolerance)
           
 
Method Summary
 double interpolate(double p, double topVelocity, double topDepth, double slope)
          Returns the depth for a slowness given a velocity gradient.
 TimeDist layerTimeDist(double sphericalRayParam, int layerNum, boolean isPWave)
          Calculates the time and distance increments accumulated by a ray of spherical ray parameter p when passing through layer layerNum.
 double toSlowness(double velocity, double depth)
          Returns the slowness for a velocity at a depth.
 SlownessLayer toSlownessLayer(VelocityLayer vLayer, boolean isPWave)
          Converts a velocity layer into a slowness layer.
 java.lang.String toString()
           
 double toVelocity(double slowness, double depth)
          Returns the velocity for a slowness at a depth.
 boolean validate()
          Performs consistency check on the velocity model.
 
Methods inherited from class edu.sc.seis.TauP.SlownessModel
addSlowness, approxDistance, coarseSample, depthIncCheck, depthInFluid, depthInFluid, depthInHighSlowness, depthInHighSlowness, distanceCheck, findCriticalPoints, findDepth, findDepth, findDepth, fixCriticalPoints, getAllSlownessLayers, getCriticalDepth, getHighSlowness, getMaxDeltaP, getMaxDepthInterval, getMaxInterpError, getMaxRangeInterval, getMinDeltaP, getMinRayParam, getMinTurnRayParam, getNumCriticalDepths, getNumLayers, getRadiusOfEarth, getSlownessLayer, getSlownessTolerance, getVelocityModel, isAllowInnerCoreS, layerNumberAbove, layerNumberBelow, layerNumForDepth, rayParamIncCheck, setAllowInnerCoreS, setMaxDeltaP, setMaxDepthInterval, setMaxInterpError, setMaxRangeInterval, setMinDeltaP, setRadiusOfEarth, setSlownessTolerance, splitLayer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SphericalSModel

public SphericalSModel(VelocityModel vMod)
                throws NoSuchMatPropException,
                       NoSuchLayerException,
                       SlownessModelException
Throws:
NoSuchMatPropException
NoSuchLayerException
SlownessModelException

SphericalSModel

public SphericalSModel(VelocityModel vMod,
                       double minDeltaP,
                       double maxDeltaP,
                       double maxDepthInterval,
                       double maxRangeInterval,
                       double maxInterpError,
                       boolean allowInnerCoreS,
                       double slownessTolerance)
                throws NoSuchMatPropException,
                       NoSuchLayerException,
                       SlownessModelException
Throws:
NoSuchMatPropException
NoSuchLayerException
SlownessModelException

SphericalSModel

public SphericalSModel(double radiusOfEarth,
                       VelocityModel vMod,
                       java.util.List<CriticalDepth> criticalDepths,
                       java.util.List<DepthRange> highSlownessLayerDepthsP,
                       java.util.List<DepthRange> highSlownessLayerDepthsS,
                       java.util.List<DepthRange> fluidLayerDepths,
                       java.util.List<SlownessLayer> pLayers,
                       java.util.List<SlownessLayer> sLayers,
                       double minDeltaP,
                       double maxDeltaP,
                       double maxDepthInterval,
                       double maxRangeInterval,
                       double maxInterpError,
                       boolean allowInnerCoreS,
                       double slownessTolerance)
Method Detail

toSlowness

public double toSlowness(double velocity,
                         double depth)
                  throws SlownessModelException
Returns the slowness for a velocity at a depth.

Specified by:
toSlowness in class SlownessModel
Throws:
SlownessModelException - if velocity is zero.

toVelocity

public double toVelocity(double slowness,
                         double depth)
                  throws SlownessModelException
Returns the velocity for a slowness at a depth.

Specified by:
toVelocity in class SlownessModel
Throws:
SlownessModelException - if slowness is zero.

toSlownessLayer

public SlownessLayer toSlownessLayer(VelocityLayer vLayer,
                                     boolean isPWave)
                              throws SlownessModelException
Converts a velocity layer into a slowness layer.

Specified by:
toSlownessLayer in class SlownessModel
Throws:
SlownessModelException - if velocity layer is malformed.

interpolate

public double interpolate(double p,
                          double topVelocity,
                          double topDepth,
                          double slope)
                   throws SlownessModelException
Returns the depth for a slowness given a velocity gradient.

Specified by:
interpolate in class SlownessModel
Throws:
SlownessModelException - if the velocity gradient exactly balances the spherical decrease in slowness.

layerTimeDist

public TimeDist layerTimeDist(double sphericalRayParam,
                              int layerNum,
                              boolean isPWave)
                       throws SlownessModelException
Calculates the time and distance increments accumulated by a ray of spherical ray parameter p when passing through layer layerNum. for the easy cases of zero ray parameter, the center of the earth, and constant velocity layers. Note that this gives 1/2 of the true range and time increments since there will be both an up going and a downgoing path.

Specified by:
layerTimeDist in class SlownessModel
Throws:
SlownessModelException - occurs if the ray with the given spherical ray parameter cannot propagate within this layer, or if the ray turns within this layer but not at the bottom.

validate

public boolean validate()
                 throws SlownessModelException
Performs consistency check on the velocity model.

Overrides:
validate in class SlownessModel
Returns:
true if successful, throws SlownessModelException otherwise.
Throws:
SlownessModelException - if any check fails

toString

public java.lang.String toString()
Overrides:
toString in class SlownessModel