simpeg / simpegEM1D

Frequency and time domain EM forward modeling and inversion program
MIT License
18 stars 11 forks source link

Unstable solution: Vertical Magnetic Dipole source as r --> 0 #40

Open dccowan opened 4 years ago

dccowan commented 4 years ago

We are currently solving equations 4.45 and 4.46 from Ward and Hohman to compute the horizontal and vertical response due to a vertical magnetic dipole source. image

As the radial distance goes to zero, the 0th and 1st order Bessel functions go to 1 and 0, respectively. The linear digital filter that evaluates the Hankel transform does not appear to be stable in this case. I have checked to make sure the exponential term is such that the kernel function is decaying with respect to lambda.

Although we could use a horizontal loop source for this special case, it would be good to validate the horizontal loop source and vertical magnetic dipole source against one another.

To test this:

dccowan commented 4 years ago

@sgkang @prisae I am hoping to get your input if possible.

prisae commented 4 years ago

Hi @dccowan I tried to run the example, but your branch errors out for me when importing simpegEM1D with

ModuleNotFoundError: No module named 'simpegEM1D.waveforms'
sgkang commented 4 years ago

Hi @dccowan, it is expected. So offset between tx and rx must be greater than 0. Therefore, when handling VTEM like system (co-located loops), the loop source can be used.

Fundamentally speaking implementing quadrature scheme to handle arbitrary loop will be beneficial. I believe @prisae has implemented this in empymod, so we can follow what he did.

prisae commented 4 years ago

Ah, it is offset, not loop radius! Yes, this has to be greater than 0, I agree with @sgkang, otherwise it is not defined.

dccowan commented 4 years ago

Hi @dccowan I tried to run the example, but your branch errors out for me when importing simpegEM1D with

ModuleNotFoundError: No module named 'simpegEM1D.waveforms'

I think you need to run the setup.py so to avoid the import error.

prisae commented 4 years ago

Good point @dccowan, I forgot that it has compiled functions. Anyhow, installing it via python setup.py install just changes the error though:

ModuleNotFoundError: No module named 'simpegEM1D.supporting_functions'