Problems with reflectivity spectrum calculations in MEEP
时间:03-30
整理:3721RD
点击:
I am trying to calculate the reflectivity spectrum for a dielectric mirror, but i get unrealistic results. Mazbe someone can help me and tell me where the mistake is.
Code:
(reset-meep)
(define-param sx 50) ; size of cell in X direction
(define-param sy 50) ; size of cell in Y direction
(define-param N 15) ; number of layers
(define-param xsiz 10) ; xsize of the layers
(define-param ysiz 0.25) ; ysize of the layers
(define-param yq 4)
(define-param exist? true) ; ysize of the quartz substrate
(set! geometry-lattice (make lattice (size sx sy no-size)))
(set! geometry (if exist?
(append
(list (make block (center 0 -2) (size xsiz yq) (material (make dielectric (epsilon 3.5)))))
(geometric-object-duplicates (vector3 0 0.5 0) 0 (- N 1) (make block (center 0 (* 1.5 ysiz)) (size xsiz ysiz) (material (make dielectric (epsilon 1.69))))) (geometric-object-duplicates (vector3 0 0.5 0) 0 (- N 1) (make block (center 0 (/ ysiz 2)) (size xsiz ysiz) (material (make dielectric (epsilon 4.84)))))) (list)))
(define-param fcen 2.9167) ; pulse center frequency
(define-param df 4.1667) ; pulse width in frequency
(set! sources (list (make source (src (make gaussian-src (frequency fcen) (fwidth df))) (component Ez)
(center 0 20) (size xsiz 0))))
(set! pml-layers (list (make pml (thickness 1.0))))
(set-param! resolution 10)
(define-param nfreq 100) ; number of frequencies at which to compute flux
(define trans ; transmitted flux (add-flux fcen df nfreq (make flux-region (center 0 -5) (size xsiz 0))))
(define refl; reflected flux
(add-flux fcen df nfreq (make flux-region (center 0 12) (size xsiz 0))))
(if (not exist?) (load-minus-flux "refl-flux" refl))
(run-sources+ 500
(at-beginning output-epsilon)
(to-appended "ez" (at-every 0.6 output-efield-z)))
(if exist? (save-flux "refl-flux" refl))
(display-fluxes trans refl)
reflectivity Problems spectrum 相关文章:
