10.2. Frequently Asked Questions

1. Why is delta contraction automatic? I want to have full control on every single detail of the process.
    Why is metric contraction not automatic? It is boring to ask continuously for trivial tasks.

Those are two opposite approaches to the issue of automatic simplification. Too little automatic simplification makes the computations hard and slow, while too much automatic simplification makes the process too restrictive and the result seems just magic. Following Mathematica, we have tried to automatize all those things which are commonly required, like contraction of any tensor with delta, or the expansion of derivatives of products using the Leibnitz rule. However, most of the processes are not automatic: simplification, metric contraction, commutation of derivatives, etc.
There are some processes for which the user can choose whether they are automatic or not: look for the pairs commandStart / commandStop.

2. I want to define several tensors at the same time. Why not allowing this syntax?
            DefTensor[{T[a], S[b,c], R[-a,-b,-c,-d}, M]

We do not include new definitions which do not save time or space with respect to their Mathematica counterparts. This helps learning Mathematica, and save space in xTensor`. In that particular example we recommend to use
        Map[ DefTensor[#, M]&, {T[a], S[b,c], R[-a,-b,-c,-d]} ]
or simply threading
        Thread[ DefTensor[{T[a], S[b,c], R[-a,-b,-c,-d}, M] ]

3. In MathTensor many commands have an additional argument to map them only to a certain part of an expression. Why don't you have the same thing?

The answer is identical to that of question 2. Use the syntax MapAt[f, expr, n] to map the function f on the n-th term of expr.


Created by Mathematica  (May 16, 2008) Valid XHTML 1.1!