disba icon indicating copy to clipboard operation
disba copied to clipboard

Dunkin matrix method can find the root while the fast-delta matrix method can't (base order)

Open liufeng2317 opened this issue 1 year ago • 1 comments

Description of the problem

I set a two layer model :

model.true_model

{'thick': [0.002, 0.015], 'vp': [1.2375343056249999, 1.740763080625], 'vs': [0.15, 0.45], 'rho': [1.4501699956971361, 1.7773312121113325] }

and then I use the dunkin matrix method and fast-delta method to calcualte the dispersion wave,I get a two different result following:

from disba import PhaseDispersion
Velocity_model = np.hstack((thick_true.reshape(-1,1),vp.reshape(-1,1),vs.reshape(-1,1),rho.reshape(-1,1)))
t = np.linspace(1/60,1/5,100)
pd = PhaseDispersion(*Velocity_model.T,algorithm="dunkin")
cpr = [pd(t, mode=i, wave="rayleigh") for i in range(3)]
cpr

image

from disba import PhaseDispersion
Velocity_model = np.hstack((thick_true.reshape(-1,1),vp.reshape(-1,1),vs.reshape(-1,1),rho.reshape(-1,1)))
t = np.linspace(1/60,1/5,100)
pd = PhaseDispersion(*Velocity_model.T,algorithm="fast-delta")
cpr = [pd(t, mode=i, wave="rayleigh") for i in range(3)]
cpr

image

System information

  • Operating system: Ubuntu
  • Python installation (Anaconda, system, ETS):Anaconda python3.8
  • Version of Python:python 3.8
  • Version of this package:

liufeng2317 avatar Sep 19 '22 12:09 liufeng2317

Indeed, these two algorithms calculate the secular function differently. For some models, Dunkin's matrix algorithm works but Fast Delta doesn't, for others, it's the opposite. However, I would recommend using Dunkin's matrix for most cases and only try Fast Delta if Dunkin's matrix fails.

keurfonluu avatar Oct 03 '22 16:10 keurfonluu