Hi all, I have a following problem, and any clues are much appreciated. I want to do a simple 1D simulation of normal reflectance from air to a dielectric of constant epsilon (eps=9). According to Fresnel's equations reflectance should be 0.25 regardless of frequency.
But, when I send a Gaussian pulse (fmin = 0 fmax =1.0) I get about 4% discrepancy for f=1.0 (0.238 instead of 0.25, resolution 36). Initially I assumed that the tails of the Gaussian source produce some numerical errors but even with fmin=0.5, fmax=1.5, such that fcen=1.0 I still get the same answer. As resolution is increased convergence gets better, but even at resolution=52 it's still not ideal. I know that wavelengths close to lattice spacing cause issues but f=1 <=> lambda = 1 >> 1/52. Or is it? Here is my code below: (define-param norm? true) (define-param dpml 2) (define-param sx (* 2 (+ 1 dpml))) (set-param! resolution 36) (define-param fmin 1e-3) (define-param fmax 1.0) (define-param fcen (* 0.5 (+ fmin fmax))) (define-param df (- fmax fmin)) (define-param nfreq 100) (define-param material1 (make dielectric (epsilon 9))) (define slab (make block (center (* 0.25 sx)) (size (+ 1 dpml) infinity infinity) (material material1))) (set! default-material air) (set! geometry-lattice (make lattice (size sx no-size no-size))) (set! geometry (if (not norm?) (list slab) '())) (set! pml-layers (list (make pml (direction X) (thickness dpml)))) (set! sources (list (make source (src (make gaussian-src (frequency fcen) (fwidth df))) (component Ez) (center (- 0.1)) (size 0) (amplitude 1.0) ) )) (define refl (add-flux fcen df nfreq (make flux-region (center 0) (size 0)))) (if (not norm?) (load-minus-flux "refl-flux" refl)) (run-until 1000 ) (if norm? (save-flux "refl-flux" refl)) (display-fluxes refl)
_______________________________________________ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss