g_ - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

Physics[g_] - The g_ tensor

Calling Sequence


g_[μ,ν, matrix]


convert(expression, g_)


μ, ν


the indices, as names representing integer numbers between 0 and the spacetime dimension, they can also be the numbers themselves



optional, returns the matrix form for the given (covariant or contravariant) indices; if passed without indices it returns the covariant metric



optional, it can be definition, determinant, line_element, matrix, nonzero, trace or any portion of a known metric name to launch a search in the metric's database



an algebraic expression involving tensors (e.g. Christoffel) to be rewritten in terms of the metric g_ and its derivatives



The g_[mu, nu], displayed as gμ,ν (without _ in between g and its indices), is a computational representation for the spacetime metric tensor. When Physics is loaded, the dimension of spacetime is set to 4 and the metric is automatically set to be galilean, representing a Minkowski spacetime with signature (-, -, -, +), so time in the fourth place.


When working in curvilinear coordinates so that the components of the Christoffel symbols are not zero it is sometimes convenient to rewrite tensorial expressions in terms of the metric g_ and its derivatives. For example, this is the case of the Christoffel symbols and any of the general relativity tensors that are defined in terms of them. For this purpose you can use convert(expression, g_) - see the Examples section.


When the indices of g_ assume integer values, it is expected they are between 0 and the spacetime dimension and the corresponding value of g_ is returned. The values 0 and 4, or for the case any dimension set for the spacetime, represent the same object. When the indices have symbolic values, say as in μ,ν, if μ=ν g_ returns the dimension of spacetime when μ is a spacetime index, or the dimension of space when μ is a space index. If the system can prove that μν (e.g. via assumptions), g_ returns zero whenever the metric is diagonal. Otherwise g_ returns unevaluated, after normalizing its indices taking into account that the spacetime metric is symmetric.


You can change the value of the metric g_ in different ways, using Setup or, when choosing a predefined set of values, you can also change the metric using g_ itself, indexing it with the related metric name; for example as in g_[Minkowski]. The predefined sets are: arbitrary, Euclidean, Minkowski, Schwarzschild, Tolman or related to any of the metrics of the book "Exact Solutions of Einstein's Field Equations" - see references at the end. Note that you can pass the keyword incomplete or misspelled, in which case a searchtext is performed among the keywords understood by g_ and if a match is found the metric is set accordingly, or if many matches are found then corresponding information is displayed on the screen. See the Examples section. Using predefined sets, either through Setup or g_, automatically sets the necessary systems of coordinates and differentiation variables for the spacetime differentiation operator d_ accordingly.


Any of the 991 metrics of the book "Exact Solutions of Einstein's Field Equations" can also be load by indexing g_ with a list of three numbers, for example as in g_[[12, 16, 1]], respectively representing the book's chapter where the metric is found, the equation number and the case.


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.


Note: since Maple 2019, g_[mu, ~nu], where one of its indices is contravariant as in ~nu while the other remains covariant, is displayed using the δ greek letter, as δμν, as is standard in physics textbooks. Also, KroneckerDelta[mu, nu] is not considered a tensor (of type Physics:-Library:-PhysicsType:-Tensor), even if μ and ν are letters representing tensor indices, unless one of such indices is contravariant as in ~nu, while the other remains covariant, in which case KroneckerDelta[mu, ~nu] is automatically transformed into the spacetime metric g_[mu, nu], which is a tensor.


During a Maple session, the value of any component of the general relativity tensors of Physics, that is: Christoffel, the covariant derivative D_, Einstein, Ricci, Riemann and Weyl, automatically follow the value or any changes introduced in the components of g_, the spacetime metric, provided these changes are made using Setup or g_ itself.


Besides being indexed with two indices, g_ accepts the following keywords as an index:


definition: when passed alone, g_ returns its definition, that is an equation with the metric on the left-hand side and the matrix form of the metric on the right-hand side, the same as when you enter the metric without indices (g_[]).


determinant: when passed alone, g_ returns the determinant of the all-covariant metric g[mu, nu] . If this keyword is passed together with indices, that can be covariant or contravariant, the resulting determinant takes into account the character of the indices.


line_element: (synonym: lineelement) when passed alone, g_ returns the line element for the current metric expressing the differentials of the coordinates using d_.


