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 calculationsprotected Complex
G
protected Complex
H
protected boolean
lastInIsPWave
protected double
lastRayParam
protected double
rp
protected Complex
shDelta
delta for SH-SH equationsprotected 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
All Methods Static Methods Instance Methods Concrete Methods 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)
-
-
-
Field Detail
-
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
-
-
Method Detail
-
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)
-
-