I am trying to derive an explicit formula for Laplace-Beltrami operator in global Cartesian coordinates for a special case of plane curve. I have found this article, and I would like to match their expression (6) for LB on a curve with the standard definition in terms of metric tensor.

According to formula $(6)$ in the paper, Laplace-Beltrami operator on plane curve can be written as

\begin{align} \Delta_{LB}\, u & = \Delta u + \kappa\,u_{n} - u_{nn} \\ & = \tag{$\star$} \Delta u + \kappa\,\vec{n}\cdot\nabla u - \vec{n}\cdot\nabla\left(\vec{n}\cdot\nabla u\right) \end{align}

  • $\,\vec{n}\,$ is unit normal vector,
  • $\,\kappa=-\nabla\cdot\vec{n}\,$ is curvature,
  • $\,u_{n} = \vec{n}\cdot\nabla u\,$ and $\,u_{nn} = \vec{n}\cdot\nabla \left(\vec{n}\cdot\nabla u\right)\,$ are first and second normal derivatives,
  • $\,\nabla u\,$ and $\,\Delta u\,$ are respectively gradient and Laplacian of $\,u\,$.

I am having troubles deriving $(\star)$ or matching it with metric tensor expression for LB operator

\begin{align}\tag{$\ast$} \Delta_{LB}\, u = \dfrac{1}{\sqrt{\left\lvert g\right\rvert}}\,\partial_i\,\Big(\sqrt{\left\lvert g\right\rvert} \,g^{ij}\,\partial_j \,u \Big) \end{align}

I can derive $(\star)$ from the Laplace-Beltrami expression $\,\Delta_{LB}\,u = \nabla_{s}\cdot\big(\nabla_{s}\,u\big)\,$ assuming surface divergence of a vector equals to the regular divergence of its projection to the curve.

This is a BIG assumption, and I do not know how to justify it. I will appreciate if someone could help me to justify my assumption, or to derive $(\star)$ without assumptions on (surface) divergence.

My attempt to derive $(\star)$: let $\,\nabla_{s}\,$, and $P$ denote surface gradient and projecting operator, then

\begin{align} \Delta_{LB}\, u & = \nabla_{s}\cdot\big(\nabla_{s}\,u\big) \stackrel{\color{red}{\huge ?}}{=} \nabla\cdot\big(\nabla_{s}\,u\big) \\ & = \nabla\cdot\big(P\;\nabla \,u\big) = \nabla\cdot\Big(\nabla\,u-\big(\vec{n}\cdot\nabla\,u\big)\,\vec{n}\Big) \\ & = \Delta\,u-\left(\nabla\cdot\vec{n}\right)\left(\vec{n}\cdot\nabla u\right)- \vec{n}\cdot\nabla\left(\vec{n}\cdot\nabla u\right) \\ & = \Delta u + \kappa\,u_{n} - u_{nn} \end{align}

  • $\begingroup$ @H.R. Probably not. As far as I know, surface gradient of a function defined on manifold is "vector" which lies in tangent plane and points towards direction of the steepest ascent of a function (within the manifold). To be more precise, it is a differential operator which acts on functions defined on manifold and produces vectors of steepest ascend of these functions. I always thought of it as projection of a regular gradient to the tangent plane of a surface. $\endgroup$
    – Vlad
    Nov 9, 2015 at 9:49
  • $\begingroup$ The notation $\nabla \cdot (\nabla_s u)$ don't quite make sense as $\nabla_s u$ is defined only on the surface. $\endgroup$
    – user99914
    Nov 9, 2015 at 10:14
  • $\begingroup$ @JohnMa I always thought that the surface gradient $\,\nabla_s\, u\,$ lies in the tangent plane of manifold, which is a subspace of embedding Euclidean space. Why can't we apply regular divergence operator to this vector? $\endgroup$
    – Vlad
    Nov 9, 2015 at 10:21
  • $\begingroup$ You cannot take partial derivative (to the $y$-direction) If the object is defined only in the $x$-axis. @Vlad. The ordinary $\nabla$ in $\mathbb R^2$ involves both $x$, and $y$ derivative. $\endgroup$
    – user99914
    Nov 9, 2015 at 10:24
  • $\begingroup$ @JohnMa Why not? You just get zero in $y$ direction. However, in case of surface gradient or divergence of a function defined on a curve, the object depends on one variable only in local system of coordinates. I am trying to obtain formula which is valid in global (Cartesian) coordinates. Why can't we treat, say, tangent vector as regular vector in $\mathbb R^2$ forgetting about underlying curve? $\endgroup$
    – Vlad
    Nov 9, 2015 at 10:34

