All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project tries its best to adhere to Semantic Versioning.
- Support for wider range of CIF atom type symbols, notably element symbol followed by oxidation number as found in CIF files recently pulled from ICSD (#245).
- Progressbar for SimulationGenerator.calculate_diffraction2d in (#233)
- Added
fastparameter toSimulation2D.get_diffraction_patternwhich allows for sub pixel sampling of the diffraction pattern. This is useful for simulating an accurate diffraction pattern. (#235)
- Fixed bug in masking logic for
Simulation2D.polar_flattenin (#238) - Fixed a bug in 1D diffraction patterns for non-cubic lattices. (#238)
- Numpy 2.0.0 compatibility in (#228).
- Explicit support for Python 3.11.
- pre-commit configuration file for code formatting.
- Deprecation tools for deprecating functions, parameters, methods, and properties.
- Documentation theme from Furo to the PyData-Sphinx-Theme.
- Ran
blackformatting to update the code style.
get_hkl(),get_highest_hkl(), andget_equivalent_hkl()methods in the crystallography module. Please use the following corresponding methods in theReciprocalLatticeVectorclass instead:from_highest_hkl(),from_min_dspacing(), andsymmetrise().
- Removed support for Python 3.6 and Python 3.7, leaving 3.8 as the oldest supported version.
ReciprocalLatticePointclass; Use theReciprocalLatticeVectorclass instead, which is an improved replacement.StructureLibrary.from_crystal_systems()class method, which previously raised aNotImplementedError, but now will throw anAttributeErrorinstead.
- Always use no-python mode to silence Numba deprecation warnings.
ReciprocalLatticeVector.allowedrounds indices (hkl) internally to ensure correct selection of which vectors are allowed or not given a lattice centering. Integer indices are assumed.
- Support for Python 3.6 is deprecated and will be removed in v0.6.
- Extra parameters in diffraction pattern's plot method for drawing miller index labels next to the diffraction spots.
- Option to use None for
scattering_paramswhich ignores atomic scattering. - Python 3.10 support.
- Class
ReciprocalLatticeVectorfor handling generation, handling and plotting of vectors. This class replacesReciprocalLatticePoint, which is deprecated.
- Minimal version of dependencies orix >= 0.9, numpy >= 1.17 and tqdm >= 4.9.
- The Laue group representing the rotation list sampling of "hexagonal" from 6/m to 6/mmm.
- Loosened the angle tolerance in
DiffractionLibrary.get_library_entry()from1e-5to1e-2.
- Class
ReciprocalLatticePointis deprecated and will be removed in v0.6. UseReciprocalLatticeVectorinstead.
- Simulations now have a .get_as_mask() method (#154, #158)
- Python 3.9 testing (#161)
- Simulations now use a fractional (rather than absolute) min_intensity (#161)
- Precession simulations (#161)
- get_grid_beam_directions default meshing changed to "spherified_cube_edge" from "spherified_cube_corner"
- get_grid_beam_directions now behaves correctly for the triclinic and monoclinic cases
- API reference documentation via Read The Docs: https://diffsims.readthedocs.io/en/latest/
- New module: sphere_mesh_generators
- New module: detector_functions
- New module: ring_pattern_utils
- beam precession is now supported in simulating electron diffraction patterns
- plot method for DiffractionSimulation
- more shape factor functions have been added
- This project now keeps a Changelog
- get_grid_beam_directions, now works based off of meshes
- the arguments in the DiffractionGenerator constructor and the DiffractionLibraryGenerator.get_diffraction_library function have been shuffled so that the former captures arguments related to "the instrument/physics" while the latter captures arguments relevant to "the sample/material".
- CI is now provided by github actions
- Python 3.6 testing
- ReciprocalLatticePoint handles having only one point/vector