On Jun 15, 2011, at 5:03 AM, [email protected] wrote:
Thank you very much for your reply.
I still dont know why i cant get the output if i insist on using the
output command:
"(run-te (output-at-kpoint (vector3 0.1 0 0)
fix-hfield-phase output-hfield-z))"
but i found a solution for the problem by using (list-ref k-points 1)
instead of (vector3 0.1 0 0), namly:
"(run-te (output-at-kpoint (list-ref k-points 1)
fix-hfield-phase output-hfield-z))"
it confused me very much.
Oh, I know what happened.
The problem is rounding errors. When you create the k-point list with
"interpolate", the point (0.1,0,0) is generated with a bit of rounding
error. When you enter (0.1,0,0) manually there is also a rounding
(since 0.1 is not exactly representable in binary floating point), but
it is a different one, so "0.1" in the two cases differs slightly.
On my computer, it worked because I have updated my version of MPB to
use "vector3-close?" in output-at-kpoint instead of "vector3=", so my
version allows the vectors to differ slightly by rounding errors.
I should probably try to release a new version of MPB this summer; a
bunch of little improvements have piled up since the last release.
Steven
_______________________________________________
mpb-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss