Core classes#

class atomman_gb.CubicGBInfo(uvw: Tuple[int, int, int], max_sigma: int)#

Grain-boundary information for cubic system.

Grain-boundary information for cubic system.

Parameters
  • uvw ((int, int, int)) – Axis direction

  • max_sigma (int) – Maximum number to search for sigma

property uvw#

Return axis direction.

property max_sigma#

Maximum number to search for sigma.

property planer_basis: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]]#

Return two basis vectors orthogonal to uvw and uvw.

property datum: list[dict[str, Any]]#

Return list of dictionary of grain-boundary information.

Each dictionary has the following keys:
  • sigma

  • theta: angle of GB

  • rotation: rotation matrix in fractional coordinates

  • csl: transformation matrix from lattice-1 to CSL

  • csl_uvw: transformation matrix from lattice-1 to supercell of CSL parallel ot uvw

  • symmetric_tilt: [(plane_1, plane_2, plane_mid)]

class atomman_gb.CubicGBGenerator(system: atomman.core.System.System, transform: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]], rotation: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]])#

Grain-boundary generator for cubic system.

Grain-boundary generator for cubic system.

Parameters
  • system

  • transform – transformation matrix of given system to monoclinic grain boundary. Boundary plane is assumed to be perpendicular to z-axis.

  • rotation – rotation matrix from lattice-1 to lattice-2

property initial_system: atomman.core.System.System#

Return initial system.

generate(expand_times: int = 1, ab_shifts: NDArray | None = None, c_thickness: float = 0, dmin: float | None = None) list[System]#

Generate grain boundary.

Parameters
  • expand_times (int) –

  • ab_shifts (array, (-1, 2)) –

  • c_thickness (float) – width between system 1 and 2

  • dmin (float) – delete one of too close atoms less than dmin

classmethod make_tilt(system: atomman.core.System.System, rotation: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]], uvw: Tuple[int, int, int], csl: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]], plane: Tuple[int, int, int])#

Construct GB generator for symmetric tilt GB.

classmethod make_twist(system: atomman.core.System.System, rotation: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]], uvw: Tuple[int, int, int], csl: numpy.ndarray[Any, numpy.dtype[numpy._typing._generic_alias.ScalarType]])#

Construct GB generator for twist GB.