Next: Tensoranalysis, Previous: Behandlung indizierter Größen, Up: Funktionen und Variablen für itensor [Contents][Index]

#### 20.2.2.2 Tensorsymmetrien

Optionsvariable: allsym

  Standardwert: `false`

  Hat die Optionsvariable `allsym` den Wert `true`, werden alle indizierten Größen als symmetrisch in ihren kovarianten und kontravarianten Indizes angenommen. Ist der Wert `false`, werden keine Symmetrien für die Indizes angenommen. Die Indizes von Ableitungen werden immer als symmetrisch angenommen, außer wenn die Optionsvariable `iframe_flag` den Wert `true` hat.

Funktion: decsym (tensor, m, n, [cov_1, cov_2, …], [contr_1, contr_2, …])

  Definiert Symmetrieeigenschaften für den Tensor tensor mit m kovarianten und n kontravarianten Indizes. Die Argumente cov_i und contr_i geben Symmetrieeigenschaften zwischen den kontravarianten und kontravarianten Indizes an. Die Argumente haben die Form `symoper(index_1, index_2, ...`. `symoper` ist einer der Symmetrieeigenschaften `sym` für symmetrisch, `anti` für antisymmetrisch oder `cyc` für zyklisch und die Argumente index_i sind ganze Zahlen, die die Position des Index im Tensor tensor angegeben. Weiterhin ist die Form `symoper(all)` möglich. In diesem Fall wird die entsprechende Symmetrieeigenschaft für alle Indizes angenommen.

  Ist zum Beispiel `b` ein Tensor mit 5 kovarianten Indizes, dann wird mit `decsym(b, 5, 3, [sym(1,2), anti(3,4)], [cyc(all)])` definiert, dass `b` symmetrisch in den Indizes `1` und `2`, antisymmetrisch in den Indizes `3` und `4` sowie zyklisch in allen kontravarianten Indizes ist.

  Symmetrieeigenschaften, die mit der Funktion `decsym` definiert werden, werden von der Funktion `canform` angewendet.

  Beispiele:

      (%i1) load(itensor);
      (%o1)      /share/tensor/itensor.lisp
      (%i2) expr:contract( expand( a([i1, j1, k1], [])
                 *kdels([i, j, k], [i1, j1, k1])))$
      (%i3) ishow(expr)$
      (%t3)         a      + a      + a      + a      + a      + a
                     k j i    k i j    j k i    j i k    i k j    i j k
      (%i4) decsym(a,3,0,[sym(all)],[]);
      (%o4)                                done
      (%i5) ishow(canform(expr))$
      (%t5)                              6 a
                                            i j k
      (%i6) remsym(a,3,0);
      (%o6)                                done
      (%i7) decsym(a,3,0,[anti(all)],[]);
      (%o7)                                done
      (%i8) ishow(canform(expr))$
      (%t8)                                  0
      (%i9) remsym(a,3,0);
      (%o9)                                done
      (%i10) decsym(a,3,0,[cyc(all)],[]);
      (%o10)                               done
      (%i11) ishow(canform(expr))$

      (%t11)                        3 a      + 3 a
                                       i k j      i j k

      (%i12) dispsym(a,3,0);
      (%o12)                     [[cyc, [[1, 2, 3]], []]]

Funktion: remsym (tensor, m, n)

  Entfernt die Symmetrieeigenschaften des Tensors tensor, der m kovariante und n kontravariante Indizes hat.

Funktion: canform (expr)
Funktion: canform (expr, rename)

  Vereinfacht den Ausdruck expr indem alle Dummy-Indizes umbenannt und umgeordnet werden, wobei vorhandene Symmetrieeigenschaften angewendet werden. Hat die Optionsvariable `allsym` den Wert `true`, werden alle Indizes als symmetrisch angenommen. Ansonsten werden Symmetrieeigenschaften angewendet, die mit der Funktion `decsym` definiert sind. Die Dummy-Indizes werden auf gleiche Weise umbenannt wie von der Funktion `rename`. Wird `canform` auf einen großen Ausdruck angewendet, kann die Ausführung eine lange Zeit beanspruchen. Die Rechenzeit kann verkürzt werden, indem zuerst die Funktion `rename` auf den Ausdruck angewendet wird.

  `canform` kann einen Ausdruck nicht immer in die einfachste Form bringen, jedoch ist das Ergebnis immer mathematisch korrekt.

  Erhält das optionale zweite Argument rename den Wert `false`, wird die Umbenennung mit der Funktion `rename` nicht ausgeführt.

  Für ein Beispiel siehe die Funktion `decsym`.

Next: Tensoranalysis, Previous: Behandlung indizierter Größen, Up: Funktionen und Variablen für itensor [Contents][Index]