indexed covariant/contravariant differential operator with respect to curvilinear spacetime coordinates - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Physics : Physics/D_

Physics[D_] - indexed covariant/contravariant differential operator with respect to curvilinear spacetime coordinates

Calling Sequence


D_[mu](A, [X])


D_(A, [X])




a name representing an integer number between 0 and the spacetime dimension, can also be the number itself



any mathematical expression or relation between expressions, or a set or list of them, or an rtable 



a list of differentiation variables to which the index mu refers



The D_[mu] command is a computational representation for 𝒟μ, the covariant differential operator, a tensor, the generalization of μ to curvilinear coordinates.


D_ can also be used without an index, as in D_(A) displayed as 𝒟A, in which case it represents the total differential in curvilinear coordinates, and the output comes automatically expanded as D_[mu](A) * d_(X[~mu]), where X is a coordinates system and X[~mu] is the corresponding spacetime vector.


The covariant D_[mu] = 𝒟μ is defined in terms of the Christoffel symbols as



when acting on a covariant tensor as Aν, and as



when acting on a contravariant tensor. For tensors of higher rank, for each covariant index there is one negative Christoffel term as in the formula for Aν and for each contravariant index there is one positive Christoffel term as in the formula for Aν.


To express 𝒟μAν using this definition in terms of Christoffel symbols use convert to d_ or expand which also know about other identities for 𝒟μ


The contravariant gμ,ν𝒟ν=𝒟μ is entered as D_[~mu], so using the same D_ just with a contravariant index.


Computations performed with the Physics package commands take into account Einstein's sum rule for repeated indices - see `.` and Simplify. The distinction between covariant and contravariant indices in the input of tensors is done by prefixing contravariant ones with ~, say as in ~mu; in the output, contravariant indices are displayed as superscripts. For contracted indices, you can enter them one covariant and one contravariant. Note however that - provided that the spacetime metric is galilean (Euclidean or Minkowski), or the object is a tensor also in curvilinear coordinates - this distinction in the input is not relevant, and so contracted indices can be entered as both covariant or both contravariant, in which case they will be automatically rewritten as one covariant and one contravariant. Tensors can have spacetime and space indices at the same time. To change the type of letter used to represent spacetime or space indices see Setup.


When only one argument is given to D_ or D_[mu], say as in D_[mu](A), the differentiation variables are the default ones, as indicated by Setup(differentiationvariables). Note you can set various coordinate systems and choose which one is to be considered the differentiation variables for D_ using Setup.


You can also override the default differentiation variables by passing two arguments to D_ or D_[mu], in which case the second argument is expected to be a list with the differentiation variables, as in D_[mu](A, [x1, x2, ...]), and so this list should have as many symbols as the dimension of spacetime, which by default is 4 but can be set to any value with the Setup command.


Some automatic checking and simplifications are carried out each time an operation such as D_[mu](A) is executed. The checking is concerned with possible syntax errors. Regarding the automatic simplifications, a summary is as follows:


If A does not depend on the differentiation variables or is equal to the metric g_, then 0 is returned.


If A is a scalar then d_[mu](A) is returned.


If A belongs to the differentiation variables, then the definition of D_[mu](A) is applied and the resulting value returned.


If A is a sum, product, power, or known function, then the differentiation is distributed accordingly, the same way it is done by d_.


A number of additional identities for covariant derivatives are returned when using expand.


To perform the differentiation, the D_ command makes us of the diff command of the Physics package, which in turn uses the standard Maple diff command, so that any user-defined differentiation rule, such as for a function foo, of the form `diff/foo`, is automatically taken into account by D_.


The %D_ command is the inert form of D_, so it represents the same mathematical operation but without performing it. To perform the operation, use value.






Set up a coordinate system to work with - the first one to be set is automatically taken as the differentiation variables for d_, the covariant derivative D_ and the dAlembertian


Default differentiation variables for d_, D_ and dAlembertian are: X=x,y,z,t

Systems of spacetime Coordinates are: X=x,y,z,t



When Physics is initialized, the default spacetime metric is of Minkowski type. You can see the metric querying Setup, as in Setup(metric);, or directly entering the metric g_ with no indices




For illustration purposes Define an arbitrary spacetime tensor  A


Defined objects with tensor properties



Check the nonzero components of Christoffel: if, as in the Minkowski case, there are none, then 𝒟μ=μ










To set the scenario as an arbitrary non-galilean spacetime set the metric to be arbitrary, that is, depending on 10 arbitrary functions of the spacetime coordinates x,y,z,t







Related to displaying the components of Christoffel, it is convenient to have a compact display of the 10 arbitrary functions entering the metric as well as of their derivatives; for that purpose use the enhanced display scheme of the differential equation packages.


_F1x,y,z,twill now be displayed as_F1

_F10x,y,z,twill now be displayed as_F10

_F2x,y,z,twill now be displayed as_F2

_F3x,y,z,twill now be displayed as_F3

_F4x,y,z,twill now be displayed as_F4

_F5x,y,z,twill now be displayed as_F5

_F6x,y,z,twill now be displayed as_F6

_F7x,y,z,twill now be displayed as_F7

_F8x,y,z,twill now be displayed as_F8

_F9x,y,z,twill now be displayed as_F9


So from herein, in the display of expressions, derivatives are displayed as indexed and the functionality of the arbitrary functions is suppressed.

Check the value of Γα,μ,ν for α = μ = ν = 1




So now, for the total differential and the covariant derivative, we have







To express these results using the definition in terms of Christoffel symbols use expand or convert to d_




To compute with a representation for 𝒟 without actually performing the operation, use the inert form %D_. To afterwards perform the operation use value







The covariant derivative of a scalar is always equal to the  derivative







To reduce the amount of input notation, a scalar constructed with contracted indices in tensors can be entered with all contracted indices covariant, or as a power in the case of a contracted product of a tensor with itself. For example, use AμAμ=Aμ2







and as expected in the case of scalars, in the above you see no Christoffel symbols.

Set the spacetime metric g_ by giving the square of the spacetime interval







The generalized divergence of a vector in curvilinear coordinates







See Also

`.`, Christoffel, Coordinates, d_, Define, DifferentialGeometry[Tensor][CovariantDerivative], Physics, Physics conventions, Physics examples, Setup, value



Landau, L.D., and Lifshitz, E.M. The Classical Theory of Fields, Course of Theoretical Physics Volume 2, fourth revised English edition. Elsevier, 1975.

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam