set up aliases for the spacetime coordinates used by Physics commands - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Physics : Physics/Coordinates

Physics[Coordinates] - set up aliases for the spacetime coordinates used by Physics commands

Calling Sequence

Coordinates( )

Coordinates(X, quiet, clear)




an unassigned capital letter, or an equation with it on the left-hand side and a list of coordinates or any of the keywords cartesian, cylindrical, spherical on the right-hand side



(optional) proceed without displaying messages on the screen



(optional) to unset the specified system of coordinates previously set by Coordinates



The Coordinates command is used to set the systems of coordinates used by the other commands of the Physics package, as for instance the differentiation operators d_, D_, dAlembertian, diff and Fundiff, and all the general relativity tensors.


The Coordinates command also sets an alias for a capital letter X to represent a list of coordinates as explained below. These simplified representations for the spacetime coordinates eliminate the redundancy of having to type all the coordinates and in the correct order (setting these aliases does not prevent you from doing so, however), when entering functions of spacetime or using the Physics differentiation commands d_, D_ or the dAlembertian.


After setting a coordinate system, the capital letter that labels it can also be used in algebraic computations to represent the corresponding SpaceTimeVector (tensor with 1 index) - see the Examples section.


When the Coordinates command is called with no arguments, it returns the capital letters currently set to represent coordinate systems.


When Coordinates is called with one argument, a capital letter - say X - an alias is set for X to represent the sequence of n (the spacetime dimension, say 4) coordinates conformed by: x1,x2,x3,x4. Also x0 is assigned the value x4. As a rule, this sequence of spacetime coordinates is built by using the corresponding lowercase letter as a root, concatenated with positive integers from 1 to n. The capital letters that can be used as labels for systems of coordinates are the letters from A to Z, excluding D, E, G, I, O and R.


When the spacetime dimension is changed in the middle of a Maple session, the systems of coordinates previously set are automatically redefined to have the same number of coordinates as the new value for the dimension.


You can also call Coordinates with an equation, having any of the capital letters mentioned in the previous paragraph on the left-hand side, say Y, and a list of variables - all of type name- say [u, v, w, ...] on the right side, so that Y will be aliased to [u, v, w, ...]. In these cases, macros are also set as y1 = u, y2 = v, y3 = w, ... so that you can continue using concatenated lowercase letters y1, y2, ... to refer to each of the individual coordinates, apart from referring to them via Y[1], Y[2], ... or directly as u, v, ...


Coordinates also understands three keywords: cartesian, representing x,y,z,t, cylindrical, representing ρ,φ,z,t, and spherical, representing r,θ,φ,t, that can be on the right-hand side of the equation X = ... passed as first argument, so that the capital letter on the left-hand side will be aliased these coordinates.


The first time Coordinates is called to set a system of coordinates, this system is also set as the default differentiation variables for all of d_, D_ and the dAlembertian as explained in the corresponding help pages.


You can set many systems of coordinates to work with at the same time. This is particularly useful, for instance, when working with functional derivatives or coordinate transformations. To change the default differentiation variables from one system of coordinates to another one use Setup


You can also view the systems of coordinates already set, or set new ones, by launching the setup maplet (enter Setup() at the Maple prompt).


Load the Physics package.


Setup(mathematicalnotation = true);



Set an alias for X to represent x1, x2, x3, x4, and set the default differentiation coordinates for d_ and dAlembertian to be X; this can be done in a single command line by using the Setup command as in Setup(differentiationvariables = X) - that automatically sets the coordinates - or using Coordinates - the first time it is called it automatically sets the differentiation variables


Default differentiation variables for d_, D_ and dAlembertian are:X=x1,x2,x3,x4

Systems of spacetime coordinates are:X=x1,x2,x3,x4



Query about the default differentiation variables for


Default differentiation variables for d_, D_ and dAlembertian are:X=x1,x2,x3,x4




Note the display of the association between X and the sequence X. Because of the alias', if you now enter X you do not see its contents




The variables are however there:







After having set X as a coordinate system and default differentiation variables, d_ and dAlembertian can be used omitting the second argument that would specify the differentiation variables










Set more systems of spacetime coordinates.

Coordinates(Y, Z);

Systems of spacetime coordinates are:X=x1,x2,x3,x4,Y=y1,y2,y3,y4,Z=z1,z2,z3,z4



This is useful, for example, when you want to represent objects evaluated at different points in spacetime. If you want to use d_ or dAlembertian with Y or Z, which in this example are not the default differentiation variables, you need to specify them as the second argument, and they will be displayed on the screen.

