Hi everyone,

I'm trying to run a simple 3D script in which I want to simulate the 
coupling of a Gaussian beam (under an angle) to a waveguide using a 
grating coupler. However, when I run the simulation I don't see any 
fields in my .h5 files. Only at the end (20 last time steps) I see some 
strange artifacts in the grating that obviously shouldn't be there. Is 
there anybody who can see the problem in my script? Thanks,

Elewout

(use-output-directory)
(reset-meep)

; Size parameters
(define-param d_Air 7.0)
(define-param d_Guide 0.22)
(define-param d_Silica 2.0)
(define-param d_Substr (- d_Air d_Silica) )
(define-param d_Etch 0.07)
(define-param sx 16.6)
(define-param sy (+ d_Air d_Guide d_Silica d_Substr))
(define-param airgap 4.0)
(define-param sz (+ airgap 12.0))

; Refractive indices
(define-param eps_Si (* 3.476 3.476))
(define-param eps_Air (* 1.0 1.0))
(define-param eps_Silica (* 1.444 1.444))

; Source
(define-param fcen (/ 1 1.55))
(define-param df 0.15)
(define-param nfreq 100)
(define-param theta 10.0)
(define-param xsigma 5.2)
(define-param zsigma 5.2)
(define kx (* 2 pi (sin (deg->rad theta)) fcen))
(define (my-source p)
  (let ((x (vector3-x p))
        (z (vector3-z p)))
    (exp (- (* 0+1i kx x) (* 1.0 (+ (sqr (/ x xsigma))
                                    (sqr (/ z zsigma))))))))
(define-param distance_source 2.0)

(define-param dpml 0.4)

; Define device
(set! geometry-lattice (make lattice (size sx sy sz)))
(set! geometry
      (append
       (list
             (make block (center 0 0 0) (size sx sy sz)
                   (material (make dielectric (epsilon eps_Air))))

             (make block (center 0 (- (/ sy 2.0) (/ d_Substr 2.0)) 0) 
(size sx d_Substr (- sz airgap))
                   (material (make dielectric (epsilon eps_Si))))

             (make block (center 0 (- (/ sy 2.0) d_Substr (/ d_Silica 
2.0) ) 0) (size sx d_Silica (- sz airgap))
                   (material (make dielectric (epsilon eps_Silica))))

             (make block (center 0 (- (/ sy 2.0) d_Substr d_Silica (/ 
d_Guide 2.0) ) 0) (size sx d_Guide (- sz airgap))
                   (material (make dielectric (epsilon eps_Si))))

(make block (center -6.1425 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -5.5125 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -4.8825 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -4.2525 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -3.6225 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -2.9925 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -2.3625 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -1.7325 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -1.1025 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center -0.4725 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 0.1575 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 0.7875 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 1.4175 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 2.0475 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 2.6775 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 3.3075 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 3.9375 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 4.5675 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 5.1975 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
(make block (center 5.8275 (- (/ sy 2.0) d_Substr d_Silica (- d_Guide 
d_Etch) (/ d_Etch 2.0) ) 0) (size 0.315 d_Etch (- sz airgap)) (material 
(make dielectric (epsilon eps_Air))))
        )
))

; PML Layers
(set! pml-layers (list (make pml (direction X) (thickness dpml)) (make 
pml (direction Y) (thickness dpml)) (make pml (direction Z) (thickness 
dpml)) ))

; Resolution
(set! resolution 20)

; Source
(set! sources (list
               (make source
                 (src (make continuous-src
                        (frequency fcen)))
                 (component Ez)
                 (center 0 (- (/ sy 2.0) d_Substr d_Silica d_Guide 
distance_source) 0) (size sx 0 sz) (amp-func my-source))))

; Symmetry
(set! symmetries (list (make mirror-sym (direction Z) (phase -1))))

(run-until 100
(at-beginning (in-volume (volume (center 0 (- (/ sy 2.0) d_Substr 
d_Silica (- d_Guide d_Etch) (/ d_Etch 2.0) ) 0) (size sx 0 sz)) 
output-epsilon))
(to-appended "top" (at-every 2.0 (in-volume (volume (center 0 (- (/ sy 
2.0) d_Substr d_Silica (- d_Guide d_Etch) (/ d_Etch 2.0) ) 0) (size sx 0 
sz)) output-efield-z)))
(to-appended "cross" (at-every 2.0 (in-volume (volume (center 0 0 0) 
(size sx sy 0)) output-efield-z))))





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

Reply via email to