Class ReflTransSolidSolid
- java.lang.Object
-
- edu.sc.seis.TauP.ReflTrans
-
- edu.sc.seis.TauP.ReflTransSolidSolid
-
public class ReflTransSolidSolid extends ReflTrans
-
-
Field Summary
Fields Modifier and Type Field Description protected double
a
protected double
b
protected double
c
protected double
d
protected Complex
det
protected Complex
E
protected Complex
F
protected Complex
G
protected Complex
H
protected Complex
shDelta
delta for SH-SH equations-
Fields inherited from class edu.sc.seis.TauP.ReflTrans
botDensity, botVertSlownessP, botVertSlownessS, botVp, botVs, CX, lastInIsPWave, lastRayParam, rp, sqBotVp, sqBotVs, sqRP, sqTopVp, sqTopVs, topDensity, topVertSlownessP, topVertSlownessS, topVp, topVs
-
-
Constructor Summary
Constructors Constructor Description ReflTransSolidSolid(double topVp, double topVs, double topDensity, double botVp, double botVs, double botDensity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Complex[][]
calcScatterMatrix(double rayParam)
Calculate scattering matrix for Solid-Solid interface.Complex[][]
calcSqrtEnergyFluxMatrix(double rayParam)
protected void
calcTempVars(double rayParam, boolean inIsPWave)
protected java.lang.Object
clone()
ReflTransSolidSolid
flip()
Flips the sense of the layers, useful when you have a ray going through the same layer in the opposite direction.Complex
getComplexRpp(double rayParam)
Calculates incident P wave to reflected P wave Complex coefficient.Complex
getComplexRps(double rayParam)
Calculates incident P wave to reflected SV wave Complex coefficient.Complex
getComplexRshsh(double rayParam)
Calculates incident SH wave to reflected SH wave Complex coefficient.Complex
getComplexRsp(double rayParam)
Calculates incident SV wave to reflected P wave Complex coefficient.Complex
getComplexRss(double rayParam)
Calculates incident SV wave to reflected SV wave Complex coefficient.Complex
getComplexTpp(double rayParam)
Calculates incident P wave to transmitted P wave Complex coefficient.Complex
getComplexTps(double rayParam)
Calculates incident P wave to transmitted SV wave Complex coefficient.Complex
getComplexTshsh(double rayParam)
Calculates incident SH wave to transmitted SH wave Complex coefficient.Complex
getComplexTsp(double rayParam)
Calculates incident SV wave to transmitted P wave Complex coefficient.Complex
getComplexTss(double rayParam)
Calculates incident SV wave to transmitted SV wave Complex coefficient.java.lang.String
toString()
-
-
-
Constructor Detail
-
ReflTransSolidSolid
public ReflTransSolidSolid(double topVp, double topVs, double topDensity, double botVp, double botVs, double botDensity) throws VelocityModelException
- Throws:
VelocityModelException
-
-
Method Detail
-
getComplexRpp
public Complex getComplexRpp(double rayParam) throws VelocityModelException
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 classReflTrans
- Throws:
VelocityModelException
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
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 classReflTrans
-
flip
public ReflTransSolidSolid flip() throws VelocityModelException
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 classReflTrans
- Throws:
VelocityModelException
-
clone
protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
- Overrides:
clone
in classjava.lang.Object
- Throws:
java.lang.CloneNotSupportedException
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.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)
-
-