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)