Dear Steven and Mischa,
Thanks for your suggestions, I was able to set up the dielectric function.

However, I was trying to reproduce the result of Maldovan et al. 2002:
http://prola.aps.org/abstract/PRB/v65/i16/e165123
where they calculate the PBG for a single gyroid (I4-1-32) structure with a dielectric contrast of 13 and
dielectric packing fraction 50%

But I am not able to reproduce the results. It is not immediately obvious from my ctl file, where I have made a mistake. any help in debugging will be very much appreciated!

cheers,
Vinod

PS> the dielectric function when visualized using vis5d looks normal. I've used the level set equation from Wohlgemuth et al. 2001 to set up the dielectric density function, specifically Ive used the F(110) structure factor component, which sufficiently approximates the gyroid surface.

PPS> I am also not sure which set of canonical k-points is the most
appropriate for a I4-1-32 structure - is it H P N Gamma or X R M Gamma?






; A single gyroid structure (I4-1-32) of dielectric network in air, on a bcc lattice

(set! geometry-lattice (make lattice
                         (basis-size (sqrt 0.75) (sqrt 0.75) (sqrt 0.75))
                         (basis1 -1 1 1)
                         (basis2 1 -1 1)
                         (basis3 1 1 -1)))

; Corners of the irreducible Brillouin zone for the bcc lattice,
; in a canonical order:
(set! k-points (interpolate 4 (list

;                              (vector3 0.25 0.25 0)          ; N
;                              (vector3 0.25 0.25 0.25)       ; P
;                              (vector3 0 0 0)                ; Gamma
;                              (vector3 0.25 0.25 0)          ; N
;                              (vector3 0 0.5 0)                  ; H
;                              (vector3 0.25 0.25 0.25))))    ; P

                               (vector3 0 0 0)                    ; Gamma
                               (vector3 0.5 0.5 0.5)          ; R
                               (vector3 0 0.5 0.5)                    ; M
                               (vector3 0 0 0)                    ; Gamma
                               (vector3 0 0 0.5)                  ; X
                               (vector3 0 0.5 0.5))))         ; M


; define a couple of parameters (which we can set from the command-line)
(define-param epsc 13.0) ; the dielectric
(define-param isoval 0)   ; isovalue to choose packing fraction
; 0 - 50%, 0.3 - 40%, 0.6 - 30&, 1 - 17%, 0.765 - 25%

(define pi (* 4 (atan 1))) ; 3.14159...


; The Epsilon function that returns the dielectric constant as a function of 
position
; returns epsc if the value of the level-set function V > isoval, or else 
returns 1
;V = sin(2*pi*x).*cos(2*pi*y)+sin(2*pi*y).*cos(2*pi*z)+cos(2*pi*x).*sin(2*pi*z)

(define (eps-func p)
   (if (> (+ (+ (* (sin (* 2 pi (vector3-x p))) (cos (* 2 pi (vector3-y p)))) 
(* (sin (* 2 pi (vector3-y p))) (cos (* 2 pi (vector3-z p))))) (* (sin (* 2 pi 
(vector3-z p))) (cos (* 2 pi (vector3-x p))))) isoval)
                (make dielectric
                        (epsilon epsc))
                (make dielectric
                        (epsilon 1))))

; We'll just make it the default material, so that it goes everywhere.
(set! default-material (make material-function (material-func eps-func)))


(set-param! resolution 16)
(set-param! mesh-size 16)
(set-param! num-bands 8)

(run)


On Fri, 24 Apr 2009, Steven G. Johnson wrote:

On Apr 24, 2009, at 11:43 AM, Vinod Saranathan wrote:
I am trying to model the photonic bandgap of a gyroid (Ia3d) structure using MPB. I was wondering if this was possible using MPB given the surface is continuous and not discrete and would appreciwate any help in setting up the unit cell.

Or is MEEP more suited to this. I have written a code that can import any arbitrary geometry (2D/3D) into MEEP.

MPB is more suited to bandgap calculations in general (with a few exceptions, like metallic structures).

MPB can import any shape in a variety of ways. It can import the dielectric function from an arbitrary HDF5 file (see the epsilon-file feature). You can also specify your own dielectric function by writing an arbitrary function in Scheme (see the material-function type).

Steven


"Krieg ist immer der falsche Weg."

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

Reply via email to