## Maxima – 150 – itensor – 9 Continuo da qui, copio dal Reference Manual, PDF scaricabile da qui, sono a p.449.

Moving frames

Maxima now has the ability to perform calculations using moving frames. These can be orthonormal frames (tetrads, vielbeins) or an arbitrary frame.

To use frames, you must first set `iframe_flag` to true. This causes the Christoffel-symbols, `ichr1` and `ichr2`, to be replaced by the more general frame connection coefficients `icc1` and `icc2` in calculations. Speficially, the behavior of `covdiff` and `icurvature` is changed.

The frame is defined by two tensors: the inverse frame field (`ifri`, the dual basis tetrad), and the frame metric `ifg`. The frame metric is the identity matrix for orthonormal frames, or the Lorentz metric for orthonormal frames in Minkowski spacetime. The inverse frame field defines the frame base (unit vectors). Contraction properties are defined for the frame field and the frame metric.

When `iframe_flag` is true, many `itensor` expressions use the frame metric `ifg` instead of the metric defined by `imetric` for raising and lowerind indices.

Important: Setting the variable `iframe_flag` to `true` does NOT undefine the contraction properties of a metric defined by a call to `defcon` or `imetric`. If a frame field is used, it is best to define the metric by assigning its name to the variable imetric and NOT invoke the `imetric` function.

Maxima uses these two tensors to define the frame coefficients (`ifc1` and `ifc2`) which form part of the connection coefficients (`icc1` and `icc2`), as the following example demonstrates:

``````(%i1) load(itensor)\$

(%i2) iframe_flag:true;
(%o2)                                true
(%i3) ishow(covdiff(v([],[i]),j))\$
i        i     %1
(%t3)                         v   + icc2     v
,j       %1 j
(%i4) ishow(ev(%,icc2))\$
%1     i       i
(%t4)                         v   ifc2     + v
%1 j    ,j
(%i5) ishow(ev(%,ifc2))\$
%1    i %2                i
(%t5)                    v   ifg     ifc1        + v
%1 j %2    ,j
(%i6) ishow(ev(%,ifc1))\$
%1    i %2
v   ifg     (ifb        - ifb        + ifb       )
j %2 %1      %2 %1 j      %1 j %2     i
(%t6)      -------------------------------------------------- + v
2                             ,j
(%i7) ishow(ifb([a,b,c]))\$
%3    %4
(%t7)               (ifri        - ifri       ) ifr   ifr
a %3,%4       a %4,%3     b     c``````

An alternate method is used to compute the frame bracket (`ifb`) if the `iframe_bracket_form` flag is set to `false`:

``````(%i8) block([iframe_bracket_form:false],ishow(ifb([a,b,c])))\$
%6    %5        %5      %6
(%t8)              ifri     (ifr   ifr     - ifr     ifr  )
a %5     b     c,%6      b,%6    c``````

`iframes ()`
Since in this version of Maxima, contraction identities for `ifr` and `ifri` are always defined, as is the frame bracket (`ifb`), this function does nothing.

`ifb`
The frame bracket. The contribution of the frame metric to the connection coefficients is expressed using the frame bracket:

``````              - ifb      + ifb      + ifb
c a b      b c a      a b c
ifc1    = --------------------------------
abc                  2``````

The frame bracket itself is defined in terms of the frame field and frame metric. Two alternate methods of computation are used depending on the value of `frame_bracket_form`. If `true` (the default) or if the `itorsion_flag` is true:

``````              d      e                                      f
ifb =  ifr    ifr   (ifri      - ifri      - ifri    itr   )
abc    b      c       a d,e       a e,d       a f    d e``````

Otherwise:

``````                 e      d        d      e
ifb    = (ifr    ifr    - ifr    ifr   ) ifri
abc       b      c,e      b,e    c        a d``````

`iccc1`
Connection coefficients of the first kind. In `itensor`, defined as

``````    icc1    = ichr1    - ikt1    - inmc1
abc        abc       abc        abc``````

In this expression, if `iframe_flag` is `true`, the Christoffel-symbol `ichr1` is replaced with the frame connection coefficient `ifc1`. If `itorsion_flag` is `false`, `ikt1` will be omitted. It is also omitted if a frame base is used, as the torsion is already calculated as part of the frame bracket. Lastly, of `inonmet_flag` is `false`, `inmc1` will not be present.

`icc2`
Connection coefficients of the second kind. In `itensor`, defined as

``````        c         c        c         c
icc2   = ichr2   - ikt2   - inmc2
ab        ab       ab        ab``````

In this expression, if `iframe_flag` is `true`, the Christoffel-symbol `ichr2` is replaced with the frame connection coefficient `ifc2`. If `itorsion_flag` is `false`, `ikt2` will be omitted. It is also omitted if a frame base is used, as the torsion is already calculated as part of the frame bracket. Lastly, of `inonmet_flag` is `false`, `inmc2` will not be present.

`ifc1`
Frame coefficient of the first kind (also known as Ricci-rotation coefficients.) This tensor represents the contribution of the frame metric to the connection coefficient of the first kind. Defined as:

``````              - ifb      + ifb      + ifb
c a b      b c a      a b c
ifc1    = --------------------------------
abc                   2``````

`ifc2`
Frame coefficient of the second kind. This tensor represents the contribution of the frame metric to the connection coefficient of the second kind. Defined as a permutation of the frame bracket (`ifb`) with the appropriate indices raised and lowered as necessary:

``````        c       cd
ifc2   = ifg   ifc1
ab             abd``````

`ifr`
The frame field. Contracts with the inverse frame field (`ifri`) to form the frame metric (`ifg`).

`ifri`
The inverse frame field. Specifies the frame base (dual basis vectors). Along with the frame metric, it forms the basis of all calculations based on frames.

`ifg`
The frame metric. Defaults to `kdelta`, but can be changed using components.

`ifgi`
The inverse frame metric. Contracts with the frame metric (`ifg`) to `kdelta`.

`iframe_bracket_form`
Default value: `true`.

Specifies how the frame bracket (`ifb`) is computed.

Posta un commento o usa questo indirizzo per il trackback.