Dear Steven,

        I am calculating the transmission of a photonic crystal slab. My
system is similar as Fan's article (PRB 65, 235112, analysis of guided
resonances in photonic crystal slabs). The computational cell is large and
time-consuming. I want to exploit the symmetry to speed up the computation.
I have read the meep manual about symmetry. The square lattice has mirror
symmetry about x, y axes, 90 degree rotaitional symmetry. But the source is
Ey or Ex, I am confused by these. I don't know how to set the symmetry.
Could you suggest me about this? Thank you very much! The following is my
ctl file

(define-param n1 2.05)
(define-param eps (* n1 n1))
(define-param n2 1.0)
(define-param eps2 (* n2 n2))
(define-param r 0.1)
(define-param thick 0.4)
(define-param no-slab? false)

(set! geometry-lattice (make lattice (size 1 1 5)));the computional cell
(set! geometry
         (if no-slab?
       (list
          (make block
            (center 0 0 0)
     (size 1 1 5)
     (material (make dielectric (epsilon 1)))))
              (list
                 (make block
                          (center 0 0 0)
                          (size 1 1 thick)
                          (material (make dielectric (epsilon eps))))
          (make cylinder
            (center 0 0 0)
                          (radius r)
                          (height thick)
                          (material (make dielectric (epsilon eps2)))))))

(define-param fcen 0.9) ; pulse center frequency
(define-param df 0.8)  ; pulse width (in frequency)

(set! sources
    (list
     (make source
        (src (make gaussian-src (frequency fcen) (fwidth df)))
         (component Ey)
         (center 0 0 1.25)
  (size 1 1 0))))

(set! k-point (vector3 0 0 0))
(set! pml-layers (list (make pml (direction Z) (thickness 1.0))))
(set-param! resolution 50)
(define-param nfreq 1000) ; number of frequencies at which to compute flux

(define trans
         (add-flux fcen df nfreq
            (make flux-region (center 0 0 -1.0) (size 1 1 0) (direction
Z))))

(define refl
         (add-flux fcen df nfreq
            (make flux-region (center 0 0 1.0) (size 1 1 0) (direction Z))))

(if (not no-slab?) (load-minus-flux "refl-flux" refl))

(run-until 400
   (at-beginning output-epsilon)
   (at-end output-efield-y))
(if no-slab? (save-flux "refl-flux" refl))

(display-fluxes trans refl)
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to