The LeviCivita tensor - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Physics : Physics/LeviCivita

Physics[LeviCivita] - The LeviCivita tensor

Calling Sequence

LeviCivita[alpha, beta, mu, nu, ...]


alpha, beta, mu, nu, ...


the indices, as names representing integer numbers between 0 and the dimension (number of indices); they can also be the numbers themselves



LeviCivita[alpha, beta, mu, nu, ...], displayed as εα,β,μ,ν,... or Εα,β,μ,ν,..., respectively for the galilean and nongalilean case, is a computational representation for the totally antisymmetric LeviCivita pseudo-tensor.


The number of indices in LeviCivita is not restricted to the spacetime dimension. It can be used as well as a totally antisymmetric tensor in arbitrary dimensions (minimum = 2).


The generic antisymmetric symbol, also called galilean LeviCivita, is equal to 1 when all its indices are integers, ordered from 0 to the dimension or any even permutation of that ordering, -1 for any odd permutation of that ordering, and 0 when any of the indices is repeated.


In the nongalilean case, that is the generalization of the galilean case to curvilinear coordinates, say in 4 dimensions, the all-contravariant LeviCivita[alpha, beta, mu, nu] is defined in terms of the galilean case by



where g is the determinant of the spacetime metric. Using the formula



and taking into account the definition for the all-contravariant case given above, the all-covariant case is given by



In the Maple worksheet, by default, LeviCivita represents the galilean case, even when working in curvilinear coordinates, with a nongalilean spacetime metric. To set LeviCivita to represent the nongalilean case enter Setup(levicivita = nongalilean).


When the indices of LeviCivita assume integer values they are expected to be between 0 and the dimension (number of indices), and the corresponding value of LeviCivita 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 LeviCivita returns unevaluated after normalizing its indices taking into account its totally antisymmetric property.


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.


When Physics is loaded, the default spacetime is galilean, of Minkowski type. To set the spacetime metric to something different use Setup. During a Maple session, the value of the components of the general relativity tensors of Physics, that is: Christoffel, the covariant derivative D_, Einstein, the nongalilean LeviCivita, Ricci, Riemann and Weyl, automatically follows the value or any changes introduced in the components of the spacetime metric.


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


array: (synonym: matrix, Matrix, Array, or no indices whatsoever, as in LeviCivita[]) returns an Array that when indexed with numerical values from 1 to the dimension (number of indices in LeviCivita[mu, nu, ...]) it returns the value of each of the components of LeviCivita. 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. 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 LeviCivita 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.


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


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



Setup(mathematicalnotation = true);



When Physics is initialized, the spacetime is 4-dimensional and galilean with signature (-, -, -, +). You can see the metric querying Setup, as in Setup(metric), or directly entering the metric as g_[], with no indices




The values 0 and 4 of the indices represent the same, and the convention for the galilean all-contravariant LeviCivita is

LeviCivita[~0, ~1, ~2, ~3] = LeviCivita[~4, ~1, ~2, ~3];



As usual, lowering or raising the time-like index 0 does not change the sign. Enter the index 0 without ~

LeviCivita[0, ~1, ~2, ~3];



and so, for the galilean all-covariant LeviCivita,

LeviCivita[0, 1, 2, 3];



When two indices are equal, LeviCivita returns 0

LeviCivita[0, 0, 2, 3];



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

LeviCivita[mu, nu, alpha, beta];



LeviCivita[beta, alpha, nu, mu];



(7) - (8);



Check now the nonzero components of Christoffel, used to construct the LeviCivita tensor in curvilinear coordinates. Because the default spacetime is of Minkowski type, there are none




Hence Εμ,ν,α,β=εμ,ν,α,β,

Christoffel[mu, alpha, beta];



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:

ds2 := r^2*dtheta^2 + r^2*sin(theta)^2*dphi^2 - 2*dt*dr - 2*k(r, t)^2*dt^2;



While setting the metric set also the corresponding coordinates

Setup(coordinates = spherical, metric = ds2);

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

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




At this point LeviCivita, by default, still represents the galilean εμ,ν,α,β.

LeviCivita[alpha, beta, mu, nu];



LeviCivita[1, 2, 3, 4];



LeviCivita[1, 1, 3, 4];






To set LeviCivita as nongalilean use Setup

Setup(levicivita = nongalilean);



Note the change in the display, reflecting the nongalilean character of LeviCivita

LeviCivita[alpha, beta, mu, nu];



LeviCivita[1, 1, 3, 4];



%LeviCivita[1, 2, 3, 4] = LeviCivita[1, 2, 3, 4];



%LeviCivita[~1, ~2, ~3, ~4] = LeviCivita[~1, ~2, ~3, ~4];



In view of Εα,β,μ,ν=1gϵα,β,μ,ν and Εα,β,μ,ν=gϵα,β,μ,ν, we have

(21) * (22);






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

LeviCivita[~1, 2, 3, 4];



LeviCivita[~1, ~2, 3, 4];



Shortcut notation for computing an Array for the all-covariant LeviCivita




An Array with the values of the nongalilean all-contravariant LeviCivita

LeviCivita[~alpha, ~beta, ~mu, ~nu, array];



The nonzero components of the Array just computed

LeviCivita[~mu, ~nu, ~alpha, ~beta, nonzero];




See Also

`.`, Array, ArrayElems, Christoffel, Coordinates, d_, DifferentialGeometry[Tensor][LeviCivita], g_, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Setup, value



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



The Physics[LeviCivita] command was introduced in Maple 16.


For more information on Maple 16 changes, see Updates in Maple 16.