/
metal-cavity-ldos.ctl
37 lines (31 loc) · 1.18 KB
/
metal-cavity-ldos.ctl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(set-param! resolution 200)
(define-param sxy 2)
(define-param dpml 1)
(set! sxy (+ sxy (* 2 dpml)))
(set! geometry-lattice (make lattice (size sxy sxy no-size)))
(set! pml-layers (list (make pml (thickness dpml))))
(define-param a 1)
(define-param t 0.1)
(set! geometry (list
(make block (center 0 0) (size (+ a (* 2 t)) (+ a (* 2 t)) infinity) (material metal))
(make block (center 0 0) (size a a infinity) (material air))))
(define-param w 0)
(if (> w 0)
(set! geometry
(append geometry
(list (make block (center (/ a 2) 0) (size (* 2 t) w infinity)
(material air))))))
(define-param fcen (/ (sqrt 0.5) a))
(define-param df 0.2)
(set! sources (list (make source
(src (make gaussian-src (frequency fcen) (fwidth df))) (component Ez) (center 0 0))))
(set! symmetries (list (make mirror-sym (direction Y))))
(define-param Th 500)
(run-sources+ Th (after-sources (harminv Ez (vector3 0) fcen df)))
(define f (harminv-freq-re (car harminv-results)))
(define Q (harminv-Q (car harminv-results)))
(define Vmode (* 0.25 a a))
(print "ldos0:, " (/ Q Vmode (* 2 pi f pi 0.5)))
(reset-meep)
(define-param T (* 2 Q (/ f)))
(run-sources+ T (dft-ldos f 0 1))