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

Online Help

All Products    Maple    MapleSim

Physics[Weyl] - The Weyl tensor and the Weyl scalars for the tetrad set

Physics[Tetrads][WeylScalars] - The Weyl scalars for any given tetrad

Calling Sequence

Weyl[alpha, beta, mu, nu]




alpha, beta, mu, nu


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



can be any of: scalars, definition, scalarsdefinition, nonzero, ~, to respectively get the Weyl scalars, definition of the tensor or of its scalars, a set with the nonzero components, or an Array with the contravariant components



optional, related to Tetrads:-WeylScalar, tetrad is any 4 x 4 matrix for which Tetrads:-IsTetrad returns true.



The Weyl[alpha, beta, mu, nu], displayed as C__α,β,μ,ν, is a computational representation for the Weyl tensor, defined in terms of the Riemann, Ricci and the spacetime metric g_ tensors as



where n is the dimension of spacetime, by default equal to 4. From this definition, the Weyl tensor has all the symmetries properties of the Riemann tensor; i.e. it 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. In addition, it vanishes when contracted on any pair of indices.


The Tetrads:-WeylScalars commands is part of the Tetrads package and computes the Weyl scalars that correspond to a given tetrad, passed as a 4 x 4 matrix that satisfies the tetrad definition. For such tetrads, Tetrads:-IsTetrad returns true. The Weyl command can also compute the Weyl scalars, explained further below, by entering Weyl[scalars], but only for the tetrad set with Setup. In this sense Tetrads:-WeylScalars allows for easy experimentation with different tetrads without having to set the tetrad at every step (see related tetrads example in what is new in Maple 2021).


When the indices of Weyl 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 Weyl is returned. When working with a signature that has the timelike component in position 4, the values 0 and 4, or for the case any dimension instead of 4, set for the spacetime, represent the same object. When the indices have symbolic values Weyl 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 C__α,β,μ,ν 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 Weyl 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 tensors entering the definition of the Weyl tensor. For that purpose see Coordinates or Setup.


Besides being indexed with four indices, Weyl accepts the following keywords:


array: (synonym: Array, Matrix, matrix, or no indices whatsoever, as in Weyl[]) 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 Weyl. 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.


~: returns an Array with the all-contravariant components of the Weyl tensor


definition: returns the definition of the Weyl tensor in terms of the Riemann and Ricci tensors.


nonzero: returns a set of equations, with the left-hand side as a sequence of four positive numbers identifying the element of C__α,β,μ,ν 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 five complex Weyl scalars Psi[0], Psi[1], Psi[2], Psi[3], Psi[4] of the Newman-Penrose formalism, relevant in the classification of the PetrovType of a spacetime.


scalarsdefinition: returns the definition of the Weyl scalars; note that a general sign in this definition depends on the signature, that you can query entering Setup(signature) and change it using Setup to any of the four possible signatures predefined.


Some automatic checking and normalization are carried out each time you enter Weyl[...]. The checking is concerned with possible syntax errors. The automatic normalization takes into account the symmetry properties of the indices of Weyl[mu,nu,alpha] as described in the first paragraph.


The %Weyl command is the inert form of Weyl, 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


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 Weyl tensor entering the definition of Weyl: 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





Systems of spacetime coordinates are:X=r,θ,φ,t


Coordinates: r,θ,φ,t. Signature: - - - +




Setting lowercaselatin_is letters to represent space indices




To avoid the repeated display of the functionality in kr,t in the following examples and have the display of derivatives in jet notation, indexed, use CompactDisplay


kr,twill now be displayed ask


Now when the indices are not numerical, Weyl 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










The definition of the Weyl scalars in terms of the null vectors l_, n_, m_ and mb_ of the Newman-Penrose formalism (see Tetrads), and the scalars themselves for the spacetime metric (9)







Note that these scalars depend on the choice of orientation for the axis of the tetrad system of references. To change the tetrad or that orientation of axis see Tetrads:-TransformTetrad. These same scalars can be computed with the Tetrads:-WeylScalars, which, when called with no arguments, it computes the scalars for the tetrad set, so the same way as Weyl[scalars] above



Setting lowercaselatin_ah letters to represent tetrad indices

Defined as tetrad tensors see ?Physics,tetrads, 𝔢a,μ , ηa,b , γa,b,c , λa,b,c

Defined as spacetime tensors representing the NP null vectors of the tetrad formalism see ?Physics,tetrads, lμ , nμ , mμ , m&conjugate0;μ







The scalars above are constructed using the scalars definition shown lines above departing from the tetrad




With WeylScalars, however, you can also compute the scalars for any given tetrad. Construct, for example, one possible different form of a tetrad, say one for which ψ40, via




To verify that a 4 x 4 matrix is a valid tetrad, i.e., satisfies the tetrad definition,




you can use IsTetrad


Type of tetrad: null



Now, without setting this tetrad using Setup, compute the corresponding Weyl scalars:




We see in this result the expected ψ40. When the tetrad is what you want or produces the Weyl scalars you expect, you can set it the standard way using Setup, as in Setup(tetrad ...) where the right-hand side is the 4x4 matrix.

Back to the Weyl tensor, to express it in terms of the Riemann tensor, the Christoffel symbols and its derivatives, or the metric g_ itself, use convert










Check the value of C__α,β,μ,ν, say for α=1, β = 2, μ = 2, ν = 4




Check now the value of Cβ,μ,να , 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 Weyl without actually performing the operation, use the inert form %Weyl. To afterwards perform the operation use value







The all-covariant and all-contravariant components of the Weyl tensor as Arrays



The (nonzero) Array elements of any these arrays can be computed using ArrayElems.

The nonzero values of C__α,β,μ,ν and of Cβ,μ,να (note you enter the character of the contravariant indices prefixed by ~)







This is the array form of Cβ,μ,να (note you enter the character of the contravariant indices prefixed by ~)


To use this array, because its components were computed already taking into account the (covariant/contravariant) character of its indices, you do not need to indicate furthermore that character. So for C11 we have




Compare with the output obtained entering Weyl[~1, 2, 2, 4] in eq (14)



Verify that the Weyl tensor vanishes when contracted on a pair of indices; take for instance the 1st and 3rd indices, you can see the corresponding matrix (note the first index as contravariant)




Add the four matrices completing the contraction of indices