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