Hi all,

I recently tried the coordinate transformation trick to try to fit more grid 
points in small features of my structures, and the resulting transmission seems 
to have reflections and pre-pulses that did not appear in the untransformed 
simulations. I did adjust the courant factor for to accommodate the smaller 
indexes of refraction. My code is below if you have any suggestions on what I 
should change.


(reset-meep)

(define Cu (make medium (epsilon-diag (vector3 -676.8 -676.8 -270720)) (mu-diag 
(vector3 0.05 0.05 20))(D-conductivity-diag (vector3 201.0995 201.0995 
80439.8))))

(define-param lattice-size 80) ; size of x - y square of computational space

(define-param lattice-length 25000) ; length of computational space

(define-param pml-thickness 1600) ; thickness of pml layer

(define-param substrate-index 3.42) ; refractive index of substrate

(define-param fcen 0.00833) ; center wavelength of incident pulse

(define-param df 0.01666) ; parameter related to the spectral width of the pulse

(define-param t 4) ; metal depth (z dir)

(define Ar (make medium (epsilon-diag (vector3 0.05 0.05 20)) (mu-diag (vector3 
0.05 0.05 20))))

(define Si (make medium (epsilon-diag (vector3 0.58482 0.58482 233.928)) 
(mu-diag (vector3 0.05 0.05 20))))

(define-param l 60) ; side-length

(define-param w 5) ; microsrtip width
(define-param d 0.3) ; dielectric thickness

(set! resolution 0.5)

(set! Courant 0.02886)

(set! eps-averaging? false)

(set! geometry-lattice (make lattice (size lattice-size lattice-size 
lattice-length)))

(set! geometry
    (list
        (make block
            (center 0 0 0)
            (size infinity infinity infinity)
            (material Ar)
        )
        (make block
            (center 0 0 (* lattice-length .75))
            (size lattice-size lattice-size (/ lattice-length 2))
            (material Si)
        )
        (make block
            (center 0 0 0)
            (size lattice-size lattice-size t)
            (material Ar)
        )
        (make block
            (center 0 0 0)
            (size w l t)
            (material Cu)
        )
        (make block
            (center 0 0 0)
            (size l w t)
            (material Cu)
        )
        (make block
            (center (/ l 4) (/ (- l w) 2) 0)
            (size (/ l 2) w t)
            (material Cu)
        )
        (make block
            (center (/ (- l w) 2) (/ l -4) 0)
            (size w (/ l 2) t)
            (material Cu)
        )
        (make block
            (center (/ l -4) (/ (- w l) 2) 0)
            (size (/ l 2) w t)
            (material Cu)
        )
        (make block
            (center (/ (- w l) 2) (/ l 4) 0)
            (size w (/ l 2) t)
            (material Cu)
        )
    )
)

(set! k-point (vector3 0 0 0)); enable periodic boundary condition

(set! pml-layers  (list (make pml (thickness 1600) (direction Z)))); set pml

(set! sources (list
            (make source
                (src(make gaussian-src (frequency fcen) (fwidth df)))
                (component Ex)
                (center 0 0 (- (- (/ lattice-length 2) pml-thickness .5)))
                (size lattice-size lattice-size 0)
            )
        )
)


;(run-sources+ (stop-when-fields-decayed 10 Ey (vector3 0 0 -2) 1e-4)
(run-until 8000

    (to-appended "trangc1layer"
       (in-volume (volume (center 0 0  (- (/ lattice-length 2) pml-thickness 
.5)) (size 0 0 0)) output-efield-x))
    (at-beginning output-epsilon))


(reset-meep)

(define Cu (make medium (epsilon -1439.8) (D-conductivity (/ (* 2 pi 0.15 
1066.7) 1))))

(define-param lattice-size 80) ; size of x - y square of computational space

(define-param lattice-length 25000) ; length of computational space

(define-param pml-thickness 1600) ; thickness of pml layer

(define-param substrate-index 3.42) ; refractive index of substrate

(define-param fcen 0.00833) ; center wavelength of incident pulse

(define-param df 0.01666) ; parameter related to the spectral width of the pulse

(define-param t 4) ; metal depth (z dir)

(define-param l 60) ; side-length

(define-param w 5) ; microsrtip width

(define-param g 0.05) ; gap-length

(define-param Ar (make medium (epsilon-diag (vector3 0.05 0.05 20)) (mu-diag 
(vector3 0.05 0.05 20))))

(define-param Si (make medium (epsilon-diag (vector3 0.58482 0.58482 233.928)) 
(mu-diag (vector3 0.05 0.05 20))))

(set! resolution 0.2)

(set! Courant 0.02886)

(set! eps-averaging? false)

(set! geometry-lattice (make lattice (size lattice-size lattice-size 
lattice-length)))

(set! geometry
    (list
        (make block
            (center 0 0 0)
            (size lattice-size lattice-size lattice-length)
            (material Ar)
        )
        (make block
            (center 0 0 (* lattice-length .75)) (size lattice-size lattice-size 
(/ lattice-length 2))
            (material Si)
        )
        (make block
            (center 0 0 0)
            (size lattice-size lattice-size t)
            (material Ar)
        )
    )
)

(set! k-point (vector3 0 0 0)); enable periodic boundary condition

(set! pml-layers  (list (make pml (thickness 1600) (direction Z)))); set pml

(set! sources (list
            (make source
                (src(make gaussian-src (frequency fcen) (fwidth df)))
                (component Ex)
                (center 0 0 (- (- (/ lattice-length 2) pml-thickness .5)))
                (size lattice-size lattice-size 0)
            )
        )
)


;(run-sources+ (stop-when-fields-decayed 10 Ey (vector3 0 0 -2) 1e-4)
(run-until 8000
    (at-beginning output-epsilon)

    (to-appended "refgc1layer"
        (in-volume (volume (center 0 0  (- (/ lattice-length 2) pml-thickness 
.5)) (size 0 0 0)) output-efield-x))


    )

_______________________________________________
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