Loading [MathJax]/jax/output/HTML-CSS/jax.js
Ask Your Question
1

Defining Clifford Algebras

asked 12 years ago

Dox gravatar image

Dear all.

I'm a high energy physicist, interested in using SAGE for manipulations of Clifford algebras.

Being accustomed to the architecture of SAGE, I believe that the fundamental structures of these algebras is defined somewhere (probably as an algebra with basis).

Question(s)

  • How could I define the Clifford algebra structure from the basis elements?

  • Is it possible to manipulate the order of terms like vwuuvw ?

Thank you.

Preview: (hide)

2 Answers

Sort by » oldest newest most voted
1

answered 12 years ago

benjaminfjones gravatar image

It should certainly be possible. One place you might start looking is the implementation of Quaternion algebras in Sage. This is in the sage.algebras.quatalgpackage: https://github.com/sagemath/sagelib/t...

Preview: (hide)
link

Comments

@benjaminfjones : I have a doubt with the QuaternionAlgebra. The basis is form by `i,j,k` and the definition of what `i` and `j` are, is related with the values of `arg1` and `arg2`. But I still don't get how and when the base `k` is defined. Also, where in the code is imposed that `i` and `j` anticommute? Thank you!

Dox gravatar imageDox ( 12 years ago )

For a basis over a field K you also need a vector representing 1. I think the reason `i` and `j` are there but not `k` is that you only need 2 of the 3 to generate the quaternions as an algebra (recall `k = i * j`). To see where the multiplicative structure on the algebra is defined look at the ring multiplication for generic elements (see the code starting with `cpdef RingElement _mul_(self, RingElement _right):` in `quaternion_algebra_element.pyx`.

benjaminfjones gravatar imagebenjaminfjones ( 12 years ago )
3

answered 12 years ago

GiNaC, the C++ library used as the backend for symbolic expressions in Sage, supports Clifford algebras. See this article for more details. Using this implementation might be easier than starting from scratch in Python/Cython. I expect the performance of GiNaC to be quite competitive, thanks to Pynac we can also use arbitrary coefficient domains from Sage.

After a brief look at the article mentioned above, I can say that it would be fairly straightforward to wrap those C++ functions and provide access to these data structures from Sage. I would be happy to do this and create a prototype implementation if somebody is willing to take over the polish. :)

Preview: (hide)
link

Comments

That sounds interesting. I'd certainly be willing to help polish.

benjaminfjones gravatar imagebenjaminfjones ( 12 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 12 years ago

Seen: 942 times

Last updated: Jan 12 '13