
   This file is part of GRG 3.2  Copyright (C) 1997 Vadim V. Zhytnikov

   This note outlines the main new features of GRG 3.2 compared to
   the previous version GRG 3.1. Detailed description of GRG 3.2 can
   be found in the manual.

1. Dimensionality and Signature

   GRG 3.2 removes the most important restriction of GRG 3.1 -
   now GRG 3.2 works in any dimension greater or equal 2.
   The only signatures GRG 3.1 works with are (-1,1,1,1) or
   (1,-1,-1,-1). In GRG 3.2 you can specify any signature of the
   form diag(+1,-1,...).

2. Metric and Frame

   In GRG 3.1 the space-time metric can be specified only in the form
   of the tetrad and the tetrad metric must be quasi-orthogonal (here
   "quasi" means any metric having constant coefficients: null,
   semi-null, diagonal Lorentzian etc).  In GRG 3.2 you can use
   arbitrary metric and frame (in GRG 3.2 we use the name "frame"
   instead of "tetrad" since the latter is essentially  4-dimensional).
   In general the space-time line-element in GRG 3.1 and 3.2 is

        2           i  j
     d s   =  G    T  T
               ij

   Here G.i.j (M in GRG 3.1) is the Metric and T'i is frame (former
   Tetrad). In GRG 3.1 the G (M) has predefined value equals to Null
   Metric and can be changed only by assigning a new value to M or
   loading the file "lorentz.loa" or similar. Even more, the coefficients
   of M in GRG 3.1 must be constant ("tetrad" formalism). In GRG 3.2 both
   G.i.j and T'i are initially indefinite. You can assign any value
   to these quantities  and G is no not necessary constant now. But if
   no value is given to G or T then GRG 3.2 automatically assumes
   the default values to these quantities

       i        i
      T   =  d x

      G   = diag(i,j)
       ij

   where diag(i,j) is the matrix having only diagonal nonzero
   elements +1 or -1 according to current signature. For example,
   if dimensionality 3 with the signature diag(+1,-1,+1) and no
   value is specified to T and G than GRG 3.2 automatically assumes

                                0           1           2
      G    = diag(+1,-1,+1),   T  = d x0,  T  = d x1,  T  = d x2,
        ij

   which gives finally

         2         2       2       2
      d s   =  d x0  - d x1  + d x2

   where x0, x1, x2 are the coordinates. Thus, if you want
   to work in "tetrad" formalism - give the value to T and
   leave G to be default constant diagonal metric. Otherwise,
   if you want to use usual coordinate formalism - assign the
   value to G only and the default holonomic value will be
   automatically assigned to frame T.

3. Nonmetricity

   GRG 3.2 works with arbitrary affine connection having both the
   torsion and nonmetricity. The corresponding switches TORSION and
   NONMETR determine the connection type.

4. Better Representation of Built-in and User-Defined objects

   GRG 3.2 knows various symmetries with respect to index permutation:
   symmetry, antisymmetry, cyclic symmetry and Hermitian symmetry.
   All these symmetries can be applied to both single indices and the
   groups of indices.  The groups of symmetric indices can be nested
   (like the symmetries of the Riemann curvature tensor).

   In GRG 3.2 the built-in and user-defined objects can have indices
   of the following types: holonomic (coordinate) indices (new),
   frame indices, undotted and dotted spinorial indices, and
   enumerating indices. All indices can be upper and lower (upper
   spinorial indices are new).

   GRG 3.2 understands tensor densities and pseudo-tensors.

   The "New Object" declaration is redesigned to account for the
   aforementioned changes.

5. Output Modes

   The new and quite unique feature of GRG 32 is that it can export
   the results of computations into other programs. Now GRG 3.2
   supports output modes for all major computer algebra systems
   Maple, Mathematica, Macsyma, REDUCE and the document preparation
   system LaTeX. Thus, for example, you can write result of
   computation into a file in the Maple input format and later use
   Maple to work with the data. LaTeX output mode allows one to
   insert the results of computation into a document.

6. GRG 3.2 is compatible with the REDUCE graphic-shells such as XR
   (under UNIX) or PSLLW (under MS Windows). In graphic mode GRG 3.2
   provides niece output with greek characters, integral signs etc.

7. The quite restrictive feature of GRG 3.1 is that it permits to use
   only some fixed set of the REDUCE built-in functions (such as SIN,
   COS, LOG etc) and switches. GRG 3.2 is not so restrictive.
   You can use any REDUCE switch, function (operator in the REDUCE
   terminology) or user-defined procedure. For example:
   (a) You can load the package specfn and use in GRG all special
       function defined in this package.
   (b) You can write your own procedure in the REDUCE language
       and apply it in GRG.
   (c) You can use built-in REDUCE operators such as INT, LIMIT,
       SUM, PROD, DEN, NUM and any other.
   Notice also GRG 3.2 allows one to apply REDUCE procedures and
   functions not only to algebraic expressions but to vectors
   and exterior forms in accordance to the distributive law.

