Hello MEEP users,

I would like to compare my results from FDTD method with transfer matrix 
method (TMM). I am trying to use MEEP to simulate reflections from a DBR 
(10 bragg pairs SiO2/TiO2). Result from TMM is consistent with the 
measurement, but from FDTD I obtained different reflection spectrum (looks 
like reflections form different DBR). Below I attached my MEEP code. 

Can someone tell me what is wrong with this code?

I really appreciate any help you can provide.

Best regards,
Krzysztof Sawicki



(set! geometry-lattice (make lattice (size 16 4 4)))
(define-param SiO2 (* 1.48 1.48))
(define-param TiO2 (* 2.28 2.28))

(set! geometry (list
                (make block (center 0.125 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 0.3 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 0.475 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 0.65 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 0.825 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 1 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 1.175 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 1.35 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 1.525 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 1.7 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 1.875 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 2.05 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 2.225 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 2.4 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 2.575 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 2.7 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 2.925 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 3.1 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
                (make block (center 3.275 0 0) (size 0.25 infinity 
infinity)
                      (material (make dielectric (epsilon SiO2))))
                (make block (center 3.45 0 0) (size 0.1 infinity infinity)
                      (material (make dielectric (epsilon TiO2))))
))

(set! pml-layers (list (make pml (thickness 1.0))))
(set! sources (list
        (make source
        (src (make gaussian-src (frequency 0.6452) (fwidth 20.0)))
        (component Ez)
        (center -6 0 0)
        (size 0 0 0)
)))

(set-param! resolution 10)
(define-param fcen 2) 
(define-param fcen 2) 
(define-param df 4)    
(define-param nfreq 1000)

(define tran1 ; transmitted flux
    (add-flux fcen df nfreq
        (make flux-region (center 6 0 0) (size 0 4 4))))
(define refl1 ; reflected flux
    (add-flux fcen df nfreq
        (make flux-region (center -6 0 0) (size 0 4 4))))

(use-output-directory)
(run-sources+ 100 (at-beginning output-epsilon)
;   (at-every 1 (output-png Ez "-0y 0 -Zc jet"))
    (to-appended "ez" (at-every 1 output-efield-z))
)

(save-flux "refl1-flux" refl1)
(save-flux "tran1-flux" tran1)
;(save-flux "refl2-flux" refl2)
;(save-flux "tran2-flux" tran2)
(display-fluxes tran1 refl1)
;(display-fluxes tran1 refl1 tran2 refl2)

(print "transmision:, " (first (get-fluxes tran1)) "\n")
(print "reflection:, " (first (get-fluxes refl1)) "\n")




_______________________________________________
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