Hello, 
  I met a problem during calcluating the transmission spectrum of 3D PC using me
ep.The band gap is about 10.9GHz ~16GHz. When I set fcen (the central frequency
) as 11GHz and 12GHz and set df as 0.1, I can obtain a covergent solution. But w
hen I increase fcen to 13GHz, 14GHz, and 15GHz, I can get convergent results any
 more, until i reduce df to 0.05. When I further increase df higher than 15GHz, 
I can't get convergent results even if I reduce df to 0.00001. I have set two po
ints to monitor the convergent situation. When it is divergent, the temporal pul
se will keep increasing to a very large value.
  who can tell me the reason and explain it to me?
  who can tell me how to resolve this problem?
  And who tell me all the possible reason to result in divergence, because I alw
ays come across divergent situations when doing other calculations and always ha
ve no idea to solve it from where?

the ctl file:
; Some parameters to describe the geometry: 
;(set! eps-averaging? false)

                                   
(define-param eps 9) ; dielectric constant of rods       
(define-param a 1.1);lattice constant, in unit of cm                 
(define-param a1 1); the normalized lattice constant
(define-param w (/ 0.32 a)) ;the width of a rod, in unit of cm, normalized by a 
                                       
(define-param h (/ 0.32 a) ) ;the height of a rod, in unit of cm, normalized by 
a
(define-param nlay 16) ; the layer number in z direction
(define-param nrod 1 ); the rod number in one layer                             
       
                         

; The cell dimensions                                                           
       
(define-param padx 0) ; padding between last hole and PML edge    
(define-param pady 0) ; padding between last hole and PML edge
(define-param padz 2) ; padding between last hole and PML edge               
(define-param dpml 2) ; PML thickness   

(define sx 1 ) ; size of cell in x direction
(define sy 1 ) 
(define sz (+  (* nlay h) (* (+ dpml padz)) ) )

;the cell size
(set! geometry-lattice (make lattice (size sx sy sz)))
;----------------------------------------------------------------------- 
(set! geometry
      (append ; combine lists of objects:                                       

       (list
;-----------
       ;the first layer
        (make block (center 0 (- (* 0.5 a1) (* 0.5 w)) (* -1.5 h))
                    (size infinity w h)
                    (material (make dielectric (epsilon eps)))
        )
       ;the second layer
        (make block (center (+ (* -0.5 a1) (* 0.5 w)) 0 (* -0.5 h))
                    (size w infinity h)
                    (material (make dielectric (epsilon eps)))
        )
       ;the third layer
        (make block (center 0 (* -0.5 w) (* 0.5 h))
                    (size infinity w h)
                    (material (make dielectric (epsilon eps)))
        )
       ;the forth layer
        (make block (center (* 0.5 w) 0 (* 1.5 h))
                    (size w infinity h)
                    (material (make dielectric (epsilon eps)))
        )
;-------------
        )
         
       )
         
)
(set! geometry
      (append
         ;duplicate the bulk crystal rods over supercell:
        (geometric-objects-lattice-duplicates geometry sx sy (* 4 h))
         ;make defects in structure
         (list
;          (make block (material air)
;                      (center 0 (* -0.5 w) (* 0.5 h)); in the third layer
;                      (size infinity w h)
;          )
;-- add air layer in X direction
          (make block (material air)
                      (center 0 0 (+ (/ (+ padz dpml) 2) (* h (/ nlay 2) ))); in
 the third layer
                      (size sx sy (+ dpml padz) )
          )
          (make block (material air)
                      (center 0 0 (- (/ (+ padz dpml) 2)  (* h (/ nlay -2)) ) );
 in the third layer
                      (size sx sy (+ dpml padz)  )
          )
;;--
         )
      ) 
)

;--------------------------------------------------------------------------

(define-param fcen-GHz 15.5) ;
(define-param fcen (/ (* fcen-GHz a) 30)) ;normalized pulse center frequency    
                           
(define-param df 0.00001)    ; pulse width (in frequency)                       
      
(set! sources (list
               (make source
                 (src (make gaussian-src (frequency fcen) (fwidth df)))
                 (component Ey)
                 (center 0 0 (+ (/ sz -2) dpml 0.1))
                 (size sx sy 0))))

;-----------------------------------------------------------------------------
(set! k-point (vector3 0 0 0))
(set! ensure-periodicity true) ;apply periodic boundary condition
;--------------------------------------------------------------------------
(set! pml-layers (list (make pml (direction Z) (thickness dpml))))
(set-param! resolution 16)

(define-param nfreq 100) ; number of frequencies at which to compute flux       
      
(define trans1 ; transmitted flux                                               
 
      (add-flux fcen df nfreq
                
                    (make flux-region
                    (center 0 0 (+ (/ sz -2) dpml 0.3 ))
                     (size sx sy 0)
                    )
      )
)

(define trans2 ; transmitted flux                                     
      (add-flux fcen df nfreq 
                 
                    (make flux-region 
                    (center 0 0 (- (/ sz +2) dpml 0.3))
                     (size sx sy 0) 
                    ) 
      ) 
) 

(define (myoutput)
        (print "eydata-input:,"(meep-time)","
             ; (get-field-point Ey (vector3 0 0 (- (/ sz +2) dpml 0.3 ))
             ; )
              (get-field-point Ey (vector3 0 0 (+ (/ sz -2) dpml 0.3 ))
              )

              "\n"
           )
       (print "eydata-output:,"(meep-time)","
             ; (get-field-point Ey (vector3 0 0 (+ (/ sz -2) dpml 0.3))
             ; )
             (get-field-point Ey (vector3 0 0 (- (/ sz +2) dpml 0.3))
              )
             "\n"
           ) 
)
                

(run-sources+ (stop-when-fields-decayed
                    100
                     Ey 
                  ; (vector3 0 0 (+ (/ sz -2) dpml 0.3 ))
                    (vector3 0 0 (- (/ sz +2) dpml 0.3 ))
                     1e-3
               )
               ;---to output field to judge the pulse
               (to-appended "ey-slice-xy1" 
                 (at-every 4 
                    (in-volume (volume 
                                  (center 0 0 (+ (/ sz -2) dpml 0.3 )) 
                                  (size sx sy 0)
                               )
                     output-efield-z
                    )
                  )
                )
              ;-
              (to-appended "ey-slice-xy2"
                 (at-every 4  
                    (in-volume (volume 
                                  (center 0 0 (- (/ sz +2) dpml 0.3 ))
                                  (size sx sy 0)
                               )
                     output-efield-z
                    )
                  )
                )
              ;-
              (to-appended "ey-slice-yz"
                 (at-every 4  
                    (in-volume (volume 
                                  (center 0 0 0)
                                  (size 0 sy sz)
                               )
                     output-efield-z
                    )
                  )
                )
              ;-
              (to-appended "ey-slice-xz"
                 (at-every 4  
                    (in-volume (volume 
                                  (center 0 0 0)
                                  (size sx 0 sz)
                               )
                     output-efield-z
                    )
                  )
                )
              ;-        
             ;---

(at-beginning output-epsilon)
myoutput
)
(display-fluxes trans1 trans2)


_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to