v0.1.3 - Further optimisation and testing
Pre-releaseThis 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
'sGroup
andSymmOp
were given appropriatestr
andrepr
methods.- Fibonacci algorithm for point distribution was optimised
- Docstrings were abbreviated or made more precise.
What's Changed - Auto-generated release notes
- Resources management optimisation by @Baharis in #3
- Representations by @Baharis in #4
- Hkl artist by @Baharis in #5
- Stats by @Baharis in #6
- Hklframe by @Baharis in #7
- Dac count by @Baharis in #8
- Simple unittest-s for utility functions and symmetry.operations by @Baharis in #9
- Fibonacci sphere algorithm by @Baharis in #10
- dacs_count debugging by @Baharis in #11
- Frame tests by @Baharis in #12
Full Changelog: v0.1.2...v0.1.3