Version 0.5#
Whats new?#
Organization of the package has changed. All implemented logic is rewritten in functions.
The package now consist of several submodules that group the function by the concept:
cell
constants
crystal
io
visualization
geometry
The classes that were the central piece of the package prior to the version 0.5
are
removed.
This global change is motivated by the uncalled complexity of code maintenance and structure. Prior to version 0.5.0 wulfric was build around Atom, Crystal, Lattice and Kpoints classes, therefore to use even some simple function one had to create an instance of the class. Moreover, some operations were performed silently inside the classes, that may affect the user experience in unexpected way.
Starting with 0.5.0 wulfric is build as a set of tools, therefore it is build around
functions, that performed an isolated task. Only one class is defined at the time of
release 0.5.0 Kpoints
. All other capabilities are implemented in a form of a function.
Kpoints class is kept as it is proven to be a convenient interface for handling of kpoints.
Now wulfric uses well know structure to store data:
array-like to store matrix of a cell
Plain python dictionary to store a set of atoms.
A pair of cell and atoms constitutes a crystal, no special structure is defined for it.
0.5.0#
The changes that are described and
Unified and improved handling of finite precision. Starting from this version there are two conceptual tolerance parameters:
angle_tolerance
andlength_tolerance
. The former describe accuracy of angular variables (in degrees), the latter describe accuracy for the length variables (length of lattice vectors, for example). Default values are chose in the context of solid state physics with angles in degrees and length in Angstroms.New function
ensure_000()
that change atoms with their translational equivalent copies to ensure that all atoms of the crystal structure are located within the volume of the (0, 0, 0) unit cell.Internal structure of the package is updated. All functions are grouped in modules with only a few being available as top-level functions. New structure is clear and allows exploration of the package in the interactive python console.
Relax dependency from
numpy~=1.26
tonumpy
. It was initially restricted because of problems with doctests. The problems are resolved.
0.5.1#
0.5.2#
Add optional Syntactic sugar for the dictionaries:
0.5.3#
Add optional wulfric.geometry.get_spherical()
.