Hello everyone,

I am modeling in MEEP 1d photonic crystal cavity in SOI. In 2d calculations I 
have not got any problem with that. But when I extend my model to 3d, problems 
came. When I run program with 4 or more pairs of mirror (N=5) I cannot find 
resonant mode. Or if I try compute transmission, flux1: = +inf.0. ?? I do not 
know what that mean. I have checked symmetry, distance source from PhC, and 
nothing help. My script is below, if someone can help me I will be really 
grateful. 

Wishes
Szymon


;1d photonic crystal cavity in SOI

;some parameters to describe the geometry:
(define-param nsi 3.48) ; index of waveguide
(define-param nsio2 1.46); index of sio2
 
(define-param w 0.4) ;width of waveguide
(define-param H 0.2) ;size of defect
(define-param L 0.09) ;defect spacing
(define-param D 0.4) ;cavity size
(define-param N 5) ;number of defectys on either side of defect
(define-param p (+ H L)); period
(define-param h 0.65); depth of etch
(define-param hw 0.36); hight of waveguide
(define-param sisub 1); thickness of Si substrate
(define-param sio2 1.5); thickness of SiO2 buffer layer
(define-param si 0.36); thickness of Si waveguide
(define-param pad 10) ;padding between last defect and PML edge
(define-param dpml 2) ; PML thickness
(define-param dpmlz 2); PML thickness in Z direction


;The cell dimensions
(define-param sx (+ w 7 (* 2 dpml))) ;size of cell in x direction 
(perpendicular to wvg.)
(define-param sy (* 2 (+ sio2 (* hw 0.5) dpml))); size of cell in z direction 
(hight)
(define-param sz (+ (* 2 (+ pad dpml (* N p))) D)) ;size of cell in x direction 
(propagation diraction)

(set! geometry-lattice (make lattice (size sx sy sz)))

(set! geometry
        (append
                (list 
                        (make block (center 0 (+ (* 0.5 hw) (* 0.5 sio2)) 0) 
(size infinity sio2 infinity)
                                (material (make dielectric (index nsio2))))
                        (make block (center 0 0 0) (size w hw infinity)
                                (material (make dielectric (index nsi)))))
                (geometric-object-duplicates (vector3 0 0 p) 0 (- N 1)
                        (make block (center 0 (+ (* -0.5 hw) (* 0.5 h)) (+ (* H 
0.5) (* D 0.5))) (size w h L)
                                (material air)))
                (geometric-object-duplicates (vector3 0 0 (* p -1)) 0 (- N 1)
                        (make block (center 0 (+ (* -0.5 hw) (* 0.5 h)) (+ (* H 
-0.5) (* D -0.5))) (size w h L)
                                (material air)))))

(set! pml-layers (list (make pml (thickness dpml))))
(set-param! resolution 10)

(define-param fcen 0.65) ;pulse center frequency
(define-param df 0.2) ;pulse width (in frequency)
(define-param nfreq 500); number of frequencies at which to compute flux

;false = transmission spectrum, true = resonant mode;
(define-param reso-mode? false)

(if reso-mode?
        (begin
                (set! sources (list
                        (make source
                                (src (make gaussian-src (frequency fcen) 
(fwidth df)))
                                (component Hy) (center 0 0 0 ))))
        )
        (begin
                (set! sources (list
                        (make source
                                (src (make gaussian-src (frequency fcen) 
(fwidth df)))
                                (component Hx)
                                (center 0 0 (+ dpml 0.05 (* -0.5 sz)))
                                (size w hw 0))))
        ))


(if reso-mode?
        (begin  
                (set! symmetries 
                        (list (make mirror-sym (direction X) (phase -1))
                                        (make mirror-sym (direction Z) (phase 
-1))))
        )
        (begin
                (set! symmetries
                        (list (make mirror-sym (direction X) (phase +1))))
))

(if reso-mode?
        (begin
        )
        (begin  
                (define trans ; transmitted flux
                        (add-flux fcen df nfreq
                                (make flux-region
                                        (center 0 0 (- (* 0.5 sz) dpml 0.5))
                                        (size (* 2 w) (* 2 hw) 0)
                                        (direction Z))))
        )
)


(if reso-mode?
        (begin
                (run-sources+ 400
                        (at-beginning output-epsilon)
                        (after-sources (harminv Hy (vector3 0 0 0) fcen df)))
                (run-until (/ 1 fcen) (at-every (/ 1 fcen 20) output-hfield-y))
        )
        (begin
                (run-sources+ (stop-when-fields-decayed
                50 Hx
                (vector3 0 0 (- (* 0.5 sz) dpml 0.5))
                1e-3)
                        (at-beginning output-epsilon)
                        (during-sources
                                (in-volume (volume (center 0 0 0) (size 0 0 sz))
                                (to-appended "ez-slice" (at-every 0.4 
output-efield-z)))))
        ))
        
(if reso-mode?
        (begin
        )
        (begin  
                (display-fluxes trans) ;print out the flux spectrum
        )
)




___________
Szymon Lis
Photonics Group
Faculty of Microsystem Electronics and Photonics
Wroclaw University of Technology
ul. Janiszewskiego 11/17, 50-372 Wroclaw, POLAND

Tel. +48 (71) 320 3735
Fax. +48 (71) 328 3504


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

Reply via email to