wulfric.Lattice#

class wulfric.Lattice(*args, eps_rel=0.0001, angle_tol=0.0001, **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].

Since v0.2.2 the standardization of the lattice is not performed by default at the time of the lattice creation. The standardization is performed when is is required, for example, when the kpoints are computed.

Lattice can be created in a three alternative ways:

>>> import wulfric as wulf
>>> l = wulf.Lattice(cell = [[1, 0, 0], [0, 1, 0], [0, 0, 1]])
>>> l = wulf.Lattice(a1 = [1,0,0], a2 = [0,1,0], a3 = [0,0,1])
>>> l = wulf.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.

eps_relfloat, default 1e-4

Relative tolerance for distance.

angle_tolfloat, default 1e-4

Absolute tolerance for angles, in degrees.

Attributes:
eps_relfloat, default 1e-4

Relative tolerance for the distance.

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:

copy()

Create a copy of the lattice.

standardize()

Standardize cell with respect to the Bravais lattice type as defined in [Raad91bf4d954-1].

type([eps_rel, angle_tol])

Identify the lattice type.

voronoi_cell([reciprocal, normalize])

Computes Voronoi edges around (0,0,0) point.

Properties:

C_matrix

Transformation matrix that transforms primitive cell (Lattice.cell()) to the conventional standardized cell.

S_matrix

Transformation matrix that transforms the primitive cell to the standardized primitive cell.

a

Length of the first lattice vector \(\vert\boldsymbol{a_1}\vert\).

a1

First lattice vector \(\boldsymbol{a_1}\).

a2

Second lattice vector \(\boldsymbol{a_2}\).

a3

Third lattice vector \(\boldsymbol{a_3}\).

alpha

Angle between second and third lattice vector.

angle_tol

Absolute tolerance for the angle.

b

Length of the second lattice vector \(\vert\boldsymbol{a_2}\vert\).

b1

First reciprocal lattice vector.

b2

Second reciprocal lattice vector.

b3

Third reciprocal lattice vector.

beta

Angle between first and third lattice vector.

c

Length of the third lattice vector \(\vert\boldsymbol{a_3}\vert\).

cell

Unit cell of the lattice.

centring_type

Centring type.

conv_a

Length of the first vector of the conventional cell.

conv_a1

First vector of the conventional cell.

conv_a2

Second vector of the conventional cell.

conv_a3

Third vector of the conventional cell.

conv_alpha

Angle between second and third conventional lattice vector.

conv_b

Length of the second vector of the conventional cell.

conv_beta

Angle between first and third conventional lattice vector.

conv_c

Length of the third vector of the conventional cell.

conv_cell

Conventional cell.

conv_gamma

Angle between first and second conventional lattice vector.

conv_parameters

Return conventional cell parameters.

conv_unit_cell_volume

Volume of the conventional unit cell.

convention

Convention used for the standardization of the unit cell.

crystal_family

Crystal family.

eps

Absolute tolerance for the distance.

eps_rel

Relative tolerance for the distance.

gamma

Angle between first and second lattice vector.

k_a

Length of the first reciprocal lattice vector \(\vert\boldsymbol{b_1}\vert\).

k_alpha

Angle between second and third reciprocal lattice vector.

k_b

Length of the second reciprocal lattice vector \(\vert\boldsymbol{b_2}\vert\).

k_beta

Angle between first and third reciprocal lattice vector.

k_c

Length of the third reciprocal lattice vector \(\vert\boldsymbol{b_3}\vert\).

k_gamma

Angle between first and second reciprocal lattice vector.

kpoints

Instance of Kpoints with the high symmetry points and path.

name

Human-readable name of the Bravais lattice type.

parameters

Return cell parameters.

pearson_symbol

Pearson symbol.

rcell

Reciprocal cell.

reciprocal_cell

Reciprocal cell.

reciprocal_cell_volume

Volume of the reciprocal cell.

reciprocal_parameters

Return reciprocal cell parameters.

unit_cell_volume

Volume of the unit cell.

variation

Variation of the lattice, if any.