Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Differential Forms

We express differential forms in terms of tensors and index notation. The closest treatment seems to be Winitzki (2009), but we improve even upon that in terms of clarity, exact short definitions and explicit examples.

It seems the usual old-fashioned index-based tensor formalism described in Čertík, O. et al. (2025) is all that is needed, and the differential forms provide an equivalent and optional treatment for antisymmetric tensors, which might be sometimes useful, but fundamentally does not bring any new feature or machinery, exactly the same computations can be done using index-based tensors also. We show how to equivalently rewrite any differential form formula or computation using tensors.

Vectors, Forms and Tensors

Any vector u\mathbf{u} can be written as:

u=uiei.\mathbf{u}=u^i \vec{e}_i\,.

Any form p\mathbf{p} can be written as:

p=pie~i.\mathbf{p}=p_i \tilde{e}^i\,.

The basis vectors are ei\vec{e}_i and the basis forms are e~i\tilde{e}^i.

Any rank 2 tensor A\mathbf{A} can be written as:

A=Aijeiej.\mathbf{A}=A^{ij} \vec{e}_i \otimes \vec{e}_j\,.

Any rank 3 tensor A\mathbf{A} can be written as:

A=Aijkeiejek.\mathbf{A}=A^{ijk} \vec{e}_i \otimes \vec{e}_j \otimes \vec{e}_k\,.

The tensor basis is eiej\vec{e}_i \otimes \vec{e}_j and eiejek\vec{e}_i \otimes \vec{e}_j \otimes \vec{e}_k. If we mix lower and upper indices:

A=Aijeie~j.\mathbf{A}=A^i{}_{j} \vec{e}_i \otimes \tilde{e}^j\,.

The vector basis and the dual (form) basis is related by a dot product:

e~iej=δij.\tilde{e}^i \cdot \vec{e}_j = \delta^i{}_j\,.

If the vector basis is a coordinate basis, then it can be written as:

ei=rxixi,\vec{e}_i = {\partial\mathbf{r}\over\partial x^i} \equiv {\partial\over\partial x^i}\,,

where the position vector r\mathbf{r} can be omitted, and the basis vector is treated as an operator on any function on the manifold (we will not use this notation). The corresponding form basis can be written as

e~idxi.\tilde{e}^i \equiv dx^i\,.

The form can be said to act on a vector to produce a number (definition of a dual space) as follows using a dot product:

p(u)pu=pie~iujej=piuje~iej=piujδij=piui.\mathbf{p}(\mathbf{u})\equiv\mathbf{p} \cdot \mathbf{u} =p_i \tilde{e}^i \cdot u^j \vec{e}_j =p_i u^j \tilde{e}^i \cdot \vec{e}_j =p_i u^j \delta^i{}_j =p_i u^i\,.

We will not use the p(u)\mathbf{p}(\mathbf{u}) notation, we will use the dot product directly, or simply contracting indices as piuip_i u^i. All other forms acting on vectors is defined in a similar way using a dot product, and in index notation it just becomes a contraction.

Index Notation

We omit writing the basis vectors, so equations from the previous sections would be just uiu^i, pip_i, AijA^{ij}, AijkA^{ijk}, AijA^i{}_j, piuip_i u^i, etc. In most cases that is enough to fully represent everything. When we want to represent the tensor itself, we include the basis functions too.

The upper and lower indices are treated equally, they are just contravariant and covariant components of the same tensor.

Antisymmetric Tensors

An antisymmetric part of a tensor can be written as follows for rank 2:

A[ij]=12!εijεklAkl=12det(δikδilδjkδjl)Akl=12(δikδjlδilδjk)Akl=A_{[ij]} = {1\over2!}\varepsilon_{ij}\varepsilon^{kl} A_{kl} = {1\over2}\det\begin{pmatrix} \delta_i{}^k & \delta_i{}^l \\ \delta_j{}^k & \delta_j{}^l \end{pmatrix} A_{kl} = {1\over2}(\delta_i{}^k\delta_j{}^l - \delta_i{}^l \delta_j{}^k) A_{kl}=

=12(AijAji).= {1\over2}(A_{ij}-A_{ji})\,.

Rank 3:

