I am trying to obtain the dispersion characteristic of the fundamental 
TM surface plasmon polariton mode of a infinitely long nanowire [similar
 to the dispersion branches shown below the light line, in Fig 1(a) of 
Opt. Lett., 35, pp. 4190-4192 (2010)]. I'm using the same parameters as 
in the paper. But when I run harminv to obtain the frequencies at 
different k-points, the computed frequencies are erroneous. I'm quite 
new to Meep, and I cannot figure out the problem. I've included my code 
here, please let me know whether I am missing something here. Am I using 
harminv in a wrong way? Thanks a 
lot!



(set! dimensions CYLINDRICAL)

(set-param! m 0)



;############# LATTICE DIMENSIONS #############

(define-param sr 800)

(define-param sz 4000)



(set! geometry-lattice (make lattice (size sr no-size sz)))



;############# DEFINITION OF CONSTANTS #############

(define Pi 3.1415928)                ; Define constant pi

(define cc (* 3 1e8))                ; Velocity of light ms-1

(define plankh (* 4.13566733 1e-15))



(define-param scaleFact 1e9)             ; Characteristic length, a = 1 nm



;############# MATERIAL PARAMETERS #############

(define AgPlasFreqIneV 3.76)    ; Plasma frequency of silver in eV

(define AgEpsInf 9.6)        ; High frequency dielectric constant of silver



(define AgPlasFreq (/ (/ AgPlasFreqIneV plankh) (* cc scaleFact))) ; Plasma 
frequency in meep units

(define AgDrudeOmega 1e-20)            ; Introduce a very small number 
to get rid of the omega_n term in the lorentzian denominator

(define AgDrudeSigma (/ (* AgEpsInf (* AgPlasFreq AgPlasFreq)) (* AgDrudeOmega 
AgDrudeOmega)))



;############# OBJECTS #############

(set! geometry     (list

                (make block (center 50 0 0) (size 100 infinity infinity)

                          (material (make dielectric (epsilon AgEpsInf)

                           (polarizations 

                                 (make polarizability (omega 
AgDrudeOmega) (gamma 0) (delta-epsilon AgDrudeSigma))))))   ; 'sigma' = 
'delta-epsilon' in previous meep versions

                (make block (center 35 0 0) (size 70 infinity infinity) 

                          (material (make dielectric (epsilon 12.35))))))



;############# SOURCES #############

(define-param fcen (* 0.4 AgPlasFreq)) ; pulse center 
frequency                            

(define-param df (* 0.2 AgPlasFreq))    ; pulse freq. width



; Use sources having components similar to that present in the fundamental TM 
mode

; Place the source in an arbitrary position within the core

(set! sources (list

                   (make source (src (make gaussian-src (frequency fcen) 
(fwidth df))) (component Hp) (center 20 0 0)) 

                   (make source (src (make gaussian-src (frequency fcen) 
(fwidth df))) (component Er) (center 20 0 0))

                   (make source (src (make gaussian-src (frequency fcen) 
(fwidth df))) (component Ez) (center 20 0 0))))



;############# PML #############

(set! pml-layers (list (make pml (direction R) (side High) (thickness 300.0))))



;############# RUNNING PARAMETERS #############

(set! resolution 0.1)



; Run harminv after 20 cycles have passed, for several k-points values

(define-param k-interp 5)

(run-k-points (* (/ 1 fcen) 20) (interpolate k-interp (list (vector3 0 0
 (* 0.38 AgPlasFreq)) (vector3 0 0 (* 0.7 AgPlasFreq)))))





      
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to