Class ReflTransSolidSolid

java.lang.Object
edu.sc.seis.TauP.ReflTrans
edu.sc.seis.TauP.ReflTransSolidSolid

public class ReflTransSolidSolid extends ReflTrans
Abstract class for reflection and transmission coefficients at a solid-solid boundary.
  • Field Details

    • 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
    • shDelta

      protected Complex shDelta
      delta for SH-SH equations
  • Constructor Details

  • Method Details

    • getComplexRpp

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

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

      Specified by:
      getComplexRpp in class ReflTrans
    • getComplexRps

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

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

      Specified by:
      getComplexRps in class ReflTrans
    • getComplexTpp

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

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

      Specified by:
      getComplexTpp in class ReflTrans
    • getComplexTps

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

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

      Specified by:
      getComplexTps in class ReflTrans
    • getComplexRsp

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

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

      Specified by:
      getComplexRsp in class ReflTrans
    • getComplexRss

      public Complex getComplexRss(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

      Specified by:
      getComplexRss in class ReflTrans
    • getComplexTsp

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

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

      Specified by:
      getComplexTsp in class ReflTrans
    • getComplexTss

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

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

      Specified by:
      getComplexTss in class ReflTrans
    • getComplexRshsh

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

      mu = Vs * Vs * density

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

      Specified by:
      getComplexRshsh in class ReflTrans
    • getComplexTshsh

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

      mu = Vs * Vs * density

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

      Specified by:
      getComplexTshsh in class ReflTrans
    • flip

      Flips the sense of the layers, useful when you have a ray going through the same layer in the opposite direction.
      Specified by:
      flip in class ReflTrans
      Throws:
      VelocityModelException
    • clone

      protected Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • calcScatterMatrix

      public Complex[][] calcScatterMatrix(double rayParam) throws VelocityModelException
      Calculate scattering matrix for Solid-Solid interface. See Aki and Richards (2nd ed) sect 5.2.3 p 139-147. Rows 1 and 2 are outbound from "top" layer, and rows 3 and 4 are outbound from "bottom" layer. Columns 1 and 2 are inbound from "top" layer, and columns 3 and 4 are inbound from "bottom" layer. Upper left and lower right are reflections. Upper right and lower left are transmissions.
           P↓P↑ S↓P↑ P↑P↑ S↑P↑
           P↓S↑ S↓S↑ P↑S↑ S↑S↑
           P↓P↓ S↓P↓ P↑P↓ S↑P↓
           P↓S↓ S↓S↓ P↑S↓ S↑S↓
           
      Parameters:
      rayParam -
      Returns:
      4x4 matrix
      Throws:
      VelocityModelException
    • calcSqrtEnergyFluxMatrix

      public Complex[][] calcSqrtEnergyFluxMatrix(double rayParam) throws VelocityModelException
      Throws:
      VelocityModelException
    • calcTempVars

      protected void calcTempVars(double rayParam, boolean inIsPWave)
      Specified by:
      calcTempVars in class ReflTrans