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