Hi.
I've been trying to calculate Q factor and mode volume for an H1 resonator
with the holes' epsilon being less than one whilst ignoring absorption.
However, for values of epsilon below a certain level the field seems to
'"explode". The critical level of epsilon seems to depend on resolution, the
higher resolution the higher the level. Changing the source to a
gaussian-type didn't help.
Can anyone suggest a solution or a workaround?
Thanks in advance.
--
Leonid Panfil
------------------
"Le mieux est l'ennemi du bien" - Voltaire
Code used:
(reset-meep)
(define-param diel_hole 1);dielectric constant of the holes
(define-param diel_slab 12);dielectric constant of the bulk
(define-param res 10);resolution pixels per unit of distance
(define-param rad 0.3);radius of the holes
(define-param numlayers 6);number of layers (6)
(define-param fcen_h 0.3);for harminv - bandgap for h=0.5 r=0.3 triangular
hole struct. is between ~0.27 and 0.35 (Chap 4)
(define-param df_h 0.06);for harminv
(define-param sx 17); x-size of the cell
(define-param sy 17); y-size of the cell
(define-param sz 10); z-size of the cell
(define-param slab_h 0.5);thickness of the slab
(define-param maxbands 100)
(define-param runtime 500)
(define-param sourcex 0.137);x coord of the point source
(define-param sourcey -0.09);y coord of the point source
(define-param sourcez 0);z coord of the point source
(define-param dhx 0);harminv displacement from source x-axis
(define-param dhy 0); -"- y-axis
(define-param dhz 0); -"- z-axis
(define ((delta_source) t)
(if (<= t 1)
1
0));delta source: returns 1 if t<=1, else 0
(set! default-material (make dielectric (epsilon diel_slab)));default
material: high dielectric
(set! geometry-lattice (make lattice (size sx sy sz)));lattice sx*sy*sz
(set! geometry
(append;combining list of objects
(geometric-objects-duplicates (vector3 (/ (sqrt 3) 2) 0.5 0 ) (* -1
numlayers) numlayers
(geometric-objects-duplicates (vector3
(/ (sqrt 3) 2) -0.5 0 ) (* -1 numlayers) numlayers (list
(make
cylinder (center 0 0 0)(radius rad)(height infinity)(material (make
dielectric(epsilon diel_hole)))))))));duplicate whithin duplicate to make
holes in the slab
(set! geometry (append geometry (list
(make cylinder (center 0)(radius
rad)(height infinity)(material (make dielectric (epsilon
diel_slab))));defect in the middle
(make block (center ( + (/ sx 4) (* (/
(sqrt 3) 4) numlayers) rad) 0 0)(size ( - (/ sx 2) (* (/ (sqrt 3) 2)
numlayers)) sy infinity)(material (make dielectric (epsilon diel_slab))))
(make block (center ( - (/ sx -4) (* (/
(sqrt 3) 4) numlayers) rad) 0 0)(size ( - (/ sx 2) (* (/ (sqrt 3) 2)
numlayers)) sy infinity)(material (make dielectric (epsilon diel_slab))))
(make block (center 0 0 (/ sz 2)) (size sx sy (- sz
slab_h))(material (make dielectric (epsilon 1))))
(make block (center 0 0 (/ sz -2)) (size sx sy (- sz
slab_h))(material (make dielectric (epsilon 1))))
))) ;removing unwanted holes on the sides and then
removing dielectric material from top and bottom, leaving only the slab
(set! sources (list
(make source
(src (make custom-src (src-func (delta_source ))(start-time
0)(end-time 2)))
(component Ez)
(center sourcex sourcey sourcez)
(size 0 0 0))
));off-center delta point source to excite all modes
(set! pml-layers (list (make pml (thickness 1.0))))
(set! resolution res)
(run-sources+ runtime;run until sources off and "runtime" more
(at-beginning output-epsilon)
(at-every 2 output-dpwr); output the electric energy of the field
(after-sources
(harminv Ex (vector3 (+ sourcex dhx) (+ sourcey dhy) (+ sourcez
dhz)) fcen_h df_h maxbands )
(harminv Ey (vector3 (+ sourcex dhx) (+ sourcey dhy) (+ sourcez
dhz)) fcen_h df_h maxbands )
(harminv Ez (vector3 (+ sourcex dhx) (+ sourcey dhy) (+ sourcez
dhz)) fcen_h df_h maxbands )
(harminv Hx (vector3 (+ sourcex dhx) (+ sourcey dhy) (+ sourcez
dhz)) fcen_h df_h maxbands )
(harminv Hy (vector3 (+ sourcex dhx) (+ sourcey dhy) (+ sourcez
dhz)) fcen_h df_h maxbands )
(harminv Hz (vector3 (+ sourcex dhx) (+ sourcey dhy) (+ sourcez
dhz)) fcen_h df_h maxbands )
(harminv Hz (vector3 (+ sourcex dhx) (+ sourcey dhy) 0.11) fcen_h
df_h maxbands )));measuring the Q at the location of the source, Ex,Ey,Hz
make up TE polarization. the last measurement is to check whether Qz is
higher outside z=0 plane
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss