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 doubleaprotected doublebprotected doublebotDensityprotected ComplexbotVertSlownessPprotected ComplexbotVertSlownessSprotected doublebotVpprotected doublebotVsprotected doublecprotected doubledprotected Complexdetprotected ComplexEprotected ComplexFprotected booleanfirstTimeprotected ComplexfsAused only in free surface calculationsprotected ComplexGprotected ComplexHprotected booleanlastInIsPWaveprotected doublelastRayParamprotected doublerpprotected ComplexshDeltadelta for SH-SH equationsprotected doublesqBotVpprotected doublesqBotVsprotected doublesqRPprotected doublesqTopVpprotected doublesqTopVsprotected doubletopDensityprotected ComplextopVertSlownessPprotected ComplextopVertSlownessSprotected doubletopVpprotected doubletopVs
-
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 voidcalcTempVars(double rayParam, boolean inIsPWave)ReflTransCoefficientflip()Flips the sense of the layers, useful when you have a ray going through the same layer in the opposite direction.ComplexgetBotVertSlownessP(double rayParam)ComplexgetBotVertSlownessS(double rayParam)ComplexgetComplexFreePtoPRefl(double rayParam)Calculates incident P wave to reflected P wave complex coefficient at free surface.ComplexgetComplexFreePtoSVRefl(double rayParam)Calculates incident P wave to reflected SV wave complex coefficient at free surface.ComplexgetComplexFreeSHtoSHRefl(double rayParam)Calculates incident SH wave to reflected SH wave complex coefficient at free surface.ComplexgetComplexFreeSVtoPRefl(double rayParam)Calculates incident SV wave to reflected P wave complex coefficient at free surface.ComplexgetComplexFreeSVtoSVRefl(double rayParam)Calculates incident SV wave to reflected SV wave complex coefficient at free surface.ComplexgetComplexPtoPRefl(double rayParam)Calculates incident P wave to reflected P wave Complex coefficient.ComplexgetComplexPtoPTrans(double rayParam)Calculates incident P wave to transmitted P wave Complex coefficient.ComplexgetComplexPtoSVRefl(double rayParam)Calculates incident P wave to reflected SV wave Complex coefficient.ComplexgetComplexPtoSVTrans(double rayParam)Calculates incident P wave to transmitted SV wave Complex coefficient.ComplexgetComplexSHtoSHRefl(double rayParam)Calculates incident SH wave to reflected SH wave Complex coefficient.ComplexgetComplexSHtoSHTrans(double rayParam)Calculates incident SH wave to transmitted SH wave Complex coefficient.ComplexgetComplexSVtoPRefl(double rayParam)Calculates incident SV wave to reflected P wave Complex coefficient.ComplexgetComplexSVtoPTrans(double rayParam)Calculates incident SV wave to transmitted P wave Complex coefficient.ComplexgetComplexSVtoSVRefl(double rayParam)Calculates incident SV wave to reflected SV wave Complex coefficient.ComplexgetComplexSVtoSVTrans(double rayParam)Calculates incident SV wave to transmitted SV wave Complex coefficient.doublegetFreePtoPRefl(double rayParam)Calculates incident P wave to reflected P wave coefficient at free surface.doublegetFreePtoSVRefl(double rayParam)Calculates incident P wave to reflected SV wave coefficient at free surface.doublegetFreeSHtoSHRefl(double rayParam)Calculates incident SH wave to reflected SH wave coefficient at free surface.doublegetFreeSVtoPRefl(double rayParam)Calculates incident SV wave to reflected P wave coefficient at free surface.doublegetFreeSVtoSVRefl(double rayParam)Calculates incident SV wave to reflected SV wave coefficient at free surface.doublegetPtoPRefl(double rayParam)Calculates incident P wave to reflected P wave coefficient.doublegetPtoPTrans(double rayParam)Calculates incident P wave to transmitted P wave coefficient.doublegetPtoSVRefl(double rayParam)Calculates incident P wave to reflected SV wave coefficient.doublegetPtoSVTrans(double rayParam)Calculates incident P wave to transmitted SV wave coefficient.doublegetSHtoSHRefl(double rayParam)Calculates incident SH wave to reflected SH wave coefficient.doublegetSHtoSHTrans(double rayParam)Calculates incident SH wave to transmitted SH wave coefficient.doublegetSVtoPRefl(double rayParam)Calculates incident SV wave to reflected P wave coefficient.doublegetSVtoPTrans(double rayParam)Calculates incident SV wave to transmitted P wave coefficient.doublegetSVtoSVRefl(double rayParam)Calculates incident SV wave to reflected SV wave coefficient.doublegetSVtoSVTrans(double rayParam)Calculates incident SV wave to transmitted SV wave coefficient.ComplexgetTopVertSlownessP(double rayParam)ComplexgetTopVertSlownessS(double rayParam)static voidmain(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)
-
-