Dear colleagues:
I am calculating the transmission spectrum of the 3d racetrack
resonators.It take long time(about a week ),but it still does not
finish.Even the square amplitude is keeping increasing.
The part of the calculation data :
on time step 181179 (time=9058.95), 5.22266 s/step
on time step 181180 (time=9059), 5.79688 s/step
field decay(t = 9059.05): 16163.2289727805 /
16163.2289727805 = 1.0
I want to know this is normal?It takes so long time , the field decay
is still 1.0(in the middle of the process ,the decay becomes 0.002,but after
that it becomes to increase ),The amplitude keeping increasing.
The following is the code.:
(define-param n 3.42) ; index of Si
(define-param n1 1.46) ; index of SiO2
(define-param pad 2) ; padding between waveguide and edge of PML
(define-param dpml 1) ; thickness of PML
(define-param fcen 0.6452) ; pulse center frequency
(define-param df 0.02) ; pulse width (in frequency)
(define-param l 11)
(define-param w 0.5) ; width of waveguide Si
(define-param r 4.5) ; inner radius of ring
(define-param space 0.18) ;space between edge of direct WG and edge of ring
WG
(define-param lx 5) ;
(define-param ls 2) ; straightwaveguide length
(define-param r1 21) ; outer radius
(define-param cl 3.5) ; coupling waveguide length
(define-param wz1 0.22) ; height of waveguide Si1
(define-param wz2 0) ; height of waveguide Si2
(define-param wz3 1) ; height of waveguide SiO2
(define-param wz4 2) ; height of Substrate
(define ly (sqrt(- (* r1 r1) (* (- (+ r1 w) lx) (- (+ r1 w) lx))) )) ;
; determine the cell sizes
(define sx (+ (* 2 (+ space w r lx)) (* 2 (+ pad dpml)))) ; cell size
(define sy (+ (* 2 ls) (* 2 ly) (* 2 (+ pad dpml)))) ; cell size
(define sz (+ wz1 wz2 wz3 wz4 (* 2 (+ pad dpml)))) ; cell size
(define-param no-racetrack? false)
(set! resolution 10)
(set! geometry-lattice (make lattice (size sx sy sz)))
(set! pml-layers (list (make pml (thickness dpml))))
; create the WG
(set! geometry
(if no-racetrack?
(list
(make block (center (+ r lx space ( / w 2)) 0 (- (/
wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size w infinity wz1)
(material (make dielectric (index n)) ))
; create the Si2
(make block (center 0 0 (- ( / wz1 2) (/ wz3 2) (/ wz4 2))) (size
infinity infinity wz2)
(material(make dielectric (index n)) ))
; create the SiO2
(make block (center 0 0 (+ ( / wz1 2) (/ wz2 2) (/ wz4
-2))) (size infinity infinity wz3)
(material(make dielectric (index n1)) ))
; create the Si3
(make block (center 0 0 (+ ( / wz1 2) (/ wz2 2) (/ wz3 2))) (size
infinity infinity wz4)
(material(make dielectric (index n)) ))
)
(list
; create the Si1
;region1
(make cylinder (center (- (* -1 r1) (* 2 w) space r)
0 (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (height wz1)
(radius (+ r1 w)) (material (make dielectric (index n)) ))
(make cylinder (center (- (* -1 r1) (* 2 w) space r) 0 (- (/
wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (height wz1)
(radius r1) (material air))
(make block (center (* -1 (+ space r r1 (* 2 w) (/ lx 2)))0
(- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size (- (* 2 (+ r1 w)) lx) (*
2 (+ r1 w)) wz1)
(material air ))
(make cylinder (center (+ r1 (* 2 w) space r) 0 (-
(/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (height wz1)
(radius (+ r1 w)) (material (make dielectric (index n)) ))
(make cylinder (center (+ r1 (* 2 w) space r) 0 (- (/ wz2 -2
) (/ wz3 2 ) (/ wz4 2 ))) (height wz1)
(radius r1) (material air))
(make block (center (+ space r r1 (* 2 w) (/ lx 2)) 0 (- (/
wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size (- (* 2 (+ r1 w)) lx) (* 2 (+ r1
w)) wz1)
(material air ))
(make block (center 0 (+ ly w) (- (/ wz2 -2 ) (/ wz3
2 ) (/ wz4 2 ))) (size infinity (* 2 w ) wz1)
(material air ))
(make block (center 0 (* -1 (+ ly w)) (- (/ wz2 -2 )
(/ wz3 2 ) (/ wz4 2 ))) (size infinity (* 2 w ) wz1)
(material air ))
;region2:input straight coupling
(make block (center 0 0 (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4
2 ))) (size infinity cl wz1)
(material air ))
(make block (center (* -1 (+ r w space ( / w 2))) 0 (-
(/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size w cl wz1)
(material (make dielectric (index n)) ))
(make block (center (+ r w space ( / w 2)) 0 (- (/ wz2 -2 )
(/ wz3 2 ) (/ wz4 2 ))) (size w cl wz1)
(material (make dielectric (index n)) ))
;region3:outer straight waveguide
(make block (center (* -1 (+ r lx space ( / w 2))) (* -1 (+
(/ sy 4) (/ ly 2))) (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size w (-
(/ sy 2) ly) wz1)
(material (make dielectric (index n)) ))
(make block (center (* -1 (+ r lx space ( / w 2))) (+ (/ sy 4)
(/ ly 2)) (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size w (- (/ sy 2)
ly) wz1)
(material (make dielectric (index n)) ))
(make block (center (+ r lx space ( / w 2)) (+ (/ sy 4) (/ ly
2)) (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size w (- (/ sy 2) ly)
wz1)
(material (make dielectric (index n)) ))
(make block (center (+ r lx space ( / w 2)) (* -1 (+ (/ sy 4) (/
ly 2))) (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 ))) (size w (- (/ sy 2)
ly) wz1)
(material (make dielectric (index n)) ))
;region4 :center region
(make cylinder (center 0 (/ l 2) (- (/ wz2 -2 ) (/ wz3 2 ) (/
wz4 2 ))) (height wz1)
(radius (+ r w)) (material (make dielectric (index n)) ))
(make cylinder (center 0 (/ l 2) (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4
2 ))) (height wz1)
(radius r) (material air))
(make cylinder (center 0 (/ l -2) (- (/ wz2 -2 ) (/ wz3
2 ) (/ wz4 2 ))) (height wz1)
(radius (+ r w)) (material (make dielectric (index n)) ))
(make cylinder (center 0 (/ l -2) (- (/ wz2 -2 ) (/ wz3 2 ) (/
wz4 2 ))) (height wz1)
(radius r) (material air))
(make cylinder (center 0 (/ l 2) (- (/ wz2 -2 ) (/ wz3 2 )
(/ wz4 2 ))) (height wz1)
(radius r) (material air))
(make block (center 0 0 (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4
2 ))) (size (* 2 (+ r w)) l wz1)
(material (make dielectric (index n)) ))
(make block (center 0 0 (- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4
2 ))) (size (* 2 r) l wz1)
(material air ))
; create the Si2
(make block (center 0 0 (- ( / wz1 2) (/ wz3 2) (/ wz4 2))) (size
infinity infinity wz2)
(material(make dielectric (index n)) ))
; create the SiO2
(make block (center 0 0 (+ ( / wz1 2) (/ wz2 2) (/ wz4
-2))) (size infinity infinity wz3)
(material(make dielectric (index n1)) ))
; create the Si3
(make block (center 0 0 (+ ( / wz1 2) (/ wz2 2) (/ wz3 2))) (size
infinity infinity wz4)
(material(make dielectric (index n)) ))
)))
(set! sources (list
(make source
(src (make gaussian-src (frequency fcen) (fwidth df)))
(component Ex)
(center (+ r lx space ( / w 2)) (- (/ sy 2) 2) (- (/ wz2 -2 ) (/ wz3
2 ) (/ wz4 2 ))
))))
(define-param nfreq 100) ; number of frequencies at which to compute flux
(define trans ; transmitted flux
(add-flux fcen df nfreq
(if no-racetrack?
(make flux-region
(center (+ r lx space ( / w 2)) (- 2 (/ sy 2) ) (- (/ wz2 -2
) (/ wz3 2 ) (/ wz4 2 ))) (size w 0 wz1))
(make flux-region
(center (* -1 (+ r lx space ( / w 2)) ) (- (/ sy 2) 2) (-
(/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 )) ) (size w 0 wz1 )))))
(define refl ; reflected flux
(add-flux fcen df nfreq
(make flux-region
(center (+ r lx space ( / w 2)) (- (/ sy 2) 1.5) (- (/ wz2 -2 )
(/ wz3 2 ) (/ wz4 2 ))) (size w 0 wz1 ) )))
; for normal run, load negated fields to subtract incident from refl.
fields
(if (not no-racetrack?) (load-minus-flux "refl-flux" refl))
(run-sources+
(stop-when-fields-decayed 50 Ex
(if no-racetrack?
(vector3 (+ r lx space ( / w 2)) (- 2 (/ sy 2) ) (- (/
wz2 -2 ) (/ wz3 2 ) (/ wz4 2 )) )
(vector3 (* -1 (+ r lx space ( / w 2)) ) (- (/ sy 2) 2)
(- (/ wz2 -2 ) (/ wz3 2 ) (/ wz4 2 )) )
)
1e-3)
(at-beginning output-epsilon)
(at-end output-efield-x)
(at-end output-dpwr)
)
; for normalization run, save flux fields for refl. plane
(if no-racetrack? (save-flux "refl-flux" refl))
(display-fluxes trans refl)
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss