Hi Steve and Meep users:
I have one question regarding of the unit for running nanoparticle
structure.
Since the object and even smallest dimension is down to tens nm so the
resolution is 2~4nm for typical case. But used wavelength ranges from
400nm~1300nm. Under this condition, what unit is appropriate from the purpose
for getting program efficiency? 0.1um or just 2nm?
Because I found out if I use the former in the calculation of
transmission, then meep would show the decay of field after so many steps
comparing to the later that I just aborted to keep running since I guess it
would run for a long time. But one time one meep user suggested me using 1um as
unit. But actually, the result was not consistent with that using 1nm. So I am
wondering if there is hint on selecting unit in running nanoparticle.
One ctl file is as follows. I didn't put nanostructure but just substrate.
But that's just my computation cell.
Thanks in advance
Cheers
Adrian
%%%%%%%%%%%%%%%%%%%%%%%%5
;(define-param unit 100nm)
(define lam 12.85)
(define lam_s 12.60)
(define fe (/ 1 lam_s))
(define lam_e 13.10)
(define fs (/ 1 lam_e))
(define df (- fe fs))
(define fcen (/ 1 lam))
(define unit 1)
(define nfreq 250)
; Drude model of Au
(define-param wp_au 0.67) ; resonant plasma frequency
(define-param gama_au 6.85e-3) ; gamma of Gold
(define-param e_au 9.84) ; epsilon of Gold 9.84
; Geometry
(define-param L 1.22 ) ; length of triangle
(define-param t_m 0.24 ) ; thickness of metal
(define-param t_ito 0.52 ) ; thickness of ito
(define-param t_silica 1 ) ; thickness of silica
(define-param g 0.16) ; gap between bowtie antenna
(define-param ang (/ (* 60 pi) 180)) ; angle of triangle
(define-param r 0.12) ; curvature of apex
(define-param dpmlz 0.64) ; thickness of PML in z
(define-param dpmlxy 0.25 ) ; thickness of PML in xy
; the distance between object and PML
(define-param padx 2.00) ; to fit the length equal to 800nm in the x direction
(define-param pady 2.00) ; to fit the length equal to 800nm in the y direction
(define-param padz 1.28) ; to fit the length equal to 176nm in the z direction
; lattice size
(define-param sy (+ (* L (sin (/ ang 2)) 2) pady pady) ) ; (+ (* L (sin (/ ang
2)) 2) padx padx)
(define-param sx (+ (* L (cos (/ ang 2)) 2) g padx padx) ) ;(+ (* L (cos (/ ang
2)) 2) g pady pady)
(define-param sz (+ t_m t_ito t_silica padz )) ;
(set! geometry-lattice (make lattice (size sx sy sz)))
(define-param src_x (+ (* L (cos (/ ang 2)) 2) g ) ) ;
(define-param src_y (* L (sin (/ ang 2)) 2) ) ;
(define-param M 2); ; the number of trianular
(define-param N 38); ; the number of block assembling triangular
(define-param dx (/ (* L (cos (/ ang 2))) N)); the width of each block
(define-param dy (/ (* (- L (* r (cos (/ ang 2 )))) (sin (/ ang 2))) N)); the
increment of each block in y direction
(set-param! resolution 50)
(set! eps-averaging? false)
(define Au
(make dielectric (epsilon e_au)
(polarizations
(make polarizability
(omega 1e-20) (gamma gama_au) (delta-epsilon (* wp_au wp_au
1e+20 1e+20))))))
(define ito (make dielectric (epsilon 3.8025)))
(define silica (make dielectric (epsilon 2.1609)))
(set! pml-layers (list (make pml (thickness dpmlz) (direction Z))))
(set! k-point (vector3 0 0 0))
(set! geometry
(list
(make block (material silica) (center 0 0 (+ t_ito (* t_silica
0.5)) ) (size sx sy t_silica))
(make block (material ito) (center 0 0 (* t_ito 0.5) ) (size sx
sy t_ito))
))
(define-param kdir (vector3 0 0 -1)) ; direction of k (length is irrelevant)
(define k (vector3-scale (* 2 pi fcen 2.1609)
(unit-vector3 kdir))) ; k with correct length
(define ((pw-amp k x0) x)
(exp (* 0+1i (vector3-dot k (vector3+ x x0)))))
(set! sources
(list
(make source
(src (make gaussian-src (frequency fcen) (fwidth df) (cutoff 5.424)))
(component Ex) (center 0 0 (+ t_ito (* (- t_silica dpmlz) 0.9))) (size
src_x src_y 0 )
(amp-func (pw-amp k (vector3 0 0 (+ t_ito (* (- t_silica dpmlz) 0.9))))))
))
; use plane wave, so disable mirror
;(set! symmetries (list (make mirror-sym (direction Y) (phase 1)) ))
;(make mirror-sym (direction X) (phase -1))
(define trans ; transmitted flux
(add-flux fcen df nfreq
(make flux-region
(center 0 0 (- (* -1 t_m) 0.10)) (direction Z) (size sx sy
0))))
(run-sources+ (stop-when-fields-decayed
50 Ex
(vector3 0 0 (- (* -1 t_m) 0.10) )
1e-2)
;(at-end output-epsilon)
)
(display-fluxes trans)
___________________________________________________________________
體驗全新Yahoo!奇摩電子信箱2.0 - 馬上體驗!_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss