VolterraDislocation

class atomman.defect.VolterraDislocation(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: object

Generic class for a Volterra solution of a straight dislocation.

property C: ElasticConstants

The associated elastic constants

Type:

atomman.ElasticConstants

property K_coeff: float

The energy coefficient

Type:

float

property K_tensor: ndarray

The energy coefficient tensor

Type:

numpy.ndarray

property burgers: ndarray

The Cartesian Burgers vector

Type:

numpy.ndarray

characterangle(unit: str = 'degree') float

Returns the dislocation’s character angle.

Parameters:

unit (str, optional) – Specify whether the angle is given in ‘degree’ (default) or ‘radian’.

Returns:

The dislocation character angle.

Return type:

float

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 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 m: ndarray

The Cartesian vector for orienting the dislocation system’s m vector

Type:

numpy.ndarray

property n: ndarray

The Cartesian vector for orienting the dislocation system’s n vector

Type:

numpy.ndarray

property preln: float

The pre-ln strain energy factor

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 parameters for a dislocation solution. !!!!GENERIC CLASS ONLY HANDLES INPUT PARAMETERS AND DOES NOT SOLVE!!!!

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

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

Parameters:

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

Returns:

The computed 3x3 stress states at all given points.

Return type:

numpy.ndarray

property tol: float

The tolerance value used to verify the solution

Type:

float

property transform: ndarray

The transformation matrix associated with the dislocation system’s orientation

Type:

numpy.ndarray

property ξ: ndarray

The Cartesian vector for orienting the dislocation system’s line vector

Type:

numpy.ndarray