Hello Steven & MPB users,

   I'm trying to simulate the photonic band structure of an FCC lattice with 
random sphere sizes.  I'm working with a supercell of size n (where n is a 
variable) and then I want to fill the cell with spheres on the lattice sites 
with random sizes.  To this end, I have written a do loop to fill in the 
lattice points. However I'm not sure how to append the lists created on my 
loop to return a full list of objects back.  Below is my code: nx ny nx 
denote the 1x1x1 box I'm in, where each box is just the cubic non-primitive 
unit cell of the FCC lattice. In each box I fill in the objects at the four 
basis points: one corner and three faces. I do this for each box in my super 
cell. I'm just not sure how to append the lists I make in my loop to return 
it back to set! geometry.
    Any help would be appreciated.

Thanks,

Ian



; Dielectric dimers in a rotator phase, FCC lattice

(define-param n 2)              ; super cell number of repeat units
(define-param a (sqrt 0.5) )    ; primitive lattice vector magnitude
(define-param r (/ a 2))        ; the radius of rotation

(set! default-material (make dielectric (epsilon (* 3.5 3.5))))

(define (place-particle xx yy zz)
        (make sphere (center xx yy zz) (radius (* 1 r))
        (material (make dielectric (epsilon 1))))
)

(define (fill-lattice)
        (do ((nx 0 (+ nx 1))) ((> nx (- n 1)))
                (do ((ny 0 (+ ny 1))) ((> ny (- n 1)))
                        (do ((nz 0 (+ nz 1))) ((> nz (- n 1)))
                                (list
                                        (place-particle nx ny nz)
                                        (place-particle (+ nx a) (+ ny a) nz)
                                        (place-particle (+ nx a) ny (+ nz a))
                                        (place-particle nx (+ ny a) (+ nz a))
                                )
                        )
                )
        )
)

 (set! geometry-lattice (make lattice
                          (basis-size a a a)
                          (basis1 0 1 1)
                          (basis2 1 0 1)
                          (basis3 1 1 0)
                          (size n n n)
                        )
)


; A super cell lattice of n has n "atoms" per unit cell:
 (set! geometry
        (fill-lattice) ;
)

; Corners of the irreducible Brillouin zone for the fcc lattice,
; in a canonical order:
(set! k-points (interpolate 4 (list
                               (vector3 0 0.5 0.5)            ; X
                               (vector3 0 0.625 0.375)        ; U
                               (vector3 0 0.5 0)              ; L
                               (vector3 0 0 0)                ; Gamma
                               (vector3 0 0.5 0.5)            ; X
                               (vector3 0.25 0.75 0.5)        ; W
                               (vector3 0.375 0.75 0.375))))  ; K

(set-param! resolution 16) ; use a 16x16x16 grid
(set-param! mesh-size 5)
(set-param! num-bands 5)

; run calculation:
(run) 




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

Reply via email to