(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)