(use-output-directory "/home/mrea1g12/Dropbox/AR-Coatings/Meep-Files/Pure/Grating/f 0.15 lx 10 ly 10 a 0.1 w 0.05 d 0.1 T 65") (define-param spectrum? false) ; take spectrum or do CW (define-param grating? true) ; flat surface or grating (define-param fcen 0.15) ; light (central) frequency (define-param df 0.1) ; pulse width (frequency) (define-param nfreq 33) ; number of frequencies at which to compute flux (define-param lx 10) ; lattice x limit (define-param ly 10) ; lattice y limit (define-param a 0.1) ; grating periodicity (define-param w 0.05) ; grating aperture width (define-param d 0.1); grating aperture depth (define-param T 65); runtime (set! geometry-lattice (make lattice (size lx ly no-size))) ; define sim cell (set! geometry (if grating? ; check if need to do grating test (list (make block ; make region of dielectric (top-right) (center (/ lx 2) (/ ly 2)) (size lx ly no-size) (material (make dielectric (epsilon 2.25) ) ) ) (make block ; cut out triangle leaving top-right corner of dielectric (center 0 0) (size (* (sqrt (* (expt (/ lx 4) 2) 2)) 2) (* (sqrt (* (expt (/ ly 4) 2) 2)) 2) no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block ; following cut out grating segments- I don't know how to loop! (center (/ lx 4) (/ ly 4)) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block (center (+ (/ lx 4) a) (- (/ ly 4) a)) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block (center (- (/ lx 4) a) (+ (ly 4) a)) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block (center (+ (/ lx 4) (* 2 a)) (- (/ ly 4) (* 2 a))) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block (center (- (/ lx 4) (* 2 a)) (+ (/ ly 4) (* 2 a))) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block (center(+ (/ lx 4) (* 3 a)) (- (/ ly 4) (* 3 a))) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) (make block (center (- (/ lx 4) (* 3 a)) (+ (/ ly 4) (* 3 a))) (size d w no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) ) (list (make block (center (/ lx 2) (/ ly 2)) (size lx ly no-size) (material (make dielectric (epsilon 2.25) ) ) ) (make block (center 0 0) (size (* (sqrt (* (expt (/ lx 4) 2) 2)) 2) (* (sqrt (* (expt (/ ly 4) 2) 2)) 2) no-size) (e1 1 1 0) (e2 1 -1 0) (material (make dielectric (epsilon 1) ) ) ) ) ) ) (set! sources (if spectrum? ; if spectrum analysis needed, make gaussian pulse source. Else, continuous. (list (make source (src (make gaussian-src (frequency fcen) (fwidth df) ) ) ) (component Ez) (center (* (- (/ lx 2) 1) -1) (- (/ ly 4) 1) -1) (size (- (/ lx 2) 1)) ) (list (make source (src (make continuous-src (frequency fcen) ) ) (component Ez) (center (* (- (/ lx 2) 1) -1) (- (/ ly 4) 1) -1) (size 0 (- (/ lx 2) 1)) ) ) ) ) (set! pml-layers (list (make pml (thickness 1.0) ) ) ) (set! resolution 8) (define refl ; reflected flux (add-flux fcen df nfreq (make flux-region (center (*(/ lx 4) 3) (*(*(/ ly 4) 3) -1)) (size 2 0) ) ) ) (if spectrum? (if grating? ; do outputs (load-minus-flux "refl-flux" refl) ) (run-sources+ 100 (at-beginning output-epsilon) ) (if (not grating?) (save-flux "refl-flux" refl) ) ) (run-until T (at-beginning output-epsilon) (at-end (output-png Ez "-Zc dkbluered") ) ) (display-fluxes refl)