Orthogonal curvilinear coordinates
B. Lautrup
December 17, 2004
1 Curvilinear coordinates
Let xi with i = 1, 2, 3 be Cartesian coordinates of a point and let ξa with a = 1, 2, 3 be the corresponding
curvilinear coordinates. We shall use ordinary Cartesian vector notation x = (x1, x2, x3) for the Cartesian
coordinates, but not for the curvilinear ones. The two sets of coordinates are connected by a bijective
coordinate transformation
x = f (ξ1, ξ2, ξ3) (1)
The most important quantity is the infinitesimal vector element
dx = Jadξa (2)
(3)
a
where the Ja are the columns of the Jacobian
Ja = ∂x
∂ξa
The Cartesian square norm of the infinitesimal element is
dx2 = gabdξadξb (4)
ab
where
gab = Ja · Jb (5)
is the metric.
2 Orthogonality
A large subclass of interesting coordinate systems are orthogonal, which means that
gab = Ja · Jb = 0 (a = b) (6)
In that case it is better to write
∂x = haea (7)
∂ξa
where ha is a scale factor and ea is a unit vector. These vectors form a local basis in each point
ea · eb = δab eaea = ←→1 (8)
a
where the first equation expresses orthogonality of the basis and the second completeness. This permits
normal vector and matrix algebra to be used in the curvilinear coordinates.
1
3 Basis derivatives
The derivatives ∂eb/∂ξa of the basis vectors play an important role. From eb2 = 1 we get
∂eb · eb = 0 (9)
∂ξa
for all a, b. This shows that all derivatives of a unit vector are orthogonal to the unit vector. Similarly
from the symmetry of the second derivatives we get
∂2x = ∂(haea) = ∂(hbeb) (10)
∂ξa∂ξb ∂ξb ∂ξa
Expanding this becomes
∂ha ea + ha ∂ea = ∂hb eb + hb ∂eb (a = b) (11)
∂ξb ∂ξb ∂ξa ∂ξa
Expanding in the basis, and using that the derivative of a unit vector is orthogonal to the unit vector,
this equation can only be fulfilled for
hb ∂eb = ∂ha ea + λabcec (a = b = c) (12)
∂ξa ∂ξb
where
λabc = λbac (a = b = c) (13)
(14)
Dotting with ec and using that eb · ec = 0 we get (15)
(16)
λabc = hb ∂eb · ec = −hb ∂ec · eb = − hb λacb (17)
∂ξa ∂ξa hc (18)
Combining these two rules we get
λabc = − hb λacb = − hb λcab = ha λcba = ha λbca = −λbac = −λabc
hc hc hc hc
Consequently we have λabc = 0 so that
∂eb = 1 ∂ha ea (a = b)
∂ξa hb ∂ξb
Dotting (11) with ea we get
∂eb · ea = 1 ∂ha (a = b)
∂ξa hb ∂ξb
and using ea · eb = 0 this leads to
∂ea · eb = − 1 ∂ha (a = b)
∂ξa hb ∂ξb
Using completeness this becomes (as may be easily verified)
∂eb = 1 ∂ha ea − δab 1 ∂ha ec (19)
∂ξa hb ∂ξb hc ∂ξc
c
This concludes the analysis of derivatives of the basis vectors.
2
4 Vector operators
Derivative operators transform as
∂ = ∂x ∂ = haea · ∇ (20)
∂ξa ∂ξa ∂x (21)
(22)
where ∇i = ∂/∂xi. Using completeness we get (23)
∇= ea ∂ (24)
ha ∂ξa
a
or
∇a = 1 ∂
ha ∂ξa
4.1 Gradient of scalar field
If f is a scalar field, then ∇af is the gradient in the local basis,
(∇f )a = ∇af
4.2 Divergence of vector field
For the divergence of a vector field v with local components va = ea · v we find
∇·v = eb ∂ · vaea = eb · ∂(vaea) = 1 ∂va + va eb · ∂ea
hb ∂ξb hb ∂ξb ha ∂ξa hb ∂ξb
b a ab a ab
= 1 ∂va + va ∂hb − va ∂ha
ha ∂ξa hahb ∂ξa h2a ∂ξa
a ab a
= 1 ∂va + va ∂hb
ha ∂ξa hahb ∂ξa
a a=b
Introducing h = a ha = h1h2h3 this may be written
∇·v = 1 ∂(vah/ha)
h ∂ξa
a
which is the most compact form of the divergence.
4.3 Curl of vector field
In the local system the curl becomes
(∇ × v)a = ea · eb ∂ × vcec
hb ∂ξb
bc
= 1 ∂vc + vc ea · eb × ∂ec
abc hb ∂ξb hb ∂ξb
bc bc
= 1 ∂vc + vc ea · eb × 1 ∂hb eb − δbc 1 ∂hb ed
abc hb ∂ξb hb hc ∂ξc hd ∂ξd
bc bc d
= abc 1 ∂vc − vb ∂hb = abc 1 ∂vc + vc ∂hc
hb ∂ξb hbhc ∂ξc hb ∂ξb hbhc ∂ξb
bc bc
3
This can be combined into
(∇ × v)a = 1 ∂(vchc) (25)
hbhc ∂ξb
bc
4.4 Gradient of vector field
The vector field gradient ∇v is a tensor with the following components in the local basis
(∇v)ab = 1 ∂v · eb = 1 ∂(vcec) · eb
ha ∂ξa ha ∂ξa
c
= 1 ∂vb + 1 vc ∂ec · eb
ha ∂ξa ha ∂ξa
c
= 1 ∂vb + 1 vc 1 ∂ha ea − δac 1 ∂ha ed · eb
ha ∂ξa ha hc ∂ξc hd ∂ξd
c d
(∇v)ab = 1 ∂vb + δab vc ∂ha − va ∂ha (26)
ha ∂ξa ha hc ∂ξc hahb ∂ξb
c
One may immediately verify that its trace equals the divergence.
Specializing to diagonal and non-diagonal elements we get
(∇v)ab = 1 ∂vb − va ∂ha (a = b) (27)
ha ∂ξa hahb ∂ξb (a = b) (28)
(∇v)aa = 1 ∂va + vc ∂ha
ha ∂ξa hahc ∂ξc
c=a
4.5 Divergence of tensor
It is often necessary to calculate the divergence of a tensor ∇ · ←→t in curvilinear coordinates. We find
(∇ · ←→t )a = eb · ∂(tcdeced) · ea (29)
hb ∂ξb
bcd
Expanding the sum we get
(∇ · ←→t )a = eb · ∂(tcaec) + tbd ∂ed · ea
hb ∂ξb hb ∂ξb
bc bd
= ∇ · ta + 1 tab ∂ha − tbb ∂hb
hahb ∂ξb ∂ξa
b
Using the divergence of a vector this becomes
(∇ · ←→t )a = 1 ∂tba + tba ∂hc + tab ∂ha − tbb ∂hb (30)
hb ∂ξb hbhc ∂ξb hahb ∂ξb hahb ∂ξa
b b=c b=a b=a
4