httk.atomistic.cell module

class httk.atomistic.cell.Cell(basis, lattice_system, orientation=1)[source]

Bases: httk.core.httkobject.HttkObject

Represents a cell (e.g., a unitcell, but also possibly just the basis vectors of a non-periodic system)

(The ability to represent the cell for a non-periodic system is also the reason this class is not called Lattice.)

clean()[source]
coordgroups_cartesian_to_reduced(coordgroups)[source]
coordgroups_reduced_to_cartesian(coordgroups)[source]
coords_cartesian_to_reduced(coords)[source]
coords_reduced_to_cartesian(coords)[source]
classmethod create(cell=None, basis=None, metric=None, niggli_matrix=None, a=None, b=None, c=None, alpha=None, beta=None, gamma=None, lengths=None, angles=None, cosangles=None, scale=None, scaling=None, volume=None, periodicity=None, nonperiodic_vecs=None, orientation=1, hall=None, lattice_system=None, eps=0)[source]

Create a new cell object,

cell: any one of the following:

  • a 3x3 array with (in rows) the three basis vectors of the cell (a non-periodic system should conventionally use an identity matrix)
  • a dict with a single key ‘niggli_matrix’ with a 3x2 array with the Niggli Matrix representation of the cell
  • a dict with 6 keys, ‘a’, ‘b’, ‘c’, ‘alpha’, ‘beta’, ‘gamma’ giving the cell parameters as floats
scaling: free form input parsed for a scale.
positive value = multiply basis vectors by this value negative value = rescale basis vectors so that cell volume becomes abs(value).

scale: set to non-None to multiply all cell vectors with this factor

volume: set to non-None if the basis vectors only give directions, and the volume of the cell should be this value (overrides scale)

periodicity: free form input parsed for periodicity
sequence: True/False for each basis vector being periodic integer: number of non-periodic basis vectors

hall: giving the hall symbol makes it possible to determine the lattice system without numerical inaccuracy

lattice_system: any one of: ‘cubic’, ‘hexagonal’, ‘tetragonal’, ‘orthorhombic’, ‘trigonal’, ‘triclinic’, ‘monoclinic’, ‘unknown’

get_axes_standard_order_transform()[source]
get_normalized()[source]
get_normalized_longestvec()[source]
is_point_inside(cartesian_coord)[source]
normalization_longestvec_scale

Get the factor with which a normalized version of this cell needs to be multiplied to reproduce this cell.

I.e. self = (normalization_scale)*self.get_normalized()

normalization_scale
scaling()[source]
classmethod use(other)[source]
volume
httk.atomistic.cell.main()[source]