HI everyone,
  I am a new user of meep. Recently I want to use meep to calculate 
transmission spectrum of gold hole array on a semiconductor. But I 
failed.  The structure should generate surface plasmons and peak 
wavelength of transmission spectrum can be calculated from the the 
equation(3) on paper PRL 96,233901(2006).However, I can not get the 
correct result. Who can help me to correct my code. My code for this 
simulation is as follows. I have normalized the result with the flux
with no structure.
  Thank you very much! 


; Define gold using Drude-Lorentz model
(define-param c 3e+14)
(define-param a 1)
(define norm (/ a (* c 4.135666e-15)))
(define omega_p (* 9.03 norm))

(define-param omega1 1e-20)
(define omega2 (* 0.415 norm))
(define omega3 (* 0.83 norm))
(define omega4 (* 2.969 norm))
(define omega5 (* 4.304 norm))
(define omega6 (* 13.33 norm))

(define gamma1 (* 0.053 norm))
(define gamma2 (* 0.241 norm))
(define gamma3 (* 0.345 norm))
(define gamma4 (* 0.87 norm))
(define gamma5 (* 2.494 norm))
(define gamma6 (* 2.214 norm))

(define-param f1 0.76)
(define-param f2 0.024)
(define-param f3 0.01)
(define-param f4 0.071)
(define-param f5 0.601)
(define-param f6 4.384)

(define sigma1 (/ (* f1 (* omega_p omega_p)) (* omega1 omega1)))
(define sigma2 (/ (* f2 (* omega_p omega_p)) (* omega2 omega2)))
(define sigma3 (/ (* f3 (* omega_p omega_p)) (* omega3 omega3)))
(define sigma4 (/ (* f4 (* omega_p omega_p)) (* omega4 omega4)))
(define sigma5 (/ (* f5 (* omega_p omega_p)) (* omega5 omega5)))
(define sigma6 (/ (* f6 (* omega_p omega_p)) (* omega6 omega6)))

(define gold (make dielectric (epsilon 1)
(polarizations
(make polarizability
(omega omega1) (gamma gamma1) (sigma sigma1))
(make polarizability
(omega omega2) (gamma gamma2) (sigma sigma2))
(make polarizability
(omega omega3) (gamma gamma3) (sigma sigma3))
(make polarizability
(omega omega4) (gamma gamma4) (sigma sigma4))
(make polarizability
(omega omega5) (gamma gamma5) (sigma sigma5))
(make polarizability
(omega omega6) (gamma gamma6) (sigma sigma6)))))



(define-param pthickness 0.5)
(define-param metalthickness 0.2)
(define-param semithickness 3)
(define-param gratingperiod 1.3)
(define-param r 0.35)


(set! eps-averaging? false)


(define-param sx gratingperiod)
(define-param sy gratingperiod)
(define-param sz (+ semithickness metalthickness 2 (* 2 pthickness)))

(define-param amp 1)

(define-param freq 0.245)
(define-param df 0.4)



(set! geometry-lattice (make lattice (size sx sy sz)))

(set! geometry 
        (append
                (list
                        (make block 
                                (center 0 0 1.1) 
                                (size infinity infinity semithickness)
                                (material 
                                        (make medium 
                                                (epsilon 9.4807) 
;                                               (D-conductivity (/ (* 2 pi 
0.245 0.3898) 9.4807))
                                        )
                                )
                        )
                )
                
               (list
                        (make block 
                                (center 0 0 -0.5) 
                                (size infinity infinity metalthickness)
                                (material gold)
                        )
               )
               (list
                        (make cylinder 
                                (center 0 0 -0.5) (radius 0.35) (height 
metalthickness)
                                (material air)
                        )
                )  
        )     
)
    

(set! pml-layers (list (make pml (direction Z) (thickness pthickness))))

(set! k-point (vector3 0 0 0))  

(set! resolution 65)

(set! sources 
        (list
                (make source
                        (src 
                                (make  gaussian-src
                                        (frequency freq)
                                        (fwidth df)
                                )
                        )
                        (component Ex)
                        (center 0 0 -2.2) 
                        (size sx sy 0)

                )
        )
)
     

(define-param nfreq 500)

(define trans                                               
     (add-flux freq df nfreq
                (make flux-region
               (center 0 0 2.1) 
                (size sx sy 0)
                        (direction Z)
                        
                        
               )
      )
)
;(define refl                                                   
;      (add-flux freq df nfreq
;                 (make flux-region 
;                   (center 0 0 0.06) (size sx sy 0)
;                 )
;      )
;)


(run-sources+ 
  (stop-when-fields-decayed 15 Ex
                
                    (vector3 0 0 2.1)
                    
                1e-3)

        (at-beginning output-epsilon)
        (to-appended "ex-slice"
                (at-every 0.1
                        (in-volume 
                                (volume 
                                        (center 0 0 1) 
                                        (size sx 0 sz)
                                )
                                output-efield-x
                        )
                )
        )
)

       
(display-fluxes trans)
 
   






_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to