Hello MEEP Users,

I am a new user of MEEP, and I am trying to validate my own ability for
using the code. I wanted to calculate the reflection/transmission
spectra for the T-junction 2D photonic crystal configuration as
described in

(1) S. Fan, S.G. Johnson and J.D. Joannopoulos et. al., "Waveguide
branched in photonic crystals", J. Opt. Soc. Am. B, 18, 2, 2001.

(2) R-S. Chen, Y-B Lin et. al., "Efficient approach for the calculation
of transmission and reflection spectra of photonic crystal waveguide
devices", Proc. of the SPIE, Vol. 8102, 2011.

I am attempting to use a domain that has is 48a x 44a with a PML of 4a
all the way around; resolution is set at 20. In other words I am not
using the large domain approach mentioned in (1). Instead, for the input
wave calculation, I remove the top of the "T" to capture the subtractive
spectrum. This approach mimics that in the tutorial "Transmission
Spectrum Around a Waveguide Bend". My domain is captured between the
points (-24,-22) and (24,22) along the x=y line. I am using a Gaussian
source cast along an infinite line.

My epsilon fields look good when visualized, but my spectra do not. They
really don't make sense.

I would like to know if my approach will even work for this problem. Any
guidance you may provide will be appreciated. My ctl file is included
for processing the input wave, e.g., like step 1 in the tutorial.

Thank you.

; Straight waveguide with dielectric rods around a channel
; lay out computational cell 2D

(set! geometry-lattice (make lattice (size 48 44 no-size)))

; lay out the actual 2D waveguide
; by default, regions outside of the dielectric block have eps = 1
; and considered to be air

; Inset the rods in the left region
(let xloop ((n -20))
(if (<= n -1)
  (begin
    (let yloop ((m -18))
    (if (<= m 12)
      (begin

        (set! geometry (append geometry
        (list
          (make cylinder
          (center n m)
          (height infinity)
          (radius 0.2)
          (material (make dielectric (index 3.4)))))))

      (yloop (+ m 1))
      )))
   (xloop (+ n 1))
   )))

; Inset the rods in the right region
(let xloop ((n 1))
(if (<= n 20)
  (begin
    (let yloop ((m -18))
    (if (<= m 12)
      (begin

        (set! geometry (append geometry
        (list
          (make cylinder
          (center n m)
          (height infinity)
          (radius 0.2)
          (material (make dielectric (index 3.4)))))))

      (yloop (+ m 1))
      )))
   (xloop (+ n 1))
   )))


; lay out the current density line source Jz
; Gaussian pulse turned on at t = 0
(define-param df 0.005)
(set! sources 
  (list
    (make source
      (src (make gaussian-src (frequency 0.38) (fwidth df)))
      (component Ez)
      (center 0 -15.5)
      (size 0 0 infinity))
      ))

; lay out the PML absorbing layer around all waveguide boundaries
(set! pml-layers (list (make pml (thickness 4.0))))

; prescribe grid resolution (pixels per unit distance)
(set! resolution 20)

; Flux section
(define-param nfreq 100)
(define refl
  (add-flux 0.38 0.005 nfreq
    (make flux-region
      (center 0 -3)
      (size 2 0))))

(define trans
  (add-flux 0.38 0.005 nfreq
    (make flux-region
      (center 0 17)
      (size 2 0))))

; prescribe run control (20 time units)
;(run-until 20
;  (at-beginning output-epsilon)
;  (at-every 5 output-efield-z)
;  (at-end output-efield-z))

(run-sources+
  (stop-when-fields-decayed 50 Ez (vector3 0 17) 1e-3)
    (at-beginning output-epsilon)
    (at-every 100 output-efield-z)
    (at-end output-efield-z))

(save-flux "refl-flux" refl)
(display-fluxes trans refl)



Doug Nance




_______________________________________________
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