Dear all,

I am trying to simulate a surface plasmon on a Ag/SiO2 
interface with the code below. However, meep fails the find any 
frequencies. If I substitute Ag by an other material the simulation 
doesn't crash but somehow with Ag it does. I already plotted the model 
in Matlab to see if the conversion was done well and it perfectly match 
with the original dielectric function I get from the drude model. Does 
anyone know what is going wrong ?

Thanks in advance for the 
trouble!

Kind regards
Marieke

(define-param a 50)
(set!
 geometry-lattice (make lattice (size no-size 25 no-size)))
(set-param!
 resolution 40)

(define c 299792458e9) ;in nm/s
(define h 
6.626176e-34)
(define e 1.602189e-19)

(define eVconca (/ (* c 
h) (* a e))) ; convert from eV to c/a

;Ag fitted 01-06-2010; 
range 400-700 nm
(define AgdEpsInf 1)
(define AgdOmega (/ 0.001 
eVconca))
(define AgdGamma (/ 0.1036 eVconca))
(define Agplasma (/
 9.1 eVconca))
(define AgdSigma (/ (* Agplasma Agplasma) (* AgdOmega 
AgdOmega)))
(define Ag
    (make dielectric (epsilon AgdEpsInf)
   
     (polarizations
            (make polarizability (omega AgdOmega)
 (gamma AgdGamma) (sigma AgdSigma)))))
  
;SiO2 fitted     
(define
 SiO2
  (make dielectric (epsilon 2.1609))) ;refractive index of 1.47
 
 
(set! geometry (list
                (make block (center 0 -7.5 )
 (size infinity 10 infinity)
                    (material  Ag))
   
             (make block (center 0 5 ) (size infinity 15 infinity)
   
                 (material SiO2))
                ))
            
        
(set! pml-layers (list
                (make pml 
(thickness 1.0) (direction Y))))

                
(define-param
 fcen 0.09785) 
(define-param df 0.02685) 

(set! sources 
(list    
                (make source (src
                    
            (make gaussian-src (frequency fcen) (fwidth df)))
       
                     (component Ey) (center 0 -2.5 ) )))
            
                
;(run-until 200
 ;(at-beginning output-epsilon)
   
     ;(to-appended "ez" (at-every 0.6 output-efield-y)))
            
   
         
(define-param k-interp 20)
(define kpts (interpolate 
k-interp (list (vector3 0.079 0 0) (vector3 0.72 0 0))))
(define 
all-freqs (run-k-points 100 kpts))

(map (lambda (kx fs)
    
    (map (lambda (f)
            (print "dispersion:," kx "," 
(real-part f) ", " (imag-part f) "\n"))
            fs))
    (map 
vector3-x kpts) all-freqs)


                                          
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
_______________________________________________
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