Crate russell_tensor
source ·Expand description
Russell - Rust Scientific Library
russell_tensor
: Tensor analysis, calculus, and functions for continuum mechanics
Important: This crate depends on external libraries (non-Rust). Thus, please check the Installation Instructions on the GitHub Repository.
This library implements structures and functions for tensor analysis and calculus. The library focuses on applications in engineering and [Continuum Mechanics](Continuum Mechanics). The essential functionality for the targeted applications includes second-order and fourth-order tensors, scalar “invariants,” and derivatives.
This library implements derivatives for scalar functions with respect to tensors, tensor functions with respect to tensors, and others. A convenient basis representation known as Mandel basis (similar to Voigt notation) is considered by this library internally. The user may also use the Mandel basis to perform simpler matrix-vector operations directly.
Structs§
- Holds auxiliary data to compute the second derivative of the J3 invariant
- Holds auxiliary data to compute the second derivative of the Lode invariant
- Holds auxiliary data to compute the second derivative of the deviatoric invariant
- Implements the linear elasticity equations for small-strain problems
- Collects values related to a sample Tensor2
- Holds second-order tensor samples
- Holds fourth-order tensor samples
- Holds the spectral representation of a symmetric second-order tensor
- Implements a second-order tensor, symmetric or not
- Implements a fourth order-tensor, minor-symmetric or not
Enums§
- Specifies the Mandel representation
Constants§
- Second-order identity tensor in Mandel basis (I)
- Fourth-order identity tensor in Mandel basis (II)
- Maps (i,j,k,l) of Tensor4 to the (m,n)-th position in the matrix representation
- Maps (i,j,k,l) of Tensor4 to the (m,n)-th position in the matrix representation (minor-symmetric version)
- Maps (i,j) of Tensor2 to the m-th position in the vector representation
- Maps (i,j) of Tensor2 to the m-th position in the vector representation (symmetric version)
- Maps the (m,n)-th position in the matrix representation to (i,j,k,l) of Tensor4
- Maps the m-th position in the vector representation to the index (i,j) of Tensor2
- 1/3
- Fourth-order deviatoric making projector (Pdev)
- Fourth-order isotropic making projector (Piso)
- Fourth-order skew making projector (Pskew)
- Fourth-order symmetric making projector (Psym)
- Fourth-order symmetric-deviatoric projector in Mandel basis
- sqrt(2) https://oeis.org/A002193
- sqrt(2/3) https://oeis.org/A157697
- sqrt(3) https://oeis.org/A002194
- sqt(3/2) https://oeis.org/A115754
- sqrt(6) https://oeis.org/A010464
- Tolerance to avoid zero division with the J2 invariant
- Fourth-order trace-projection tensor (JJ)
- Fourth-order transposition tensor in Mandel basis (TT)
- 2/3
Traits§
- Defines a trait to handle 2D arrays
Functions§
- Calculates the first derivative of the J2 invariant w.r.t. the stress tensor
- Calculates the first derivative of the J3 invariant w.r.t. the stress tensor
- Calculates the first derivative of the Lode invariant w.r.t. the stress tensor
- Calculates the first derivative of the deviatoric stress invariant (von Mises) w.r.t. the stress tensor
- Calculates the first derivative of the mean stress invariant w.r.t. the stress tensor
- Calculates the first derivative of the norm w.r.t. the defining Tensor2
- Calculates the second derivative of the J2 invariant w.r.t. the stress tensor
- Calculates the second derivative of the J3 invariant w.r.t. the stress tensor
- Calculates the second derivative of the Lode invariant w.r.t. the stress tensor
- Calculates the second derivative of the deviatoric invariant (von Mises) w.r.t. the stress tensor
- Calculates the derivative of the inverse tensor w.r.t. the defining Tensor2
- Calculates the derivative of the inverse tensor w.r.t. the defining Tensor2 (symmetric)
- Calculates the derivative of the squared tensor w.r.t. the defining Tensor2
- Calculates the derivative of the squared tensor w.r.t. the defining Tensor2 (symmetric)
- Performs the double-dot (ddot) operation between two Tensor2 (inner product)
- Performs the double-dot (ddot) operation between a Tensor2 and a Tensor4
- Performs the single dot operation between two Tensor2 (matrix multiplication)
- Performs the single dot operation between a Tensor2 and a vector
- Performs the dyadic product between two Tensor2 resulting in a Tensor4
- Performs the overbar dyadic product between two Tensor2 resulting in a (general) Tensor4
- Performs the quad-sum-dyadic (qsd) operation with two Tensor2 yielding a minor-symmetric Tensor4
- Performs the self-sum-dyadic (ssd) operation with a Tensor2 yielding a minor-symmetric Tensor4
- Performs the underbar dyadic product between two Tensor2 resulting in a (general) Tensor4
- Performs the double-dot (ddot) operation between a Tensor4 and a Tensor2
- Performs the double-dot (ddot) operation between a Tensor4 and a Tensor2 with update
- Performs the double-dot (ddot) operation between two Tensor4
- Performs the single dot operation between a vector and a Tensor2
- Performs the dyadic product between two vectors resulting in a second-order tensor
Type Aliases§
- Defines the error output as a static string