A[ijk]=13!εijkεlmnAlmn=13!det(δilδimδinδjlδjmδjnδklδkmδkn)Almn=A_{[ijk]} = {1\over3!}\varepsilon_{ijk}\varepsilon^{lmn} A_{lmn} = {1\over3!}\det\begin{pmatrix} \delta_i{}^l & \delta_i{}^m & \delta_i{}^n \\ \delta_j{}^l & \delta_j{}^m & \delta_j{}^n \\ \delta_k{}^l & \delta_k{}^m & \delta_k{}^n \end{pmatrix} A_{lmn}=

=13!(δilδjmδknδimδjlδkn+)Almn== {1\over3!}(\delta_i{}^l\delta_j{}^m\delta_k{}^n - \delta_i{}^m\delta_j{}^l\delta_k{}^n + \cdots) A_{lmn}=

=16(AijkAjik++).= {1\over6}(A_{ijk}-A_{jik}+\cdots - \cdots + \cdots)\,.

Rank 4:

A[ijkl]=14!εijklεmnopAmnop=14!det(δimδinδioδipδjmδjnδjoδjpδkmδknδkoδkpδlmδlnδloδlp)Amnop=A_{[ijkl]} = {1\over4!}\varepsilon_{ijkl}\varepsilon^{mnop} A_{mnop} = {1\over4!}\det\begin{pmatrix} \delta_i{}^m & \delta_i{}^n & \delta_i{}^o & \delta_i{}^p \\ \delta_j{}^m & \delta_j{}^n & \delta_j{}^o & \delta_j{}^p \\ \delta_k{}^m & \delta_k{}^n & \delta_k{}^o & \delta_k{}^p \\ \delta_l{}^m & \delta_l{}^n & \delta_l{}^o & \delta_l{}^p \end{pmatrix} A_{mnop}=

=14!(δimδjnδkoδlpδinδjmδkoδlp+)Amnop== {1\over4!}(\delta_i{}^m\delta_j{}^n\delta_k{}^o\delta_l{}^p - \delta_i{}^n\delta_j{}^m\delta_k{}^o\delta_l{}^p + \cdots) A_{mnop}=

=124(AijklAjikl+).= {1\over24}(A_{ijkl}-A_{jikl}+\cdots)\,.

The fraction at the beginning tells us how many terms there are in the final answer: 2, 6, 24 for ranks 2, 3, 4.

Exterior (Wedge) Product

The exterior (wedge) product of two forms u=uie~i\mathbf{u}=u_i \tilde{e}^i and v=vie~i\mathbf{v}=v_i \tilde{e}^i is defined as:

uvuvvu.\mathbf{u} \wedge \mathbf{v} \equiv \mathbf{u} \otimes \mathbf{v} - \mathbf{v} \otimes \mathbf{u}\,.

Expressing this in components in terms of the basis:

uv=uie~ivje~j=uvvu=uie~ivje~jvie~iuje~j=\mathbf{u} \wedge \mathbf{v} = u_i \tilde{e}^i \wedge v_j \tilde{e}^j =\mathbf{u} \otimes \mathbf{v} - \mathbf{v} \otimes \mathbf{u} = u_i \tilde{e}^i \otimes v_j \tilde{e}^j - v_i \tilde{e}^i \otimes u_j \tilde{e}^j =
=uivje~ie~jviuje~ie~j== u_i v_j \tilde{e}^i \otimes \tilde{e}^j - v_i u_j \tilde{e}^i \otimes \tilde{e}^j =
=(uivjujvi)e~ie~j== (u_i v_j-u_j v_i) \tilde{e}^i \otimes \tilde{e}^j =
=det(uiujvivj)e~ie~j=Aije~ie~j.= \det\begin{pmatrix} u_i & u_j \\ v_i & v_j \end{pmatrix} \tilde{e}^i \otimes \tilde{e}^j = A_{ij}\tilde{e}^i \otimes \tilde{e}^j\,.

The tensor AijA_{ij} is antisymmetric. The last equation can be written using a wedge product by first rewriting the tensor basis into its symmetric and antisymmetric parts:

