Tensor calculus

In mathematics, tensor calculus, tensor analysis, or Ricci calculus is an extension of vector calculus to tensor fields (tensors that may vary over a manifold, e.g. in spacetime).

Developed by Gregorio Ricci-Curbastro and his student Tullio Levi-Civita, it was used by Albert Einstein to develop his general theory of relativity. Unlike the infinitesimal calculus, tensor calculus allows presentation of physics equations in a form that is independent of the choice of coordinates on the manifold.

Tensor calculus has many applications in physics, engineering and computer science including elasticity, continuum mechanics, electromagnetism (see mathematical descriptions of the electromagnetic field), general relativity (see mathematics of general relativity), quantum field theory, and machine learning.

Working with a main proponent of the exterior calculus Élie Cartan, the influential geometer Shiing-Shen Chern summarizes the role of tensor calculus: "In our subject of differential geometry, where you talk about manifolds, one difficulty is that the geometry is described by coordinates, but the coordinates do not have meaning. They are allowed to undergo transformation. And in order to handle this kind of situation, an important tool is the so-called tensor analysis, or Ricci calculus, which was new to mathematicians. In mathematics you have a function, you write down the function, you calculate, or you add, or you multiply, or you can differentiate. You have something very concrete. In geometry the geometric situation is described by numbers, but you can change your numbers arbitrarily. So to handle this, you need the Ricci calculus."

Syntax
Tensor notation makes use of upper and lower indexes on objects that are used to label a variable object as covariant (lower index), contravariant (upper index), or mixed covariant and contravariant (having both upper and lower indexes). In fact in conventional math syntax we make use of covariant indexes when dealing with Cartesian coordinate systems $$(x_1, x_2, x_3)$$ frequently without realizing this is a limited use of tensor syntax as covariant indexed components.

Tensor notation allows upper index on an object that may be confused with normal power operations from conventional math syntax.

Vector decomposition
Tensors notation allows a vector ($$\vec{V}$$) to be decomposed into an Einstein summation representing the tensor contraction of a basis vector ($$\vec{Z}_i$$ or $$\vec{Z}^i$$) with a component vector ($$V_i$$ or $$V^i$$).

$$\vec{V} = V^i \vec{Z}_i = V_i \vec{Z}^i$$

Every vector has two different representations, one referred to as contravariant component ($$V^i$$) with a covariant basis ($$\vec{Z}_i$$), and the other as a covariant component ($$V_i$$) with a contravariant basis ($$\vec{Z}^i$$). Tensor objects with all upper indexes are referred to as contravariant, and tensor objects with all lower indexes are referred to as covariant. The need to distinguish between contravariant and covariant arises from the fact that when we dot an arbitrary vector with its basis vector related to a particular coordinate system, there are two ways of interpreting this dot product, either we view it as the projection of the basis vector onto the arbitrary vector, or we view it as the projection of the arbitrary vector onto the basis vector, both views of the dot product are entirely equivalent, but have different component elements and different basis vectors:

$$\vec{V} \cdot \vec{Z}_i = V_i = \vec{V}^T \vec{Z}_i = \vec{Z}_i^T \vec{V} = {\mathrm{proj}_{\vec{Z}^i}(\vec{V})} \cdot \vec{Z}_i = {\mathrm{proj}_{\vec{V}}(\vec{Z}^i)} \cdot \vec{V}$$

$$\vec{V} \cdot \vec{Z}^i = V^i = \vec{V}^T \vec{Z}^i = {\vec{Z}^i}^T \vec{V} = {\mathrm{proj}_{\vec{Z}_i}(\vec{V})} \cdot \vec{Z}^i = {\mathrm{proj}_{\vec{V}}(\vec{Z}_i)} \cdot \vec{V}$$

For example, in physics you start with a vector field, you decompose it with respect to the covariant basis, and that's how you get the contravariant coordinates. For orthonormal cartesian coordinates, the covariant and contravariant basis are identical, since the basis set in this case is just the identity matrix, however, for non-affine coordinate system such as polar or spherical there is a need to distinguish between decomposition by use of contravariant or covariant basis set for generating the components of the coordinate system.

Covariant vector decomposition
$$\vec{V} = V^i \vec{Z}_i$$

