Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement