Trel725 / plasmon-meep

set of scripts for calculation of plasmon resonance/electric field enhancement on different structures
GNU General Public License v3.0
6 stars 4 forks source link

Dipole mode of Au nano-sphere #5

Closed yu-ting-py closed 3 years ago

yu-ting-py commented 3 years ago

Thanks for your scripts.

I change geometry of grating to a gold sphere by re-writing the script.

r = 0.2

geometry = [mp.Sphere(material=mat,
                      center=mp.Vector3(),
                      radius=r)]

I think field enhancement should be strongest around 500-600 nm.

But the field enhancement shows a flat peak in that region.

And it corresponding field enhancement distribution shows something like multipolar mode instead of dipole mode.

Where is the problem? Could you give me some tips? Figure_1

Figure_2

yu-ting-py commented 3 years ago

This might be true because higher order multipoles will contribute for larger metal spheres. J. Phys. Chem. B, Vol. 107, No. 3, 2003 669 This paper shows simular results with explanation.

Trel725 commented 3 years ago

Hi, Thanks a lot for opening an issue and explaining your results. I will definitely need to have a look what is happening there as soon as I'll have time for that, although for a 400nm spheres multipoles contribution must be of course significant. Thus, let the issue stay open for now as a reminder for me.

Also, sorry for a very long answering time, somehow I missed a notification of new issue. Regards, Andrii

yu-ting-py commented 3 years ago

Hi Andrii

I still have a question. There is always a peak like a singularity at about 400 nm. Is this because of FFT or other reasons? Do you have any idea about this?

Thanks for your scripts again.

Trel725 commented 3 years ago

Hello,

This is not a physical singularity, just an artifact of the calculation. You could see that source has central frequency of 1.5 meep units and width of 1.5 https://github.com/Trel725/plasmon-meep/blob/cfd371a15f05fe294829c32ad8d240e8ed142ba3/perform_fdtd.py#L34-L35 i.e. it covers the range [cfreq - 0.5 fwidth, cfreq + 0.5 fwidth]. That correspond to maximum frequency of 2.25, i.e. wavelength 1000/2.25 ~ 444 nm. At that frequency reference fields are already extremely small, so normalization by reference run leads to a singularity-like result. I would suggest just to cut everything below ~460 nm, or to modify the central frequency and width according your needs.

yu-ting-py commented 3 years ago

Hi Andrii

Maximum wavelength should be 1/(cfreq - 0.5 fwidth) = 1, which corresponds to 1000 nm. Right?

Why the power spectrum shows more than 1000 nm?

Trel725 commented 3 years ago

Yes, you are right. Although power of the source approaches zero at lower frequencies, FFT can calculate frequencies down to DC. Thus, you should only look at the range [cfreq - 0.5 fwidth, cfreq + 0.5 fwidth] and completely ignore everything else.

Probably I need to add that to the README,

yu-ting-py commented 3 years ago

Hi Perhaps you can add something like plt.xlim(1e3/(cfreq + 0.5 fwidth), 1e3/( cfreq - 0.5 fwidth))