Post date: May 10, 2014 9:32:06 AM
thirdorder.py v0.9.6 has been released. The changes are the result of profiling and optimization work, and this release can be up to two orders of magnitude faster for large cutoffs or complex unit cells. Specifically, we have switched from Gaussian elimination to dense QR factorization or sparse least-squares in the reconstruction step, drastically improving speed and slashing memory usage. The other major optimization comes from the calculation of distances, which is only performed once per run and uses scipy methods instead of the former naive Python implementation. We also use lxml.etree as our XML parser when available because of its superior performance compared to the standard library cElementTree.
There are also other minor changes such as a new SYMPREC variable in the header of thirdorder.py that allows for easier tuning of the tolerance of the symmetry search.
We have tested this new release pretty thoroughly, but all these changes mean that some bug may have slipped our attention. Users who find any regression with respect to earlier versions are encouraged to report them.