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] ].