VolterraDislocation

class atomman.defect.VolterraDislocation(C: ElasticConstants, burgers: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ξ_uvw: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, slip_hkl: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, transform: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, axes: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, box: Box | None = None, m: str | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = 'x', n: str | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = 'y', cart_axes: bool = False, 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: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) 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: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ξ_uvw: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, slip_hkl: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, transform: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, axes: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, box: Box | None = None, m: str | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = 'x', n: str | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = 'y', cart_axes: bool = False, 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 (str or array-like object, optional) – The 3D Cartesian unit vector to align with the dislocation solution’s m-axis, i.e. the in-plane direction perpendicular to the dislocation line. Also accepts str values of ‘x’, ‘y’, or ‘z’, in which case the dislocation axis will be aligned with the corresponding Cartesian axis. Default value is ‘x’.

  • n (str or array-like object, optional) – The 3D Cartesian unit vector to align with the dislocation solution’s n-axis, i.e. the slip plane normal. Also accepts str values of ‘x’, ‘y’, or ‘z’, in which case the dislocation axis will be aligned with the corresponding Cartesian axis. Default value is ‘y’.

  • cart_axes (bool, optional) – Setting this to True will also perform an assertion check that the m- and n-axes are both aligned with Cartesian axes. This is a requirement for some of the atomic configuration generators. Default value is False as the elastic solution by itself does not require the limitation.

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

strain(pos: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) 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: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) 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