Aije~ie~j=Aij12(e~ie~j+e~je~i)+Aij12(e~ie~je~je~i)=A_{ij}\tilde{e}^i \otimes \tilde{e}^j =A_{ij}{1\over2}(\tilde{e}^i \otimes \tilde{e}^j+\tilde{e}^j \otimes \tilde{e}^i) +A_{ij}{1\over2}(\tilde{e}^i \otimes \tilde{e}^j-\tilde{e}^j \otimes \tilde{e}^i)=

=Aij12(e~ie~j+e~je~i)+Aij12e~ie~j=12Aije~ie~j.=A_{ij}{1\over2}(\tilde{e}^i \otimes \tilde{e}^j+\tilde{e}^j \otimes \tilde{e}^i) +A_{ij}{1\over2} \tilde{e}^i \wedge \tilde{e}^j ={1\over2} A_{ij} \tilde{e}^i \wedge \tilde{e}^j\,.

The left term contains an antisymmetric tensor Aij=uivjujviA_{ij}=u_i v_j-u_j v_i contracted with a symmetric tensor, the result is zero. We end up with:

uie~ivje~j=(uivjujvi)e~ie~j=12(uivjujvi)e~ie~j.u_i \tilde{e}^i \wedge v_j \tilde{e}^j =(u_i v_j-u_j v_i) \tilde{e}^i \otimes \tilde{e}^j = {1\over2} (u_i v_j-u_j v_i) \tilde{e}^i \wedge \tilde{e}^j\,.

Thus we get:

uie~ivje~j=det(uiujvivj)e~ie~j=Aije~ie~j=12Aije~ie~j.u_i \tilde{e}^i \wedge v_j \tilde{e}^j = \det\begin{pmatrix} u_i & u_j \\ v_i & v_j \end{pmatrix} \tilde{e}^i \otimes \tilde{e}^j = A_{ij}\tilde{e}^i \otimes \tilde{e}^j = {1\over2}A_{ij}\tilde{e}^i \wedge \tilde{e}^j\,.

The wedge product of three 1-forms is defined using:

uvwuvwvuw+wuvwvu+\mathbf{u} \wedge \mathbf{v} \wedge \mathbf{w} \equiv \mathbf{u} \otimes \mathbf{v} \otimes \mathbf{w} -\mathbf{v} \otimes \mathbf{u} \otimes \mathbf{w} +\mathbf{w} \otimes \mathbf{u} \otimes \mathbf{v} -\mathbf{w} \otimes \mathbf{v} \otimes \mathbf{u}+

+vwuuwv.+\mathbf{v} \otimes \mathbf{w} \otimes \mathbf{u} -\mathbf{u} \otimes \mathbf{w} \otimes \mathbf{v} \,.

Expressing this in components we get a rank 3 antisymmetric tensor:

uie~ivje~jwke~k=det(uiujukvivjvkwiwjwk)e~ie~je~k=Aijke~ie~je~k.u_i \tilde{e}^i \wedge v_j \tilde{e}^j \wedge w_k\tilde{e}^k = \det\begin{pmatrix} u_i & u_j & u_k \\ v_i & v_j & v_k \\ w_i & w_j & w_k \end{pmatrix} \tilde{e}^i \otimes \tilde{e}^j \otimes \tilde{e}^k =A_{ijk}\tilde{e}^i \otimes \tilde{e}^j \otimes \tilde{e}^k\,.

Higher-order products are defined in analogous manner (nn wedge products is a rank nn fully antisymmetric tensor). The exterior product can be defined for vectors as well. The components of these tensors are equal to:

Aij=det(uiujvivj)=uivjujviA_{ij}= \det\begin{pmatrix} u_i & u_j \\ v_i & v_j \end{pmatrix} = u_i v_j - u_j v_i

and

Aijk=det(uiujukvivjvkwiwjwk).A_{ijk} = \det\begin{pmatrix} u_i & u_j & u_k \\ v_i & v_j & v_k \\ w_i & w_j & w_k \end{pmatrix}\,.

The wedge product is equal to the tensor written using the tensor basis in equations (34) and (37). The same tensor in index notation is given by equations (39) and (40).

Using properties of a determinant, we can see that the wedge product is just a fully antisymmetric tensor.

Examples

Example: dxdzdx \wedge dz

