I've been learning about the covariant derivative and I have some doubts.

This answer suggests that $\nabla_{\mathbf{u}} T = \nabla T (\mathbf{u})$, where $T$ is a tensor. The tensor $\nabla T$ appears to be acting on the vector $\mathbf{u}$ in the same way a covector acts on a vector to give a scalar.

The answer then proceeds to derive the identity $\nabla^2_{\mathbf{u}, \mathbf{v}} = \nabla_{\mathbf{u}} \nabla_{\mathbf{v}} \mathbf{w} - \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w}$, where $\mathbf{u}$, $\mathbf{v}$ and $\mathbf{w}$ are vectors.

According to my interpretation, $$\nabla_{\mathbf{u}} \nabla_{\mathbf{v}} \mathbf{w} = \nabla_{\mathbf{u}} (\nabla \mathbf{w} (\mathbf{v})) \\ = \underbrace{(\nabla_{\mathbf{u}} (\nabla \mathbf{w}))}_{\text{a (1,1) tensor}} (\mathbf{v}) + \nabla \mathbf{w} (\nabla_{\mathbf{u}} \mathbf{v}) \\ = \underbrace{\nabla \nabla \mathbf{w}}_{\text{a (1,2) tensor}}(\mathbf{u}, \mathbf{v}) + \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w} \\ = \nabla^2_{\mathbf{u}, \mathbf{v}} + \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w} \\ \therefore \nabla^2_{\mathbf{u}, \mathbf{v}} = \nabla_{\mathbf{u}} \nabla_{\mathbf{v}} \mathbf{w} - \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w}.$$

My confusion arises here. Let $T$ and $S$ be tensors. The above derivation make use of some version of the Leibniz rule that appears to be of the form $\nabla_{\mathbf{u}}(T(S)) = (\nabla_{\mathbf{u}} T)(S) + T(\nabla_{\mathbf{u}} S)$. Is my interpretation correct?

Yet according to this answer, the rule $\nabla (T\otimes S) = \nabla T \otimes S + T\otimes \nabla S$ doesn't exist, but when you add a direction $\mathbf{u}$ $\nabla_{\mathbf{u}} (S\otimes T) = \nabla_\mathbf{u} S \otimes T + S \otimes \nabla_\mathbf{u} T$, it suddenly becomes true. Why?

I'm quite confused by these various versions of the Leibniz rule and the "total covariant derivative" $\nabla$ versus the covariant derivative $\nabla_{\mathbf{u}}$. I appreciate if someone could clear it up for me a little.


2 Answers 2


You should think about the two "covariant derivatives" $\nabla T$ and $\nabla_u T$ the same way you think about differentials and directional derivatives of scalar functions:

If $f : M \to \mathbb R,$ then the covector field $df$ is defined in terms of the directional derivatives $uf$ by $df(u) = uf.$ In vector calculus, we thought about the gradient instead, and would have written this something like $\nabla f \cdot u = D_u f.$

In exactly the same way, we simply define $\nabla T (u)= \nabla_u T,$ and (after checking that this is indeed tensorial in $u$) we have "bundled up" all the derivatives of the tensor field $T$ into a tensor field of one degree higher.

Your calculation for the second covariant derivative (and the Leibniz rule $$\nabla_u(S \otimes T) = \nabla_u S \otimes T + S \otimes \nabla_u T \tag 1$$ that you used in it) are perfectly correct.

