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

Other tensor packages

Inspiration