Skip to content

v0.1.3 - Further optimisation and testing

Pre-release
Pre-release
Compare
Choose a tag to compare
@Baharis Baharis released this 22 Jan 15:01
· 432 commits to master since this release
22c812f

This update focuses on further optimisation and quality-of-life changes, especially for development. HklFrame and its parent object BaseFrame underwent some minor restructuring. In particular, overall structure of BaseFrame was preserved, with additional matrices A and G added. HklFrame had its dac method split into two: dac_trim is now responsible for removing dac-unavailable reflections and returns a HklFrame, whereas dacs_count only counts unique reflections for a list of vectors. As a result, the second method is visibly faster, since now basically all its operations are performed based on large matrix multiplication in numpy. Since the matrices might be sometimes very large, an internal approximate memory limit of hikari.MEMORY_SIZE was set to 500MiB. These changes are especially prominent for violin plots, whose script was until now embarrassingly slow.

  • highest quality potency map, Pnma, 8000 ų cell using MoKα to 0.83 Å: 124 seconds → 44 seconds;
  • default violin plot for all Laue Classes using MoKα to 0.83 Å: 262 seconds → 65 seconds

All library resources were organised in dedicated resources folder and can be imported from therein. The structure was planned so that it should work on all types of architecture. Large files are passed around as txt files, dictionaries, etc. depending on context.

Among other minor changes:

  • Selected hkl and potency scripts have been reorganised and simplified.
  • Rotation matrices were coded in hikari.utility.math_tools based on Rogriguez-Euler formula.
  • Scripts now accept space group names and numbers instead of instances of hikari.symmetry.group. Now one does not need to import them for each individual execution of script.
  • hikari.symmetry's Group and SymmOp were given appropriate str and repr methods.
  • Fibonacci algorithm for point distribution was optimised
  • Docstrings were abbreviated or made more precise.

What's Changed - Auto-generated release notes

Full Changelog: v0.1.2...v0.1.3