There are a couple of suggestions that were made some time ago on the
list that have not been incorporated into mpb 1.4.2. I think that one of
them might count as a bug (though it may not affect many people)...the
other I'm not sure about. Is there a list of known bugs in 1.4.2? (Are
there known bugs in 1.4.2?) I'd like to know what the consensus (or
expert opinion, rather) on these issues is, in case I'm making a mistake.
Admittedly, the "issues" are pretty small.
First, I'm pretty sure there's a bug in the "first-brillouin-zone"
procedure. It was described in the mpb users list,
ab-initio.mit.edu/cgi-bin/mailman/private/mpb-discuss/2004-April/000007.html
(I can't see this link any more).
Basically, the procedure translates a vector by reciprocal lattice basis
vectors and takes the shortest result, then repeats until it finds the
shortest vector that is equal to the original vector up to a reciprocal
lattice vector. The problem is that if b1 and b2 are reciprocal lattice
basis vectors, k + b1 and k + b2 may be longer than k, while k+b1+b2 may
be shorter. The fix is simple: in mpb-ctl/mpb.scm, change the "try-all"
function so that it tries diagonals too: b1, b2, b3, (which it does
already), b1+b2, b1-b2, ... , b1 - b2 + b3, b1 + b2 - b3 (13 in all).
Second, someone suggested a slight change to the averaging of the
dielectric over a cell. The claim was that, e.g., with mesh-size 4, mpb
samples points within the interval -1/2 to 1/2 at locations
-3/6 -1/6 1/6 3/6, whereas with this change, it samples points at
-3/8 -1/8 1/8 3/8.
ab-initio.mit.edu/cgi-bin/mailman/private/mpb-discuss/2004-July/000066.html
(again, I can't see this link anymore)
This seems reasonable to me, since the points would be equally spaced
over the whole lattice.
I'll offer another test, on a cubic lattice of sapphire spheres (rotated
so that the dielectric tensor is not diagonal):
Here are the first 6 band frequencies with grids of N x N x N for
a k vector of (0.1,0.2,0.3) (times 2pi), with mesh-size 7.
N freq (c/a) of first 6 modes using mpb 1.4.2
16, 0.260688, 0.269213, 0.391221, 0.413273, 0.424603, 0.500248
32, 0.260662, 0.269210, 0.389662, 0.411626, 0.422824, 0.498832
64, 0.261040, 0.269523, 0.389486, 0.411522, 0.422587, 0.498649
128, 0.261228, 0.269676, 0.389437, 0.411513, 0.422524, 0.498642
N freq (c/a) of first 6 modes using mpb 1.4.2 + above change
16, 0.261050, 0.269517, 0.390861, 0.412963, 0.424180, 0.500194
32, 0.261153, 0.269624, 0.389750, 0.411814, 0.422887, 0.499032
64, 0.261253, 0.269703, 0.389537, 0.411612, 0.422630, 0.498773
128, 0.261343, 0.269774, 0.389479, 0.411576, 0.422563, 0.498718
It doesn't seem to make much difference (and I think that higher
mesh-sizes will reduce the difference). However, it's interesting
to look at the Richardson extrapolation of the frequency (assuming
O(dx^2) error in frequency).
I'll just show the frequencies extrapolated from N=8 and N=16:
mpb 1.4.2:, 0.260653, 0.269209, 0.389142, 0.411077, 0.422231, 0.498360
w/ change:, 0.261356, 0.269815, 0.389583, 0.411554, 0.422573, 0.498692
and those extroplated from N=64 and N=128:
mpb 1.4.2:, 0.261291, 0.269727, 0.389421, 0.411510, 0.422503, 0.498640
w/ change:, 0.261373, 0.269798, 0.389460, 0.411564, 0.422541, 0.498700
It seems to me that this change is beneficial.
Thanks,
Greg.
_______________________________________________
mpb-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss