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

Reply via email to