matrix: (synonym: Matrix, array, Array, or no indices whatsoever, as in g_[]) returns a Matrix that when indexed with numerical values from 1 to the dimension of spacetime it returns the value of each of the components of g_. If this keyword is passed together with indices, that can be covariant or contravariant, the resulting Matrix takes into account the character of the indices.


nonzero: returns a set of equations, with the left-hand side as a sequence of two positive numbers identifying the element of g__μ,ν and the corresponding value on the right-hand side. Note that this set is actually the output of the ArrayElems command when passing to it the Matrix obtained with the keyword matrix.


<metric name>: some predefined sets of values for the spacetime metric can be used by giving the metric name or a portion of it; currently these are Euclidean, Minkowski, Tolman, Schwarzschild and the metrics of Chapter 12 of "Exact Solutions of Einstein's Field Equations" (second edition).


Some automatic checking and normalization are carried out each time you enter g_[...]. The checking is concerned with possible unexpected values of the indices. The automatic normalization takes into account the symmetry of g_[mu,nu] with respect to interchanging the positions of the indices mu and nu.


The %g_ command is the inert form of g_, so it represents the same tensor but entering it does not result in performing any computation. To perform the related computations as if %g_ were g_, use value.






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 as g_[], with no indices




The corresponding line element


Systems of spacetime coordinates are:X=x1&comma;x2&comma;x3&comma;x4



The default spacetime of the Physics package is a Minkowski spacetime with dimension 4, so the values 0 and 4 represent the same object







The symmetry property of g_ is automatically taken into account when the indices have symbolic values




By default, spacetime indices are represented by greek letters and the dimension of spacetime is 4 - you can query about that via




Set the space indices (not the spacetime indices) to be represented by lowercaselatin letters till h




The trace of g_ is equal to the dimension; note the use of the sum rule for repeated indices, both for spacetime and space only indices













Check now the nonzero components of Christoffel, used to construct the g_ tensor entering the definition of g_: because the default spacetime is of Minkowski type, there are none








and the same is valid for all the general relativity tensors defined in terms of Christoffel and derivatives of the metric g_.

To set the scenario as a curved spacetime set the metric using Setup, for instance indicating the square of the spacetime interval. This can be done directly from g_, choose for example the keyword Tolman; it automatically implies on setting spherical coordinates as the differentiation variables for d_



Systems of spacetime coordinates are:X=r&comma;θ&comma;φ&comma;t

Default differentiation variables for d_, D_ and dAlembertian are:X=r&comma;θ&comma;φ&comma;t

The Tolman metric in coordinates r&comma;θ&comma;φ&comma;t

Parameters: Rt&comma;r&comma;Er

Signature: - - - +




The corresponding line element




So now







Or for the contravariant components (note you indicate the contravariant character of index prefixing with ~)




The matrix form: all of g_[], g_[matrix] and g_[mu, nu, matrix] return the all-covariant matrix




Or, for the matrix components of the all contravariant gμ,ν, which as a matrix is equal to the inverse of the all-covariant gμ,ν,




The metric can also be set using Setup in different ways. Here we enter it by passing the square of the spacetime interval, also called the line element. Because the spacetime coordinates were automatically set to spherical when entering g_[Tolman] you do not need to set the coordinates again. To query about the coordinates use Setup or Coordinates:


* Partial match of 'differentiation' against keyword 'differentiationvariables'

Systems of spacetime coordinates are:X=r&comma;θ&comma;φ&comma;t

Default differentiation variables for d_, D_ and dAlembertian are:X=r&comma;θ&comma;φ&comma;t





Systems of spacetime coordinates are:X=r&comma;θ&comma;φ&comma;t



Set now the metric to be






Coordinates: r&comma;θ&comma;φ&comma;t. Signature: - - - +






(Note that this equation in the output by Setup can be directly used as input for Setup; this is useful to perform minor changes to the metric when desired.)







The determinant of the all-covariant metric




The nonzero components




The nonzero components of the inverse of the metric, that is, the all-contravariant gμ,ν




The general relativity tensors, or expressions involving them, can be expressed in terms of the metric g_ and its derivatives. For that purpose use convert(... g_) as in







Define a tensor A for illustration purposes


Defined objects with tensor properties



The covariant derivative of the contravariant vector AνX and its expansion, or rewriting in terms of d_,g_ or Christoffel symbols