2 Answers 2


Ok I know this is an old topic but I got into the same issues and there are several inaccuracies above, including the fact that Eq. ($\star$) from the OP is wrong. The correct formula for the surface Laplacian is \begin{align} \nabla_s^2 f = \nabla f^2 - \kappa \frac{\partial f}{\partial n} - \pmb{n}^T H(f) \pmb{n}\tag{$\star\star$} \end{align} where $\pmb{n}$ is the normal unit vector of the surface, $\kappa=\nabla\cdot \pmb{n}$ is the mean curvature, $\frac{\partial}{\partial n} = \pmb{n}\cdot\nabla$, $H(f)=\left\{\frac{\partial^2 f}{\partial x_i\partial x_j}\right\}_{i,j=1}^3$ is the Hessian matrix of $f$, and $^T$ denotes matrix transpose. The thing that got me confused for a while is that some texts use the notation $\frac{\partial^2 f}{\partial n^2}$ for $\pmb{n}^T H(f)\pmb{n}$ above whereas most people would logically understand $\frac{\partial^2 f}{\partial n^2}$ to be $\frac{\partial}{\partial n}(\frac{\partial f}{\partial n})=\pmb{n}\cdot \nabla\left(\pmb{n}\cdot\nabla f\right)$. Unfortunately, these are not the same thing! Another source of confusion comes from the use of dyadic notation in such texts which I find unnecessary and unclear. A last source of confusion is that the definition of surface divergence is not often stated explicitly, or again using unclear dyadic notation. So let's start by clarifying what the definitions of surface gradient and surface divergence are.

The surface gradient of a scalar $f$ is the orthogonal projection of the full gradient onto the surface ($\pmb{n}$ is the unit normal): $$\pmb{\nabla}_s f = \left(\mathbb{1}-\pmb{n}\pmb{n}^T\right)\pmb\nabla f = \pmb{\nabla} f - \pmb{n}\pmb{n}^T \pmb\nabla f $$ and the surface divergence of a vector field $\pmb{F}$ is $$\pmb\nabla_s\cdot \pmb{F} = \pmb\nabla\cdot \pmb{F} - \pmb{n}^T(\pmb\nabla \boldsymbol{F}) \pmb n$$ where $\pmb\nabla\pmb F$ is the Jacobian matrix $\{\frac{\partial F_i}{\partial x_j}\}_{i,j=1}^3$ and $\pmb{n}\pmb{n}^T$ is the matrix $\left\{n_i n_j\right\}_{i,j=1}^3$ (and also the definion of $\pmb{n}\otimes\pmb{n}$). Some use the suggestive (dyadic) notation $\pmb{\nabla}_s\cdot \pmb{F} = \left(\mathbb{1}-\pmb{n}\otimes\pmb{n}\right)\cdot\pmb\nabla\cdot\pmb{F}$ because of its similarity with the surface gradient, but the meaning really is that I gave above.

