# Structure constants for unitary groups

I want to define a generalized cross product in sage such the a_i=f^{ijk} b_j c_k, where f^{ijk} are the structure constants of the SU(3) group. Are the structure constants for unitary group predefined is sage. If not what is the best way to define such a generalized cross product? Thanks in advance.

Edit: Sorry for not being clear about the question. As Mitesh rightly pointed out I am trying to do a High energy calculation. I have two eight dimensional vectors (say b and c). I want to define a generalized product of these two vectors as described in the original post. Here f are structure constants of SU(3) Lie algebra.

When I try the series of commands suggested by niles

gap> e6 := SimpleLieAlgebra("E",6,Rationals); gap> StructureConstantsTable(Basis(e6));

I get a error in sage but it works if I open gap in a terminal. I think I can manage by copy pasting the results in sage.

Thanks a lot again for the help

edit retag close merge delete

Partly out of curiosity: Are you performing calculations in high-energy physics (e.g., with quarks and gluons)?

( 2010-09-03 17:16:28 +0200 )edit

ok; sorry for the confusion. I've reworked my answer to use the GAP interface, so it should now work from within sage.

( 2010-09-04 08:39:19 +0200 )edit

Sort by » oldest newest most voted

You might also be asking whether the functionality of GAP for Lie groups, Lie algebras, and structure constants is accessible from sage; for that, the answer is "yes!". If you can construct the corresponding Lie algebra in GAP, then you can get its structure constants by using StruccctureConstantsTable. For example:

sage: a3 = gap.SimpleLieAlgebra('"A"',3,'Rationals')  # note extra quotes around the string "A"
sage: tg = gap.StructureConstantsTable(gap.Basis(a3))
sage: tg.parent()
Gap
sage: type(tg)
<class 'sage.interfaces.gap.GapElement'>

sage: ts = tg.sage()
sage: type(ts)
<type 'list'>


Now you can do the following with either tg or ts, but note the difference in indexing (GAP lists start indexing at 1!):

sage: ts[3][7]
[[1], [-1]]
sage: tg[3][7]
[ [  ], [  ] ]
sage: tg[4][8]
[ [ 1 ], [ -1 ] ]
sage: ts[0]
[[[], []], [[4], [-1]], [[], []], [[], []], [[6], [-1]], [[], []], [[13], [1]], [[], []], [[], []], [[8], [1]], [[], []], [[11], [1]], [[1], [-2]], [[1], [1]], [[], []]]
sage: tg[0]
Traceback (most recent call last)
...
TypeError: Gap produced error output
List Element: <position> must be positive (not a 0)


Once you know what relations you're looking for, you could create this algebra by first defining a polynomial ring on the a_i, b_j, c_k and an ideal determined by your relations, and then constructing the quotient. Documentation is here. Or, if speed is an issue, maybe you could do the work directly in GAP. You can see the following link to read more about the GAP interface. Or maybe someone else has a better solution.

p.s. I do agree, it might help to clarify your question; and watch out for _underscores_.

more

I suspect that you have not had a response because your question is not clear. First of all from the expression you give it looks as though you want the structure constants of a Lie algebra. Secondly the cross product of vectors in 3D gives the Lie algebra of SO(3) or SU(2). The Lie algebra of SU(3) has dimension 8. Your question asks for the definition of the structure constants which is a mathematical question. If you are asking a mathematical question you would be better off on another site, probably http://math.stackexchange.com/. If you are asking about an implementation in sage you should be clear about the mathematics.

more

## Stats

Seen: 1,033 times

Last updated: Sep 04 '10