Title: Simulation of metal grating results in NaNs

Dear Steven and Meep users,

I am trying to simulate a metal grating with the code below by turning on periodicty and setting pml in the Y directions. The result was a string of NaNs, even if eps-averaging? was set to false. Am I doing something wrong here? I'm using Meep version 0.10.1.

Thanks in advance,
Wai

(set! eps-averaging? false)

; grating
(define-param lengthscale 50.0) ; length scale in nm
(define-param wvelength 488.0) ; wavelength of source in nm
(define-param gperiod 100.0) ; grating period in nm
(define-param gfill 0.5) ; fill factor of grating
(define-param gthickness 100.0) ; grating thickness in nm
(define-param sx-periods 1) ; number of periods in x direction

; lattice size
(define-param sx (* gperiod sx-periods)) ; size of cell in X direction in nm
(define-param sy 1000.0) ; size of cell in Y direction in nm

; misc
(define nBK7 1.515)

; normalize variables

(set! wvelength (/ wvelength lengthscale))
(set! gperiod (/ gperiod lengthscale))
(set! gthickness (/ gthickness lengthscale))
(set! sx (/ sx lengthscale))
(set! sy (/ sy lengthscale))       


; set geometry

(set! geometry-lattice (make lattice (size sx sy no-size)))

(define obj-glass
    ;; glass
    (make block
      (center 0 (/ sy -4))
      (size sx (/ sy 2) infinity)
      (material (make dielectric (index nBK7)))))

(define obj-metal
    ;; metal
    (make block
      (center 0 (/ gthickness 2))
      (size sx gthickness infinity)
      (material (make dielectric (epsilon -5)))))

(define obj-gap
    ;; gap
    (make block
      (center (/ gperiod 2) (/ gthickness 2))
      (size (* (- 1 gfill) gperiod) gthickness infinity)
      (material (make dielectric (index 1)))))

(define obj-gaps
    ;; punch through metal
    (geometric-object-duplicates
      (vector3 gperiod 0)
      (/ sx-periods -2)
      (- (/ sx-periods 2) 1)
      obj-gap))

(set! geometry (append (list obj-glass obj-metal) obj-gaps))

(set! resolution 10)

(set! k-point (vector3 0))

(set! pml-layers (list
  (make pml (thickness 1) (direction Y))))

(set! sources (list
  (make source
    (src (make continuous-src (wavelength wvelength)))
    (component Ex)
    (center 0 (/ sy -4))
    (size sx 0))))
 
(run-until 100
  (at-beginning output-epsilon)
  (at-end output-efield-x output-efield-y output-efield-z))

_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to