Contravariant vector decomposition
$$\vec{V} = V_i \vec{Z}^i$$

Metric tensor
The metric tensor represents a matrix with scalar elements ($$Z_{ij}$$ or $$Z^{ij}$$) and is a tensor object which is used to raise or lower the index on another tensor object by an operation called contraction, thus allowing a covariant tensor to be converted to a contravariant tensor, and vice versa.

Example of lowering index using metric tensor:

$$T_i=Z_{ij}T^j$$

Example of raising index using metric tensor:

$$T^i=Z^{ij}T_j$$

The metric tensor is defined as:

$$Z_{ij} = \vec{Z}_i \cdot \vec{Z}_j$$

$$Z^{ij} = \vec{Z}^i \cdot \vec{Z}^j$$

This means that if we take every permutation of a basis vector set and dotted them against each other, and then arrange them into a square matrix, we would have a metric tensor. The caveat here is which of the two vectors in the permutation is used for projection against the other vector, that is the distinguishing property of the covariant metric tensor in comparison with the contravariant metric tensor.

Two flavors of metric tensors exist: (1) the contravariant metric tensor ($$Z^{ij}$$), and (2) the covariant metric tensor ($$Z_{ij}$$). These two flavors of metric tensor are related by the identity:

$$Z_{ik}Z^{jk} = \delta^j_i$$

For an orthonormal Cartesian coordinate system, the metric tensor is just the kronecker delta $$\delta_{ij}$$ or $$\delta^{ij}$$, which is just a tensor equivalent of the identity matrix, and $$\delta_{ij} = \delta^{ij} = \delta^i_j$$.

Jacobian
In addition a tensor can be readily converted from an unbarred($$x$$) to a barred coordinate($$\bar{x}$$) system having different sets of basis vectors:

$$f(x^1, x^2, \dots, x^n) = f\bigg(x^1(\bar{x}), x^2(\bar{x}), \dots, x^n(\bar{x})\bigg) = \bar{f}(\bar{x}^1, \bar{x}^2, \dots, \bar{x}^n)= \bar{f}\bigg(\bar{x}^1(x), \bar{x}^2(x), \dots, \bar{x}^n(x)\bigg)$$

by use of Jacobian matrix relationships between the barred and unbarred coordinate system ($$\bar{J}=J^{-1}$$). The Jacobian between the barred and unbarred system is instrumental in defining the covariant and contravariant basis vectors, in that in order for these vectors to exist they need to satisfy the following relationship relative to the barred and unbarred system:

Contravariant vectors are required to obey the laws:

$$v^i = \bar{v}^r\frac{\partial x^i(\bar{x})}{\partial \bar{x}^r}$$

$$\bar{v}^i = v^r\frac{\partial \bar{x}^i(x)}{\partial x^r}$$

Covariant vectors are required to obey the laws:

$$v_i = \bar{v}_r\frac{\partial \bar{x}^i(x)}{\partial x^r}$$

$$\bar{v}_i = v_r\frac{\partial x^r(\bar{x})}{\partial \bar{x}^i}$$

There are two flavors of Jacobian matrix:

1. The J matrix representing the change from unbarred to barred coordinates. To find J, we take the "barred gradient", i.e. partial derivative with respect to $$\bar{x}^i$$:

$$J = \bar{\nabla} f(x(\bar{x}))$$

2. The $$\bar{J}$$ matrix, representing the change from barred to unbarred coordinates. To find $$\bar{J}$$, we take the "unbarred gradient", i.e. partial derive with respect to $$x^i$$:

$$\bar{J} = \nabla \bar{f}(\bar{x}(x))$$

Gradient vector
Tensor calculus provides a generalization to the gradient vector formula from standard calculus that works in all coordinate systems:

$$ \nabla F = \nabla_i F \vec{Z}^i $$

Where: $$\nabla_i F = \frac{\partial F}{\partial Z^i}$$

In contrast, for standard calculus, the gradient vector formula is dependent on the coordinate system in use (example: Cartesian gradient vector formula vs. the polar gradient vector formula vs. the spherical gradient vector formula, etc.). In standard calculus, each coordinate system has its own specific formula, unlike tensor calculus that has only one gradient formula that is equivalent for all coordinate systems. This is made possible by an understanding of the metric tensor that tensor calculus makes use of.