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

Online Help

All Products    Maple    MapleSim

Physics[Tetrads][NullTetrad] - compute different forms of a null tetrad for the current spacetime metric

Physics[Tetrads][OrthonormalTetrad] - compute different forms of an orthonormal tetrad for the current spacetime metric

Physics[Tetrads][IsTetrad] - return true or false according to whether a given matrix is a null or orthonormal tetrad and indicate what kind of the tetrad is

Calling Sequence

NullTetrad(method = ..., firstvector = ...)

OrthonormalTetrad(method = ..., firstvector = ...)

IsTetrad(T, orthonormal, null, quiet)


method = ..


optional, indicates the method to be used, that could be GramSchmidt or Eigenvectors

firstvector = ..


optional, a Vector or a list with the vector components, as many as the dimension of spacetime; indicates the first departing vector to be used with the GramSchmidt method



a Matrix representing a tetrad, it is also optionally the first argument in calls to NullTetrad and OrthonormalTetrad



optional, to indicate to IsTetrad to check only for an orthonormal tetrad



optional, to indicate to IsTetrad to check only for an null tetrad



optional, to indicate to IsTetrad to avoid displaying the type of tetrad on the screen



NullTetrad and OrthonormalTetrad compute tetrads for the spacetime metric set. Recalling, given the metric of a local (tetrad) system of references, there are infinitely many tetrads (represented in Physics by the Tetrads:-e_ command) relating the components of a tensor in the global (spacetime) and local (tetrad) systems of references. These two commands NullTetrad and OrthonormalTetrad compute different tetrads, that may result more convenient in different contexts, for example when computing the Weyl and Ricci scalars or performing a Petrov classification.


When the tetrad you get from NullTetrad or OrthonormalTetrad is the one you prefer, say E, you can set it, to be used by the system as the current tetrad, by entering Setuptetrad=E. You can always see the components of the current tetrad by entering e_[].


When called with no arguments, both NullTetrad and OrthonormalTetrad will depart from the current tetrad and compute a corresponding - null or orthonormal - tetrad. The formula used depends on the signature. For the signatures (---+) and (+++-), given an orthonormal tetrad E, NullTetrad returns a null tetrad constructed as M . E, where


and, for the signatures (+---) and (-+++),


Given a null tetrad E, OrthonormalTetrad returns an orthonormal tetrad constructed as M1.E.


Both NullTetrad and OrthonormalTetrad can also be called with a first argument, T, a matrix representing a tetrad, in which case instead of departing from the current components of Tetrads:-e_, they apply the formulas just described to T.


Additionally, instead of constructing tetrads multiplying by M or its inverse, NullTetrad and OrthonormalTetrad can construct tetrads from scratch using two different methods: GramSchmidt or Eigenvectors - see the Examples section.


Independently of NullTetrad and OrthonormalTetrad, you can always set the tetrad to have any preferred matrix form, say E, by entering Setuptetrad=E, or transform a tetrad into another one using TransformTetrad. Of particular interest is the the ability of TransformTetrad to compute a tetrad in canonicalform, that is a form that results in a canonical form of the Weyl scalars.


IsTetrad is a complementary command: it returns true or false depending on whether the given matrix T is a tetrad, optionally indicating the type of tetrad.





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;μ




Set the spacetime metric to something non-flat, for instance take the metric [13,7,5] of the Exact solutions book referenced at the end of this page:



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

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

The metric in coordinates x,y,z,t

Parameters: ε,At,Bt,A1

Comments: ⅇpsⅈlon=1 or ⅇpsⅈlon=-1

Domain: 0<t

Assumptions: At::real&comma;Bt::real&comma;0<A1&comma;0<x&comma;0<At&comma;0<Bt

Resetting the signature of spacetime from - - - + to + + + - in order to match the signature in the database of metrics


Setting lowercaselatin_is letters to represent space indices



Compact the display of the functions At,Bt:


Atwill now be displayed asA

Btwill now be displayed asB


The default orthonormal tetrad is:




It is possible to test whether these tetrads satisfy the tetrad definition




using IsTetrad


Type of tetrad: orthonormal



To compute with a null tetrad instead of an orthonormal tetrad, set the tetrad or tetradmetric to null using Setup.




Note: this form of the null tetrad metric is consistent with time in position 4 (default) - and not with time in position 1. To see the more frequent form of the tetradmetric




you can either set the signature of the underlying inertial system of references (Minkowski) indicating time (different sign) in the first place, or set the tetradmetric directly using Setup(tetradmetric = the_matrix_above).

So now the metric of the local (tetrad) system of references is:




and the null tetrad is:





Type of tetrad: null



You can compute different forms of an orthonormal tetrad or a null tetrad using the OrthonormalTetrad and NullTetrad commands, requesting the use of different methods, or passing a starting vector. For instance, this is the default form of an orthonormal tetrad for the current spacetime metric:




There are two methods available for computing these tetrads: the GramSchmidt (generalization to curved spaces) and Eigenvectors (based on computing the Eigenvectors of a related Matrix). By default, the Physics package routines decide on what method is more convenient to use for the spacetime metric set. In this case the routines use the GramSchmidt method; you can check the other method via:




If this is an orthonormal tetrad you prefer, you can set it via Setup(e_ = ...), where ... is the matrix you prefer (see the previous output). To see what the null tetrads corresponding to these two orthonormal tetrads would be:







When using the GramSchmidt method you can also specify the first vector. Recalling, the method works iterating the computation of the next vector (line of the tetrad) starting from a first vector. For example, instead of starting from εA&comma;0&comma;0&comma;0, start from 0&comma;0&comma;0&comma;1 compare with default result of OrthonormalTetrad lines above.





Type of tetrad: orthonormal







Type of tetrad: null



See Also

d_, D_, e_, eta_, g_, gamma_, l_, lambda_, m_, mb_, n_, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Ricci, Setup, Tetrads, TransformTetrad, Weyl




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


Stephani, H., Kramer, D., MacCallum, M., Hoenselaers, C. Herlt, E.  Exact Solutions of Einstein's Field Equations, Cambridge Monographs on Mathematical Physics, second edition. Cambridge University Press, 2003.