Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jlaragonvera/Geometric-Algebra
Mathematica packages for geometric algebra
https://github.com/jlaragonvera/Geometric-Algebra
Last synced: about 1 month ago
JSON representation
Mathematica packages for geometric algebra
- Host: GitHub
- URL: https://github.com/jlaragonvera/Geometric-Algebra
- Owner: jlaragonvera
- License: bsd-3-clause
- Created: 2017-11-03T23:03:54.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-23T18:36:24.000Z (about 1 year ago)
- Last Synced: 2024-08-20T03:32:05.243Z (4 months ago)
- Language: Mathematica
- Size: 342 KB
- Stars: 42
- Watchers: 10
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-wolfram-language - Geometric-Algebra
README
# Geometric Algebra
*Mathematica* packages for Clifford (geometric) algebra calculations:
## CGAlgebra
**CGAlgebra.m** is a *Mathematica* package for the 5D Conformal Geometric Algebra.
This package contains declarations for calculations with Conformal
Geometric Algebra. Basis vectors {e0, e1, e2, e3, eInfinity} are
denoted by e[0], e[1], e[2], e[3], e[Infinity]. Geometric products
of basis elements are denoted as e\[0,1,2\] (= e0 e1 e2), etc.
The results of any calculation is given in terms of the geometric product
of basis elements, that is, the outer (Grassman) product of basis
elements or multivectors is calculated by using OuterProduct[] and the
output is given in terms of geometric product of basis vectors.
Examples:The vector e0 + 2 e1 + eInfinity is written as:
A = e[0] + 2 e[1] + e[\[Infinity]];
The multivector a + 5 e1 + e1e2e3 is
B = a + 5 e[1] + e[1,2,3];The geometric product
GeometricProduct[A,B]
yields:
10 + a e[0] + 2a e[1] + a e[\[Infinity]] + 5 e[0,1] - 5 e[1,\[Infinity]] + 2 e[2,3] + e[0,1,2,3] - e[1,2,3,\[Infinity]]
The inner product
InnerProduct[A,B]
yields
10 + 2 e[2,3]
A tutorial can be downloaded from:
## Clifford
**clifford.m** is the most recent version of the package by G. Aragon-Camarasa, G. Aragon-Gonzalez, J.L. Aragon and M.A. Rodriguez-Andrade. A user guide (**CliffordUserGuide**) is available, as well as *Mathematica* palette (**CliffordPalette**). The fundamentals of the package are presented in:
## CliffordBasic
**CliffordBasic.m** is a completely renewed but reduced version of **clifford.m** package by G. Aragon-Camarasa, G. Aragon-Gonzalez, J.L. Aragon and M.A. Rodriguez-Andrade:
Using rule-base programming the algebra over Rp,q in arbitrary dimensions is constructed as in A. Macdonald "An Elementary Construction of Geometric Algebra", Adv. Appl. Cliff. Alg. 12 (2002) 1-6.
In **CliffordBasic**, the j-th basis vector is denoted by e[j] and the geometric product of basis vectors, such as e1e3e4, as `e[1,3,4]`.
Examples:
The vector e1 + 2 e2 - a e3 is written as
A = e[2] + 2 e[2] - a e[3];
The The multivector a + 5 e1 + e1 e2 e3 is written as
B = a + 5 e[1] + e[1,2,3];
The geometric product AB is calculated asGeometricProduct[A,B]
yielding:
3 a e[2] - a^2 e[3] - 15 e[1,2] - a e[1,2] - 3 e[1,3] + 5 a e[1,3]
which can be factored usingGFactor[%]
3 a e[2] - a^2 e[3] + (-15-a) e[1,2] + (-3 + 5 a)e[1,3]
The signature of the Rp,q is set by `$SetSignature={p,q}`. If not specified,
the default value is:$SetSignature={20,0}