httk.atomistic.cellshape module

class httk.atomistic.cellshape.CellShape(niggli_matrix, orientation=1, basis=None)[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)

basis
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(cellshape=None, basis=None, metric=None, niggli_matrix=None, a=None, b=None, c=None, alpha=None, beta=None, gamma=None, lengths=None, angles=None, scale=None, scaling=None, volume=None, periodicity=None, nonperiodic_vecs=None, orientation=1)[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
is_point_inside(cartesian_coord)[source]
scaling()[source]
httk.atomistic.cellshape.main()[source]