Dear Steven,

       I simulate the field of free space, (meep no-slab?=true slab.ctl >
slab0.out), the clt file is as follows. When I insert the following sentence


        (set! symmetries (list (make mirror-sym (direction X))
                       (make mirror-sym (direction Y) (phase -1))))

The field (about after time step 40) located at the cross of the pml and
periodic boundary become very large and divergence. I have worked it two
days, however, I can't find the reason. Could you help me about it? Thank
you very much!


(define-param n1 2.05)
(define-param eps (* n1 n1))
(define-param n2 1.0)
(define-param eps2 (* n2 n2))
(define-param r 0.2)
(define-param thick 0.4)
(define-param no-slab? false)

(set! geometry-lattice (make lattice (size 1 1 4)));the computional cell
(set! geometry
         (if no-slab?
       (list
          (make block
            (center 0 0 0)
     (size 1 1 4)
     (material (make dielectric (epsilon 1)))))
              (list
                 (make block
                          (center 0 0 0)
                          (size 1 1 thick)
                          (material (make dielectric (epsilon eps))))
          (make cylinder
            (center 0 0 0)
                          (radius r)
                          (height thick)
                          (material (make dielectric (epsilon eps2)))))))

(define-param fcen 0.9) ; pulse center frequency
(define-param df 0.8)  ; pulse width (in frequency)

(set! sources
    (list
     (make source
        (src (make gaussian-src (frequency fcen) (fwidth df)))
         (component Ey)
         (center 0 0 1.25)
  (size 1 1 0))))

(set! symmetries (list (make mirror-sym (direction X))
                       (make mirror-sym (direction Y) (phase -1))))

(set! k-point (vector3 0 0 0))
(set! pml-layers (list (make pml (direction Z) (thickness 0.5))))
(set-param! resolution 32)
(define-param nfreq 1000) ; number of frequencies at which to compute flux

(define trans
         (add-flux fcen df nfreq
            (make flux-region (center 0 0 -1.0) (size 1 1 0) (direction
Z))))

(define refl
         (add-flux fcen df nfreq
            (make flux-region (center 0 0 1.0) (size 1 1 0) (direction Z))))

(if (not no-slab?) (load-minus-flux "refl-flux" refl))

(run-until 400
   (at-beginning output-epsilon)
   (at-every 10 output-efield-y))

(if no-slab? (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

Reply via email to