TensorFlux.jl

Differential geometry with mathematical notation in Julia

Installation

TensorFlux.jl can be installed by either running

julia

                julia> using Pkg
                julia> Pkg.add("https://github.com/contraflux/TensorFlux.jl")
                

or by pressing ] and running

julia

                pkg> add https://github.com/contraflux/TensorFlux.jl
                

Quick Start

First, to import TensorFlux, run

julia

                julia> using TensorFlux
                

Contracting two tensors:

julia

                julia> L = Tensor([[2, 1]', [-1, 3]'])
                julia> v = Tensor([1, 2])
                julia> L[:i][:j] * v[:j]  # matrix-vector product
                (1, 0)-Tensor:
                [4, 5]
                    (:contra,)
                    (:i,), ()
                

Computing the Riemann curvature tensor on a 2-sphere:

julia

                julia> using Symbolics
                julia> @variables u v
                julia> basis = Basis([
                          Tensor([1, 0]),
                          Tensor([0, sin(u)])
                       ])
                julia> simplify(riemann((u, v), basis))
                (1, 3)-Tensor:
                Num[0.0 0.0; 0.0 -1.0;;; 0.0 sin(u)^2; 0 0;;;; 0.0 0; 1.0 0;;; -(sin(u)^2) 0; 0 0]
                    (:contra, :co, :co, :co)