Maple provides a state-of-the-art environment for algebraic computations in Physics, with emphasis on ensuring that the computational experience is as natural as possible. The theme of the Physics project for Maple 2016 has been the consolidation of the new functionality introduced during the last three releases, through more than 300 enhancements across the board, together with signification enhancements and new functionality in General Relativity. Most notably, for the 100th anniversary of the presentation of the theory of relativity, in Maple 2016 we are bringing to completion the digitalization of the solutions to Einstein's equations collected, from more than 4000 papers, in the classic book "Exact Solutions to Einstein's Equations" by H. Stephani - et al.
In addition, Maple 2016 implements new general functionality that is relevant within and beyond Physics, including a new Factor command with the ability to perform factorization in expressions involving products of noncommutative operators and the ability to compute with differential operators algebraically, that is, operating with them using multiplication to express application. Combining these two developments, it is now possible to factorize algebraic expressions involving differential operators and so, for example, solve partial differential equations through factorization.
Taking all together, the more than 350 enhancements throughout the entire package increased robustness, versatility and functionality, extending again the range of Physics-related algebraic computations that can be done using computer algebra software and in a natural way.
As part of its commitment to providing the best possible environment for algebraic computations in Physics, Maplesoft launched a Maple Physics: Research and Development web site with Maple 18, which enabled users to download research versions, ask questions, and provide feedback. The results from this accelerated exchange with people around the world have been incorporated into the Physics package in Maple 2016.
|
Completion of the Database of Solutions to Einstein's Equations
|
|
A database of solutions to Einstein's equations was added to the Maple library in Maple 15 with a selection of metrics from "Stephani, H.; Kramer, D.; MacCallum, M.; Hoenselaers, C.; and Herlt, E., Exact Solutions to Einstein's Field Equations". More metrics from this book were added for Maple 16, Maple 17, and Maple 18, up to 225 metrics. In Maple 2016, for the 100th anniversary of the presentation of the theory of Relativity by A. Einstein, we brought to completion the digitalization of all the 971 metric solutions collected from more than 4000 papers presented in the General Relativity literature. All these metrics can be loaded or searched using g_ (the Physics command representing the spacetime metric that also sets the metric to your choice in one go) or using the command DifferentialGeometry:-Library:-MetricSearch. When a metric is loaded, all the General Relativity tensors (Christoffel, Ricci, Einstein, and Riemann) are automatically computed on background and available for further computations. These metrics can also be changed in various ways and, automatically, all the General Relativity tensors are recomputed on background. You can work with these metrics, the ones in the database or any other one you set, using the Tetrads formalism too, with the commands of the Physics:-Tetrads package.
In the Maple PDEtools package, you have the mathematical tools - including a complete symmetry approach - to work with the underlying partial differential equations. By combining the functionality of the Physics:-Tetrads package, the Physics:-TransformCoordinates command, and the ability to compute Riemann and Weyl invariants, you can also formulate and, depending on the the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation.
|
Examples
|
|
Load Physics, set the metric to (and everything else automatically) in one go
>
|
|
| |
| |
| |
That is all you need to do: although the strength in Physics is to compute with tensors using indicial notation, by setting the metric as in all of the tensor components of the General Relativity tensors are also derived on the fly and ready for use. For instance these are the definition in terms of Christoffel symbols, and the covariant components of the Ricci tensor for Schwarzschild solution
| (1) |
| (2) |
These are the 16 Riemann invariants for Schwarzschild solution, using the formulas by Carminati and McLenaghan
| (3) |
The related Weyl scalars in the context of the Newman-Penrose formalism; the definition is in terms of the Weyl tensor and the tetrad of tensors of the Newman-Penrose formalism
| (4) |
| (5) |
These are the matrix components of the Christoffel symbols of the second kind (that describe, in coordinates, the effects of parallel transport in curved surfaces), when the first of its three indices is equal to 1; contravariant indices are prefixed by ~
>
|
|
| (6) |
In Physics, the Christoffel symbols of the first kind are represented by the same object (one command, Christoffel, not two) just by taking the first index covariant, as we do when computing with paper and pencil
>
|
|
| (7) |
One could query the database, directly from the spacetime metrics, for example about the solutions (metrics) to Einstein's equations related to Levi-Civita, the Italian mathematician
| |
| |
| |
| |
| |
| |
| |
| (8) |
Each triad of numbers indicates the chapter and equation number with which each of these metrics appear in "Exact Solutions to Einstein's Field Equations". For example, [12, 16, 1] is the metric found in Chapter 12 with equation number 16.1. These solutions can be set in one go from the metrics command, just by indicating the triad of numbers as follows
| |
| |
| |
| |
| |
Automatically, everything gets set accordingly; these are the contravariant components of the related Ricci tensor
| (9) |
One works with the Newman-Penrose formalism frequently using tetrads (local system of references); the Physics subpackage for this is Tetrads
| |
| |
| |
| (10) |
To query about the definition of any of these tensors, of the Tetrads or Physics packages, index them with the keyword definition
| (11) |
| (12) |
This is the orthonormal tetrad related to the metric set in set by the package (you can change these tetrads in different ways using the TransformTetrad command)
| (13) |
You can check these components directly using the definition. In this case, the right-hand side is the (orthonormal) tetrad metric
This shows that, for the tetrad components given by (13), the definition (14) holds
| (15) |
One frequently works with a different signature and null tetrads; set that, and everything related automatically
>
|
|
| (16) |
| (17) |
Verifying (17) using the definition (14)
| (18) |
You can also change the signature and everything gets automatically recomputed as well, from the components of the tensors to the definition of Weyl scalars. You can query the value of the signature using Setup
Set the signature to be + - - - , compare the components of the null tetrad metric with the components of and verify the tetrad
>
|
|
| (21) |
| (22) |
The related 16 Riemann invariants
| (23) |
The ability to query rapidly, set things in one go, change everything and have all the quantities automatically adjusted are at the realm of the design of the General Relativity functionality of the Physics package, resulting in a rather flexible computational environment.
These are the metrics by Kaigorodov; next are those published in 1962
| |
| |
| |
| |
| |
| |
| |
| (24) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| (25) |
The search can also be done visually, by properties. The following is the only solution in the database that is a Pure Radiation solution, of Petrov Type "D", Plebanski-Petrov Type "O" and that has Isometry Dimension equal to 1:
>
|
|
Set the solution, and everything related to work with it, in one go
| |
| |
| |
| |
| |
| |
The related Riemann invariants:
| (26) |
To list all the triads of numbers associated to the solutions digitized in the database (each triad indicates the Chapter and equation number with which each of these metrics appear in the book), enter
>
|
|
| (27) |
There are as many solutions as
|
|
|
Operatorial Algebraic Expressions Involving the Differential Operators , and (nabla)
|
|
Maple 2016 implements the concept of operatorial expressions, that is, the ability to compute with the differential operators , and nabla from the Vectors subpackage, algebraically, considering them as noncommutative operators and using multiplication to express their application within expressions. When desired, the multiplication is transformed into application of the differential operator to the operands that appear to its right.
The differential operators , and nabla are thus now considered noncommutative, in that and they are assumed to commute only with mathematical objects that do not depend on the coordinates (that is, constants with respect to their differentiation variables). This also means that the Commutator and Anticommutator commands, as well as the commands Library:-Commute and Library:-Anticommute, all work with these differential operators taking their noncommutative property into account.
Among other things, this new ability to compute with differential operators algebraically, when combined with the new ability to factorize expressions involving products of noncommutative operands, allows for factorizing algebraic expressions representing differential operators of higher order into products of algebraic expressions representing differential operators of lower order - an operation at the realm of solving non-linear differential equations; the first steps of this approach are now implemented too.
|
Examples
|
|
>
|
|
Consider the commutator between a scalar and the nabla operator ; use compact display for convenience
>
|
|
| |
| (29) |
>
|
|
New: the expanded form of this commutator now has the correct operatorial meaning:
>
|
|
So all the algebra is performed taking as a noncommutative operator, as we do when computing with paper and pencil. You can apply the differential operators at any time using the new Library:-ApplyProductsOfDifferentialOperators
>
|
|
| (34) |
The underlying types working at the core of this implementation of operatorial expressions
>
|
|
>
|
|
>
|
|
The differentiation variables associated to are the coordinates of the Cartesian cylindrical and spherical systems of coordinates: .
The same concept is implemented for the differential operators of special and general relativity, , and . Define system of coordinates, X, then A and B as a tensors and for convenience use a compact display
| |
| |
| |
| (39) |
>
|
|
| |
| (40) |
The commutator of and multiplied by , representing the application of can now be represented as
>
|
|
Note that to the right of in the first term there is the product , so that when applying the operator to the product, two terms result, one of which cancels the second term in (42)
>
|
|
As an example of the possibilities open with operatorial algebraic expressions combined with the new factorization of algebraic expressions involving noncommutative objects, consider the factorization of Laplace equation in a Euclidean space
>
|
|
| |
| |
| |
| |
| |
| (44) |
Similar problem now with vectorial differential operators, split into time and space components,
| (47) |
The same functionality is implemented for , the covariant derivative operator. Set the spacetime to be curved, for instance using Schwarzschild's metric and redefine the compact display to use the new (spherical) coordinates
| |
| |
| |
>
|
|
| |
| (52) |
The commutator of covariant derivatives
>
|
|
Multiply this result by a tensor function of the coordinates, say defined in the lines above
Apply the differential operators
>
|
|
Compare with the expanded version before applying, i.e.: the same expression but expressed algebraically using multiplication instead of application
The Bianchi identity can be expressed in terms of commutators
>
|
|
| (58) |
Expand the first commutator
| (59) |
Expand the whole identity
Let D_[mu] be the covariant derivative of gauge theory with A[mu] representing the gauge field; for the current signature,
we have
>
|
|
>
|
|
Note that the gauge field is introduced depending on the coordinates, which are omitted from the display due to the use of PDEtools:-declare in (52). Introduce now this definition in the Bianchi identity
>
|
|
| (64) |
Expand the first commutator
| (65) |
Expand the whole identity
Apply the operatorial expression (65) to a function of the coordinates
| (67) |
| (68) |
>
|
|
Apply the inner commutator of the first term of (64)
>
|
|
| (70) |
| (71) |
>
|
|
|
|
|
Factorization of Expressions Involving Noncommutative Operators
|
|
One of the interesting things about the Physics package is that it was designed from scratch to extend the domain of operations of the Maple system from commutative variables to one that includes commutative, anticommutative and noncommutative variables, as well as abstract vectors and related (nabla) differential operators. In this line we have, among others, the following Physics commands working with this extended domain:
A new command, Physics:-Factor was added to the family of Physics commands `*`, `.`, `^`, diff, Expand, Normal, Simplify, Gtaylor, and Coefficients that handle expressions with noncommutative variables. The approach used in Physics:-Factor is similar to the one used in the other commands of this kind, (see for instance PerformOnAnticommutativeSystem), that is, to transform the problem into one that can be treated with the commands that work only with commutative variables, and from there extract the result for expressions involving noncommutative variables. This approach works in well-defined and relevant cases, effectively extending the computational domain of previously existing commands.
Physics:-Factor is also useful when working with noncommutative symbols representing abstract matrices, that can have dependency, and so they can be differentiated before saying anything about their components, multiplied, and be present in expressions that in turn can be expanded, simplified and now also factorized. Physics:-Factor is useful as well with expressions that include differential operators, now treated within Physics as noncommutative variables (see the section on Operatorial algebraic expressions).
|
Examples
|
|
>
|
|
| (73) |
First example, because of using mathematical notation, noncommutative variables are displayed in different color (olive)
>
|
|
| (74) |
A more involved example from a physics problem, illustrating that the factorization is also happening within the function's arguments, as well as that we can also correctly expand mathematical expressions involving noncommutative variables
>
|
|
| |
| |
| |
| (76) |
>
|
|
| (77) |
So first expand
| (78) |
Now retrieve the original expression by recursing over the arguments in order to factor the integrand
| (79) |
This following one looks simpler but it is actually more complicated:
The complication consists of the fact that the standard factor command, that assumes products are commutative, can never deal with an expression like because if products were commutative the sum of these terms is equal to 0. Through algebraic manipulations, however, the expression is also factorable
This other one is yet more complicated:
>
|
|
When you expand,
| (84) |
there are various terms involving the same noncommutative operands, just multiplied in a different order. Generally speaking the limitation of this approach (in Maple 2016) consists of: "there cannot be more than 2 terms in the expanded form containing the same operands" . For instance in (84) the 1st and 4th terms have the same operands, that are actually also present in the 5th term but there you also have and for that reason (involving some additional manipulations) it can still be factorized:
Recalling, in all these examples, the task is actually accomplished by the standard factor command, and the manipulations consist of ingeniously rewriting the given problem as one that involves only commutative variables, and from the factorization of that auxiliary expression extract the correct result for the given expression containing noncommutative variables.
Here is an example where the approach implemented does not work (in Maple 2016) because of the limitation mentioned in the previous paragraph:
>
|
|
| (87) |
In this expression, the 1st, 2nd, 4th and 5th terms have the same operands , , , and then there are four terms containing the operands , , . This type of expression is also factorable - work in progress.
As an example of the possibilities open with the combination of new functionality regarding operatorial algebraic expressions and factorization of algebraic expressions involving noncommutative objects, consider the factorization of Laplace equation in an Euclidean space
| |
| |
| |
| |
>
|
|
| |
| |
| |
| (88) |
Similar problem now with vectorial differential operators, split into time and space components,
| (91) |
|
|
|
Tensors in Special and General Relativity
|
|
A number of relevant changes happened in the tensor routines of the Physics package, towards making the routines pack more functionality both for special and general relativity, as well as working more efficiently and naturally, based on Maple's Physics users' feedback collected during 2015.
|
New functionality
|
|
•
|
Implement conversions to g_ from any of Ricci, Riemann, Einstein, etc. (all the general relativity tensors)
|
•
|
New optional argument, 'freeindices = ...', in TensorArray and in TransformCoordinates, to indicate the ordering of free indices in tensorial expressions - say "A[alpha, beta] + A[beta, alpha]", where this ordering is not obvious, including now a new subroutine to determine this ordering in a predictable way and regardless of whether the indices are covariant or contravariant.
|
|
Examples
|
|
|
Rewrite the general relativity tensors in terms of the metric (convert to g_)
|
|
Set the spacetime to something not flat, for instance Schwarzschild's solution
>
|
|
| |
| |
| |
This is the standard definition of the Ricci tensor in terms of Christoffel symbols
>
|
|
| (97) |
When computing field equations, however, we need the expression of the Ricci tensor directly in terms of the metric
>
|
|
| (98) |
This expression is obtained combining (97), with the definition of Christoffel in terms of the metric
>
|
|
>
|
|
| (100) |
This formula is also available as the definition of Christoffel entering Christoffel[definition].
All the General Relativity tensors can now be expressed directly in terms of the metric in the same way:
| (101) |
>
|
|
| (102) |
|
|
New option of TransformCoordinates and TensorArray
|
|
•
|
The new option, freeindices, to indicate the free indices in TransformCoordinates and TensorArray. Generally speaking, in a tensorial expression with more than one free index, there is no way to tell which free index comes first. The TransformCoordinates and TensorArray commands were using Maple's sort command, resulting in a deterministic, however non-obvious choice.
To address this situation, a new optional argument, to indicate the ordering of the free indices, say as in freeindices = [~a, b] was implemented. This also allows for transforming for instance only one or a restricted number of free indices when using TransformingCoordinates. When the option is not used, if the tensorial expression is a tensor itself, then the ordering found in its indices is used, otherwise, sort is used.
|
Consider for instance a three-dimensional problem in a Euclidean space
>
|
|
>
|
|
| (103) |
The metric:
Define now two tensor with two indices, whose components are given by the following matrices:
| |
| (106) |
Since the space is Euclidean, the covariant and contravariant components are the same
| (108) |
Consider now the contracted product
| (109) |
This expression has the free indices a and b, in no particular order. For example, consider a coordinate linear transformation (x - old coordinates, y - new coordinates)
>
|
|
| (110) |
Transform the coordinates, the third argument indicates the new variables, and call the transformed tensor, with the ordering for the free indices
>
|
|
| (111) |
Change the order of the freeindices
>
|
|
| (112) |
Transform only one index, first , then , then in sequence
>
|
|
| (113) |
>
|
|
| (114) |
The same option is now available for TensorArray. Compute the tensor components of the tensorial expression (109) using the two possible orderings of its free indices
>
|
|
>
|
|
|
|
New option of KillingVectors
|
|
The design of KillingVectors was revised for Maple 2016 with regards to: a) return the Killing vectors using a vector format, not just the solution to the underlying PDE system, b) compute their contravariant components by default instead of covariant; c) introduce a new keyword specializeconstants to request the specialization of the constants that appear when solving the underlying linear PDE system.
>
|
|
>
|
|
| (117) |
Set a system of Coordinates
| |
| |
| |
| (118) |
Define a tensor with one index to represent the Killing vector
| |
| (119) |
The components of the contravariant , directly in list format, ready to be forwarded to Define to compute furthermore with them:
| (120) |
The same result but this time for the covariant components (for that purpose, pass with a covariant index), and without specializing the integration constants,
>
|
|
| |
| (121) |
The new format for the output of KillingVectors facilitates computing with these results. For example, define V as a tensor using the first Killing vector solution in (120), check its contravariant and covariant components, and verify that it is indeed a Killing Vector by verifying the definition in terms of Lie derivatives.
Define (120)[1] as a tensor
| (122) |
| |
| (123) |
Check the covariant and contravariant components of
Verify that is indeed a Killing Vector, that is, that the Lie derivative of the metric with respect to the is 0
>
|
|
| (126) |
Compute the components of this tensorial equation
| (127) |
|
|
|
|
Improved functionality
|
|
•
|
Install new approach for computing the Weyl scalars ~10x faster; fix issue noticed during development (missing clearing a cache) and add test with difficult example (Kerr metric) for the computation of Weyl scalars
|
•
|
4x speedup in the computation of the Ricci scalars (testing example: the Kerr metric)
|
•
|
5x speedup in the computation of the components of the Ricci tensor in the case of an arbitrary spacetime metric (10 unknown functions of 4 independent variables each).
|
|
Examples
|
|
>
|
|
Depending on the form of the spacetime metric, the computation of the Weyl and Ricci scalars, or the components of the Ricci tensor, can be rather involved, requiring handling large algebraic expressions depending on mathematical functions. Improving the approach for these kinds of difficult algebraic computations is one area of constant development.
Consider the Kerr solution in terms of Boyer and Lindquist coordinates, shown in Chapter 5 (equation 5.29) of the book "The large scale structure of space-time" by S. W. Hawking and G. F. R. Ellis; the corresponding line element
>
|
|
Set the coordinates, and the metric using this line element all in one go
>
|
|
| |
| |
| |
| |
| (128) |
Check the metric
The Weyl scalars for this metric are now computed 10x faster than in Maple 2015. Their definition in terms of the four vectors , , , of the Newman-Penrose formalism
| (129) |
The five Weyl scalars defined above and the time to compute them
>
|
|
| |
Set now the metric to be entirely arbitrary
| |
| |
| |
| |
| |
| |
| |
| |
| |
| (131) |
In Maple 2015, on a typical fast machine, the computation of the Ricci tensor components was taking around 1 minute. After an optimization of the code it now takes around 12 seconds (avoid displaying the components themselves to not clutter the display with too large expressions)
>
|
|
The computational length of all the algebraic expressions entering these components is
|
|
|
|
Vectors Package
|
|
A number of enhancements were performed in the Vectors subpackage:
•
|
You can now represent the scalar product of a vector with itself by a squaring (power 2) of the vector.
|
•
|
You can now add vectors of different bases and change basis in expressions that contain unit vectors of different orthonormal basis.
|
|
Examples
|
|
>
|
|
Consider the relativistic Hamiltonian of a particle of mass m; you can now enter the square of the momentum (scalar product of with itself) directly as a power, as we do when computing with paper and pencil
>
|
|
The expansion of the power of a vector now returns the square of its norm
Introduce now the components of
>
|
|
| (136) |
Now H, or its expanded form, are given by
| (137) |
| (138) |
Likewise, the expansion computed before entering the components of now appears as
| (139) |
Consider the following vectorial expression where the right-hand-side involves unit vectors and coordinates of both the cylindrical and spherical basis
>
|
|
| (140) |
>
|
|
| (141) |
>
|
|
| (142) |
Change all to the spherical basis, also the coordinates
>
|
|
| |
| (143) |
The same operation to the cylindrical basis
>
|
|
| |
|
|
|
The Physics Library
|
|
Four new commands, useful for programming and interactive computation, have been added to the Physics:-Library package, that now includes 142 documented commands. These new ones are:
•
|
ApplyProductsOfDifferentialOperators
|
•
|
DelayEvaluationOfTensors
|
•
|
PerformMatrixOperations
|
Additionally, eight new types, related to the developments in Physics for Maple 2016, were added to the Physics:-Library:-PhysicsType subpackage of Physics types, for programming or interactive purposes. These are
•
|
DifferentialOperator, DifferentialOperatorIndexed, DifferentialOperatorSymbol, EuclideanIndex, ExtendedDifferentialOperator, ExtendedDifferentialOperatorIndexed, ExtendedDifferentialOperatorSymbol, TensorWithNumericalIndices
|
|
|
Redesigned Functionality and Miscellaneous
|
|
•
|
Redesign of D_[mu] to not prematurely evaluate the argument.
|
•
|
Reimplementing Physics:-Dgamma as a tensor with Array representation instead of an (old) matrix.
|
•
|
d_[mu](x1) used to return g_[mu,~1], which generally speaking is correct, but in a curved spacetime this result is incorrect because d_[mu](x1) is not a tensor while g_[mu,1] is used as a tensor. For example, taking the covariant derivative of d_[mu](X[`~1`]) = g_[mu, `~1`] one would get zero on the right-hand side but not zero on the left-hand side. This is corrected so that d_[mu](x1) does not return g_[mu,~1] anymore when the spacetime is curved.
|
•
|
Change default in KillingVectors: when the vector V is passed without indices, the equations for the contravariant V (not the covariant) are solved.
|
•
|
Change in default of Physics:-KillingVectors: now it returns with all the integration constants specialized, unless a (new) optional keyword 'specializeconstants = false' is passed.
|
•
|
Adjust design in Physics:-LieBrackets: when the related LieDerivative returns 0, LieBracket now returns an n-dimensional Array where n is the spacetime dimension and all of its components are equal to 0.
|
•
|
LieBracket now automatically maps over "mappable' structures, like relations, lists, sets, Matrix, or Arrays.
|
•
|
Change in design: avoid swapping the time variable from position 1 to position 4 when retrieving metrics from the database based on Stephani's book - instead reset the signature to be as in the book and keep the metric exactly as presented in the book.
|
•
|
Implement simplification of gauge tensorial indices.
|
•
|
Improve Physics:-Library:-Add to handle complicated examples.
|
•
|
Allow integrating the 'integral form of Dirac' into a Dirac function when Physics is loaded.
|
|
|
|
|
|
|