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
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss