The httk.atomistic package

This page documents the features of the httk.atomistic package most relevant for regular users. For a complete listing of members and subpackages, please refer to the full API documentation instead, Full httk API documentation.

Introduction

The httk.atomistic package

Classes and utilities for dealing with high-throughput calculations of atomistic systems.

Atomistic description

class httk.atomistic.Structure(assignments, rc_sites=None, uc_sites=None, rc_cell=None, uc_cell=None)[source]

A Structure represents N sites of, e.g., atoms or ions, in any periodic or non-periodic arrangement. The structure object is meant to be immutable and assumes that no internal variables are changed after its creation. All methods that ‘changes’ the object creates and returns a new, updated, structure object.

Naming conventions in this class (and elsewhere in httk.atomistic):

For cells:
cell = an abstract name for any reasonable representation of a ‘cell’ that defines
the basis vectors used for representing the structure. When a ‘cell’ is returned, it is an object of type Cell

basis = a 3x3 sequence-type with (in rows) the three basis vectors (for a periodic system, defining the unit cell, and defines the unit of repetition for the periodic dimensions)

lengths_and_angles = (a,b,c,alpha,beta,gamma): the basis vector lengths and angles

niggli_matrix = ((v1*v1, v2*v2, v3*v3),(2*v2*v3, 2*v1*v3, 2*v2*v3)) where v1, v2, v3 are the vectors forming the basis

metric = ((v1*v1,v1*v2,v1*v3),(v2*v1,v2*v2,v2*v3),(v3*v1,v3*v2,v3*v3))

For sites:
These following prefixes are used to describe types of site specifications:

representative cell/rc = only representative atoms are given, which are then to be repeated by structure symmetry group to give all sites

unit cell/uc = all atoms in unitcell

reduced = coordinates given in cell vectors

cartesian = coordinates given as direct cartesian coordinates

sites = used as an abstract name for any sensible representation of a list of coordinates and a cell,
when a ‘sites’ is returned, it is an object of type Sites

counts = number of atoms of each type (one per entry in assignments)

coordgroups = coordinates represented as a 3-level-list of coordinates, e.g. [[[0,0,0],[0.5,0.5,0.5]],[[0.25,0.25,0.25]]] where level-1 list = groups: one group for each equivalent atom

counts and coords = one list with the number of atoms of each type (one per entry in assignments) and a 2-level list of coordinates.

For assignments of atoms, etc. to sites:

assignments = abstract name for any representation of assignment of atoms. When returned, will be object of type Assignment.

atomic_numbers = a sequence of integers for the atomic number of each species

occupations = a sequence where the assignments are repeated for each coordinate as needed (prefixed with uc or rc depending on which coordinates)

For cell scaling:

scaling = abstract name for any representation of cell scaling

scale = multiply all basis vectors with this number

volume = rescaling the cell such that it takes this volume

For periodicity:

periodicity = abstract name of a representation of periodicity

pbc = ‘periodic boundary conditions’ = sequence of True and False for which basis vectors are periodic / non-periodic

nonperiodic_vecs = integer, number of basis vectors, counted from the first, which are non-periodic

For spacegroup:

spacegroup = abstract name for any spacegroup representation. When returned, is of type Spacegroup.

hall_symbol = specifically the hall_symbol string representation of the spacegroup

class httk.atomistic.Cell(niggli_matrix, orientation=1, basis=None)[source]

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

class httk.atomistic.UnitcellStructure(cell=None, assignments=None, rc_sites=None, uc_sites=None, struct=None, uc_cell=None)[source]

FullSitesStructure essentially just wraps Structure, and provides a strict subset of the functionality therein. This is needed, because in interaction with, e.g., databases, we sometimes need to restrict the available fields to those properties accessible via this object.

class httk.atomistic.RepresentativeSites(reduced_coordgroups=None, cartesian_coordgroups=None, reduced_coords=None, cartesian_coords=None, counts=None, hall_symbol=None, pbc=None, wyckoff_symbols=None)[source]

Represents any collection of sites in a unitcell

class httk.atomistic.UnitcellSites(reduced_coordgroups=None, reduced_coords=None, counts=None, hall_symbol='P 1', pbc=None)[source]

Represents any collection of sites in a unitcell

class httk.atomistic.Assignments(siteassignments, extensions=[])[source]

Represents a possible vector of assignments

class httk.atomistic.Compound(element_wyckoff_sequence, formula, spacegroup_number, extended, extensions, wyckoff_sequence, anonymous_wyckoff_sequence, anonymous_formula, formula_symbols, formula_counts, pbc)[source]
class httk.atomistic.CompoundStructure(compound, structure)[source]
class httk.atomistic.StructurePhaseDiagram(structures, energies, hull_indices, competing_indices, hull_competing_indices, hull_distances, coord_system, phase_lines)[source]

Represents a phase diagram of structures