Meep does not support non-orthogonal unit cells. You have to use a supercell to deal with a triangular/hexagonal lattice. (See previous postings on the mailing list.)

On Fri, 16 Jun 2006, Huang wrote:

Hi all,
I used MEEP to compute band structure of hexagonal lattice 2d  photonic
crystal. I found that MEEP gave a band structure  a little differnt from
what MPB gave.
For TM mode, a horizental band near 0.22 is given by MEEP but not by MPB.
Have I used a wrong CTL file?
Many thanks.

freqs-r:
freqs:, 1, 0.1, 0, 0, 0.0524280079834163, 0.228241093932634,
0.369612963508534, 0.442734084917463, 0.453681025014367, 0.458675747905608,
0.571363472791845, ...

~~~~~~~~~~~~~~~
freqs:, 2, 0.18, 0.0577350269189626, 0.0, 0.0977142522616029,
0.228654228706927, 0.379136944964942, 0.430917311661102, 0.438038396781759,
0.456872835350408, ...

~~~~~~~~~~~~~~
freqs:, 3, 0.26, 0.115470053837925, 0.0, 0.1431526207569, 0.226661878994617,
0.387538887893898, 0.414827709924419, 0.425511434221625, 0.454366916400444,
...

~~~~~~~~~~~~~~~

my ctl file:
(define-param a 1)
(define-param eps 13.022)
(define-param r (* 0.25 a))
(define-param super 1)
;The cell dimensions
(set! geometry-lattice (make lattice (size (* (/ a 1) super) (* (* a (sqrt
3)) super) no-size)))
;(set! geometry-lattice (make lattice (size a a no-size)))
(set! geometry
 (append
 (geometric-objects-lattice-duplicates
 (list
 (make cylinder (center 0  0) (radius r) (height infinity) (material (make
dielectric (epsilon eps)) ))
 (make cylinder (center (/ a 2) (* (/ (sqrt 3) 2) a)) (radius r) (height
infinity) (material (make dielectric (epsilon eps))))
 (make cylinder (center (/ a 2) (* (/ (sqrt 3) -2) a)) (radius r) (height
infinity) (material (make dielectric (epsilon eps))))
 (make cylinder (center (/ a -2) (* (/ (sqrt 3) 2) a)) (radius r) (height
infinity) (material (make dielectric (epsilon eps))))
 (make cylinder (center (/ a -2) (* (/ (sqrt 3) -2) a)) (radius r) (height
infinity) (material (make dielectric (epsilon eps))))
)
a (* a (sqrt 3))
)))

;(set! pml-layers (list (make pml (direction Z) (thickness dpml))))
(set-param! resolution 26)

(define-param fcen 0.4); pulse center frequency
(define-param df 0.8); pulse freq. width:large df=shot impulse

(set! sources  (list
  (make source
   (src (make gaussian-src (frequency fcen) (fwidth df)))
   (component Ez) (center 0.1234 0.1234 0))))

;(set! symmetries (list (make mirror-sym (direction Z) (phase 1))))

(define-param kx false); if true, du run at specified kx and get fields
(define-param k-interp 4)

(if kx
(begin
 (set! k-point (vector3 0.25))
 (run-sources+  300 (at-beginning output-epsilon)
   (after-sources (harminv Ez (vector3 0.1234 0.1234) fcen df)))
 (run-until (/ 1 fcen) (at-every (/ 1 fcen 20) output-hfield-z)))
(run-k-points 1000 (interpolate k-interp (list (vector3 0.1) (vector3 0.5
(/ (sqrt 3) 6) 0) (vector3 0.5) (vector3 0.1)))))





_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss


_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to