Updates to Physics in Maple 16
The Physics package of Maple 16 includes 17 new commands, extended its functionality in Vector and Tensor Analysis, General Relativity and Quantum Fields, and brings with it the largest number of developments since its introduction in Maple 11, underscoring Maple's goal of having a state-of-the-art environment for algebraic computations in Physics.
In addition, a vast number of changes were introduced towards making the computational experience as natural as possible, resembling the paper-and-pencil way of doing computations and with textbook-quality display of results.
Tensors in Special and General Relativity (Examples)
Maple's Physics introduces contravariant indices in a simple way: in your input, prefix contravariant indices with ~; in the output they are displayed as superscripts, without the ~.
In a tensorial expression, you can enter any pair of contracted indices as one covariant, the other contravariant, not being relevant which one is of which kind, so you can also enter both covariant or both contravariant and the system will automatically rewrite them as one covariant and the other contravariant.
A complete set of General Relativity tensors got added to Physics, mainly D_, representing the covariant derivative, Christoffel, LeviCivita in curvilinear coordinates, Einstein, Ricci, Riemann and Weyl, all displayed on the screen with standard physics textbook notation.
You can compute with these tensors algebraically, as done with paper and pencil, automatically taking into account their symmetry properties, and Checking tensor indices in expressions, differentiating or Simplifying them using Einstein's sum rule for repeated indices.
A set of working tools for General Relativity got added, including TransformCoordinates, and TensorArray, to respectively perform transformations of coordinates in an arbitrary tensorial expression, and create a tensor array to compute each of its tensorial components, SumOverRepeatedIndices, to expand the summation in expressions written using Einstein's sum rule for repeated indices and SubstituteTensorIndices to substitute covariant and/or contravariant indices in tensorial expressions.
You can now use the Physics `.` product operator instead of * in order to "multiply and simplify" - in one step - contracted products of tensors. This permits simplifying only the product sub-expressions you want while keeping the remaining products expressed using *.
A set of convert routines permits rewriting expressions in terms of Christoffel symbols, or derivatives of the metric or expand covariant derivatives.
The d_ indexed differential operator got extended to work also without indices, the same way as the new covariant D_, in order to compute differentials.
When working in curvilinear coordinates, the LeviCivita tensor can optionally be set to galilean or nongalilean, with its display automatically changing from ε to Ε.
The new general relativity tensors update the values of their components automatically, on the fly, according to the changes you introduce in the spacetime metric. When the indices are integer numbers these tensors automatically return the corresponding value taking into account the indices' character (covariant/contravariant); or return the whole set of nonzero values if requested.
When all but two of the indices of the relativity tensors are numeric (covariant or contravariant), you can see the corresponding 2 x 2 matrix by passing the keyword matrix as an additional index. When no indices are passed, all the new tensors return an Array with all their covariant components; in the case of tensors of 2 indices the corresponding Matrix is returned/displayed.
It is now possible to set the spacetime metric as desired, or directly from a database of metrics having special properties known in the literature. The metric can be entered with Setup, as a matrix, or as a set with its nonzero components, or directly as the line element; or simpler: pass the corresponding database keyword directly to the spacetime metric g_ command.
By passing a portion of a metric keyword directly to the metric g_ it is possible to list all the database' metrics matches in order to refine a search and choose the desired one.
To represent spacetime coordinate it is now possible to use any desired list of names, including predefined cartesian, cylindrical and spherical lists as in the Physics:-Vectors subpackage, and with t representing the time. You can work with many systems of coordinates at the same time.
In galilean or nongalilean systems of references, spacetime tensors can simultaneously have spacetime and/or only space indices.
A new MetricSearch assistant in the DifferentialGeometry package permits searching a database of solutions to the Einstein equations.
New commands for working with expressions involving anticommutative variables and functions (Examples )
Gtaylor computes Taylor series with respect to anticommutative variables of expressions involving anticommutative variables
ToFieldComponents and ToSuperfields bring into the worksheet the core functionality that was missing in order to implement supersymmetry and supermultiplets (an implementation of supersymmetry itself, however, is not yet present in M16).
PerformOnAnticommutativeSystem permits reusing some parts of the existing Maple library originally written to handle problems with only commutative variables (that are not part of the Physics), in order to tackle the corresponding generalized problems involving anticommutative variables.
Normal is equivalent to a generalization of normal to work on expressions simultaneously involving commutative, anticommutative and noncommutative variables
Coefficients computes the coefficients of variables or functions, in algebraic expressions involving anticommutative and noncommutative objects.
GrassmannParity returns 0, 1 or undefined according to whether the given object is commutative, anticommutative or noncommutative.
Most of the symmetry commands of PDEtools were extended to handle anticommutative variables, including all of the PDEtools:-Library, so that all that functionality can now be used in Physics problems together with Physics commands.
All the vector analysis routines of Physics:-Vectors can now compute with unit vectors and geometrical coordinates that have functional dependency, as in θ⁡t or the unit vector ρ∧⁡t, enlarging the mathematical representation capabilities.
The knowledge about relationships between cartesian, cylindrical and spherical coordinates formerly coded in Physics:-Vectors:-VectorDiff got incremented, then merged into Physics:-diff, so that now there is a unified differentiation command able to perform differentiation automatically taking into account physics or geometrical contexts.
Tensors in Special and General Relativity
When you load Physics the spacetime is set to Minkowski type. To see the current spacetime metric, enter it without indices
For algebraic computing with tensors, Maple 16 introduces contravariant indices in a simple way: to indicate that an index is contravariant, prefix it with ~ (tilde)
Define some spacetime tensors for exploration
Defined objects with tensor properties
For all the tensors defined, the Physics commands will use the Einstein sum rule for repeated indices when manipulating them (simplification, differentiation, etc.). You can enter any pair of contracted indices one covariant and the other contravariant, not being relevant which one is of which kind, so you can also enter both covariant or both contravariant and the system will automatically rewrite them as one covariant and the other contravariant.
In this way you don't need to focus your attention on the covariant/contravariant character of repeated indices when entering expressions. To check and determine the repeated and free indices use Check
The repeated indices per term are: ...,...,..., the free indices are: ...
To expand the summation over repeated indices implied in Einstein's summation convention, taking into account the covariant and contravariant character of the indices, use SumOverRepeatedIndices
The simplification and differentiation of tensorial expressions automatically use Einstein's summation rule
Besides its use in quantum mechanics, the Physics `.` operator is now also a handy shortcut to "multiply and simplify" contracted indices in one step. This is useful when handling expressions where you want the contraction to be simplified right away or only in some places. Recalling that multiplication is left associative, you may need to put parenthesis to get what you want. For example, replace in (8) only the third `*` by `.`
Set the spacetime metric to be the Schwarzschild in spherical coordinates: you can now do that in various manners (see Setup and g_), the simplest of which is to pass part of the identifying keyword directly to the metric tensor g_
⁢Systems of spacetime coordinates are:⁢X=r,θ,φ,t
⁢Default differentiation variables for d_, D_ and dAlembertian are:⁢X=r,θ,φ,t
Setting lowercaselatin_is letters to represent space indices
⁢The Schwarzschild metric in coordinates ⁢r,θ,φ,t
Signature: - - - +
To see the corresponding line element pass the keyword line_element; the differentials are expressed using d_
A coordinate transformation taking the metric g_ to a conformal euclidean form, i.e. with line element proportional to ∂ρ2+ρ2⁢∂⁡θ2+sin⁡θ2⁢∂⁡φ2⁢
TR ≔ r=1+2⁢m4⁢ρ2⁢ρ
When the tensorial expression being transformed is the spacetime metric, you can optionally request the output to be the corresponding line element; the differentials of the coordinates are expressed using d_
TransformCoordinates does not set the metric to the result of the transformation; you can do that by passing its output to Setup.
The general relativity tensors automatically update their value when you set the metric. The contraction of all the indices of the Riemann tensor for the Schwarzschild metric
The indices of these tensors are automatically sorted according to their symmetry properties when computing with them algebraically, this facilitates zero recognition
Besides algebraic computations, it is possible to check the value of all or subsets of the tensor's components in a visually. For example, for Γ⁢⁢2,2⁢1 and Γ__1,2,2
The 2 x 2 matrix corresponding to Γ⁢⁢⁢α,β⁢1 is displayed when you pass the keyword matrix as an extra index
Compare with the matrix for Γ__1,α,β (so the first index is covariant and then not prefixed with ~)
The nonzero components of Γ⁢⁢⁢α,β⁢μ
For the all covariant Γ__μ,α,β you can pass all the indices covariant, or simpler: pass the keyword nonzero alone
In a Schwarzschild spacetime, the Ricci tensor has all its components equal to zero. To see the matrix form, either pass the keyword matrix, or simpler: pass no indices
The Ricci tensor is defined in terms of the Riemann tensor as Rμ,ν=R⁢⁢⁢⁢⁢μ,α,ν⁢α You can see how the four Riemann matrices add to form the Ricci matrix; for this purpose give values to the 1st and 3rd indices and pass the extra keyword matrix. This is the first matrix
To add the four of them use +
Alternatively, to save entering all the terms being added (4⁢n where n is the number of contracted indices), you can expand the implicit sum using SumOverRepeatedIndices, optionally indicating the simplifier
The Riemann scalars S1=148Rα,β,μ,ν⁢Rα,β,μ,ν−i⁢Rα,β,μ,ν⁢R*α,β,μ,ν and S2=196Rα,β,μ,ν⁢Rα,β,ρ,β⁢Rρ,β⁢⁢⁢⁢⁢⁢⁢μ,ν+i⁢Rα,β,μ,ν⁢Rα,β,ρ,β⁢R*ρ,β⁢⁢⁢⁢⁢⁢⁢μ,ν for the current metric
Rewrite the Riemann tensor with all its indices covariant in terms of Christoffel symbols and their derivatives and construct a tensor-array for the resulting tensorial expression; in view of the presence of trigonometric functions, use the simplifier option
R ≔ TensorArray⁡,simplifier=simplify@normal
Verify the result comparing R, constructed with the definition of Riemann in terms of Christoffel symbols, with the Riemann tensor itself
Compare all the nonzero values of the two arrays: for Riemann, pass the option nonzero, for R use ArrayElems; the nonzero components are same:
The covariant derivative of Aν⁡X
The divergence of Aμ⁡X
The covariant derivative for a tensor with mixed indices; in some cases expand will expand not just the covariant derivative; you can be more selective using convert; to avoid redundant display of the functionality of B use PDEtools:-declare
B⁡r,θ,φ,t⁢will now be displayed as⁢B
This expression can be rewritten in different ways. For example, rewrite Christoffel in terms of g_ and its derivatives, expand, then revert back the transformatione12
New commands for working with anticommutative variables and functions
Set first theta and Q as identifiers to work with type/anticommutative variables and functions (see Setup)
* Partial match of 'anticommutativepre' against keyword 'anticommutativeprefix'
The taylor series with respect to θ1 of a polynomial in θ1 of degree 1 is the polynomial itself; it can be computed with the new Gtaylor command
The coefficients of θ1 entering this series can be computed with the new Coefficients
The series expansion of a mathematical function
The expansion of an arbitrary function
Compare with the exact expansion performed with the new ToFieldComponents
* Partial match of 'useonly' against keyword 'useonlycommutativefunctions'
Computing the Coefficients helps comparing more precisely
ToFieldComponents keeps track of the expansions it performs, so there is memory of the superfield behind the field components introduced, so that it can be reconstructed from these components - the command for that purpose is ToSuperfields
ToFieldComponents and ToSuperfields provide core functionality for working with supersymmetric theories. Another new command, extending to anticommutative variables some of the existing Maple functionality for commutative variables is PerformOnAnticommutativeSystem
Consider this partial differential equation for the anticommutative function Q of commutative and anticommutative variables x,θ
Its solution using pdsolve, originally written to handle problems in a commutative domain
Note the presence of the anticommutative arbitrary constant _lambda2, introduced by dsolve when solving intermediate ordinary differential equations. In fact both dsolve and pdsolve in Maple 16 have this approach calling PerformOnAnticommutativeSystem coded within them so they can tackle the problem directly:
Various commands of the PDEtools package are in Maple 16 handling anticommutative variables by means of passing the problem to PerformOnAnticommutativeSystem.
Index of New Maple 16 Features
Download Help Document