You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hello akuhara!
when I try to invert my own data setting a little bit large ray parameter like 0.15(s/km) in the param file, it just crashed and report an error like :
Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
but when using values around 0.06-0.1(s/km) like those in the examples, it works well.
Is it a problem of the propagator matrix itself or I set something else wrong?
yangjudiao
The text was updated successfully, but these errors were encountered:
I checked the program according to your parameter, and I am pretty sure that it was caused by the e_inverse function in forward.f90
e_inv(:,:) = (0.d0, 0.d0)
eta = sqrt(1.d0/(beta*beta) - p*p)
xi = sqrt(1.d0/(alpha*alpha) - p*p)
bp = 1.d0 - 2.d0*beta*beta*p*p
If the p is too large, the 1.d0/(beta*beta) - p*p will become a negative number.
You could check the Aki & Richards, pp. 158, Eq. (5.65), or just the hint by Akuhara Aki & Richards, pp. 161, Eq. (5.71), maybe just change all those eta and xi to complex number
real(8) :: bp
!real(8) :: eta, xi, bp
complex(8) :: eta, xi
e_inv(:,:) = (0.d0, 0.d0)
eta = sqrt(cmplx(1.d0/(beta*beta) - p*p, 0))
xi = sqrt(cmplx(1.d0/(alpha*alpha) - p*p, 0))
bp = 1.d0 - 2.d0*beta*beta*p*p
But do we really need to deal with those much larger rayp?
hello akuhara!
when I try to invert my own data setting a little bit large ray parameter like 0.15(s/km) in the param file, it just crashed and report an error like :
Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
but when using values around 0.06-0.1(s/km) like those in the examples, it works well.
Is it a problem of the propagator matrix itself or I set something else wrong?
yangjudiao
The text was updated successfully, but these errors were encountered: