Tensorial
Introduction
Tensorial provides useful tensor operations, such as contraction, tensor product (⊗
), and inversion (inv
), implemented in the Julia programming language. The library supports tensors of arbitrary size, including both symmetric and non-symmetric tensors, where symmetries can be specified to avoid redundant computations. The approach for defining the size of a tensor is similar to that used in StaticArrays.jl, and tensor symmetries can be specified using the @Symmetry
macro. For instance, a symmetric fourth-order tensor (a symmetrized tensor) is represented in this library as Tensor{Tuple{@Symmetry{3,3}, @Symmetry{3,3}}}
. The library also includes an Einstein summation macro @einsum
and functions for automatic differentiation, such as gradient
and hessian
.
Installation
pkg> add Tensorial