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

Reply via email to