Dear Steven and all,
i'm trying to reproduce the figure 21 chapter 5 of the book (molding the flow 
of light) by calculating the transmission spectra of the mentioned structure 
but i can't got the relevant result. i have well defined the unit cell but i 
have trouble getting the right transmission spectra. here my ctl file:
; some parameters describing the structure
(define-param eps 8.9) ; dielectric constant of the rods
(define-param r 0.2) ; rod radius
(define-param nx 9) ; # rods in x direction
(define-param dpml 1) ; thickness of PML absorbing boundary layer
(define Al (make dielectric (epsilon eps)))
(define sx (+ nx (* 2 (+ dpml 9)))) ; size of cell in x direction
(set! geometry-lattice (make lattice (size sx 1 no-size)))
(set! k-point (vector3 0 0 0)) ; periodic boundaries
(set! pml-layers (list (make pml (direction X) (thickness dpml))))
(set! geometry 
      (list
       (make cylinder 
     (material Al) 
     (center 0 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 1 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 2 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 3 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 4 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 5 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 6 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 7 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 8 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 9 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 10 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 11 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 12 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 13 0) (radius r) (height infinity))
       (make cylinder 
     (material Al) 
     (center 14 0) (radius r) (height infinity))
       (make block 
       (material air)
         (center -7.25 0) (size 14.5 1 infinity))    
                             
))


(set-param! resolution 20) ; # pixels/a

(define-param fcen 0.38) ; pulse center frequency
(define-param df 0.4)    ; pulse width (in frequency)

; false = transmission spectrum, true = resonant modes:
(define-param compute-mode? false)

(if compute-mode?
    (begin
      (set! sources (list
             (make source
               (src (make gaussian-src (frequency fcen) (fwidth df)))
               (component Ez) (center 0 0))))

      (set! symmetries
        (list (make mirror-sym (direction Y) (phase -1))
          (make mirror-sym (direction X) (phase -1))))

      (run-sources+ 400
            (at-beginning output-epsilon)
            (after-sources (harminv Ez (vector3 0 0) fcen df)))
      (run-until (/ 1 fcen) (at-every (/ 1 fcen 20) output-hfield-z))      
      )
    (begin
(set! sources (list
           (make source
         (src (make gaussian-src (frequency (+ 0.1 fcen)) (fwidth df)))
         (component Hy)
         (center (+ 7 (* -0.5 sx)) 0)
         (size 0 1))
                (make source
          (src (make gaussian-src (frequency (- fcen 0.1)) (fwidth df)))
         (component Hy)
         (center (+ 7 (* -0.5 sx)) 0)
         (size 0 1))
))
(set! symmetries (list (make mirror-sym (direction Y) (phase -1))))

(define-param nfreq 500) ; number of frequencies at which to compute flux
(define trans ; transmitted flux                                          
  (add-flux fcen df nfreq
        (make flux-region
          (center (- (* 0.5 sx) 7) 0) (size 0 1))))

(run-sources+ (stop-when-fields-decayed
           50 Hy
           (vector3 (- (* 0.5 sx) 7) 0)
           1e-3)
          (at-beginning output-epsilon)
            (during-sources
                     (in-volume (volume (center 0 0) (size sx 0))
                     (to-appended "hy-slice" (at-every 0.4 output-hfield-y)))))
      
      (display-fluxes trans) ; print out the flux spectrum
      ))
i appreciate your help
best regards



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

Reply via email to