Package edu.sc.seis.TauP

# Class ReflTransCoefficient

java.lang.Object
edu.sc.seis.TauP.ReflTransCoefficient

All Implemented Interfaces:
  `java.io.Serializable`

    public class ReflTransCoefficient
    extends java.lang.Object
    implements java.io.Serializable

See Also:
  Serialized Form

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `protected double` | `a` |
  `protected double` | `b` |
  `protected double` | `botDensity` |
  `protected Complex` | `botVertSlownessP` |
  `protected Complex` | `botVertSlownessS` |
  `protected double` | `botVp` |
  `protected double` | `botVs` |
  `protected double` | `c` |
  `protected double` | `d` |
  `protected Complex` | `det` |
  `protected Complex` | `E` |
  `protected Complex` | `F` |
  `protected boolean` | `firstTime` |
  `protected Complex` | `fsA` | used only in free surface calculations
  `protected Complex` | `G` |
  `protected Complex` | `H` |
  `protected boolean` | `lastInIsPWave` |
  `protected double` | `lastRayParam` |
  `protected double` | `rp` |
  `protected Complex` | `shDelta` | delta for SH-SH equations
  `protected double` | `sqBotVp` |
  `protected double` | `sqBotVs` |
  `protected double` | `sqRP` |
  `protected double` | `sqTopVp` |
  `protected double` | `sqTopVs` |
  `protected double` | `topDensity` |
  `protected Complex` | `topVertSlownessP` |
  `protected Complex` | `topVertSlownessS` |
  `protected double` | `topVp` |
  `protected double` | `topVs` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `ReflTransCoefficient​(double topVp, double topVs, double topDensity, double botVp, double botVs, double botDensity)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `protected void` | `calcTempVars​(double rayParam, boolean inIsPWave)` |
  `ReflTransCoefficient` | `flip()` | Flips the sense of the layers, useful when you have a ray going through the same layer in the opposite direction.
  `Complex` | `getBotVertSlownessP​(double rayParam)` |
  `Complex` | `getBotVertSlownessS​(double rayParam)` |
  `Complex` | `getComplexFreePtoPRefl​(double rayParam)` | Calculates incident P wave to reflected P wave complex coefficient at free surface.
  `Complex` | `getComplexFreePtoSVRefl​(double rayParam)` | Calculates incident P wave to reflected SV wave complex coefficient at free surface.
  `Complex` | `getComplexFreeSHtoSHRefl​(double rayParam)` | Calculates incident SH wave to reflected SH wave complex coefficient at free surface.
  `Complex` | `getComplexFreeSVtoPRefl​(double rayParam)` | Calculates incident SV wave to reflected P wave complex coefficient at free surface.
  `Complex` | `getComplexFreeSVtoSVRefl​(double rayParam)` | Calculates incident SV wave to reflected SV wave complex coefficient at free surface.
  `Complex` | `getComplexPtoPRefl​(double rayParam)` | Calculates incident P wave to reflected P wave Complex coefficient.
  `Complex` | `getComplexPtoPTrans​(double rayParam)` | Calculates incident P wave to transmitted P wave Complex coefficient.
  `Complex` | `getComplexPtoSVRefl​(double rayParam)` | Calculates incident P wave to reflected SV wave Complex coefficient.
  `Complex` | `getComplexPtoSVTrans​(double rayParam)` | Calculates incident P wave to transmitted SV wave Complex coefficient.
  `Complex` | `getComplexSHtoSHRefl​(double rayParam)` | Calculates incident SH wave to reflected SH wave Complex coefficient.
  `Complex` | `getComplexSHtoSHTrans​(double rayParam)` | Calculates incident SH wave to transmitted SH wave Complex coefficient.
  `Complex` | `getComplexSVtoPRefl​(double rayParam)` | Calculates incident SV wave to reflected P wave Complex coefficient.
  `Complex` | `getComplexSVtoPTrans​(double rayParam)` | Calculates incident SV wave to transmitted P wave Complex coefficient.
  `Complex` | `getComplexSVtoSVRefl​(double rayParam)` | Calculates incident SV wave to reflected SV wave Complex coefficient.
  `Complex` | `getComplexSVtoSVTrans​(double rayParam)` | Calculates incident SV wave to transmitted SV wave Complex coefficient.
  `double` | `getFreePtoPRefl​(double rayParam)` | Calculates incident P wave to reflected P wave coefficient at free surface.
  `double` | `getFreePtoSVRefl​(double rayParam)` | Calculates incident P wave to reflected SV wave coefficient at free surface.
  `double` | `getFreeSHtoSHRefl​(double rayParam)` | Calculates incident SH wave to reflected SH wave coefficient at free surface.
  `double` | `getFreeSVtoPRefl​(double rayParam)` | Calculates incident SV wave to reflected P wave coefficient at free surface.
  `double` | `getFreeSVtoSVRefl​(double rayParam)` | Calculates incident SV wave to reflected SV wave coefficient at free surface.
  `double` | `getPtoPRefl​(double rayParam)` | Calculates incident P wave to reflected P wave coefficient.
  `double` | `getPtoPTrans​(double rayParam)` | Calculates incident P wave to transmitted P wave coefficient.
  `double` | `getPtoSVRefl​(double rayParam)` | Calculates incident P wave to reflected SV wave coefficient.
  `double` | `getPtoSVTrans​(double rayParam)` | Calculates incident P wave to transmitted SV wave coefficient.
  `double` | `getSHtoSHRefl​(double rayParam)` | Calculates incident SH wave to reflected SH wave coefficient.
  `double` | `getSHtoSHTrans​(double rayParam)` | Calculates incident SH wave to transmitted SH wave coefficient.
  `double` | `getSVtoPRefl​(double rayParam)` | Calculates incident SV wave to reflected P wave coefficient.
  `double` | `getSVtoPTrans​(double rayParam)` | Calculates incident SV wave to transmitted P wave coefficient.
  `double` | `getSVtoSVRefl​(double rayParam)` | Calculates incident SV wave to reflected SV wave coefficient.
  `double` | `getSVtoSVTrans​(double rayParam)` | Calculates incident SV wave to transmitted SV wave coefficient.
  `Complex` | `getTopVertSlownessP​(double rayParam)` |
  `Complex` | `getTopVertSlownessS​(double rayParam)` |
  `static void` | `main​(java.lang.String[] args)` |

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### topVp

    protected double topVp

  - ### topVs

    protected double topVs

  - ### topDensity

    protected double topDensity

  - ### botVp

    protected double botVp

  - ### botVs

    protected double botVs

  - ### botDensity

    protected double botDensity

  - ### rp

    protected double rp

  - ### a

    protected double a

  - ### b

    protected double b

  - ### c

    protected double c

  - ### d

    protected double d

  - ### det

    protected Complex det

  - ### E

    protected Complex E

  - ### F

    protected Complex F

  - ### G

    protected Complex G

  - ### H

    protected Complex H

  - ### fsA

    protected Complex fsA
    used only in free surface calculations

  - ### shDelta

    protected Complex shDelta
    delta for SH-SH equations

  - ### topVertSlownessP

    protected Complex topVertSlownessP

  - ### topVertSlownessS

    protected Complex topVertSlownessS

  - ### botVertSlownessP

    protected Complex botVertSlownessP

  - ### botVertSlownessS

    protected Complex botVertSlownessS

  - ### sqBotVs

    protected double sqBotVs

  - ### sqTopVs

    protected double sqTopVs

  - ### sqBotVp

    protected double sqBotVp

  - ### sqTopVp

    protected double sqTopVp

  - ### sqRP

    protected double sqRP

  - ### lastRayParam

    protected double lastRayParam

  - ### lastInIsPWave

    protected boolean lastInIsPWave

  - ### firstTime

    protected boolean firstTime

- ## Constructor Details

  - ### ReflTransCoefficient

    public ReflTransCoefficient​(double topVp, double topVs, double topDensity, double botVp, double botVs, double botDensity)

- ## Method Details

  - ### flip

    public ReflTransCoefficient flip()
    Flips the sense of the layers, useful when you have a ray going through the same layer in the opposite direction.

  - ### calcTempVars

    protected void calcTempVars​(double rayParam, boolean inIsPWave)

  - ### getComplexFreePtoPRefl

    public Complex getComplexFreePtoPRefl​(double rayParam)
    Calculates incident P wave to reflected P wave complex coefficient at free surface. Only topVp, topVs, and topDensity are used, the bottom values are ignored. This is a little strange as free surface rays are always upgoing, but it mantains consistency with the solid-solid calculations.

    = (-1*((1/sqTopVs) - 2 * sqRP)^2 +
    4 * sqRP * topVertSlownessP * topVertSlownessS) / A

  - ### getFreePtoPRefl

    public double getFreePtoPRefl​(double rayParam)
    Calculates incident P wave to reflected P wave coefficient at free surface. This just returns the real part, assuming the imaginary part is zero.
    See Also:
      `getComplexFreePtoPRefl(double)`

  - ### getComplexFreePtoSVRefl

    public Complex getComplexFreePtoSVRefl​(double rayParam)
    Calculates incident P wave to reflected SV wave complex coefficient at free surface. = (4 * (topVp/topVs) * rp * topVertSlownessP * ((1/sqTopVs) - 2 * sqRP)) / fsA

  - ### getFreePtoSVRefl

    public double getFreePtoSVRefl​(double rayParam)
    Calculates incident P wave to reflected SV wave coefficient at free surface.
    See Also:
      `getComplexFreePtoSVRefl(double)`

  - ### getComplexFreeSVtoPRefl

    public Complex getComplexFreeSVtoPRefl​(double rayParam)
    Calculates incident SV wave to reflected P wave complex coefficient at free surface.

    = (4 * (topVs/topVp) * rp * topVertSlownessS *
    ((1/sqTopVs) - 2 * sqRP)) / fsA

  - ### getFreeSVtoPRefl

    public double getFreeSVtoPRefl​(double rayParam)
    Calculates incident SV wave to reflected P wave coefficient at free surface.
    See Also:
      `getComplexFreeSVtoPRefl(double)`

  - ### getComplexFreeSVtoSVRefl

    public Complex getComplexFreeSVtoSVRefl​(double rayParam)
    Calculates incident SV wave to reflected SV wave complex coefficient at free surface.

    = (-1 * ((1/sqTopVs) - 2 * sqRP)^2 +
    4 * sqRP * topVertSlownessP * topVertSlownessS) / fsA

  - ### getFreeSVtoSVRefl

    public double getFreeSVtoSVRefl​(double rayParam)
    Calculates incident SV wave to reflected SV wave coefficient at free surface.

  - ### getComplexFreeSHtoSHRefl

    public Complex getComplexFreeSHtoSHRefl​(double rayParam)
    Calculates incident SH wave to reflected SH wave complex coefficient at free surface. Free surface SH is always 1.

  - ### getFreeSHtoSHRefl

    public double getFreeSHtoSHRefl​(double rayParam)
    Calculates incident SH wave to reflected SH wave coefficient at free surface. Free surface SH is always 1.

  - ### getComplexPtoPRefl

    public Complex getComplexPtoPRefl​(double rayParam)
    Calculates incident P wave to reflected P wave Complex coefficient.

    = ((b*topVertSlownessP - c*botVertSlownessP)*F -
    (a + d*topVertSlownessP * botVertSlownessS)*H*sqRP) / det

  - ### getPtoPRefl

    public double getPtoPRefl​(double rayParam)
    Calculates incident P wave to reflected P wave coefficient.

  - ### getComplexPtoSVRefl

    public Complex getComplexPtoSVRefl​(double rayParam)
    Calculates incident P wave to reflected SV wave Complex coefficient.

    = -2 * topVertSlownessP *
    (a * b + c * d *botVertSlownessP *botVertSlownessS) *
    rp * (topVp/topVs)) / det

  - ### getPtoSVRefl

    public double getPtoSVRefl​(double rayParam)
    Calculates incident P wave to reflected SV wave coefficient.

  - ### getComplexPtoPTrans

    public Complex getComplexPtoPTrans​(double rayParam)
    Calculates incident P wave to transmitted P wave Complex coefficient.

    = ( 2 * topDensity * topVertSlownessP * F *
    (topVp / botVp)) / det

  - ### getPtoPTrans

    public double getPtoPTrans​(double rayParam)
    Calculates incident P wave to transmitted P wave coefficient.

  - ### getComplexPtoSVTrans

    public Complex getComplexPtoSVTrans​(double rayParam)
    Calculates incident P wave to transmitted SV wave Complex coefficient.

    = (2 * topDensity * topVertSlownessP * H * rp * (topVp / botVs)) /
    det

  - ### getPtoSVTrans

    public double getPtoSVTrans​(double rayParam)
    Calculates incident P wave to transmitted SV wave coefficient.

  - ### getComplexSVtoPRefl

    public Complex getComplexSVtoPRefl​(double rayParam)
    Calculates incident SV wave to reflected P wave Complex coefficient.

    = (-2 * topVertSlownessS *
    (a * b + c * d * botVertSlownessP * botVertSlownessS) *
    rp * (topVs / topVp)) /
    det

  - ### getSVtoPRefl

    public double getSVtoPRefl​(double rayParam)
    Calculates incident SV wave to reflected P wave coefficient.

  - ### getComplexSVtoSVRefl

    public Complex getComplexSVtoSVRefl​(double rayParam)
    Calculates incident SV wave to reflected SV wave Complex coefficient.

    = -1 * ((b * topVertSlownessS - c * botVertSlownessS) * E -
    (a + b * botVertSlownessP * topVertSlownessS) * G * sqRP) /
    det

  - ### getSVtoSVRefl

    public double getSVtoSVRefl​(double rayParam)
    Calculates incident SV wave to reflected SV wave coefficient.

  - ### getComplexSVtoPTrans

    public Complex getComplexSVtoPTrans​(double rayParam)
    Calculates incident SV wave to transmitted P wave Complex coefficient.

    = -2 * topDensity * topVertSlownessS * G * rp * (topVs / botVp) /
    det

  - ### getSVtoPTrans

    public double getSVtoPTrans​(double rayParam)
    Calculates incident SV wave to transmitted P wave coefficient.

  - ### getComplexSVtoSVTrans

    public Complex getComplexSVtoSVTrans​(double rayParam)
    Calculates incident SV wave to transmitted SV wave Complex coefficient.

    = 2 * topDensity * topVertSlownessS * E * (topVs / botVs) /
    det

  - ### getSVtoSVTrans

    public double getSVtoSVTrans​(double rayParam)
    Calculates incident SV wave to transmitted SV wave coefficient.

  - ### getComplexSHtoSHRefl

    public Complex getComplexSHtoSHRefl​(double rayParam)
    Calculates incident SH wave to reflected SH wave Complex coefficient.

    mu = Vs * Vs * density

    = (topMu * topVertSlownessS - botMu * botVertSlownessS) /
    (topMu * topVertSlownessS + botMu * botVertSlownessS)

  - ### getSHtoSHRefl

    public double getSHtoSHRefl​(double rayParam)
    Calculates incident SH wave to reflected SH wave coefficient.

  - ### getComplexSHtoSHTrans

    public Complex getComplexSHtoSHTrans​(double rayParam)
    Calculates incident SH wave to transmitted SH wave Complex coefficient.

    mu = Vs * Vs * density

    = 2 * topMu * topVertSlownessS /
    (topMu * topVertSlownessS + botMu * botVertSlownessS)

  - ### getSHtoSHTrans

    public double getSHtoSHTrans​(double rayParam)
    Calculates incident SH wave to transmitted SH wave coefficient.

  - ### main

    public static void main​(java.lang.String[] args)

  - ### getBotVertSlownessP

    public Complex getBotVertSlownessP​(double rayParam)

  - ### getBotVertSlownessS

    public Complex getBotVertSlownessS​(double rayParam)

  - ### getTopVertSlownessP

    public Complex getTopVertSlownessP​(double rayParam)

  - ### getTopVertSlownessS

    public Complex getTopVertSlownessS​(double rayParam)