- Indicial Tensor Manipulation package. It may be loaded by
LOADFILE("itensr"); A manual for the Tensor packages is
available in share/tensor.descr. A demo is available by
DEMO("itenso.dem1"); (and additional demos are in
("itenso.dem2"), ("itenso.dem3") and following).
- There are two tensor packages in MACSYMA, CTENSR and
ITENSR. CTENSR is Component Tensor Manipulation, and may be accessed
with LOAD(CTENSR); . ITENSR is Indicial Tensor Manipulation, and is
loaded by doing LOAD(ITENSR); A manual for CTENSR AND ITENSR is
available from the LCS Publications Office. Request MIT/LCS/TM-167.
In addition, demos exist on the TENSOR; directory under the filenames
CTENSO DEMO1, DEMO2, etc. and ITENSO DEMO1, DEMO2, etc. Do
DEMO("ctenso.dem1"); or DEMO("itenso.dem2"); Send bugs or
comments to RP or TENSOR.
[Tensor Package] Simplifies exp by renaming dummy
indices and reordering all indices as dictated by symmetry conditions
imposed on them. If ALLSYM is TRUE then all indices are assumed
symmetric, otherwise symmetry information provided by DECSYM
declarations will be used. The dummy indices are renamed in the same
manner as in the RENAME function. When CANFORM is applied to a large
expression the calculation may take a considerable amount of time.
This time can be shortened by calling RENAME on the expression first.
Also see the example under DECSYM. Note: CANFORM may not be able to
reduce an expression completely to its simplest form although it will
always return a mathematically correct result.
Function:CANTEN(exp)
[Tensor Package] Simplifies exp by renaming (see RENAME)
and permuting dummy indices. CANTEN is restricted to sums of tensor
products in which no derivatives are present. As such it is limited
and should only be used if CANFORM is not capable of carrying out the
required simplification.
Function:CARG(exp)
returns the argument (phase angle) of exp. Due to the
conventions and restrictions, principal value cannot be guaranteed
unless exp is numeric.
Variable:COUNTER
default: [1] determines the numerical suffix to be used in
generating the next dummy index in the tensor package. The prefix is
determined by the option DUMMYX[#].
Function:DEFCON(tensor1,<tensor2,tensor3>)
gives tensor1 the property that the
contraction of a product of tensor1 and tensor2 results in tensor3
with the appropriate indices. If only one argument, tensor1, is
given, then the contraction of the product of tensor1 with any indexed
object having the appropriate indices (say tensor) will yield an
indexed object with that name, i.e.tensor, and with a new set of
indices reflecting the contractions performed.
For example, if METRIC: G, then DEFCON(G) will implement the
raising and lowering of indices through contraction with the metric
tensor.
More than one DEFCON can be given for the same indexed object; the
latest one given which applies in a particular contraction will be
used.
CONTRACTIONS is a list of those indexed objects which have been given
contraction properties with DEFCON.
Function:FLUSH(exp,tensor1,tensor2,...)
Tensor Package - will set to zero, in
exp, all occurrences of the tensori that have no derivative indices.
Function:FLUSHD(exp,tensor1,tensor2,...)
Tensor Package - will set to zero, in
exp, all occurrences of the tensori that have derivative indices.
Function:FLUSHND(exp,tensor,n)
Tensor Package - will set to zero, in exp, all
occurrences of the differentiated object tensor that have n or more
derivative indices as the following example demonstrates.
(C1) SHOW(A([I],[J,R],K,R)+A([I],[J,R,S],K,R,S));
J R S J R
(D1) A + A
I,K R S I,K R
(C2) SHOW(FLUSHND(D1,A,3));
J R
(D2) A
I,K R
Function:KDELTA(L1,L2)
is the generalized Kronecker delta function defined in
the Tensor package with L1 the list of covariant indices and L2 the
list of contravariant indices. KDELTA([i],[j]) returns the ordinary
Kronecker delta. The command EV(EXP,KDELTA) causes the evaluation of
an expression containing KDELTA([],[]) to the dimension of the
manifold.
Function:LC(L)
is the permutation (or Levi-Civita) tensor which yields 1 if
the list L consists of an even permutation of integers, -1 if it
consists of an odd permutation, and 0 if some indices in L are
repeated.
Function:LORENTZ(exp)
imposes the Lorentz condition by substituting 0 for all
indexed objects in exp that have a derivative index identical to a
contravariant index.
Function:MAKEBOX(exp)
will display exp in the same manner as SHOW; however,
any tensor d'Alembertian occurring in exp will be indicated using the
symbol []. For example, []P([M],[N]) represents
G([],[I,J])*P([M],[N],I,J).
Function:METRIC(G)
specifies the metric by assigning the variable METRIC:G; in
addition, the contraction properties of the metric G are set up by
executing the commands DEFCON(G), DEFCON(G,G,KDELTA).
The variable METRIC, default: [], is bound to the metric, assigned by
the METRIC(g) command.
Function:NTERMSG()
gives the user a quick picture of the "size" of the
Einstein tensor. It returns a list of pairs whose second elements
give the number of terms in the components specified by the first
elements.
Function:NTERMSRCI()
returns a list of pairs, whose second elements give the
number of terms in the RICCI component specified by the first
elements. In this way, it is possible to quickly find the non-zero
expressions and attempt simplification.
Function:NZETA(Z)
returns the complex value of the Plasma Dispersion Function
for complex Z.
NZETAR(Z) ==> REALPART(NZETA(Z))
NZETAI(Z)
returns IMAGPART(NZETA(Z)). This function is related to the complex
error function by
NZETA(Z) = %I*SQRT(%PI)*EXP(-Z^2)*(1-ERF(-%I*Z)).
Function:RAISERIEMANN(dis)
returns the contravariant components of the Riemann
curvature tensor as array elements UR[I,J,K,L]. These are displayed
if dis is TRUE.
Variable:RATEINSTEIN
default: [] - if TRUE rational simplification will be
performed on the non-zero components of Einstein tensors; if
FACRAT:TRUE then the components will also be factored.
Variable:RATRIEMAN
- This switch has been renamed RATRIEMANN.
Variable:RATRIEMANN
default: [] - one of the switches which controls
simplification of Riemann tensors; if TRUE, then rational
simplification will be done; if FACRAT:TRUE then each of the
components will also be factored.
Function:REMCON(tensor1,tensor2,...)
removes all the contraction properties
from the tensori. REMCON(ALL) removes all contraction properties from
all indexed objects.
Function:RICCICOM(dis)
Tensor package) This function first computes the
covariant components LR[i,j] of the Ricci tensor (LR is a mnemonic for
"lower Ricci"). Then the mixed Ricci tensor is computed using the
contravariant metric tensor. If the value of the argument to RICCICOM
is TRUE, then these mixed components, RICCI[i,j] (the index i is
covariant and the index j is contravariant), will be displayed
directly. Otherwise, RICCICOM(FALSE) will simply compute the entries
of the array RICCI[i,j] without displaying the results.
Function:RINVARIANT()
Tensor package) forms the invariant obtained by
contracting the tensors
R[i,j,k,l]*UR[i,j,k,l].
This object is not
automatically simplified since it can be very large.
Function:SCURVATURE()
returns the scalar curvature (obtained by contracting
the Ricci tensor) of the Riemannian manifold with the given metric.
Function:SETUP()
this has been renamed to TSETUP(); Sets up a metric for
Tensor calculations.
Function:WEYL(dis)
computes the Weyl conformal tensor. If the argument dis is
TRUE, the non-zero components W[I,J,K,L] will be displayed to the
user. Otherwise, these components will simply be computed and stored.
If the switch RATWEYL is set to TRUE, then the components will be
rationally simplified; if FACRAT is TRUE then the results will be
factored as well.