underworld.function.tensor module¶
This module provides functions relating to tensor operations.
All Underworld2 functions return 1d array type objects. For tensor objects, the following convention is used:
Full tensors:
- 2D:
- \[\begin{split}\left[ a_{00}, a_{01}, \\ a_{10}, a_{11} \right]\end{split}\]
- 3D:
- \[\begin{split}\left[ a_{00}, a_{01}, a_{02}, \\ a_{10}, a_{11}, a_{12}, \\ a_{20}, a_{21}, a_{22} \right]\end{split}\]
Symmetric tensors:
- 2D:
- \[\left[ a_{00}, a_{11}, a_{01} \right]\]
- 3D:
- \[\left[ a_{00}, a_{11}, a_{22}, a_{01}, a_{02}, a_{12} \right]\]
Classes¶
underworld.function.tensor.antisymmetric |
This function calculates the anti-symmetric part of a tensor, returning it as a tensor. |
underworld.function.tensor.deviatoric |
This function calculates the deviatoric stress tensor from the provided symmetric tensor. |
underworld.function.tensor.second_invariant |
This function calculates the second invariant of (symmetric)tensor provided by the subject function. |
underworld.function.tensor.symmetric |
This function calculates the symmetric part of a tensor and returns it as a symmetric tensor. |
-
class
underworld.function.tensor.
antisymmetric
(fn, *args, **kwargs)[source]¶ Bases:
underworld.function._function.Function
This function calculates the anti-symmetric part of a tensor, returning it as a tensor. The function generated by this class returns objects of type TensorType.
\[v_{ij} = \tfrac{1}{2} ( u_{ij} - u_{ji} )\]Parameters: fn (underworld.function.Function) – The function which provides the required tensor. This function must return objects of type TensorType.
-
class
underworld.function.tensor.
deviatoric
(fn, *args, **kwargs)[source]¶ Bases:
underworld.function._function.Function
This function calculates the deviatoric stress tensor from the provided symmetric tensor. The function generated by this class returns objects of type SymmetricTensorType.
\[\tau_{ij} = \sigma_{ij} - \frac{\sigma_{kk}}{\delta_{ll}}\delta_{ij}\]Parameters: fn (underworld.function.Function) – The function which provides the required stress symmetric tensor. This function must return objects of type SymmetricTensorType.
-
class
underworld.function.tensor.
second_invariant
(fn, *args, **kwargs)[source]¶ Bases:
underworld.function._function.Function
This function calculates the second invariant of (symmetric)tensor provided by the subject function. The function generated by this class returns objects of type ScalarType.
\[u = \sqrt{ \tfrac{1}{2} u_{ij} u_{ij} }\]Parameters: fn (underworld.function.Function) – The function which provides the required tensor. This function must return objects of type TensorType or SymmetricTensorType.
-
class
underworld.function.tensor.
symmetric
(fn, *args, **kwargs)[source]¶ Bases:
underworld.function._function.Function
This function calculates the symmetric part of a tensor and returns it as a symmetric tensor. The function generated by this class returns objects of type SymmetricTensorType.
\[v_{ij} = \tfrac{1}{2} ( u_{ij} + u_{ji} )\]Parameters: fn (underworld.function.Function) – The function which provides the required tensor. This function must return objects of type TensorType.