With the (basis1) and (basis2) commands, you have indicated that
coordinates will use this non-rectangular basis. You then want to
shift the holes in the y direction, which is not parallel to either of
your basis vectors. You have two options, convert the shift for the
holes into your specified basis, or work in a rectangular basis. My
personal feeling is that the rectangular basis is a bit easier to use.
See the revised code below which uses a rectangular basis.
-Mark Patterson
Dept. of Physics
Queen's University at Kingston
(define-param h 0.6) ; the thickness of the slab
(define-param eps 12) ;
(define-param subeps 2.1025) ;
(define-param r 0.3335 ) ; the radius of the holes
(define-param supercell-h 4) ; height of the supercell
(define-param dy (/ 0.65 2))
(define-param supercell-y (+ 10 (* 2 dy))) ; the (odd) number of
lateral supercell periods
(set! geometry-lattice (make lattice (size 1 supercell-y supercell-h)
(basis1 1 0)
(basis2 0 (/ (sqrt 3) 2))))
(set! geometry
(list (make block (material (make dielectric (epsilon subeps)))
(center 0 0 (* 0.25 supercell-h)) (size infinity
infinity (* 0.5 supercell-h)))
(make block (material (make dielectric (epsilon eps)))
(center 0) (size infinity infinity h))))
(set! geometry
(append geometry
(list (make cylinder (material air)
(center 0.5 (+ 1 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0 (+ 2 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0.5 (+ 3 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0 (+ 4 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0.5 (+ 5 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0.5 (- -1 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0 (- -2 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0.5 (- -3 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0 (- -4 dy) 0) (radius r) (height h))
(make cylinder (material air)
(center 0.5 (- -5 dy) 0) (radius r) (height h))
)))
;define the defect of the clad layer(fill in)
; 1st Brillouin zone of a triangular lattice:
(define Gamma (vector3 0 0 0))
;(define K' (lattice->reciprocal (vector3 0.5 0 0))) ; edge of
Brillouin zone.
;(define-param k-interp 8) ; the number of k points to interpolate
; (set! k-points (interpolate k-interp (list Gamma K')))
(set! k-points (list Gamma))
(set-param! resolution (vector3 24 24 24))
; (set-param! mesh-size 7)
; (set-param! num-bands 15)
(set-param! num-bands 1)
; Run even and odd bands, outputting fields only at the K point:
(run-zeven)
On 2008-09-17, at 10:36 , Jin Hou wrote:
Dear Steven and MPB's users,
I would like to calculate the waveguide dispersion of
triangular PCs slab.
The waveguide width is not equal to conventional width of W1
waveguide, and is formed by moving (up and down) the nearest
neighbor air holes around the linear defect (For example,
W=0.65*sqrt3 =0.65*W1). The same question was already asked by Nils
Jensen on 21 Apr 2008 in the mpb-discussion, his mail titled
"Waveguide in 2D-PCs of triangular symmetry". But I did not find the
solution.
I would like to define the structure like the usual W1
waveguide, but with different waveguide width. But when I used the
similar codes like Nils Jensen used, the same problem appeared. The
two nearest neighbor holes are not symmetry by y axis, as the
attached picture showed.
I tried several other ways to define the structure, but the
problem remains. Below is one of the codes, and the attached picture
is the unexpected structure of the result. Other ways have the same
result of structure output in the *.out file.
Is there someone know how to define the structure correctly?
Thanks!
(define-param h 0.6) ; the thickness of the slab
(define-param eps 12) ;
(define-param subeps 2.1025) ;
(define-param r 0.3335 ) ; the radius of the holes
(define-param supercell-h 4) ; height of the supercell
(define-param supercell-y 10.3) ; the (odd) number of lateral
supercell periods
(set! geometry-lattice (make lattice (size 1 supercell-y supercell-h)
(basis1 (/ (sqrt 3) 2) 0.5)
(basis2 (/ (sqrt 3) 2) -0.5)))
(set! geometry
(list (make block (material (make dielectric (epsilon subeps)))
(center 0 0 (* 0.25 supercell-h)) (size infinity
infinity (* 0.5 supercell-h)))
(make block (material (make dielectric (epsilon eps)))
(center 0) (size infinity infinity h))))
(set! geometry
(append geometry
(list (make cylinder (material air)
(center 0 0.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 1.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 2.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 3.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 4.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 -0.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 -1.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 -2.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 -3.65 0) (radius r) (height h))
(make cylinder (material air)
(center 0 -4.65 0) (radius r) (height h))
)))
;define the defect of the clad layer(fill in)
; 1st Brillouin zone of a triangular lattice:
(define Gamma (vector3 0 0 0))
(define K' (lattice->reciprocal (vector3 0.5 0 0))) ; edge of
Brillouin zone.
(define-param k-interp 8) ; the number of k points to interpolate
(set! k-points (interpolate k-interp (list Gamma K')))
(set-param! resolution (vector3 24 24 24))
(set-param! mesh-size 7)
(set-param! num-bands 15)
; Run even and odd bands, outputting fields only at the K point:
(run-zeven)
Best wishes,
Yours,
Jin Hou
Wuhan National Laboratory for Optoelectronics,
College of Optoelectronic Science and Engineering,
Huazhong University of Science & Technology,
Wuhan, 430074, P.R.CHINA
Phone: 86-027-87792195
Web: http://oe.hust.edu.cn/sub_web/zzp/lab_web/Index.html
开心过好每一天!
雅虎邮箱,您的终生邮箱!
<wg.png>_______________________________________________
mpb-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss
_______________________________________________
mpb-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss