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