radtools.Lattice#
- class radtools.Lattice(*args, standardize=True, **kwargs)[source]#
General 3D lattice.
When created from the cell orientation of the cell is respected, however the lattice vectors may be renamed with respect to [1].
Creation may change the angles and the lengths of the cell vectors. It preserve the volume, right- or left- handedness, lattice type and variation of the cell.
The lattice vector`s lengths are preserved as a set.
The angles between the lattice vectors are preserved as a set with possible changes of the form: \(angle \rightarrow 180 - angle\).
The returned cell may not be the same as the input one, but it is translationally equivalent.
Lattice can be created in a three alternative ways:
>>> import radtools as rad >>> l = rad.Lattice(cell = [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) >>> l = rad.Lattice(a1 = [1,0,0], a2 = [0,1,0], a3 = [0,0,1]) >>> l = rad.Lattice(a=1, b=1, c=1, alpha=90, beta=90, gamma=90)
- Parameters:
- cell(3, 3) array-like
Unit cell, rows are vectors, columns are coordinates.
- a1(3,) array-like
First vector of unit cell (cell[0]).
- a2(3,) array-like
SEcond vector of unit cell (cell[1]).
- a3(3,) array-like
Third vector of unit cell (cell[2]).
- afloat, default=1
Length of the \(a_1\) vector.
- bfloat, default=1
Length of the \(a_2\) vector.
- cfloat, default=1
Length of the \(a_3\) vector.
- alphafloat, default=90
Angle between vectors \(a_2\) and \(a_3\). In degrees.
- betafloat, default=90
Angle between vectors \(a_1\) and \(a_3\). In degrees.
- gammafloat, default=90
Angle between vectors \(a_1\) and \(a_2\). In degrees.
- standardizebool, default True
Whether to standardize the cell. The consistence of the predefined k paths is not guaranteed in the cell is not unified.
- Attributes:
eps_relfloat, default 1e-4Relative epsilon
References
[1]Setyawan, W. and Curtarolo, S., 2010. High-throughput electronic band structure calculations: Challenges and tools. Computational materials science, 49(2), pp.299-312.
Methods:
lattice_points([relative, reciprocal, normalize])Compute lattice points
type([eps_rel])Identify the lattice type.
voronoi_cell([reciprocal, normalize])Computes Voronoi edges around (0,0,0) point.
Properties:
Length of the first lattice vector \(\vert\vec{a}_1\vert\).
First lattice vector \(\vec{a}_1\).
Second lattice vector \(\vec{a}_2\).
Third lattice vector \(\vec{a}_3\).
Angle between second and third lattice vector.
Length of the second lattice vector \(\vert\vec{a}_2\vert\).
First reciprocal lattice vector.
Second reciprocal lattice vector.
Third reciprocal lattice vector.
Angle between first and third lattice vector.
Length of the third lattice vector \(\vert\vec{a}_3\vert\).
Unit cell of the lattice.
Centring type.
Length of the first vector of the conventional cell.
First vector of the conventional cell.
Second vector of the conventional cell.
Third vector of the conventional cell.
Angle between second and third conventional lattice vector.
Length of the second vector of the conventional cell.
Angle between first and third conventional lattice vector.
Length of the third vector of the conventional cell.
Conventional cell.
Angle between first and second conventional lattice vector.
Return conventional cell parameters.
Volume of the conventional unit cell.
Crystal family.
Epsilon parameter.
Relative epsilon
Angle between first and second lattice vector.
Length of the first reciprocal lattice vector \(\vert\vec{b}_1\vert\).
Angle between second and third reciprocal lattice vector.
Length of the second reciprocal lattice vector \(\vert\vec{b}_2\vert\).
Angle between first and third reciprocal lattice vector.
Length of the third reciprocal lattice vector \(\vert\vec{b}_3\vert\).
Angle between first and second reciprocal lattice vector.
Instance of
Kpointswith the high symmetry points and path.Human-readable name of the Bravais lattice type.
Return cell parameters.
Pearson symbol.
Reciprocal cell.
Volume of the reciprocal cell.
Return reciprocal cell parameters.
Volume of the unit cell.
Variation of the lattice, if any.