Class 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
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)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
-
E
-
F
-
G
-
H
-
fsA
used only in free surface calculations -
shDelta
delta for SH-SH equations -
topVertSlownessP
-
topVertSlownessS
-
botVertSlownessP
-
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
-
getBotVertSlownessS
-
getTopVertSlownessP
-
getTopVertSlownessS
-