A proof of the surface Laplacian formula ($\star\star$) is given in Xu & Xhao (2003). It follows directly from these definitions (I will drop the boldfaces for notation simplicity, but it's important to keep track of what is a scalar, a vector, and a matrix – I make no use of dyadic notation here):

\begin{align} \nabla_s^2 f = \nabla_s\cdot\nabla_s f = \nabla\cdot\left(\nabla f -nn^T\nabla f\right)-n^T\left(\nabla(\nabla f - nn^T \nabla f)\right)n \\=\nabla^2f\underbrace{-\nabla\cdot\big((n\cdot\nabla f) n\big)}_{A} - n^T H(f)n + \underbrace{n^T\nabla (nn^T\nabla f) n}_{B} \tag{1} \end{align} because $\nabla\nabla f=H(f)=\{\frac{\partial^2 f}{\partial x_i\partial x_j}\}_{i,j=1}^3$ (the Hessian matrix of $f$ is the Jacobian matrix of $\nabla f$). Using the product rule for the divergence $\nabla\cdot(a\pmb{n}) = a \nabla \cdot \pmb{n} + \nabla a \cdot \pmb{n}$, we get \begin{align*} A &= - (n\cdot \nabla f)\nabla \cdot n - \nabla(n\cdot\nabla f)\cdot n. \end{align*} The last term above is (using the product rule) \begin{align*} n\cdot\nabla( n\cdot \nabla f) = \sum_{i,j} n_i \frac{\partial}{\partial x_i}\left(n_j \frac{\partial f}{\partial x_j}\right) = \sum_{i,j}n_i n_j \frac{\partial^2 f}{\partial x_i\partial x_j} + \sum_{i,j} n_i \frac{\partial n_j}{\partial x_i}\frac{\partial f}{\partial x_j} = n^T H(f) n + n^T(\nabla n)^T \nabla f \end{align*} so that \begin{align*} A = - \kappa \frac{\partial f}{\partial n} - n^T H(f) n - n^T(\nabla n)^T \nabla f \tag{2} \end{align*} Similarly, use of the product rule gives \begin{align*} B &= \sum_{i,j} n_i n_j \frac{\partial}{\partial x_j}[n n^T \nabla f]_i \\&= \sum_{i,j,k}n_i n_j \frac{\partial}{\partial x_j}\left[(nn^T)_{ik} (\nabla f)_k\right] \\&= \sum_{i,j,k}n_i n_j \frac{\partial}{\partial x_j}\left[n_i n_k \frac{\partial f}{\partial x_k}\right] \\&= \sum_{i,j,k}n_i n_j \frac{\partial}{\partial x_j}(n_i n_k)\frac{\partial f}{\partial x_k} + \sum_{i,j,k} n_i^2 n_j n_k \frac{\partial^2 f}{\partial x_j \partial x_k} \end{align*} Because $||n||^2=\sum_i n_i^2=1$, the last sum gives $n^T H(f) n$. In the first sum, we use the product rule once more. One of the terms becomes proportional to $\sum_i n_i \frac{\partial n_i}{\partial x_j} = 0$ (which vanishes because $\frac{\partial}{\partial x_j}||n||^2=0$). The remaining term is $\sum_{i,j,k} n_i^2 n_j \frac{\partial n_k}{\partial x_j}\frac{\partial f}{\partial x_k} = \sum_{j,k} n_j \frac{\partial n_k}{\partial x_j}\frac{\partial f}{\partial x_k} = n^T (\nabla n)^T \nabla f$ so that \begin{align*} B = n^T(\nabla n)^T \nabla f + n^T H(f) n \tag{3} \end{align*} Substituting (2) and (3) in (1) gives ($\star\star$).

  • $\begingroup$ (+1) Thank you for the contribution. :) $\endgroup$ Aug 23, 2018 at 9:31
  • $\begingroup$ Actually $\mathbf{n}\cdot \nabla(\mathbf{n} \cdot \nabla f) = \mathbf{n}^TH(f)\mathbf{n}$ is true. It follows from $\mathbf{n}^T \nabla \mathbf{n} = \mathbf{0}^T$. $\endgroup$
    – ShawSa
    Feb 15, 2019 at 21:38
  • $\begingroup$ @ShawSa: you have $n\cdot \nabla(n\cdot\nabla f) = n^T H(f) n + \sum_{j,k}n_j \frac{\partial n_k}{\partial x_j}\frac{\partial f}{\partial x_k}$. The sum involves $\pmb{n}^T\pmb{\nabla} \pmb{n}$ indeed, but this isn't equal to $\pmb{0}^T$ in general. You can try e.g. with $\pmb{n}=(-x,y)/\sqrt{x^2+y^2}$. This is of course not the same as $\sum_j n_j \frac{\partial n_j}{\partial x_k}$ – this one is zero. $\endgroup$ Apr 11, 2019 at 15:35
  • $\begingroup$ @armando.sano By $\nabla \mathbf{n}$ I mean the jacobian of $\mathbf{n}$. It's on page 5 of Xu & Xhao mentioned above. At any rate the example you gave is not a counter example. This Sympy code returns a row of zeros. from sympy import * init_printing() x, y = symbols('x y') n = Matrix([[-x], [y]]) n /= sqrt(n[0]**2 + n[1]**2) n = simplify(n) display(simplify(n.T * n.jacobian([x, y]))) $\endgroup$
    – ShawSa
    Apr 12, 2019 at 5:28
  • 1
    $\begingroup$ @ShawSa: sorry my statement was erroneous indeed, but the conclusion holds. The sum involves $\sum_j n_j \frac{\partial n_k}{\partial x_j}$ (i.e., $(\pmb{\nabla n}) \pmb n$) but this sum is not zero because it is not the same as $\sum_j n_j \frac{\partial n_j}{\partial x_k}$ (i.e. $\pmb{n}^T\pmb{\nabla}\pmb{n}$ - this is indeed zero because $||\pmb n||=1$). If you compute $\sum_j n_j \frac{\partial n_k}{\partial x_j}$ with the example I gave you won't find zero. The derivation in Xu & Zhao is correct but you will find that they never set or assume $n\cdot\nabla(n\cdot\nabla f)$ to be zero. $\endgroup$ Apr 24, 2019 at 1:56

