File: wvg_src.ctl

package info (click to toggle)
meep-openmpi 1.25.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 64,556 kB
  • sloc: cpp: 32,214; python: 27,958; lisp: 1,225; makefile: 505; sh: 249; ansic: 131; javascript: 5
file content (38 lines) | stat: -rw-r--r-- 1,370 bytes parent folder | download | duplicates (13)
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
38
; Example file illustrating an eigenmode source, generating a waveguide mode
; (requires recent MPB version to be installed before Meep is compiled)

(set! geometry-lattice (make lattice (size 16 8 no-size)))

; an asymmetrical dielectric waveguide:
(set! geometry (list
                (make block (center 0 0) (size infinity 1 infinity)
                      (material (make dielectric (epsilon 12))))
		(make block (center 0 0.3) (size infinity 0.1 infinity)
		      (material air))))

; create a transparent source that excites a right-going waveguide mode
(set! sources (list
               (make eigenmode-source
                 (src (make continuous-src (frequency 0.15)))
		 (size 0 6 0)
                 (center -5 0)
		 (component ALL-COMPONENTS)
		 (eig-parity TM)
		 )))
(set! pml-layers (list (make pml (thickness 1.0))))

(set-param! force-complex-fields? true) ; so we can get time-average flux

(set-param! resolution 10)

(run-until 200
           (at-beginning output-epsilon)
	   (at-end (output-png+h5 Ez "-a yarg -A $EPS -S3 -Zc dkbluered")))

(print "left-going flux = " ; (averaged over y region of width 1.8)
       (/ (flux-in-box X (volume (center -6 0) (size 1.8 6 0))) -1.8)
       "\n")

(print "right-going flux = " ; (averaged over y region of width 1.8)
       (/ (flux-in-box X (volume (center +6 0) (size 1.8 6 0))) +1.8)
       "\n")