Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define-param pi 3.14159265)
- (define-param dpml 3.0)
- (define-param incidence-angle 64)
- ; SIMULATION VOLUME
- (define-param len (+ 80 dpml))
- (define-param wid (+ 80 dpml))
- (set! geometry-lattice (make lattice (size len wid no-size)))
- ; SOURCE SETTINGS
- (define-param xpos -5)
- (define-param ypos 50)
- ; PLANE WAVE SETTINGS
- (define-param beam-waist 2)
- (define-param rotation-angle (* (/ incidence-angle 360) 2 pi))
- (define-param source-points 120)
- (define-param source-size (* 4 beam-waist))
- ; SOURCES
- (define-param src_list (list ))
- (do ((r_0 (/ source-size -2) (+ r_0 (/ source-size (- source-points 1)))))
- ((> r_0 (/ source-size 2)))
- (set! src_list (append src_list
- (list (make source
- (src (make continuous-src
- (wavelength 1)
- (width 10)))
- (amplitude (exp (- 0 (/ (* r_0 r_0) (* 2 beam-waist beam-waist)))))
- (component Ez)
- (center (* (+ xpos r_0) (sin rotation-angle)) (* (+ ypos r_0) (cos rotation-angle))))))))
- (set! sources (append src_list))
- ; GEOMETRY
- (set! geometry (list
- (make block (center -20 0) (size 40 infinity)
- (material (make dielectric (index 1.518))))
- (make block (center 20 0) (size 40 infinity)
- (material (make dielectric (index 1.400))))
- (make block (center 25 0) (size 30 infinity)
- (material (make dielectric (index 1.33))))
- ))
- (set! pml-layers (list (make pml (thickness dpml))))
- ; SIMULATION
- (set! resolution 10)
- (use-output-directory)
- (run-until (* 4 len)
- (at-beginning output-epsilon)
- (at-end output-dpwr))
Advertisement
Add Comment
Please, Sign In to add comment