Re: How to define the hexagon structure in triangular lattice?

"Steven G. Johnson" <[email protected]>
Newsgroups gmane.comp.science.photonic-bands
Message-ID <[email protected]>
On Mon, 19 Mar 2007, bigbigfat wrote:
>       I'm trying to calculate the gap map of the hexagon structure in 
> square and triangular lattice.
>       It's OK to define the structure in square lattice by using 
> overlapping of three blocks:
>  (set! geometry (list
>                        (make block (center 0) (material air)(size r c infinity ))
>                        (make block (center 0) (material air)(size r c infinity)(e1 0.5 (/(sqrt 3) -2) 0) (e2 (/(sqrt 3) 2) 0.5 0))
>                        (make block (center 0) (material air)(size r c infinity ) (e1 0.5 (/(sqrt 3) 2) 0 ) (e2 (/(sqrt 3) -2) 0.5 0))))
>
>        But the pattern goes wrong when I use the same overlapping in 
> triangular lattice.What's the mistake did I make? How to define the 
> hexagon structure in a triangular lattice?

Remember that the e1/e2/e3 directions are specified in the lattice basis, 
which changes in a triangular lattice so that the above blocks are no 
longer rectangles.  Instead, I generally do something like:

(define C->L (compose cartesian->lattice vector3))
(define (hexagon r c m)
   (list
    (make block (center c) (material m) (size (* r (sqrt 4/3)) (* 2 r))
          (e1 (C->L 1 0)) (e2 (C->L 0 1)))
    (make block (center c) (material m) (size (* r (sqrt 4/3)) (* 2 r))
          (e2 (C->L (/ (sqrt 3) 2) 0.5)) (e1 (C->L -0.5 (/ (sqrt 3) 2))))
    (make block (center c) (material m) (size (* r (sqrt 4/3)) (* 2 r))
          (e2 (C->L (/ (sqrt 3) 2) -0.5)) (e1 (C->L 0.5 (/ (sqrt 3) 2))))
    ))

where c is the center, m is the material, and r is the radius of the 
inscribed circle.

Steven
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.