IsotropicVolterraDislocation

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

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

property K_tensor

The energy coefficient tensor

Type:

numpy.ndarray

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