The only reason the rule $$\nabla (T\otimes S) = \nabla T \otimes S + T\otimes \nabla S \tag 2$$ is incorrect is the order of the slots/indices. To make this concrete, let's suppose $S$ and $T$ are covector fields for simplicity. In index notation, the correct Leibniz rule is $$\nabla_i(T\otimes S)_{jk} = (\nabla_i T)_j S_k + T_j (\nabla_i S)_k.$$ Note that the direction of differentiation is always $\partial_i$. On the other hand, the incorrect rule $(2)$ would translate into index notation as $$\nabla_i(T \otimes S)_{jk}=(\nabla_iT)_jS_k+T_i (\nabla_jS)_k.$$ Thus $(2)$ has to be corrected by some transposition of indices, something like $$\nabla(T \otimes S) = \nabla T \otimes S + \operatorname{swap}_{12} (T \otimes \nabla S).$$ I've had to invent this "swap" notation for slot transposition, since (as far as I know) there is no conventional way to write this operation when using index-free notation in DG. Usually, authors take one of the following approaches:

  • Use an index-based notation where transposition (and contraction) of higher-order tensors is simple and intuitive to notate.
  • "Plug in" enough vectors/covectors (treated as free variables) that the transposition becomes unnecessary, as in $(1).$
  • In some cases, just abuse notation and write $(2)$, even though it is technically incorrect. In situations where you're not likely to get the various slots mixed up, it's very neat and conceptually clear.
  • $\begingroup$ Thanks a lot for the answer. This clears up a lot of my confusion. So the Leibniz rule still holds for a tensor acting on another tensor, i.e. $\nabla (T(S))$? Is there some source I can refer to? $\endgroup$ May 12, 2020 at 8:12
  • $\begingroup$ @user7777777: yes, this "action of a tensor on a tensor" can be written as a contraction of $T\otimes S$, so the Leibniz rule applies. I learnt this material from O'Neill's Semi Riemannian-Geometry..., which covers this material in quite some detail - see the section on "tensor derivations". $\endgroup$ May 12, 2020 at 9:15
  • $\begingroup$ Alright, this makes sense now. Thank you very much! $\endgroup$ May 12, 2020 at 10:39

Say you have two tensors $\omega,\eta$ of valence $(0,1)$ (i.e., $1$-forms). Then $\nabla\omega$ and $\nabla\eta$ are $(0,2)$ tensors. For two vectors $u,v$, what should $\nabla\omega(u,v)$ mean? The usual thing, which you did, is to interpret it as $(\nabla_u\omega)(v)$, but someone may (although unlikely) interpret it as $(\nabla_v\omega)(u)$. This is not a problem, since almost everyone understands the first meaning and we are all happy.

Now, if $u,v,w$ are vectors, what do you think $\nabla(\omega\otimes\eta)(u,v,w)$ should be? of course, the standard answer is $\nabla_u(\omega\otimes\eta)(v,w)$, which equals $\nabla_u\omega(v)\eta(w)+\omega(v)\nabla_u\eta(w)$ (you can prove it). However, notice what happens if you apply $\nabla\omega\otimes\eta+\omega\otimes\nabla\eta$ to the same tuple of vectors $(u,v,w)$ using the same convention: you get $$\begin{align*} (\nabla\omega\otimes\eta+\omega\otimes\nabla\eta)(u,v,w) &= \nabla\omega(u,v)\eta(w)+\omega(u)\nabla\eta(v,w) \\ &= \nabla_u\omega(v)\eta(w)+\omega(u)\nabla_v\eta(w) \\ &\neq \nabla_u\omega(v)\eta(w)+\omega(v)\nabla_u\eta(w) \\ &= \nabla_u(\omega\otimes\eta)(v,w) \\ &= \nabla(\omega\otimes\eta)(u,v,w) \end{align*}$$ which is not what we expected. That is why $\nabla(\omega\otimes\eta)\neq\nabla\omega\otimes\eta+\omega\otimes\nabla\eta$.

How to fix this? Well, let me advertise my second favourite option: using abstract index notation. In this convention, we use indices to indicate the slots of a tensor, and the tensor product is just juxtaposition. For example, the contraction of $\omega$ with a vector $v$ is written as $\omega(v)=\omega_av^a$, the tensor product $\omega\otimes\eta$ looks like $(\omega\otimes\eta)_{ab}=\omega_a\eta_b$, the covariant derivative (without being applied to a vector) is $(\nabla \omega)_{ab}=\nabla_a\omega_b$ and the applied covariant derivative is $(\nabla_u\omega)_a=u^b\nabla_b\omega_a$.

How does this help us? Well, then it is true that $(\nabla(\omega\otimes\eta))_{abc}=\nabla_a(\omega_b\eta_c)=\nabla_a\omega_b\eta_c+\omega_b\nabla_a\eta_c$. This is because the indices keep track of who should eat whom in the case three wilde vectors $u^av^bw^c$ appear. Don't let your notation to inconvenience you.

In this notation, your calculation is written as

$$\begin{align*} \nabla_u(\nabla_vw) &= u^a\nabla_a(v^b\nabla_bw^c) \\ &= u^a[\nabla_av^b\nabla_bw^c+v^b\nabla_a\nabla_bw^c] \\ &= u^a\nabla_av^b\nabla_bw^c+u^av^b\nabla_a\nabla_bw^c \text. \end{align*}$$

Let me know if you have any question.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .