Dear all Meep users For the past few months I have been trying to find the Q-factor of some structures using harminv, but I have failed to get the desired Q value as mentioned in the respective paper.
One such paper is "Ultrahigh-Q and Low-Mode-Volume Parabolic Radius Modulated Single Photonic Crystal Slot Nanobeam Cavity for High-Sensitivity Refractive Index Sensing". In the paper they have obtained a Q factor of the order of 10^7. However I got the maximum Q factor of the order of 10^5. Can anyone please suggest me any solution if I am following some wrong methodology for finding Q. The methodologies are as follows- I have used the 'eps-averaging false' code to stop sub-pixel averaging, as because my fields get blown out whenever I put the simulation for long run if I don't run the eps code. I am using PML of width 1 unit in all three directions. The resolution is set to 20 and I have used very narrow pulse with the width of pulse in frequency of 0.05. While simulating the above mentioned paper, I have applied symmetry in x and y direction. I have made the program to run as long as 10000 time steps units. I am also attaching the ctl file of the code. The code is bit long but I would me very thankful to you if you could suggest me any anomaly in finding the Q-factor. ; Some parameters to describe the geometry: (define-param eps 12) ; dielectric constant of waveguide (define-param w 1.1627906977) ; width of waveguide (define-param r_center 0.4203935599) ; radius of holes at the center (define-param r_end 0.3631484794) ; radius of holes at the end (define-param h 0.3935599284) ; height of slab (define-param w_slot 0.0894454383) ; width of slot ;(define-param d 1.4) ; defect spacing (ordinary spacing = 1) but in my case no defect hence disabled (define-param N 30) ; number of holes on either side of defect (define-param i-max 20) ; number of holes on either side of tapered region (define-param di 1); change in i (define-param dmirr 1); change in mirr (define-param mirr-max 10) ; number of holes on either side of mirror holes region ; The cell dimensions (define-param sy 6) ; size of cell in y direction (perpendicular to wvg.) (define-param sz 3) ; size of cell in z direction (perpendicular to wvg.) (define-param pad 2) ; padding between last hole and PML edge (define-param dpml 1) ; PML thickness (define sx (* 2 (+ pad dpml N))) ; size of cell in x direction (set! geometry-lattice (make lattice (size sx sy sz))) (set! geometry (append geometry(list (make block (center 0 0 0) (size infinity w h) (material (make dielectric (epsilon eps)))) ))) ; end of nanobeam_silcn (set! geometry (append geometry(list (make block (center 0 0 0) (size (+ (* 2 N) 2) w_slot h) (material air)) ; air slot in the waveguide ))) ; end of slott (let loop ((i 1)) ; tapered region in +ve x direction (if (<= i i-max) (begin (set! geometry (append geometry(list (make cylinder (center (+ 0.5 (* (+ i -1) 1)) 0 0) (radius (+ r_center (/ (* (* (+ i -1) (+ i -1)) (- r_end r_center)) (* (+ i-max -1) (+ i-max -1))))) (height h) (material air)) ))) ; end of taper_pos (loop (+ i 1) ) ) ) ); end of begin if and let (let loop ((i 1)) ; tapered region in -ve x direction (if (<= i i-max) (begin (set! geometry (append geometry(list (make cylinder (center (+ -0.5 (* (+ i -1) -1)) 0 0) (radius (+ r_center (/ (* (* (+ i -1) (+ i -1)) (- r_end r_center)) (* (+ i-max -1) (+ i-max -1))))) (height h) (material air)) ))) ; end of taper_neg (loop (+ i 1) ) ) ) ); end of begin if and let (let loop ((mirr 1)) ; mirror holes in +ve x direction (if (<= mirr mirr-max) (begin (set! geometry (append geometry(list (make cylinder (center (+ i-max mirr -0.5) 0 0) (radius r_end) (height h) (material air)) ))) ; end of mirror_pos (loop (+ mirr 1) ) ) ) ); end of begin if and let (let loop ((mirr 1)) ; mirror holes in -ve x direction (if (<= mirr mirr-max) (begin (set! geometry (append geometry(list (make cylinder (center (- 0.5 i-max mirr) 0 0) (radius r_end) (height h) (material air)) ))); end of mirror_neg (loop (+ mirr 1) ) ) ) ); end of begin if and let (set! pml-layers (list (make pml (thickness dpml)))) (set-param! resolution 20) (define-param fcen 0.371) ; pulse center frequency (define-param df 0.05) ; pulse width (in frequency) ;(define-param nfreq 500) ; number of frequencies at which to compute flux (set! sources (list (make source (src (make gaussian-src (frequency fcen) (fwidth df))) (component Ey) (center 0 0)))) (set! symmetries (list (make mirror-sym (direction Y) (phase -1)) (make mirror-sym (direction X) (phase 1)))) (run-sources+ 1000 (at-beginning output-epsilon) (after-sources (harminv Ey (vector3 0 0) fcen df))) (run-until (/ 1 fcen) (at-every (/ 1 fcen 20) output-efield-y)) Thank you in advance
_______________________________________________ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss