Hello all,

I've been working on simulating an optical cavity consisting of alternating
layers of SiO2 and TiO2 with a central SiO2 cavity. I'm running into an issue
where the transmitted flux seems to be the initial gaussian source, just
normalized. I cannot figure out what is causing this but I think it may have
something to do with my units. I am trying to model everything in nanometers so
I use a = 1nm for my purposes. My question then goes thus: what is 600nm in meep
units (0.167?) and how can I relate that to my thickness' which need to be 1/4
of the wavelength in the medium?

Can anyone figure out what is going on?

Thank you very much for your time and assistance. 

;Define some parameters

(define-param grid_x 8) ;x of computational grid
(define-param grid_y 6) ;y of computational grid
(define-param fcen 0.167) ;pulse center freuquency
(define-param df 0.1) ;pulse width (in frequency)
(define-param S_eps 1.46) ;Silica epsilon
(define-param T_eps 2.42) ;Titania epsilon
(define-param St 0.061) ;Silica layer thickness
(define-param Tt 0.1) ;Titania layer thickness
(define-param Ct 0.122) ;Cavity thickness
(define-param padding 2) ;Space between edge and waveguide
(define-param WvgWidth (- grid_y padding)) ;layer width (grid_y - padding)
(define-param WvgEnd (+ (+ (+ (+ (+ (+ (+ (* (+ Ct St) 0.5) Tt) St) Tt) St) Tt)
St) Tt))
(display St)

;Create computational cell
(set! geometry-lattice (make lattice (size grid_x grid_y no-size)))


;Create waveguide structure (define centers with parameters)
(set! geometry (list
                (make block (center 0 0) (size Ct WvgWidth infinity) (material 
(make
dielectric (epsilon S_eps)))) ;cavity
                (make block (center (* (* (+ Ct Tt) 0.5) -1) 0) (size Tt 
WvgWidth infinity)
(material (make dielectric (epsilon T_eps)))) ;1st T back
                (make block (center (* (+ (* (+ Ct St) 0.5) Tt) -1) 0) (size St 
WvgWidth
infinity) (material (make dielectric (epsilon S_eps)))) ;1st S back
                (make block (center (* (+ Ct Tt) 0.5) 0) (size Tt WvgWidth 
infinity) (material
(make dielectric (epsilon T_eps)))) ;1st T front
                (make block (center (+ (* (+ Ct St) 0.5) Tt) 0) (size St 
WvgWidth infinity)
(material (make dielectric (epsilon S_eps)))) ;1st S front
                (make block (center (* (+ (+ (* (+ Ct Tt) 0.5) Tt) St) -1) 0) 
(size Tt
WvgWidth infinity) (material (make dielectric (epsilon T_eps)))) ;2nd T back
                (make block (center (* (+ (+ (+ (* (+ Ct St) 0.5) Tt) St) Tt) 
-1) 0) (size St
WvgWidth infinity) (material (make dielectric (epsilon S_eps))))        ;2nd S 
back
                (make block (center (+ (+ (* (+ Ct Tt) 0.5) Tt) St) 0) (size Tt 
WvgWidth
infinity) (material (make dielectric (epsilon T_eps)))) ;2nd T front
                (make block (center (+ (+ (+ (* (+ Ct St) 0.5) Tt) St) Tt) 0) 
(size St
WvgWidth infinity) (material (make dielectric (epsilon S_eps))))        ;2nd S 
front
                (make block (center (* (+ (+ (+ (+ (* (+ Ct Tt) 0.5) Tt) St) 
Tt) St) -1) 0)
(size Tt WvgWidth infinity) (material (make dielectric (epsilon T_eps)))) ;3rd T
back
                (make block (center (* (+ (+ (+ (+ (+ (* (+ Ct St) 0.5) Tt) St) 
Tt) St) Tt)
-1) 0) (size St WvgWidth infinity) (material (make dielectric (epsilon
S_eps))))       ;3rd S back
                (make block (center (+ (+ (+ (+ (* (+ Ct Tt) 0.5) Tt) St) Tt) 
St) 0) (size Tt
WvgWidth infinity) (material (make dielectric (epsilon T_eps)))) ;3rd T front
                (make block (center (+ (+ (+ (+ (+ (* (+ Ct St) 0.5) Tt) St) 
Tt) St) Tt) 0)
(size St WvgWidth infinity) (material (make dielectric (epsilon S_eps))))       
;3rd S
front
                (make block (center (* (+ (+ (+ (+ (+ (+ (* (+ Ct Tt) 0.5) Tt) 
St) Tt) St) Tt)
St) -1) 0) (size Tt WvgWidth infinity) (material (make dielectric (epsilon
T_eps))))       ;4th T back
                (make block (center (* (+ (+ (+ (+ (+ (+ (+ (* (+ Ct St) 0.5) 
Tt) St) Tt) St)
Tt) St) Tt) -1) 0) (size St WvgWidth infinity) (material (make dielectric
(epsilon S_eps))))      ;4th S back
                (make block (center (+ (+ (+ (+ (+ (+ (* (+ Ct Tt) 0.5) Tt) St) 
Tt) St) Tt)
St) 0) (size Tt WvgWidth infinity) (material (make dielectric (epsilon
T_eps))))       ;4th T front
                (make block (center (+ (+ (+ (+ (+ (+ (+ (* (+ Ct St) 0.5) Tt) 
St) Tt) St) Tt)
St) Tt) 0) (size St WvgWidth infinity) (material (make dielectric (epsilon
S_eps))))))     ;4th S front

;Define sources 
(set! sources (list
                (make source
                        (src (make gaussian-src (frequency fcen) (fwidth df)))
                        (component Ex)
                        (center (* -1 WvgEnd) 0)
                        (size 0 .1))))


;PML prameter, should penetrate waveguide
(set! pml-layers (list (make pml (thickness 1))))


(set-param! resolution 10)


(define-param nfreq 100) ; number of frequencies at which to compute flux
(define trans
        (add-flux fcen df nfreq
                (make flux-region
                  (center WvgEnd 0) (size 0 (* 2 WvgWidth)))))
(define refl 
        (add-flux fcen df nfreq
                (make flux-region
                 (center (* -1 WvgEnd) 0) (size 0 (* 2 WvgWidth)))))

(load-minus-flux "refl-flux" refl) ; subtract incident wave FT

;(run-until 200 
;       (at-beginning output-epsilon)1
;               (to-appended "ez" (at-every 0.6 output-efield-z)))

(run-sources+ 500 
        (at-beginning output-epsilon)
        (to-appended "ez" (at-every 0.6 output-efield-z))
                (stop-when-fields-decayed 50 Ez 
                                        (vector3 0.3 0) 
                                                        1e-3))
;(save-flux "refl-flux" refl) ; run to make FT file of incident wave
(display-fluxes trans refl)


_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to