We can now use the definitions to compute various special cases. For example if we have the exterior product of two forms dxdx and dzdz (which have components dxi=δ1idx_i=\delta_{1i} and dzi=δ3idz_i=\delta_{3i}):

dxdz=det(δ1iδ1jδ3iδ3j)e~ie~j=e~1e~3e~3e~1,dx \wedge dz = \det\begin{pmatrix} \delta_{1i} & \delta_{1j} \\ \delta_{3i} & \delta_{3j} \end{pmatrix} \tilde{e}^i \otimes \tilde{e}^j = \tilde{e}^1 \otimes \tilde{e}^3 - \tilde{e}^3 \otimes \tilde{e}^1 \,,

thus the components of this rank 2 tensor are:

Aij=det(δ1iδ1jδ3iδ3j)=δ1iδ3jδ1jδ3i=(001000100).A_{ij}=\det\begin{pmatrix} \delta_{1i} & \delta_{1j} \\ \delta_{3i} & \delta_{3j} \end{pmatrix}=\delta_{1i}\delta_{3j}-\delta_{1j}\delta_{3i} =\begin{pmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{pmatrix} \,.

Example: e~1e~3\tilde{e}^1 \wedge \tilde{e}^3

The exterior product of two basis forms e~1\tilde{e}^1 and e~3\tilde{e}^3 is:

e~1e~3=det(δ1iδ1jδ3iδ3j)e~ie~j=e~1e~3e~3e~1,\tilde{e}^1 \wedge \tilde{e}^3 = \det\begin{pmatrix} \delta_{1i} & \delta_{1j} \\ \delta_{3i} & \delta_{3j} \end{pmatrix} \tilde{e}^i \otimes \tilde{e}^j = \tilde{e}^1 \otimes \tilde{e}^3 - \tilde{e}^3 \otimes \tilde{e}^1 \,,

thus the components of this rank 2 tensor are:

Aij=det(δ1iδ1jδ3iδ3j)=δ1iδ3jδ1jδ3i=(001000100).A_{ij}=\det\begin{pmatrix} \delta_{1i} & \delta_{1j} \\ \delta_{3i} & \delta_{3j} \end{pmatrix}=\delta_{1i}\delta_{3j}-\delta_{1j}\delta_{3i} =\begin{pmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{pmatrix} \,.

We can see that e~1e~3=e~1e~3e~3e~1\tilde{e}^1 \wedge \tilde{e}^3 = \tilde{e}^1 \otimes \tilde{e}^3 - \tilde{e}^3 \otimes \tilde{e}^1, so the wedge product is simply an antisymmetric tensor, written with the form basis functions included.

Example: dx1dx2dx4dx^1 \wedge dx^2 \wedge dx^4 evaluated on vectors

When evaluating the form (composed of basis forms) on vectors u\mathbf{u}, v\mathbf{v} and w\mathbf{w}, we are computing the following dot product of the two rank 3 tensors (full contraction):

(dx1dx2dx4)(uvw)=(dx^1 \wedge dx^2 \wedge dx^4) \cdot (\mathbf{u} \otimes \mathbf{v} \otimes \mathbf{w})=

=det(δ1iδ1jδ1kδ2iδ2jδ2kδ4iδ4jδ4k)e~ie~je~k(ulvmwnelemen)== \det\begin{pmatrix} \delta_{1i} & \delta_{1j} & \delta_{1k} \\ \delta_{2i} & \delta_{2j} & \delta_{2k} \\ \delta_{4i} & \delta_{4j} & \delta_{4k} \\ \end{pmatrix} \tilde{e}^i \otimes \tilde{e}^j \otimes \tilde{e}^k \cdot (u^l v^m w^n \vec{e}_l \otimes \vec{e}_m \otimes \vec{e}_n)=

=det(δ1iδ1jδ1kδ2iδ2jδ2kδ4iδ4jδ4k)uivjwk=det(u1v1w1u2v2w2u4v4w4).= \det\begin{pmatrix} \delta_{1i} & \delta_{1j} & \delta_{1k} \\ \delta_{2i} & \delta_{2j} & \delta_{2k} \\ \delta_{4i} & \delta_{4j} & \delta_{4k} \\ \end{pmatrix} u^i v^j w^k = \det\begin{pmatrix} u_1 & v_1 & w_1 \\ u_2 & v_2 & w_2 \\ u_4 & v_4 & w_4 \\ \end{pmatrix}\,.

The form has thus selected the first, second and fourth component row of the vectors. The result is just a scalar.

Exterior Derivative

The exterior derivative dd is defined using the following rules / definitions for differential forms:

It turns out in terms of tensors, the exterior derivative is simply a regular derivative that is made antisymmetric:

One can use the formulas from the section “Antisymmetric Tensors” above to evaluate these antisymmetric derivatives. We show examples of this below. We first compute the exterior derivative using differential forms and the above rules, and then we do exactly the same operations using tensors.

Differentiating 0-forms

Input:

f(x,y).f(x, y)\,.

Derivative:

df=xfdx+yfdy.df = \partial_x f\, dx + \partial_y f\, dy\,.

In general, we get:

df=ifdxi.df = \partial_i f \, dx^i\,.

Differentiating 1-forms

Input:

ω=f1(x1,x2)dx1+f2(x1,y2)dx2.\omega = f_1(x^1,x^2) dx^1 + f_2(x^1,y^2) dx^2\,.

Derivative:

dω=df1dx1+df2dx2=if1dxidx1+if2dxidx2=d\omega = d f1 \wedge dx^1 + df_2 \wedge dx^2 = \partial_i f_1 \, dx^i \wedge dx^1 + \partial_i f_2 \, dx^i \wedge dx^2=

=2f1dx2dx1+1f2dx1dx2=(1f22f1)dx1dx2.= \partial_2 f_1 \, dx^2 \wedge dx^1 + \partial_1 f_2 \, dx^1 \wedge dx^2 = (\partial_1 f_2 - \partial_2 f_1) dx^1 \wedge dx^2\,.

In general, the derivative of a 1-form f~=fidxi\tilde f=f_i dx^i is:

df~=d(fidxi)=dfidxi=(jfidxj)dxi=12(jfiifj)dxjdxi=d\tilde f =d(f_i dx^i) =df_i \wedge dx^i =(\partial_j f_i dx^j) \wedge dx^i ={1\over2}(\partial_j f_i - \partial_i f_j) dx^j \wedge dx^i=

=(jfiifj)dxjdxi.=(\partial_j f_i - \partial_i f_j) dx^j \otimes dx^i\,.

So we get:

df~=Aijdxidxj,d\tilde f = A_{ij} dx^i \otimes dx^j\,,

where Aij=ifjjfiA_{ij}=\partial_i f_j - \partial_j f_i.

We take a 1-form fjf_j then we differentiate ifj\partial_i f_j, this is a rank 2 tensor, and we project it into the antisymmetric subspace dxidxjdxjdxi=12dxidxjdx^i \otimes dx^j - dx^j \otimes dx^i={1\over2}dx^i\wedge dx^j, which cancels the symmetric part of the derivative and only the antisymmetric part survives: ifjjfi\partial_i f_j - \partial_j f_i. So we define the derivative to be Aij=ifjjfiA_{ij}=\partial_i f_j - \partial_j f_i. We can define the derivative on antisymmetric tensors (exterior derivative) to be a regular derivative projected into the antisymmetric subset.

Let’s now do the same computation using regular tensors:

Aij=[ifj]=12εijεklkfl=12(δikδjlδilδjk)kfl=12(ifjjfi).A_{ij} = \partial_{[i} f_{j]} = {1\over 2}\varepsilon_{ij}\varepsilon^{kl} \partial_{k} f_{l} = {1\over 2}(\delta_i{}^k\delta_j{}^l-\delta_i{}^l\delta_j{}^k) \partial_{k} f_{l} = {1\over 2}(\partial_i f_j - \partial_j f_i)\,.

The exterior derivative is simply a regular (not antisymmetric) derivative ifj\partial_{i} f_{j} that is made antisymmetric: [ifj]\partial_{[i} f_{j]}. The same applies to higher ranks.

Differentiating 2-forms in 3D

Input:

ω=F1dx2dx3+F2dx3dx1+F3dx1dx2.\omega = F^1 \,dx^2 \wedge dx^3 + F^2 \,dx^3 \wedge dx^1 + F^3 \,dx^1 \wedge dx^2\,.

Output:

dω=dF1dx2dx3+dF2dx3dx1+dF3dx1dx2=d\omega = dF^1 \wedge dx^2 \wedge dx^3 + dF^2 \wedge dx^3 \wedge dx^1 + dF^3 \wedge dx^1 \wedge dx^2=

=1F1dx1dx2dx3+2F2dx2dx3dx1+3F3dx3dx1dx2== \partial_1 F^1 dx^1 \wedge dx^2 \wedge dx^3 + \partial_2 F^2 dx^2 \wedge dx^3 \wedge dx^1 + \partial_3 F^3 dx^3 \wedge dx^1 \wedge dx^2=

=(1F1+2F2+3F3)dx1dx2dx3.= (\partial_1 F^1 + \partial_2 F^2 + \partial_3 F^3) \,dx^1 \wedge dx^2 \wedge dx^3\,.

In general for antisymmetric AijA_{ij}:

ω=Aijdxidxj=12Aijdxidxj.\omega = A_{ij}\, dx^i \otimes dx^j = {1\over2} A_{ij}\, dx^i \wedge dx^j\,.

We differentiate the tensor:

dω=12dAijdxidxj=12kAijdxkdxidxj=d\omega = {1\over2} d A_{ij} \, dx^i \wedge dx^j = {1\over2} \partial_k A_{ij} \, dx^k \wedge dx^i \wedge dx^j=

=12[kAij]dxidxjdxk== {1\over2} \partial_{[k} A_{ij]} \, dx^i \wedge dx^j \wedge dx^k=

=1216εkijεlmnlAmndxidxjdxk== {1\over2} {1\over 6}\varepsilon_{kij}\varepsilon^{lmn} \partial_{l} A_{mn} \, dx^i \wedge dx^j \wedge dx^k=

=1216εkijεlmnlεmnqFqdxidxjdxk== {1\over2} {1\over 6}\varepsilon_{kij}\varepsilon^{lmn} \partial_{l} \varepsilon_{mnq} F^q \, dx^i \wedge dx^j \wedge dx^k=

=1216εkij2δlqlFqdxidxjdxk== {1\over2} {1\over 6}\varepsilon_{kij} 2 \delta^l{}_q \partial_{l} F^q \, dx^i \wedge dx^j \wedge dx^k=

=16εijkqFqdxidxjdxk== {1\over 6}\varepsilon_{ijk} \partial_q F^q \, dx^i \wedge dx^j \wedge dx^k=

=qFqdx1dx2dx3.= \partial_q F^q \, dx^1 \wedge dx^2 \wedge dx^3\,.

We used the fact that the basis is antisymmetric, so only the antisymmetric part of the derivative survives. The basis becomes antisymmetric due to the incorporation of the dxkdx^k base via the wedge product, otherwise the derivative is not fully antisymmetric.

The above is the correct result for differentiating any kk-form in nn-D space where k=n1k=n-1.

Let’s now do the same computation using regular tensors:

[kAij]=16εkijεlmnlAmn=16εkijεlmnlεmnqFq=\partial_{[k} A_{ij]} = {1\over 6}\varepsilon_{kij}\varepsilon^{lmn} \partial_{l} A_{mn} = {1\over 6}\varepsilon_{kij}\varepsilon^{lmn} \partial_{l} \varepsilon_{mnq} F^q =

=16εkij2δlqlFq=16εijkqFq.= {1\over 6}\varepsilon_{kij} 2 \delta^l{}_q \partial_{l} F^q = {1\over 6}\varepsilon_{ijk} \partial_q F^q\,.

The exterior derivative is simply a regular (not antisymmetric) derivative kAij\partial_{k} A_{ij} that is made antisymmetric: [kAij]\partial_{[k} A_{ij]}.

TODO

References
  1. Winitzki, S. (2009). Linear algebra via exterior products. Sergei Winitzki.
  2. Čertík, O. et al. (2025). Theoretical Physics Reference: Differential Geometry. https://www.theoretical-physics.com/dev/math/differential-geometry.html