File: impose_bianchi.tex

package info (click to toggle)
cadabra2 2.3.6.8-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 77,508 kB
  • sloc: ansic: 132,438; cpp: 86,549; python: 1,365; javascript: 191; xml: 182; sh: 180; objc: 53; makefile: 38
file content (31 lines) | stat: -rw-r--r-- 1,051 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
\cdbalgorithm{impose\_bianchi}{}

Removes terms which are proportional to the (Garnir generalised)
Bianchi identity. It removes all products for which a set of indices
in Garnir hook form is contracted with an anti-symmetric set. Here is
a simple example with a Riemann tensor,
\begin{screen}{1,2,3,4}
A^{m n p}::AntiSymmetric.
R_{m n p q}::RiemannTensor.
R_{m n p q} A^{m n p};
@impose_bianchi!(%);
0;
\end{screen}
Here is a more complicated one using a \subsprop{TableauSymmetry}
property,
\begin{screen}{1,2,3,4}
\epsilon^{m n p q}::EpsilonTensor.
B_{m n p}::TableauSymmetry(shape={2,1}, indices={0,1,2}).
\epsilon^{m n p q} B_{m n p};
@impose_bianchi!(%);
0;
\end{screen}
An alternative way to obtain the same result is to project each tensor
using the generic \subscommand{young\_project\_tensor} algorithm, and
then use \subscommand{distribute} followed by \subscommand{canonicalise}, but that
generically takes much more time.

\cdbseeprop{RiemannTensor}
\cdbseeprop{TableauSymmetry}
\cdbseealgo{young_project_tensor}
\cdbseealgo{canonicalise}