LatticeBase¶
-
class
sknano.core.crystallography.
LatticeBase
(nd=None, cell_matrix=None, orientation_matrix=None, offset=None)[source] [edit on github][source]¶ Bases:
sknano.core.strings.TabulateMixin
,sknano.core.meta.BaseClass
Base class for crystallographic lattice objects.
Parameters: - nd (int) –
- cell_matrix (array_like) –
- orientation_matrix (array_like, optional) –
- offset (array_like, optional) –
Attributes
bounding_box
region
bounding_box
.cell
Alias for cell_matrix
.cell_matrix
Matrix of lattice row vectors. centroid
Region centroid. fmtstr
Format string. fractional_matrix
Transformation matrix to convert from cartesian coordinates to fractional coordinates. matrix
Alias for cell_matrix
.metric_tensor
Metric tensor. offset
Lattice offset. ortho_matrix
Transformation matrix to convert from fractional coordinates to cartesian coordinates. region
Parallelepiped
defined by lattice vectors.Methods
cartesian_to_fractional
(ccoords)Convert cartesian coordinate to fractional coordinate. fractional_diff
(fcoords1, fcoords2)Compute difference between fractional coordinates. fractional_to_cartesian
(fcoords)Convert fractional coordinate to cartesian coordinate. rotate
(**kwargs)Rotate unit cell. todict
()Return dict
of constructor parameters.translate
(t)Translate lattice. wrap_cartesian_coordinate
(p[, epsilon, pbc])Wrap cartesian coordinate to lie within unit cell. wrap_cartesian_coordinates
(points[, ...])Wrap array of cartesian coordinates to lie within unit cell. wrap_fractional_coordinate
(p[, epsilon, pbc])Wrap fractional coordinate to lie within unit cell. wrap_fractional_coordinates
(points[, ...])Wrap array of fractional coordinates to lie within unit cell. Attributes Summary
bounding_box
region
bounding_box
.cell
Alias for cell_matrix
.cell_matrix
Matrix of lattice row vectors. centroid
Region centroid. fractional_matrix
Transformation matrix to convert from cartesian coordinates to fractional coordinates. matrix
Alias for cell_matrix
.metric_tensor
Metric tensor. offset
Lattice offset. ortho_matrix
Transformation matrix to convert from fractional coordinates to cartesian coordinates. region
Parallelepiped
defined by lattice vectors.Methods Summary
cartesian_to_fractional
(ccoords)Convert cartesian coordinate to fractional coordinate. fractional_diff
(fcoords1, fcoords2)Compute difference between fractional coordinates. fractional_to_cartesian
(fcoords)Convert fractional coordinate to cartesian coordinate. rotate
(**kwargs)Rotate unit cell. translate
(t)Translate lattice. wrap_cartesian_coordinate
(p[, epsilon, pbc])Wrap cartesian coordinate to lie within unit cell. wrap_cartesian_coordinates
(points[, ...])Wrap array of cartesian coordinates to lie within unit cell. wrap_fractional_coordinate
(p[, epsilon, pbc])Wrap fractional coordinate to lie within unit cell. wrap_fractional_coordinates
(points[, ...])Wrap array of fractional coordinates to lie within unit cell. Attributes Documentation
-
cell
¶ Alias for
cell_matrix
.
-
cell_matrix
¶ Matrix of lattice row vectors.
Same as the matrix transpose of the matrix product
LatticeBase.orientation_matrix
×LatticeBase.ortho_matrix
:[A]=([R][M])T(abc)=([R][abc])T
-
centroid
¶ Region centroid.
-
fractional_matrix
¶ Transformation matrix to convert from cartesian coordinates to fractional coordinates.
The fractional matrix [Q] is given by the inverse of the orthogonal matrix [M] (see:
ortho_matrix
), i.e. [Q]=[M]−1[Q]=[M]−1=(1/a−1/atanγ(cosαcosγ−cosβ)/aϕsinγ01/bsinγ(cosβcosγ−cosα)/bϕsinγ00sinγ/cϕ)where:
ϕ=Vabc=√1−cos2α−cos2β−cos2γ+2cosαcosβcosγ=sinαsinβsinγ∗where V is the volume of the unit cell.
-
matrix
¶ Alias for
cell_matrix
.
-
metric_tensor
¶ Metric tensor.
-
offset
¶ Lattice offset.
-
ortho_matrix
¶ Transformation matrix to convert from fractional coordinates to cartesian coordinates.
[M]=(abc)=(abcosγccosβ0bsinγc(cosα−cosβcosγ)/sinγ00csinαsinβsinγ∗/sinγ)
-
region
¶ Parallelepiped
defined by lattice vectors.
Methods Documentation
-
cartesian_to_fractional
(ccoords)[source] [edit on github][source]¶ Convert cartesian coordinate to fractional coordinate.
Parameters: ccoords (array_like) – Returns: Return type: ndarray
-
fractional_diff
(fcoords1, fcoords2)[source] [edit on github][source]¶ Compute difference between fractional coordinates.
See also
core.crystallography.pbc_diff
-
fractional_to_cartesian
(fcoords)[source] [edit on github][source]¶ Convert fractional coordinate to cartesian coordinate.
Parameters: fcoords (array_like) – Returns: Return type: ndarray
-
rotate
(**kwargs)[source] [edit on github][source]¶ Rotate unit cell.
Parameters: See also
core.math.rotate
-
translate
(t)[source] [edit on github][source]¶ Translate lattice.
Parameters: t ( Vector
) –See also
core.math.translate
-
wrap_cartesian_coordinate
(p, epsilon=1e-08, pbc=None)[source] [edit on github][source]¶ Wrap cartesian coordinate to lie within unit cell.
Parameters: p (array_like) – Returns: Return type: ndarray
-
wrap_cartesian_coordinates
(points, epsilon=1e-08, pbc=None)[source] [edit on github][source]¶ Wrap array of cartesian coordinates to lie within unit cell.
Parameters: p (array_like) – Returns: Return type: ndarray
-
wrap_fractional_coordinate
(p, epsilon=1e-08, pbc=None)[source] [edit on github][source]¶ Wrap fractional coordinate to lie within unit cell.
Parameters: p (array_like) – Returns: Return type: ndarray
-
wrap_fractional_coordinates
(points, epsilon=1e-08, pbc=None)[source] [edit on github][source]¶ Wrap array of fractional coordinates to lie within unit cell.
Parameters: p (array_like) – Returns: Return type: ndarray