Physics[Tetrads][TransformTetrad] - transforms a tetrad into canonical form, or using one of six standard transformations, or using a given set of transformation equations
optional, it can be a matrix representing a tetrad. If not given, the tetrad (vierbein e_) for the current spacetime metric is transformed
optional, can be true (default value) or false, to verify or not whether the given matrix T is or not a tetrad before proceeding
optional, to compute a canonical form for the tetrad (given or e_)
optional, to indicate a rotation that leaves the null vector l_ unchanged
optional, to indicate a rotation that leaves the null vector n_ unchanged
optional, to indicate a rotation of m_ and mb_ on the (m_, mb_)-plane
optional, to indicate a rotation that leaves the directions of l_ and n_ unchanged
optional, to indicate a rotation that leaves the direction of l_ unchanged
optional, to indicate a rotation that leaves the direction of n_ unchanged
output = ...
optional, could be tetrad (default) or nullvectors, to have the output as a matrix that can be used to redefine the tetrad e_, or as a list of the Newman-Penrose null vectors
The TransformTetrad commands applies transformations of coordinates of a specific type to a tetrad. These transformations, related to the optional arguments, are all Lorentz transformations of the tetrad (local) system of references.
The tetrad being transformed does not need to be indicated, in which case it is, by default, a null tetrad related to the current value of the spacetime metric g_, that is, one that satisfies the tetrad definition 𝔢a,μ⁢𝔢b⁢⁢μ=ηa,b, and where the tetrad metric is formed with the null vectors of the Newman-Penrose formalism. To see what tetrad (among the infinitely many possible ones) is actually used as a starting point by default, see Tetrads[e_].
Instead of the default action of transforming e_, you can also indicate any other tetrad to be transformed. For that purpose, indicate the tetrad as first argument T, either as a matrix (whose components are assumed to correspond to the all-covariant tetrad e_[a, mu]), or as an equation where the left-hand side is the tensor e_[a, mu] itself.
When a tetrad is indicated, before proceeding, a test verifying whether it satisfies the tetrad definition equations is performed using the command IsTetrad, and if the tetrad definition is not satisfied an error interruption happens. Sometimes, the indicated T is in fact a tetrad but the computer fails in verifying that, perhaps missing a simplification; in these cases you can indicate to not perform this verification by passing the optional argument verifygiventetrad = false.
When the tetrad indicated to be transformed is an orthonormal tetrad (for the corresponding definitions, see IsTetrad), first a null tetrad is derived from it using the formulas shown in NullTetrad, then transformed.
Two different formats for the output of TransformTetrad are possible: as a matrix that can be set as the value of the tetrad e_ using Setup, or as a list of null vectors (option output = nullvectors).
Rotations of the tetrad system
Covering the effect of the 6-parameter Lorentz transformations on the null vectors of the Newman-Penrose formalism, the predefined transformations implemented are:
I) Rotations of Class I leave the null vector l_ unchanged (option nullrotationwithfixedl_, introduces a global transformation complex parameter E)
II) Rotations of Class II leave the null vector n_ unchanged (option nullrotationwithfixedn_, introduces a global transformation complex parameter B)
III) Rotations of Class III leave the directions of l_ and n_ unchanged and rotate m_ and mb_ on the (m_, mb_)-plane. To these transformations correspond the options boostsn_l_plane, that introduces a global transformation real parameter A,
and also spatialrotationsm_mb_plane, that introduces a global transformation real parameter Omega).
To transform a null tetrad using any of these standard transformations, pass any (one or more) of the corresponding optional arguments, for example as in TransformTetrad(spatialrotationsm_mb_plane). When indicating many transformations by passing many of these optional arguments together, the transformations are performed in the order these optional arguments are passed.
NOTE (I): you can always pass these optional arguments by passing only a few identifying letters of these long concatenations of words, and when there is only one match your input will be interpreted correctly. For example: both TransformTetrad(spatial) and TransformTetrad(m_mb) are interpreted as TransformTetrad(spatialrotationsm_mb_plane).
NOTE (II): transformations of Class I and II introduce complex parameters E and B. When these parameters are going to be adjusted to obtain a certain form of the tetrad, or the transformed tetrad is going to be simplified, it is convenient to represent them by their real and imaginary parts, for example using Ex=ℜ⁡E and Ey=ℑ⁡E and setting assumptions Assume⁡Ex::real and Assume⁡Ey::real using Assume and the same for B and the real parameters A and omega.
Other frequent transformations used that have a keyword associated that you can use to indicate them are those that preserve the l_ direction plane (option preservel_direction, introduces the global transformation parameters A, E, Omega) and those that preserve the n_ direction plane (option preserven_direction, introduces the global transformation parameters A, B, Omega)
Finally, you can also indicate any particular transformation by passing it as a set or list of transformation equations (see TransformCoordinates), in which case the null tetrad is viewed as the corresponding list of four spacetime 4-vectors [l_, n_, m_, mb_] and transformed accordingly using the TransformCoordinates command.
Transforming a Tetrad into Canonical Form
Provided that the spacetime is not conformally flat (for which all the components of the Weyl tensor are equal to zero), TransformTetrad can also transform a tetrad into a canonical form in one go. For that purpose, use the canonicalform optional argument. The resulting tetrad is such that the Weyl scalars associated to it are of one and only one of the following five forms related to the PetrovType of the spacetime (see reference  page 388)
The process of rewriting a tetrad into canonical form involves a combination of rotations of Classes I, II and III, automatically deduced and applied by TransformTetrad.
The canonical form in the table above is not the only possible one and, depending on the spacetime, a different canonical form would be more convenient. For example, a preferred form for Petrov type "I" would be to have Ψ1=1,Ψ2≠0,Ψ4≠0 instead of Ψ3=1,Ψ1≠0,Ψ2≠0. You can still use TransformTetrad to produce any desired canonical form different than the default one presented in the table above by taking into account the way the Weyl scalars are changed by these three classes of rotation, that is:
I) Rotations of Class I leave Ψ0 unchanged
I) Rotations of Class II leave Ψ4 unchanged
I) Rotations of Class III leave Ψ2 unchanged
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;μ
Load the Schwarzschild metric in spherical coordinates; you can input g_[Schwarzschild] or the simpler
⁢⁢Systems of spacetime coordinates are:⁢⁢⁢X=r,θ,φ,t
⁢⁢Default differentiation variables for d_, D_ and dAlembertian are:⁢⁢⁢X=r,θ,φ,t
Setting ⁢lowercaselatin_is⁢ letters to represent ⁢space⁢ indices
⁢⁢The Schwarzschild metric in coordinates ⁢⁢⁢r,θ,φ,t
Signature: ⁢- - - +
An orthonormal tetrad (this is the one used by default) is
The key observation here is that the orientation of the axis of the local system of references (the tetrad system) is arbitrary and with them the values of the Weyl scalars too. So, you can perform a Lorentz transformation on the tetrad, without changing the spacetime metric g_, while fixing the values of the Weyl scalars in one of the possible forms (classes) shown in the table in the description. Two spacetime metrics with different classification cannot be different coordinate representations of the same metric (if the classification is the same the question is still undecided). This Petrov classification is however not applicable when the spacetime is conformally flat so that all the Weyl scalars are equal to 0. In this case the Segre classification of the Ricci tensor plays a role equivalent to the Petrov classification in the non-conformally flat cases. In this framework the ability to perform transformations of the tetrad (i.e. of the orientation of the axis of the tetrad system) to fix the Weyl or Ricci scalars is key to discuss the equivalence problem between two metrics.
The transformations that you can perform with TransformTetrad are either the standard ones, of classes I, II or III specified in the description, or arbitrary. For example, transform the orthonormal tetrad above using a null rotation with fixed l_, where l_ and the related NULL vectors of the Newman-Penrose formalism (commands of the Tetrads package) satisfy
Note the transformation parameter E introduced by TransformTetrad. You can replace it by a value (see subs and eval) or assign it, or you may want to Assume that this parameter is, for instance, real
Now is this a tetrad? Of what type?
Type of tetrad: ⁢null
Although the transformation is always applied on a null tetrad (either a null form of e_ set using Setup, or derived null tetrad derived from e_ when it is of orthonormal type), and the transformed tetrad is always a null tetrad, depending on the case it is more convenient to work with an orthonormal tetrad. To transform the returned null tetrad into an orthonormal one, or the other way around, you can use the OrthonormalTetrad and NullTetrad commands.
TransformTetrad applies a transformation on a tetrad but does not set the value of e_ to this result. For that purpose, i.e. to effectively rotate the tetrad system of references to match the orientation/tetrad you want, use Setup
Following this reor