Package edu.sc.seis.TauP

# Class SphericalSModel

java.lang.Object
edu.sc.seis.TauP.SlownessModel
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

  Constructors
  Constructor | Description
  --- | ---
  `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

  Modifier and Type | Method | Description
  --- | --- | ---
  `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, boolean downgoing)` | Calculates the time and distance increments accumulated by a ray of spherical ray parameter p when passing through layer layerNum.
  `TimeDist` | `layerTimeDistAllowTurn​(double sphericalRayParam, int layerNum, boolean isPWave, boolean downgoing)` |
  `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, layerTimeDist, printGMT, printGMT, 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 Details

  - ### 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 Details

  - ### 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, boolean downgoing) 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.

  - ### layerTimeDistAllowTurn

    public TimeDist layerTimeDistAllowTurn​(double sphericalRayParam, int layerNum, boolean isPWave, boolean downgoing) throws SlownessModelException
    Specified by:
      `layerTimeDistAllowTurn` in class `SlownessModel`
    Throws:
      `SlownessModelException`

  - ### 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`