polymerist.maths.lattices.bravais

Representations and calculation methods for crystallographic unit cells and lattice parameters

Attributes

COMMON_UNIT_LATTICE_VECTORS

lattice_generator

Classes

LatticeParameters

For storing the lengths of and the angles between the 3 lattice vectors of a crystallographic unit cell

Functions

identify_bravais_points_within_bbox(...)

Locate all lattice points generated by a set of Bravais lattice vectors in D-dimensions which fall within a given bounding box

Module Contents

polymerist.maths.lattices.bravais.identify_bravais_points_within_bbox(lattice_vectors: numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[polymerist.genutils.typetools.numpytypes.D, polymerist.genutils.typetools.numpytypes.D], numbers.Number], bbox: polymerist.maths.lattices.coordinates.BoundingBox) tuple[polymerist.maths.lattices.coordinates.Coordinates, polymerist.maths.lattices.integral.CubicIntegerLattice][source]

Locate all lattice points generated by a set of Bravais lattice vectors in D-dimensions which fall within a given bounding box Returns the coordinate vector of the internal lattice points and a CubicIntegerLattice containing the corresponding lattice vector multiplicities

class polymerist.maths.lattices.bravais.LatticeParameters[source]

For storing the lengths of and the angles between the 3 lattice vectors of a crystallographic unit cell

a: float
b: float
c: float
alpha: float
beta: float
gamma: float
property lengths_are_positive: tuple[bool, str | None]

Check whether all axial lengths are well-defined (i.e. positive)

reduce_angles() None[source]

Ensure all angles are within the principal [0, 2*pi) interval

property axial_lengths: numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3], float]

View of just the axial lengths

lengths
property angles: numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3], float]

Property alias of angles() method for convenience

axial_angles(in_degrees: bool = False) numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3], float][source]

View of just the angles

property volume: float

The volume of the unit cell (in arbitrary units)

classmethod from_lattice_vectors(vectors: numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3, 3], float]) LatticeParameters[source]

Obtain axial lengths and inter-vector angles from a matrix of lattice vectors

to_lattice_vectors() numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3, 3], float][source]

The restricted lattice vectors corresponding to the lattice parameters, where vector A lies along the x-axis and vector B is in the xy-plane

Vectors are returned as a 3x3 matrix, where each row represents a lattice vector

property lattice_vectors: numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3, 3], float]

Property alias of to_lattice_vectors() method for convenience

polymerist.maths.lattices.bravais.COMMON_UNIT_LATTICE_VECTORS: dict[str, numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[3, 3], float]]
polymerist.maths.lattices.bravais.lattice_generator