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

Reply via email to