Next: Torsion und Nichtmetrizität, Previous: Tensoren in gekrümmten Räumen, Nach oben: Funktionen und Variablen für itensor [Inhalt][Index]
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");
(%o1) /share/tensor/itensor.lisp
(%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
Standardwert: false
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.
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.
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
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.
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.
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
Frame coefficient of the first kind. This tensor represents the contribution
of the frame metric to the connection coefficient of the first 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
The frame field. Contracts with the inverse frame field (ifri) to
form the frame metric (ifg).
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.
The frame metric. Defaults to kdelta, but can be changed using
components.
The inverse frame metric. Contracts with the frame metric (ifg)
to kdelta.
Default value: true
Specifies how the frame bracket (ifb) is computed.
Next: Torsion und Nichtmetrizität, Previous: Tensoren in gekrümmten Räumen, Nach oben: Funktionen und Variablen für itensor [Inhalt][Index]