===============================================================================
HELP FOR: grdefine
===============================================================================
CALLING SEQUENCE: grdefine( newObject, symm, [definition], [subRanges] )
PARAMETERS: newObject - string indicating the object to be defined
symm - symmetries of the new object
definition - (optional) tensor equation to define newObject
subRanges - (optional) restrictions on the ranges of
implicit summations in the definition
-------------------------------------------------------------------------------
SYNOPSIS:
[ Note: In GRTensorII 1.50, grdefine() has been superceded by the command
grdef(). For more information consult ?grdef. ]
- grdefine() is used to define new GRTensorII objects. It can be used in one
of two ways. A tensor can be defined without expressing it in terms of
other objects, in which case the user must explicitly enter the
components when the object is calculated, or the user can define
the tensor in terms of other tensors and grdefine will automatically
create a procedure to calculate the object.
- newObject must be a string. For example `T{a b}`. Indices must be
enclosed by italic braces. Contravariant indices are prefixed with ^.
For example `T{a ^b}`. Basis indices are enclosed in parenthesis,
e.g. `R{(a) (b)}`.
- Index and tensor names must not conflict with any names already assigned in
the current MapleV session.
- The symmetries of the new object can be expressed by referring to an
existing object with identical symmetries. If no such objects exist,
or the object has no symmetries, then {} should be entered.
- A definition consists of a string containing a formula of indexed tensors.
See the help page for grdef() for a discussion of how these are
specified. Any unassigned name is permitted as a dummy index. Dummy indices
which occur twice (once covariantly and once contravariantly) are summed
over the dimension of the space Ndim. Summations can be restricted with the
subRanges argument.
- A definition may involve objects from different spacetimes.
Indexed tensors in the definition will by default refer to the objects
from the default metric. Indexed tensors in the definition of the form
e.g. `R<1>{a b}` will refer to an additional metric. The user must
indicate the addition metric name when calculating the object (see below).
- The subRanges argument is used to provide a set of subRanges for implied
summations when required. If an index a is used as a dummy index, but we
require that a be summed only from 2..Ndim then the subRange value
{a=2..Ndim} accomplishes this. If the summation range is to be referred
to the dimension of an additional metric then {a=2..Ndim[1]} can be used.
- The defining expression may be an equation, e.g. `G{a b} = T{a b}`.
In such cases three objects are created, one for each side of the equation,
and one for the equation itself.
-------------------------------------------------------------------------------
EXAMPLES:
#
# define a symmetric, covariant tensor to be entered explicitly
#
>grdefine( `T{a b}`, g(dn,dn) );
Created definition for T(dn,dn)
#
# now define a synonym for the Einstein tensor
#
> grdefine( `E{a b}`, g(dn,dn), `R{a b} - 1/2*Ricciscalar*g{a b}` );
Created definition for E(dn,dn)
#
# use implied summation to contract Weyl with Riemann
#
>grdefine( newScalar, {}, `R{a b c d}*C{^a ^b ^c ^d}` );
Created definition for newScalar
#
# perform a restricted summation of Riemann over only 1..Ndim-1
#
>grdefine( `Weird{a b}`, g(dn,dn), `R{^c a c b}`, {c=1..Ndim-1});
Created definition for Weird(dn,dn)
#
# take the difference of two metrics
#
>grdefine( `FF1{a b}`, g(dn,dn), `g{a b} - g<1>{a b}` );
Created definition for FF1(dn(a,b))
>grcalc(1=rw,FF1(dn,dn));
#
# define Einstein's Equation
#
>grdefine( `Eeqn{a b}`, g(dn,dn), `G{a b} = T{a b}` );
Created definition for lhs_Eeqn(dn,dn)
Created definition for rhs_Eeqn(dn,dn)
Created definition for Eeqn(dn,dn)
-------------------------------------------------------------------------------
SEE ALSO: grdef, grt_objects, grt_operands, grsavedef, grundefine,
grloaddef.
===============================================================================