Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chakravala/Leibniz.jl
Tensor algebra utility library
https://github.com/chakravala/Leibniz.jl
calculus derivation laplacian math tensor-algebra
Last synced: 3 months ago
JSON representation
Tensor algebra utility library
- Host: GitHub
- URL: https://github.com/chakravala/Leibniz.jl
- Owner: chakravala
- License: agpl-3.0
- Created: 2019-06-07T14:56:07.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T03:41:17.000Z (7 months ago)
- Last Synced: 2024-07-04T20:16:33.123Z (4 months ago)
- Topics: calculus, derivation, laplacian, math, tensor-algebra
- Language: Julia
- Homepage: https://grassmann.crucialflow.com
- Size: 110 KB
- Stars: 19
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-sciml - chakravala/Leibniz.jl: Tensor algebra utility library
README
# Leibniz.jl
*Bit entanglements for tensor algebra derivations and hypergraphs*
[![Build Status](https://travis-ci.org/chakravala/Leibniz.jl.svg?branch=master)](https://travis-ci.org/chakravala/Leibniz.jl)
[![Build status](https://ci.appveyor.com/api/projects/status/xb03dyfvhni6vrj5?svg=true)](https://ci.appveyor.com/project/chakravala/leibniz-jl)
[![Coverage Status](https://coveralls.io/repos/chakravala/Leibniz.jl/badge.svg?branch=master&service=github)](https://coveralls.io/github/chakravala/Leibniz.jl?branch=master)
[![codecov.io](http://codecov.io/github/chakravala/Leibniz.jl/coverage.svg?branch=master)](http://codecov.io/github/chakravala/Leibniz.jl?branch=master)
[![Gitter](https://badges.gitter.im/Grassmann-jl/community.svg)](https://gitter.im/Grassmann-jl/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Liberapay patrons](https://img.shields.io/liberapay/patrons/chakravala.svg)](https://liberapay.com/chakravala)Although intended for compatibility use with the [Grassmann.jl](https://github.com/chakravala/Grassmann.jl) package for multivariable differential operators and tensor field operations, `Leibniz` can be used independently.
### Extended dual index printing with full alphanumeric characters #62'
To help provide a commonly shared and readable indexing to the user, some print methods are provided:
```julia
julia> Leibniz.printindices(stdout,Leibniz.indices(UInt(2^62-1)),false,"v")
v₁₂₃₄₅₆₇₈₉₀abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZjulia> Leibniz.printindices(stdout,Leibniz.indices(UInt(2^62-1)),false,"w")
w¹²³⁴⁵⁶⁷⁸⁹⁰ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
```
An application of this is in `Grassmann` and `DirectSum`, where dual indexing is used.# Derivation
Generates the tensor algebra of multivariable symmetric Leibniz differentials and interfaces `using Reduce, Grassmann` to provide the `∇,Δ` vector field operators, enabling mixed-symmetry tensors with arbitrary multivariate `Grassmann` manifolds.
```Julia
julia> using Leibniz, Grassmannjulia> V = tangent(ℝ^3,4,3)
⟨+++⟩julia> V(∇)
∂₁v₁ + ∂₂v₂ + ∂₃v₃julia> V(∇^2)
0 + 1∂₁∂₁ + 1∂₂∂₂ + 1∂₃∂₃julia> V(∇^3)
0 + 1∂₁∂₁∂₁v₁ + 1∂₂∂₂∂₂v₂ + 1∂₃∂₃∂₃v₃ + 1∂₂∂₁₂v₁ + 1∂₃∂₁₃v₁ + 1∂₁∂₁₂v₂ + 1∂₃∂₂₃v₂ + 1∂₁∂₁₃v₃ + 1∂₂∂₂₃v₃julia> V(∇^4)
0.0 + 1∂₁∂₁∂₁∂₁ + 1∂₂∂₂∂₂∂₂ + 1∂₃∂₃∂₃∂₃ + 2∂₁₂∂₁₂ + 2∂₁₃∂₁₃ + 2∂₂₃∂₂₃julia> ∇^2 == Δ
truejulia> ∇, Δ
(∂ₖvₖ, ∂ₖ²v)
```This is an initial undocumented pre-release registration for testing with other packages.