Dear Steven and meep users, I have been using meep to simulate spp of gold+dielectric structure for a while, but the simulated result cann't conform to the analytical result,the meep calculated dispersion curve of spp is lower than the curve calculated by the equation ksp=k0*sqrt(epsm*epsd/epsm+epsd) . If I increase the resolution the simulated result get closer to the analytical result, see the attached figure, but I think the resolution does not necessarily to be so high to get the correct result. I think perhaps it's the problem of eps averaging, I have used (set! eps-averaging? false) in ctl file, and turned off basic eps averageing in anisotropic_averaging.cpp, but when I use h5totxt to list the epsilon , I got the following data
2.0164 2.0164 2.0164 2.0164 2.741150936030191 9.75 9.75 9.75 9.75 9.75 there still exist some kind of averaging, It is equal to introduce a 2nm layer of low eps-inf dispersive material if I set resulotion to 500 and a to 1000 nm, which will apperently drop the neff vs. omega curve. Is there any clue to fix this problem? (define-param sz 3) ; size of cell in z direction (define-param dpml 1) ; PML thickness (set! geometry-lattice (make lattice (size no-size no-size sz))) (define d-au 0.5) (define die1 (make dielectric ( epsilon (* 1.42 1.42)))) (set! eps-averaging? false) (define omega_d (/ 1 0.138)) ; plasma frequency of Au in Drude model (define Au ; definition of material dispersion (make dielectric (epsilon 9.75) (polarizations (make polarizability (omega 1e-20) (gamma (/ 1 13)) (delta-epsilon (* (* omega_d omega_d) 1e+40))) ))) (set! geometry (list (make block (center 0 0 0) (size infinity infinity sz ) (material die1)) (make block (center 0 0 (- (/ sz 2) (/ d-au 2))) (size infinity infinity d-au) (material Au)) )) (set! pml-layers (list (make pml (direction Z) (side Low) (thickness dpml)))) (set-param! resolution 500) (define-param fcen (/ 1 0.63)) (define-param df 1) (set! sources (list (make source (src (make gaussian-src (frequency fcen) (fwidth df))) (component Hy) (center 0 0 (- (/ sz 2) d-au )) )) ) (define-param k-interp 19) (define-param k-points (list (vector3 2 0 0) (vector3 2.6 0 0) )) (set! k-points (interpolate k-interp k-points)) (run-k-points 120 k-points) Sincerely! Liang Huo
<<attachment: disperion-spp-Au.png>>
_______________________________________________ meep-discuss mailing list [email protected] http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