8. Many GRG built-in objects and formulas (ways of calculation) have
   limited scope. Some are valid in a particular dimension only,
   some, like spinors, require standard null frame etc.  GRG 3.2
   always checks the applicability conditions for any built-in
   object and formula.

9. The mechanism for computing covariant differentials and Lie
   derivatives in GRG 3.1 is rather clumsy. In GRG 3.2 it is
   completely replaced by another simpler and more natural method:
   one can use covariant exterior differentials, covariant
   derivatives and Lie derivatives directly in expressions.

10. In GRG 3.2 one can access the left- and right-hand side of
    equations using LHS(...) and RHS(...).  The equations are
    properly transformed under the frame (tetrad) rotation and
    the coordinate transformations.

11. In GRG 3.2 expressions are case sensitive but commands and names
    of objects are not. Thus, the variable alpha is different from
    ALPHA but command Find is the same as find, FIND etc.

12. Usually irreducible spinors are labelled in GRG by so called
    summed spinorial index. This method provides the most efficient
    way to store irreducible spinor components but it is inconvenient
    when the spinor is used in expressions. Now any irreducible
    spinor can be labeled by both single summed index of rank N or by
    a group of N single spinorial indices. Analogously the frame
    index (for null frame) can be also represented as a pair of
    single spinorial indices.

13. GRG 3.2 provides simple interface to the REDUCE algebraic
    equation solver. The solutions can be used in the "Let" and "SUB"
    substitutions.

14. GRG 3.2 includes algebraic classification schemes for
    the following spinors: Weyl spinor W_ABCD, Traceless
    Ricci spinor C_AB_CD~, Electromagnetic stress spinor F_AB,
    Vector V_A_B~ (in spinorial representation). The work
    of all classification algorithms is traced. The command
    Petrov Type; is replaced by the command Classify <object>;.

15. If some built-in object has several ways of calculation GRG 3.2
    provides better method for choosing the particular way.  One can
    indicate the way both by its name and by specifying any object
    which is present in the right-hand side of the corresponding
    formula.

16. GRG 3.2 provide interface to the REDUCE package dfpart.red
    written by H. Melenk. This very useful package introduces the
    notion of the partial derivative of a function with respect to
    its n-th argument and performs the chain differentiation.

17. Configuring GRG

    GRG 3.2 has some configuration facilities. The configuration
    file allows one to define:
      (a) the default dimensionality and signature,
      (b) the default position of switches,
      (c) the packages which must be preloaded,
      (d) the synonymy for the commands.

    Actually there are two configuration files. The first grgcfg.sl
    defines the "global" GRG configuration at the moment of the
    compilation. You can edit this file before compiling GRG and the
    corresponding settings will be active whenever GRG is started.
    The second configuration file grg.cfg is optional. You can keep
    it in your working directory to override the "global" settings.

    Another configuration tool is the environment variable "grg".
    This environment variable should contain the name of some
    directory (so called GRG System Directory). This directory can
    serve as the depository for the files which are oftenly used.
    So it is not necessary to have their copy in every working
    directory.

18. The GRG commands are terminated now only by the symbol ;
    (not by ; and ?). The end-of-file symbol for GRG batch
    files has changed from ! to $.

19. The GRG 3.1 command Help <object>; is replaced by the
    command Show <object>;. The commands Mode; and Signature;
    are replaced by the command Status;.

20. Built in Objects and Ways of calculation

    The list of built-in objects and formulas is significantly
    changed. Some objects and ways of calculation are renamed,
    some abolished but many other are added. Now GRG 3.2 has
    built-in object and formulas for:
      - Connection, torsion, nonmetricity (new).
      - Curvature.
      - Irreducible decomposition of the curvature, torsion, and
        nonmetricity in any dimension (new).
      - Einstein equations.
      - Scalar field with minimal and non-minimal interaction.
      - Electromagnetic field.
      - Yang-Mills field.
      - Dirac spinor field.
      - Geodesic equation (new).
      - Optical scalars (new).
      - Kinematics for time-like congruences (new).
      - Ideal fluid and spin fluid (new).
      - Newman-Penrose formalism (new).
      - Gravitational equations for the theory with arbitrary
	gravitational Lagrangian in Riemann and Riemann-Cartan
	spaces.

----------------------------------------------------------------------