d_[mu](f(Y), [Y]);



dAlembertian(f(Y), [Y]);



An example where more than one system of coordinates is intrinsically required: functional differentiation. Use 'delay evaluation quotes' to first display the expression, then evaluate.




'Fundiff'((13), f(Y));






You see above a four dimensional Dirac delta function as a result of the functional differentiation. Alternatively, instead of using 'delay evaluation quotes,' you can use the inert form %Fundiff, and then evaluate by using the value command.

%Fundiff(f(Y), f(Z));






Coordinates systems and the "SpaceTimeVector"

After setting a coordinate system, the capital letter that labels it can also be use in algebraic computations to represent the corresponding SpaceTimeVector (tensor with 1 index). For example:

X[~alpha] * X[~beta];









LeviCivita[alpha, beta, mu, nu] * ((18));






Or using `.` instead of `*` to shortcut the call to Simplify

LeviCivita[alpha, beta, mu, nu] . ((18));



g_[alpha, beta] . (18);



Remark: in tensor computations, the distinction between covariant and contravariant indices is important when the spacetime is not Euclidean and the indices assume numerical values. The label of a system of coordinates set with Coordinates represent the contravariant components of the corresponding SpaceTimeVector. To indicate than an index is contravariant you prefix it with ~. On the other hand, in Maple, the selection operation is also performed through indexation. Hence, if X is a label for a system of coordinates, entering X[1] returns x1, the contravariant component of the corresponding SpaceTimeVector, even when the index used is the number 1, the covariant version of the contravariant ~1. So in a context where covariant and contravariant indexation is relevant and where you are going to assign numerical values to the indices, it is recommended to represent the spacetime vector with the SpaceTimeVector function, as in SpaceTimeVector[mu](X), instead of directly using X[mu]. In all other cases it is safe and simpler to use X[mu] and all the Physics commands understand both representations as equivalent.

Due to the equivalence between SpaceTimeVector[~mu] and X[~mu], they are both displayed X[~mu] (note the prefix ~ to indicate that μ is contravariant)






Display the current spacetime metric g_ matrix




The 1st contravariant and covariant components are respectively represented by indexing SpaceTimeVector with the numbers ~1 and 1




SpaceTimeVector[1](X) = g_[1,mu] * X[mu];






Once you have set a system of coordinates, you can differentiate the corresponding SpaceTimeVector, using diff, d_ or any of the differentiation operators of Physics. In the following input, compute the derivative with respect to the 1st contravariant component of X, that is x1. Recalling, contravariant differentiation coordinates are the ones entering the covariant differentiation operator μ=xμ. For illustration purposes use the inert form of d_ and diff, prefixing the commands with % and perform the computation using value




%d_[1]((30)) = %diff((30), x1);






You can also represent x1 with SpaceTimeVector[~1](X), and when differentiate with respect to contravariant components of the spacetime vector you can also represent them directly with X[~mu] because ~1, ~2, etc. are viewed by the system as symbols (in this context, contravariant indices) not selecting numbers

%diff((30), X[~1]) = %diff((30), %SpaceTimeVector[~1](X));






and in general,

%d_[mu](X[~nu]) = d_[mu](X[~nu]);



Compute now the contravariant derivative, that is, the derivative with respect to the covariant Xμ

%d_[~mu](X[~nu]) = d_[~mu](X[~nu]);



Set five more systems of coordinates, using the different forms of setting them

Coordinates(Y, Z = [a, b ,c, d], A = cartesian, B = cylindrical, C = spherical);

Systems of spacetime coordinates are:A=x,y,z,t,B=ρ,φ,z,t,C=r,θ,φ,t,X=x1,x2,x3,x4,Y=y1,y2,y3,y4,Z=a,b,c,d



Query about the coordinate systems currently set


Systems of spacetime coordinates are:A=x,y,z,t,B=ρ,φ,z,t,C=r,θ,φ,t,X=x1,x2,x3,x4,Y=y1,y2,y3,y4,Z=a,b,c,d



Change the default differentiation variables for d_ and the other differentiation commands

Setup(diff = C);

Default differentiation variables for d_, D_ and dAlembertian are:C=r,θ,φ,t




So now







C[1], C[2], C[3];



All these refer to the same variable t

C[4], c4, c0, t;




See Also

`.`, d_, D_, dAlembertian, diff, Dirac, Fundiff, g_, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Setup, Simplify, SpaceTimeVector, value



Landau, L.D. and Lifshitz, E.M. The Classical Theory of Fields. Vol 2. Elsevier, 1975.