Physics[Riemann] - The Riemann tensor and the computation of the Riemann invariants
Riemann[alpha, beta, mu, nu]
Riemann[alpha, beta, mu, nu, keyword]
alpha, beta, mu, nu
the indices, as names representing integer numbers between 0 and the spacetime dimension, they can also be the numbers themselves
any of definition, matrix, array, nonzero, scalars and invariants
The Riemann[alpha, beta, mu, nu], displayed as R__α,β,μ,ν, is a computational representation for the Riemann tensor, defined with a contravariant first index in terms of the Christoffel symbols and derivatives as
and Rα,β,μ,ν=gα,ρ⁢R⁢⁢⁢⁢β,μ,ν⁢ρ. From this definition, and because of the symmetries of the Christoffel symbols with respect to interchanging the positions of their second and third indices the Riemann tensor is antisymmetric with respect to interchanging the position of its 1st and 2nd indices, or 3rd and 4th indices, and symmetric with respect to interchanging the positions of the 1st and 2nd pair of indices.
It is sometimesconvenient to rewrite tensorial expressions in terms of the Riemann tensor. For this purpose you can use convert(expression, Riemann).
When the indices of Riemann assume integer values they are expected to be between 0 and the spacetime dimension, prefixed by ~ when they are contravariant, and the corresponding value of Riemann 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 Riemann returns unevaluated after normalizing its indices taking into account their symmetry properties.
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.
During a Maple session, the value of any component of R__α,β,μ,ν is automatically determined by the value of the spacetime metric at the moment. When Physics is loaded, the spacetime is set to Minkowski type, and so all the elements of Riemann are automatically zero. To set the spacetime metric to something different use Setup. Also, at least one system of coordinates must be set in order to compute the derivatives entering the definition of the Christoffel symbols, used to construct the Riemann tensor. For that purpose see Coordinates or Setup.
Besides being indexed with four indices, Riemann accepts the following keywords:
definition: returns the definition of the Riemann tensor in terms of the Christoffel symbols and their derivatives.
array: (synonym: Array, Matrix, matrix, or no indices whatsoever, as in Riemann) returns an Array that when indexed with numerical values from 1 to the dimension of spacetime it returns the value of each of the components of Riemann. If this keyword is passed preceded by the tensor indices, that can be covariant or contravariant, the values in the resulting array are computed taking into account the character of the given indices. If only two of these indices are names, the rest have numerical values (if contravariant then preceded by ~), the returned object is the corresponding 2 x 2 Matrix.
nonzero: returns a set of equations, with the left-hand side as a sequence of two positive numbers identifying the element of R__μ,ν 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 Array obtained with the keyword array.
scalars: returns the two complex scalars S1 and S2
where (R*)α,β,μ,ν is the dual of the Riemann tensor
and Ε__μ,ν,ρ,σ is the LeviCivita tensor in curvilinear coordinates (see Setup, option levicivita = nongalilean)
and ϵ__μ,ν,ρ,σ is the galilean LeviCivita and g is the determinant of the spacetime metric. These scalars S1 and S2 enable one to calculate the invariants that permit classifying the canonical forms of the Riemann curvature tensor starting from the values of R__α,β,μ,ν in any reference system.
invariants: returns a sequence with the 16 invariants presented by Carminati and McLenaghan (see reference at the bottom), frequently labeled r0 for the Ricci scalar and r1,r2,r3,w1,w2,m1,m2,m3,m4,m5. The 6 invariants, the rj,m3 and m4 are real, the other 5 are complex. These invariants are all defined in terms of the Weyl tensor Cα,β,μ,ν, its dual *Cα,β,μ,ν defined as in the formula above for the dual of the Riemann tensor, and the trace-free Ricci tensor Sμ,ν=⁢Rμ,ν⁢−⁢Rα⁢α⁢⁢gμ,ν. The sequence of invariants is returned as a sequence of equations with the labels ri,wk,ml using local variables in the left-hand sides and the corresponding scalar invariant expressions in the right-hand sides.
Some automatic checking and normalization are carried out each time you enter Riemann[...]. The checking is concerned with possible syntax errors. The automatic normalization takes into account the symmetry properties of the indices of Rα,β,μ,ν as described in the first paragraph.
The %Riemann command is the inert form of Riemann, 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 as g_, with no indices
Check the nonzero components of Christoffel, used to construct the Riemann tensor entering the definition of Riemann: 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. In this example, we also choose to work in spherical coordinates, so consider for instance the metric defined by
ds2 ≔ r2⁢dtheta2+r2⁢sin⁡θ2⁢dphi2−2⁢dt⁢dr−2⁢k⁡r,t2⁢dt2
⁢Default differentiation variables for d_, D_ and dAlembertian are:⁢X=r,θ,φ,t
⁢Systems of spacetime coordinates are:⁢X=r,θ,φ,t
Now when the indices are not numerical, Riemann returns itself after normalizing its indices taking advantage of their symmetry properties, so that different forms of the same tensor enter computations in the same manner, for example, if you interchange the positions as in
To express Riemann in terms of the Christoffel symbols and its derivatives convert to Christoffel
Check the value of R__α,β,μ,ν, say for α=1, β = 2, μ = 2, ν = 4
Check now the value of R⁢⁢⁢⁢β,μ,ν⁢α , with the 1st index contravariant, for the same values of the indices (note you enter the value of the contravariant index prefixed by ~)
To compute with a representation for Riemann without actually performing the operation, use the inert form %Riemann. To afterwards perform the operation use value
To have a more compact display in the following examples, suppress the display of the dependency of k⁡r,t and have the display of derivatives in jet notation, indexed (see Typesetting)
The nonzero values of