Crystal#
For crystal (for sympy element).
- convert_to_cartesian_hexagonal(vec_f)[source]#
Convert vector to cartesian coordinate for hexagonal system.
- Parameters:
vec_f (ndarray) – vector in fractional coordinate.
- Returns:
(ndarray) – in cartesian coordinate.
- convert_to_cartesian_hexagonal_matrix(mat_f)[source]#
Convert matrix to cartesian coordinate for hexagonal system.
- Parameters:
mat_f (ndarray) – matrix in fractioanl coordinate.
- Returns:
(ndarray) – in cartesian coordinate.
- convert_to_conventional(lattice, vec_pf, plus_set=False, shift=True)[source]#
Convert vector to conventional cell in fractional coordinate.
- Parameters:
lattice (str) – crystal lattice, (A/B/C/P/I/F/R/0). [0: point group].
vec_pf (ndarray) – vector of primitive cell in fractional coordinate.
plus_set (bool, optional) – add partial translations ?
shift (bool, optional) – shift to home cell ?
- Returns:
(ndarray) – in conventioanl cell.
Note
for plus_set, [set(t0), set(t1), …].
- convert_to_conventional_matrix(lattice, mat_pf)[source]#
Convert matrix to conventional cell in fractional coordinate.
- Parameters:
lattice (str) – crystal lattice, (A/B/C/P/I/F/R/0). [0: point group].
mat_pf (ndarray) – matrix of primitive cell in fractional coordinate.
- Returns:
(ndarray) – in conventioanl cell.
- convert_to_fractional_hexagonal(vec_c)[source]#
Convert vector to fractional coordinate for hexagonal system.
- Parameters:
vec_c (ndarray) – vector in cartesian coordinate.
- Returns:
(ndarray) – in fractional coordinate.
- convert_to_fractional_hexagonal_matrix(mat_c)[source]#
Convert matrix to fractional coordinate for hexagonal systems.
- Parameters:
mat_c (ndarray) – matrix in fractioanl coordinate.
- Returns:
(ndarray) – in fractional coordinate.
- convert_to_primitive(lattice, vec_cf, shift=True)[source]#
Convert vector to primitive cell in fractional coordinate.
- Parameters:
lattice (str) – crystal lattice, (A/B/C/P/I/F/R/0). [0: point group].
vec_cf (ndarray) – vector of conventional cell in fractional coordinate.
shift (bool, optional) – shift to home cell ?
- Returns:
(ndarray) – in primitive cell.
- convert_to_primitive_matrix(lattice, mat_cf)[source]#
Convert matrix to primitive cell in fractional coordinate.
- Parameters:
lattice (str) – crystal lattice, (A/B/C/P/I/F/R/0). [0: point group].
mat_cf (ndarray) – matrix of conventional cell in fractional coordinate.
- Returns:
(ndarray) – in primitive cell.
- create_igrid(cell_range)[source]#
Create integer grid.
- Parameters:
cell_range (tuple) – range, (a1,b1,a2,b2,a3,b3).
- Returns:
(ndarray) – integer grid (float,N,3).
- get_cell_info(crystal, cell)[source]#
Get unit cell information.
- Parameters:
crystal (str) – crystal, “triclinic/monoclinic/orthorhombic/trigonal/hexagonal/tetragonal/cubic”.
cell (dict) – cell, key=”a/b/c/alpha/beta/gamma”.
- Returns:
(dict) – cell(dict), volume(float), A(ndarray,4,4,float), G(ndarray,4,4,float).
Note
key in cell is omittable.
alpha, beta, gamma in unit of degree.
- shift_bond(bond)[source]#
Shift bond within home unit cell.
- Parameters:
bond (ndarray) – (set of) bond (sympy or float) [vector+center].
- Returns:
(ndarray) – shifted bond.
- shift_site(site, tol=1e-08)[source]#
Shift site within home unit cell.
- Parameters:
site (ndarray) – (set of) site (sympy or float).
tol (float, optional) – tolerance for same site.
- Returns:
(ndarray) – shifted site.
Note
When using sympy elements, ensure that all elements are sympy. Creating an array like np.array([0, sp.S(1)/2, 1]) can be dangerous, as all elements may be treated as integers in some cases. To ensure that all elements are treated as sympy objects, it is recommended to use str_to_sympy.
- site_distance(tail, heads, G=None, digit=5)[source]#
group of heads with the same distance from tail (in increasing order).
- Parameters:
tail (ndarray) – tail vector.
heads (ndarray) – head vectros.
G (ndarray, optional) – metric matrix (None = unit matrix).
digit (int, optional) – accuracy of digit.
- Returns:
(dict) – grouped heads (sorted), Dict[ distance(float), [heads] ].