IsotropicVolterraDislocation

class atomman.defect.IsotropicVolterraDislocation(C: ElasticConstants, burgers: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray], ξ_uvw: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, slip_hkl: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, transform: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, axes: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, box: Optional[Box] = None, m: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray] = [1, 0, 0], n: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray] = [0, 1, 0], tol: float = 1e-08)

Bases: VolterraDislocation

Class for representing the isotropic Volterra solution for a straight dislocation.

property K_tensor

The energy coefficient tensor

Type:

numpy.ndarray

displacement(pos: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]) ndarray

Compute the position-dependent isotropic displacements.

Parameters:

pos (array-like object) – 3D vector position(s).

Returns:

The computed 3D vector displacements at all given points.

Return type:

numpy.ndarray

property mu: float

The isotropic shear modulus

Type:

float

property nu: float

The isotropic Poisson’s ratio

Type:

float

solve(C: ElasticConstants, burgers: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray], ξ_uvw: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, slip_hkl: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, transform: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, axes: Optional[Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]] = None, box: Optional[Box] = None, m: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray] = [1, 0, 0], n: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray] = [0, 1, 0], tol: float = 1e-08)

Computes the elastic solution for an isotropic volterra dislocation.

Parameters:
  • C (atomman.ElasticConstants) – The medium’s elastic constants.

  • burgers (array-like object) – The dislocation’s Burgers vector.

  • ξ_uvw (array-like object) – The Miller crystal vector associated with the dislocation’s line direction. Must be given with slip_hkl to identify the transformation matrix to use on C and burgers.

  • slip_hkl (array-like object) – The Miller plane indices associated with the dislocation’s slip plane. Must be given with slip_hkl to identify the transformation matrix to use on C and burgers.

  • transform (array-like object, optional) – A 3x3 set of orthogonal Cartesian vectors that define the transformation matrix to use on C and burgers to convert from the standard (unit cell) and dislocation orientations. The 3 vectors will automatically be converted into unit vectors. Using this is an alternative to using ξ_uvw and slip_hkl.

  • axes (array-like object, optional) – Same as transform. Retained for backwards compatibility.

  • box (atomman.Box, optional) – The unit cell’s box that crystal vectors are taken with respect to. If not given, will use a cubic box with a=1 meaning that burgers, ξ_uvw and slip_hkl will be interpreted as Cartesian vectors.

  • m (array-like object, optional) – The m unit vector for the solution. m, n, and u (dislocation line) should be right-hand orthogonal. Default value is [1,0,0] (x-axis).

  • n (array-like object, optional) – The n unit vector for the solution. m, n, and u (dislocation line) should be right-hand orthogonal. Default value is [0,1,0] (y-axis). n is normal to the dislocation slip plane.

  • tol (float) – Tolerance parameter used to round off near-zero values. Default value is 1e-8.

strain(pos: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]) ndarray

Compute the position-dependent isotropic strains. The equations used are derived from ϵ_ij = S_ijkl σ_kl.

Parameters:

pos (array-like object) – 3D vector position(s).

Returns:

The computed 3x3 strain states at all given points.

Return type:

numpy.ndarray

stress(pos: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]) ndarray

Compute the position-dependent isotropic stresses.

Parameters:

pos (array-like object) – 3D vector position(s).

Returns:

The computed 3x3 stress states at all given points.

Return type:

numpy.ndarray

theta(pos: Union[int, float, complex, str, bytes, generic, Sequence[Union[int, float, complex, str, bytes, generic]], Sequence[Sequence[Any]], _SupportsArray]) ndarray

Computes arctan(y / x) ranging from -π to π.

Parameters:

pos (array-like object) – 3D vector position(s).

Returns:

The theta angles for each 3D position.

Return type:

numpy.ndarray