When does MEEP throw this error:

---------------- BEGIN OUTPUT -------------------

[EMAIL PROTECTED]:~/meep-dir> meep pcb-polished-fixed.ctl
-----------
Initializing structure...
Working in 2D dimensions.
     block, center = (-2.35,10,0)
          size (4.85,0.018,1e+20)
          axes (1,0,0), (0,1,0), (0,0,1)
          dielectric constant epsilon = -1e+10
     block, center = (2.35,10,0)
          size (4.85,0.018,1e+20)
          axes (1,0,0), (0,1,0), (0,0,1)
          dielectric constant epsilon = -1e+10
     block, center = (-2.35,10.374,0)
          size (4.85,0.018,1e+20)
          axes (1,0,0), (0,1,0), (0,0,1)
          dielectric constant epsilon = -1e+10
     block, center = (2.35,10.374,0)
          size (9.7,0.018,1e+20)
          axes (1,0,0), (0,1,0), (0,0,1)
          dielectric constant epsilon = -1e+10
meep: Cannot split 0 grid points into 1 parts

[EMAIL PROTECTED]:~/meep-dir>

---------------- END OUTPUT -------------------

You can find the pcb-polished-fixed.ctl file attached or at this web
location:

http://pastebin.us/7674

I'm basically trying to find the transmission spectrum of a slab of
epoxy sandwiched between two perforated copper sheets. The aim is to
duplicate the results in a paper by A. P. Hibbins and J. R. Sambles
titled "Squeezing Millimeter Waves into Microns", specifically Figure 3.

Thanks.

Ashifi.
; Transmission spectrum of array of holes in two copper sheets separated by
; a dielectric. All units in mm, ie: a = 1 mm

(use-output-directory)                    ; put all output in a new directory
(define-param a 1e-3)                     ; base unit in meters (1e-3 = 1 mm)
(define-param fequency-center 10.5e9)     ; central frequency in hertz
(define-param fequency-width 5.5e9)       ; frequency width in hertz
;this should give 5 GHz <= f <= 16 GHz
(define-param number-frequency 100)       ; number of frequencies at which to 
compute flux             
(define-param resolution-ppw 20)          ; resolution in pixels per wavelength

; define the largest wavelength in the gaussian spectrum, in base units
(define wavelength-max-base (/ (/ 1 (+ fequency-center fequency-width)) a))
(define wavelength-center (/ 3e8 fequency-center))          ; free space 
wavelength (meters)
(define wavelength-center-base (/ wavelength-center a))     ; central 
wavelength in base units
(define frequency-center-base (/ 1 wavelength-center-base)) ; source center 
frequency in base units
(define frequency-width-base 36666.7)                       ; source frequency 
width in base units

; let's setup the structure: epoxy sandwiched between two copper sheets
; with a slit in the middle
(define size-slit 0.3)          ; distance between copper slits
(define size-film-x 9.7)        ; width of copper film in x direction
(define size-film-y 0.018)      ; copper film thickness (width of film in y 
direction)
(define size-epoxy-y 0.356)     ; thickness of epoxy/dielectric filling
(define epsilon-copper -1e10)   ; epsilon of highly reflective copper sheets

; make the cell size 8*largest wavelength, not including PML
;(define size-cell (* wavelength-max-base 8)) ;<-- doesn't work 
(define size-cell (+ size-slit size-film-x))            
(define size-pml wavelength-max-base)                   ; thickness of PML 
layers
(define size-cell-pml (+ size-cell (* 2 size-pml)))     ; cell size, including 
PML

; geometry is rectangle 3x longer than its width, to give the source time to 
propagate
(define-param aspect-ratio 3)
(set! geometry-lattice (make lattice (size size-cell-pml (* aspect-ratio 
size-cell-pml) no-size)))

; make it periodic in the X direction, splash some PML at the top and bottom of 
the cell
(set! k-point (vector3 0 0 0))
(set! ensure-periodicity true)
(set! pml-layers (list (make pml (direction X) (thickness size-pml))))
(set-param! resolution (/ resolution-ppw wavelength-max-base))

; put the top copper film far away from the source  
(define pos-film-y size-cell-pml) 

(define center-film-x (* 0.5 (- (/ size-film-x 2) (/ size-slit 2))))

; define the structure: two films separated by slit
(set! geometry (list
                (make block   ; left film above epoxy
                        (center (* center-film-x -1) pos-film-y)
                        (size (/ size-film-x 2) size-film-y infinity)
                        (material (make dielectric (epsilon epsilon-copper))))

                (make block   ; right film above epoxy
                        (center center-film-x pos-film-y)
                        (size (/ size-film-x 2) size-film-y infinity)
                        (material (make dielectric (epsilon epsilon-copper))))
                ;(make block   ; epoxy
                ;       (center (+ (+ (/ pos-film-y 2) pos-film-y) (/ 
size-film-y 2))) 
                ;       (size infinity size-epoxy-y no-size) 
                ;       (material 
                ;         (make dielectric (epsilon 4.11)
                ;            (polarizations 
                ;               (make polarizability
                ;                     (omega 2.5) (gamma 1e5)(delta-epsilon 
0.16))))))
                

                ; repeat for bottom of epoxy
                (make block   ; left film below epoxy
                        (center (* center-film-x -1) (+ (+ pos-film-y 
size-film-y) size-epoxy-y))
                        (size (/ size-film-x 2) size-film-y infinity)
                        (material (make dielectric (epsilon epsilon-copper))))

                (make block   ; right film below epoxy
                        (center center-film-x (+ (+ pos-film-y size-film-y) 
size-epoxy-y))
                        (size size-film-x size-film-y infinity)
                        (material (make dielectric (epsilon epsilon-copper))))))

; The polarizability values in the epoxy layer should give us a structure 
; that looks like a material with epsilon = 4.17 + 0.07i. 

; Our source is gaussian, placed at the top spanning the width of the cell
; (no PML in the X direction, so it's OK to do so)
(define-param source-component Ez)

(set! sources (list
         (make source
         (src (make gaussian-src (frequency frequency-center-base) (fwidth 
frequency-width-base)))
         (component source-component) (center 0 (* size-cell (/ aspect-ratio 
-2)) 0) (size size-cell-pml 0))))

; no PML in the X direction, so our flux region can also span the width 
; of the cell. The flux region sits above the bottom PML region.
(define flux-region-center (vector3 0 (* size-cell (/ aspect-ratio 2)) no-size))
(define flux-transmission                                         
      (add-flux frequency-center-base frequency-width-base number-frequency
             (make flux-region
                     (center flux-region-center) (size 0 size-cell))))

; run until |E|^2 source at flux region has decayed by 3 orders of magnitude 
from its max.
; keep running the sources in increments of 50 time units, outputting files
; 10 times per period for a smooth animation.
(run-sources+ 
        (stop-when-fields-decayed 50 source-component flux-region-center 1e-3)
        (at-beginning output-epsilon)
        (at-every (* 10 wavelength-max-base) (output-png source-component "-S2 
-Zc dkbluered -C $EPS")))

; the lines above doesn't colorscale the resulting animation evenly since it
; only scales based on past image values. To get a uniformly colorscaled
; image, output the h5 files, convert to png and then make the gif image

(display-fluxes flux-transmission)
(save-flux "flux-trans" flux-transmission)

; to run:
; meep filename.ctl | tee filename.out
_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to