I run a program to calculate the mode of the ring resonator,but some Q are
negative ,some Q are positive.
It is normal? What is wrong with my program? Thanks
Program:
(define-param eps 11.6964) ; Dielectric index of Si
(define-param eps1 2.1316) ; Dielectric index of SiO2
(define-param space 0.2) ;space between edge of direct WG and edge of ring
WG
(define-param pad 0.5) ; padding between waveguide and edge of PML
(define-param dpml 1) ; thickness of PML
(set! resolution 10)
(define-param fcen 0.6452) ; pulse center frequency
(define-param df 0.4) ; pulse width (in frequency)
(define-param wx 21) ; length x of waveguide Si
(define-param wy 0.40) ; width of waveguide Si
(define-param wz 0.22) ; height of waveguide Si
(define-param w 0.40) ; width of ring
waveguide
(define-param r 10) ; inner radius of ring
(define-param wxs wx) ; length x of SiO2 waveguide
(define-param wys (+ 1 wy space (* 2 (+ r w)))) ; width of SiO2 waveguide
(define-param wzs 2) ; height of SiO2 waveguide
; determine the cell sizes
(define sx (+ wxs (* 2 (+ pad dpml)))) ; cell size
(define sy (+ wys (* 2 (+ pad dpml)))) ; cell size
(define sz (+ wz wzs (* 2 (+ pad dpml)))) ; cell size
(set! geometry-lattice (make lattice (size sx sy sz)))
create the WG
(set! geometry
(list
create the Si
(make block (center 0 (- (/ wy 2) (* 0.5 (+ wy space (* 2 (+
r w))))) 0) (size wx wy wz)
(material (make dielectric (epsilon eps))))
create the SiO2
(make block (center 0 0 (+ ( / wz 2) (/ wzs 2))) (size wxs
wys wzs)
(material (make dielectric (epsilon eps1))))
create the ring WG
(make cylinder (center 0 (- (* 0.5 (+ wy space (* 2 (+ r w)))) r
w) 0) (height wz)
(radius (+ r w)) (material (make dielectric (epsilon eps))))
(make cylinder (center 0 (- (* 0.5 (+ wy space (* 2 (+ r w))))
r w) 0) (height wz)
(radius r) (material air))))
(set! pml-layers (list (make pml (thickness dpml))))
(set! sources (list
(make source
(src (make gaussian-src (frequency fcen) (fwidth df)))
(component Ez)
(center ( + 0.4 ( / wx -2)) (- (/ wy 2) (* 0.5 (+ wy space (* 2 (+
r w))))) 0))))
(run-sources+ 200
(at-beginning output-epsilon)
(after-sources (harminv Ez (vector3 (+ r ( / w 2) )) fcen df)))
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss