1. (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")
  2.  
  3. (define-param spectrum? false) ; take spectrum or do CW
  4. (define-param grating? true) ; flat surface or grating
  5. (define-param fcen 0.15) ; light (central) frequency
  6. (define-param df 0.1) ; pulse width (frequency)
  7. (define-param nfreq 33) ; number of frequencies at which to compute flux
  8. (define-param lx 10) ; lattice x limit
  9. (define-param ly 10) ; lattice y limit
  10. (define-param a 0.1) ; grating periodicity
  11. (define-param w 0.05) ; grating aperture width
  12. (define-param d 0.1); grating aperture depth
  13. (define-param T 65); runtime
  14.  
  15. (set! geometry-lattice (make lattice (size lx ly no-size))) ; define sim cell
  16.  
  17. (set! geometry
  18.     (if grating? ; check if need to do grating test
  19.         (list (make block ; make region of dielectric (top-right)
  20.                 (center (/ lx 2) (/ ly 2))
  21.                 (size lx ly no-size)
  22.                 (material
  23.                     (make dielectric
  24.                         (epsilon 2.25)
  25.                     )
  26.                 )
  27.                 )
  28.                 (make block ; cut out triangle leaving top-right corner of dielectric
  29.                     (center 0 0)
  30.                     (size (* (sqrt (* (expt (/ lx 4) 2) 2)) 2) (* (sqrt (* (expt (/ ly 4) 2) 2)) 2) no-size)
  31.                     (e1 1 1 0)
  32.                     (e2 1 -1 0)
  33.                     (material
  34.                         (make dielectric
  35.                             (epsilon 1)
  36.                         )
  37.                     )
  38.                 )
  39.                 (make block ; following cut out grating segments- I don't know how to loop!
  40.                     (center (/ lx 4) (/ ly 4))
  41.                     (size d w no-size)
  42.                     (e1 1 1 0)
  43.                     (e2 1 -1 0)
  44.                     (material
  45.                         (make dielectric
  46.                             (epsilon 1)
  47.                         )
  48.                     )
  49.                 )
  50.                 (make block
  51.                     (center (+ (/ lx 4) a) (- (/ ly 4) a))
  52.                     (size d w no-size)
  53.                     (e1 1 1 0)
  54.                     (e2 1 -1 0)
  55.                     (material
  56.                         (make dielectric
  57.                             (epsilon 1)
  58.                         )
  59.                     )
  60.                 )
  61.                 (make block
  62.                     (center (- (/ lx 4) a) (+ (ly 4) a))
  63.                     (size d w no-size)
  64.                     (e1 1 1 0)
  65.                     (e2 1 -1 0)
  66.                     (material
  67.                         (make dielectric
  68.                             (epsilon 1)
  69.                         )
  70.                     )
  71.                 )
  72.                 (make block
  73.                     (center (+ (/ lx 4) (* 2 a)) (- (/ ly 4) (* 2 a)))
  74.                     (size d w no-size)
  75.                     (e1 1 1 0)
  76.                     (e2 1 -1 0)
  77.                     (material
  78.                         (make dielectric
  79.                             (epsilon 1)
  80.                         )
  81.                     )
  82.                 )
  83.                 (make block
  84.                     (center (- (/ lx 4) (* 2 a)) (+ (/ ly 4) (* 2 a)))
  85.                         (size d w no-size)
  86.                         (e1 1 1 0)
  87.                         (e2 1 -1 0)
  88.                         (material
  89.                             (make dielectric
  90.                                 (epsilon 1)
  91.                             )
  92.                         )
  93.                 )
  94.                 (make block
  95.                     (center(+ (/ lx 4) (* 3 a)) (- (/ ly 4) (* 3 a)))
  96.                     (size d w no-size)
  97.                     (e1 1 1 0)
  98.                     (e2 1 -1 0)
  99.                     (material
  100.                         (make dielectric
  101.                             (epsilon 1)
  102.                         )
  103.                     )
  104.                 )
  105.                 (make block
  106.                     (center (- (/ lx 4) (* 3 a)) (+ (/ ly 4) (* 3 a)))
  107.                     (size d w no-size)
  108.                     (e1 1 1 0)
  109.                     (e2 1 -1 0)
  110.                     (material
  111.                         (make dielectric
  112.                             (epsilon 1)
  113.                         )
  114.                     )
  115.                 )
  116.         )
  117.         (list
  118.             (make block
  119.                 (center (/ lx 2) (/ ly 2))
  120.                 (size lx ly no-size)
  121.                 (material
  122.                     (make dielectric
  123.                         (epsilon 2.25)
  124.                     )
  125.                 )
  126.             )
  127.             (make block
  128.                 (center 0 0)
  129.                 (size (* (sqrt (* (expt (/ lx 4) 2) 2)) 2) (* (sqrt (* (expt (/ ly 4) 2) 2)) 2) no-size)
  130.                 (e1 1 1 0)
  131.                 (e2 1 -1 0)
  132.                 (material
  133.                     (make dielectric
  134.                         (epsilon 1)
  135.                     )
  136.                 )
  137.             )
  138.         )
  139.     )
  140. )
  141.  
  142. (set! sources
  143.     (if spectrum? ; if spectrum analysis needed, make gaussian pulse source. Else, continuous.
  144.         (list
  145.             (make source
  146.                 (src
  147.                     (make gaussian-src
  148.                         (frequency fcen)
  149.                         (fwidth df)
  150.                     )
  151.                 )
  152.             )
  153.             (component Ez)
  154.             (center (* (- (/ lx 2) 1) -1) (- (/ ly 4) 1) -1)
  155.             (size (- (/ lx 2) 1))
  156.         )
  157.         (list
  158.             (make source
  159.                 (src
  160.                     (make continuous-src
  161.                         (frequency fcen)
  162.                     )
  163.                 )
  164.                 (component Ez)
  165.                 (center (* (- (/ lx 2) 1) -1) (- (/ ly 4) 1) -1)
  166.                 (size 0 (- (/ lx 2) 1))
  167.             )
  168.         )
  169.     )
  170. )
  171.                                        
  172. (set! pml-layers
  173.     (list
  174.         (make pml
  175.             (thickness 1.0)
  176.         )
  177.     )
  178. )
  179.  
  180. (set! resolution 8)
  181.  
  182. (define refl ; reflected flux
  183.     (add-flux fcen df nfreq
  184.         (make flux-region
  185.             (center (*(/ lx 4) 3) (*(*(/ ly 4) 3) -1))
  186.             (size 2 0)
  187.         )
  188.     )
  189. )
  190.  
  191. (if spectrum?
  192.     (if grating? ; do outputs
  193.         (load-minus-flux "refl-flux" refl)
  194.     )
  195.     (run-sources+ 100
  196.         (at-beginning output-epsilon)
  197.     )
  198.     (if (not grating?)
  199.         (save-flux "refl-flux" refl)
  200.     )
  201. )
  202.  
  203. (run-until T
  204.     (at-beginning output-epsilon)
  205.     (at-end
  206.         (output-png Ez "-Zc dkbluered")
  207.     )
  208. )
  209.  
  210. (display-fluxes refl)