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