The surface gradient operator is defined as follows

$$\eqalign{ & \mathop \nabla \limits^s = \left( {{\bf{I}} - {\bf{n}} \otimes {\bf{n}}} \right).\nabla \cr & = {\bf{I}}.\nabla - \left( {{\bf{n}} \otimes {\bf{n}}} \right).\nabla \cr & = \nabla - \left( {{\bf{n}}.\nabla } \right){\bf{n}} \cr}\tag{1}$$

  • $\bf{n}$ is the unit normal vector
  • $\bf{I}$ is the second order identity tenor
  • $\otimes$ is the tensor product
  • $.$ is the scalar product

As you can see in $(1)$ we have subtracted the normal component of the $\nabla $ from it and hence the name surface gradient.

Use $(1)$ to derive your formula. Consider the following

$$\mathop \nabla \limits^s .{\bf{F}} = \left( {\nabla - \left( {{\bf{n}}.\nabla } \right){\bf{n}}} \right).{\bf{F}} = \nabla .{\bf{F}} - \left( {{\bf{n}}.\nabla } \right){\bf{n}}.{\bf{F}} = \nabla .{\bf{F}} - {\bf{n}}.\nabla \left( {{\bf{n}}.{\bf{F}}} \right)\tag{2}$$

Now, if you put ${\bf{F}} = \mathop \nabla \limits^s u$ you can have

$$\mathop \nabla \limits^s .\mathop \nabla \limits^s u = \nabla .\mathop \nabla \limits^s u - {\bf{n}}.\nabla \left( {{\bf{n}}.\mathop \nabla \limits^s u} \right)\tag{3}$$


$${\bf{n}}.\mathop \nabla \limits^s u = {\bf{n}}.\left( {\nabla u - \left( {{\bf{n}}.\nabla u} \right){\bf{n}}} \right) = {\bf{n}}.\nabla u - \left( {{\bf{n}}.\nabla u} \right)\left( {{\bf{n}}.{\bf{n}}} \right) = {\bf{n}}.\nabla u - {\bf{n}}.\nabla u = 0\tag{4}$$

and hence

$$\mathop \nabla \limits^s .\mathop \nabla \limits^s u = \nabla .\mathop \nabla \limits^s u\tag{5}$$

  • $\begingroup$ How is the surface divergence defined then? Can we write $$\,\nabla_s\cdot\vec{F} = \nabla\cdot\vec{F} - \vec{n}\otimes \vec{n}\,\nabla\cdot\vec{F}\,?$$The last term is not a scalar though ... $\endgroup$
    – Vlad
    Nov 9, 2015 at 9:54
  • $\begingroup$ @Vlad: You have some mistakes there! :) I will add more details to the answer. :) $\endgroup$ Nov 9, 2015 at 9:58
  • $\begingroup$ Thank you for answering promptly, but my question is specifically about divergence. In fact, if you take a look at the second line in the last equation in my question, you will see that I have used your formula (1) for the surface gradient. I do not know how to justify the equivalence of regular and surface divergence operators though. As far as I know, surface divergence of a vector field $\vec F$ defined on manifold is not equal to the inner product of a surface gradient with $\vec F$. $\endgroup$
    – Vlad
    Nov 9, 2015 at 10:02
  • $\begingroup$ @Vlad: Take a look at the new answer. Hope this helps finally! :) $\endgroup$ Nov 9, 2015 at 10:31
  • 1
    $\begingroup$ The way surface gradient and surface divergence can be defined is 1) use a local curvilinear orthonormal coordinate system that has one component normal to the surface (the other components follow the contours of the surface); 2) express grad and div in this curvilinear coordinate system; 3) discard the normal component/contribution. What we end up with is logical: $\nabla_s f$ is the orthogonal projection of $\nabla f$ onto the surface; $\nabla_s\cdot F$ is the full divergence minus $\frac{\partial F_n}{\partial n}$, the derivative in the normal direction of the normal component of F $\endgroup$ Aug 14, 2018 at 3:19

You must log in to answer this question.

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