Hello,
I’m running into a strange problem! I hope someone can help.
I have defined a chirped pulse in MEEP, and propagated it down a vacuum. On
first glance, it overlays very well on the theoretical pulse (I adjusted the
theory’s amplitude to match MEEPs, since I didn’t think amplitude mattered in
this simulation). However, when I started to do some phase manipulations on
more complex simulations, I could not get the expected effects.
It turns out, my simulation pulse is slightly off-set from the theoretical
description of it (about ~.2 femtoseconds in some places). When I take the
difference of the MEEP pulse and the theoretical one, I get a smaller pulse
with its own chirp, which shouldn’t happen in a vacuum over such a small
distance.
Am I adding something in the MEEP code I’m not supposed to? How can I make the
output from MEEP match theory?
Thank you for your time,
Priscilla
I compare the output of meep to this theoretical function
e^(-(time-t0)^2/(2*(1/width)^2)-1j*freq*2*np.pi*(time-t0)-1j*b*2*np.pi*(time-t0)^2)
(define-param sz 10) ; size of cell in z direction, 1 = 10 nm
(define-param dpml 2) ; PML layer thickness
(define-param t0 9000)
(define-param b 5e-7)
(define (my-func meep-time)
; gaussian shape
(* (exp (/ (* -1 (- meep-time t0) (- meep-time t0)) (* 2 (/ 1 df) (/ 1 df))))
; carrier freq
(exp (* 0+1i -1 fcen 2 pi (- meep-time t0)))
; phase
(exp (* 0+1i -1 b 2 pi (- meep-time t0) (- meep-time t0)))
)
)
(define-param fcen .0056219359395) ; center frequency of source
(define-param df 0.000555420651148) ; frequency width of source
(set! force-complex-fields? true) ; add complex output to field
(set-param! dimensions 1)
(set! geometry-lattice (make lattice (size no-size no-size sz))) ; create 1D
system
(set! pml-layers (list (make pml (thickness dpml)))) ; make the pml for +/- z
boundaries
(set-param! resolution 80) ;(usually 80) dx = 10 nm/#
; generate the TM ultrashort pulse
(set! sources (list
(make source
(src (make custom-src (src-func my-func) (end-time 12000)))
(component Hy) ; needed for TM
(center 0 0 (+ (* -0.5 sz) dpml)) ; located at - end of
waveguide
(amplitude 1))))
; call to save the field data, we are saving Ex here
(define print-field (lambda()
(print " \n ex:, " (meep-time) ", " (get-field-point Ex (vector3 0 0 (- (*
0.5 sz) dpml))) "\n")))
; run sources until they've finished, add additional steps, print field every #
time steps
(run-sources+ 24000
(at-every .2 print-field))_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss