old wiki Curvilinear Coordinates - gxyd/sympy GitHub Wiki
This page shows the curvilinear_coordinates.py
example, which demonstrates how to use sympy to calculate metric tensors (and other things like a laplace operator) in curvilinear coordinates.
$ python examples/advanced/curvilinear_coordinates.py
________________________________________________________________________________
Transformation: polar
Ο = Οβ
cos(Ο)
Ο = Οβ
sin(Ο)
Jacobian:
β‘cos(Ο) -Οβ
sin(Ο)β€
β’ β₯
β£sin(Ο) Οβ
cos(Ο) β¦
metric tensor g_{ij}:
β‘1 0 β€
β’ β₯
β’ 2β₯
β£0 Ο β¦
inverse metric tensor g^{ij}:
β‘1 0 β€
β’ β₯
β’ 1 β₯
β’0 βββ₯
β’ 2β₯
β£ Ο β¦
det g_{ij}:
2
Ο
Laplace:
2
d d
ββ(f(Ο, Ο)) βββββ(f(Ο, Ο)) 2
dΟ dΟ dΟ d
βββββββββββ + ββββββββββββββ + βββββ(f(Ο, Ο))
Ο 2 dΟ dΟ
Ο
________________________________________________________________________________
Transformation: cylindrical
Ο = Οβ
cos(Ο)
Ο = Οβ
sin(Ο)
z = z
Jacobian:
β‘cos(Ο) -Οβ
sin(Ο) 0β€
β’ β₯
β’sin(Ο) Οβ
cos(Ο) 0β₯
β’ β₯
β£ 0 0 1β¦
metric tensor g_{ij}:
β‘1 0 0β€
β’ β₯
β’ 2 β₯
β’0 Ο 0β₯
β’ β₯
β£0 0 1β¦
inverse metric tensor g^{ij}:
β‘1 0 0β€
β’ β₯
β’ 1 β₯
β’0 ββ 0β₯
β’ 2 β₯
β’ Ο β₯
β’ β₯
β£0 0 1β¦
det g_{ij}:
2
Ο
Laplace:
2
d d
ββ(f(Ο, Ο, z)) βββββ(f(Ο, Ο, z)) 2 2
dΟ dΟ dΟ d d
ββββββββββββββ + βββββββββββββββββ + βββββ(f(Ο, Ο, z)) + βββββ(f(Ο, Ο, z))
Ο 2 dΟ dΟ dz dz
Ο
________________________________________________________________________________
Transformation: spherical
Ο = Οβ
cos(Ο)β
sin(ΞΈ)
ΞΈ = Οβ
sin(Ο)β
sin(ΞΈ)
Ο = Οβ
cos(ΞΈ)
Jacobian:
β‘cos(Ο)β
sin(ΞΈ) Οβ
cos(Ο)β
cos(ΞΈ) -Οβ
sin(Ο)β
sin(ΞΈ)β€
β’ β₯
β’sin(Ο)β
sin(ΞΈ) Οβ
cos(ΞΈ)β
sin(Ο) Οβ
cos(Ο)β
sin(ΞΈ) β₯
β’ β₯
β£ cos(ΞΈ) -Οβ
sin(ΞΈ) 0 β¦
metric tensor g_{ij}:
β‘1 0 0 β€
β’ β₯
β’ 2 β₯
β’0 Ο 0 β₯
β’ β₯
β’ 2 2 β₯
β£0 0 Ο β
sin (ΞΈ)β¦
inverse metric tensor g^{ij}:
β‘1 0 0 β€
β’ β₯
β’ 1 β₯
β’0 ββ 0 β₯
β’ 2 β₯
β’ Ο β₯
β’ β₯
β’ 1 β₯
β’0 0 βββββββββββ₯
β’ 2 2 β₯
β£ Ο β
sin (ΞΈ)β¦
det g_{ij}:
4 2
Ο β
sin (ΞΈ)
Laplace:
2 2
d d d d
βββββ(f(Ο, ΞΈ, Ο)) 2β
ββ(f(Ο, ΞΈ, Ο)) βββββ(f(Ο, ΞΈ, Ο)) ββ(f(Ο, ΞΈ, Ο))β
cos(ΞΈ) 2
dΞΈ dΞΈ dΟ dΟ dΟ dΞΈ d
βββββββββββββββββ + ββββββββββββββββ + βββββββββββββββββ + βββββββββββββββββββββ + βββββ(f(Ο, ΞΈ, Ο))
2 Ο 2 2 2 dΟ dΟ
Ο Ο β
sin (ΞΈ) Ο β
sin(ΞΈ)
________________________________________________________________________________
Transformation: rotating disk
t = t
x = xβ
cos(tβ
w) - yβ
sin(tβ
w)
y = xβ
sin(tβ
w) + yβ
cos(tβ
w)
z = z
Jacobian:
β‘ 1 0 0 0β€
β’ β₯
β’-wβ
xβ
sin(tβ
w) - wβ
yβ
cos(tβ
w) cos(tβ
w) -sin(tβ
w) 0β₯
β’ β₯
β’wβ
xβ
cos(tβ
w) - wβ
yβ
sin(tβ
w) sin(tβ
w) cos(tβ
w) 0β₯
β’ β₯
β£ 0 0 0 1β¦
metric tensor g_{ij}:
β‘ 2 2 2 2 β€
β’1 + w β
x + w β
y -wβ
y wβ
x 0β₯
β’ β₯
β’ -wβ
y 1 0 0β₯
β’ β₯
β’ wβ
x 0 1 0β₯
β’ β₯
β£ 0 0 0 1β¦
inverse metric tensor g^{ij}:
β‘ 1 wβ
y -wβ
x 0β€
β’ β₯
β’ 2 2 2 β₯
β’wβ
y 1 + w β
y -xβ
yβ
w 0β₯
β’ β₯
β’ 2 2 2 β₯
β’-wβ
x -xβ
yβ
w 1 + w β
x 0β₯
β’ β₯
β£ 0 0 0 1β¦
det g_{ij}:
1
Laplace:
2 2 2 2 2
β 2 2β d β 2 2β d d d d
β1 + w β
x β β
βββββ(f(t, x, y, z)) + β1 + w β
y β β
βββββ(f(t, x, y, z)) + wβ
yβ
βββββ(f(t, x, y, z)) + wβ
yβ
βββββ(f(t, x, y, z)) - wβ
xβ
βββββ(f(t, x, y, z)) - wβ
xβ
dy dy dx dx dx dt dt dx dy dt
2 2 2 2 2
d 2 d 2 d d d
βββββ(f(t, x, y, z)) - xβ
yβ
w β
βββββ(f(t, x, y, z)) - xβ
yβ
w β
βββββ(f(t, x, y, z)) + βββββ(f(t, x, y, z)) + βββββ(f(t, x, y, z))
dt dy dy dx dx dy dt dt dz dz
________________________________________________________________________________
Transformation: parabolic
Ο = Οβ
Ο
2 2
Ο Ο
Ο = ββ - ββ
2 2
Jacobian:
β‘Ο Οβ€
β’ β₯
β£-Ο Οβ¦
metric tensor g_{ij}:
β‘ 2 2 β€
β’Ο + Ο 0 β₯
β’ β₯
β’ 2 2β₯
β£ 0 Ο + Ο β¦
inverse metric tensor g^{ij}:
β‘ 1 β€
β’βββββββ 0 β₯
β’ 2 2 β₯
β’Ο + Ο β₯
β’ β₯
β’ 1 β₯
β’ 0 ββββββββ₯
β’ 2 2β₯
β£ Ο + Ο β¦
det g_{ij}:
2 2 4 4
2β
Ο β
Ο + Ο + Ο
Laplace:
2 2
d d β 2 3β d β 2 3β d
βββββ(f(Ο, Ο)) βββββ(f(Ο, Ο)) β4β
Οβ
Ο + 4β
Ο β β
ββ(f(Ο, Ο)) β4β
Οβ
Ο + 4β
Ο β β
ββ(f(Ο, Ο))
dΟ dΟ dΟ dΟ dΟ dΟ
ββββββββββββββ + ββββββββββββββ + βββββββββββββββββββββββββββββββββ + βββββββββββββββββββββββββββββββββ
2 2 2 2 β 2 2β β 2 2 4 4β β 2 2β β 2 2 4 4β
Ο + Ο Ο + Ο βΟ + Ο β β
β4β
Ο β
Ο + 2β
Ο + 2β
Ο β βΟ + Ο β β
β4β
Ο β
Ο + 2β
Ο + 2β
Ο β
________________________________________________________________________________
Transformation: elliptic
ΞΌ = aβ
cos(Ξ½)β
cosh(ΞΌ)
Ξ½ = aβ
sin(Ξ½)β
sinh(ΞΌ)
Jacobian:
β‘aβ
cos(Ξ½)β
sinh(ΞΌ) -aβ
cosh(ΞΌ)β
sin(Ξ½)β€
β’ β₯
β£aβ
cosh(ΞΌ)β
sin(Ξ½) aβ
cos(Ξ½)β
sinh(ΞΌ) β¦
metric tensor g_{ij}:
β‘ 2 2 2 2 2 2 β€
β’a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½) 0 β₯
β’ β₯
β’ 2 2 2 2 2 2 β₯
β£ 0 a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)β¦
inverse metric tensor g^{ij}:
β‘ 2 2 2 2 2 2
β’ a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)
β’ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ 0
β’ 4 2 2 2 2 4 4 4 4 4 4
β’2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)
β’
β’ 2 2 2 2 2 2
β’ a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)
β’ 0 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β’ 4 2 2 2 2 4 4 4 4
β£ 2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh
β€
β₯
β₯
β₯
β₯
β₯
β₯
β₯
βββββββββββββ₯
4 4 β₯
(ΞΌ)β
sin (Ξ½)β¦
det g_{ij}:
4 2 2 2 2 4 4 4 4 4 4
2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)
Laplace:
2 2
β 2 2 2 2 2 2 β d β 2 2 2 2 2 2 β d
βa β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)β β
βββββ(f(ΞΌ, Ξ½)) βa β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)β β
βββββ(f(ΞΌ, Ξ½))
dΞΌ dΞΌ dΞ½ dΞ½
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ + ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4 2 2 2 2 4 4 4 4 4 4 4 2 2 2 2 4 4 4 4
2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½) 2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh
β 2 2 2 2 2 2 β β 4 3 4 4 4 3 4 2 3 2
βa β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)β β
β- 4β
a β
cos (Ξ½)β
sinh (ΞΌ)β
sin(Ξ½) + 4β
a β
cosh (ΞΌ)β
sin (Ξ½)β
cos(Ξ½) - 4β
a β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ)β
ββββββββββββ + ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4 4 β 4 2 2 2 2 4 4 4 4 4 4 β β 4 2 2 2 2
(ΞΌ)β
sin (Ξ½) β2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)β β
β4β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) +
4 3 2 2 β d β 2 2 2 2 2 2 β β 4 4 3 4 3
cos(Ξ½) + 4β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sinh (ΞΌ)β
sin(Ξ½)β β
ββ(f(ΞΌ, Ξ½)) βa β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin (Ξ½)β β
β4β
a β
cos (Ξ½)β
sinh (ΞΌ)β
cosh(ΞΌ) + 4β
a β
cosh (ΞΌ)β
si
dΞ½
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ + βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4 4 4 4 4 4 β β 4 2 2 2 2 4 4 4 4 4 4
2β
a β
cos (Ξ½)β
sinh (ΞΌ) + 2β
a β
cosh (ΞΌ)β
sin (Ξ½)β β2β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + a β
cos (Ξ½)β
sinh (ΞΌ) + a β
cosh (ΞΌ)β
sin
4 4 2 3 2 4 2 2 3 β d
n (Ξ½)β
sinh(ΞΌ) + 4β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh(ΞΌ) + 4β
a β
cos (Ξ½)β
sin (Ξ½)β
sinh (ΞΌ)β
cosh(ΞΌ)β β
ββ(f(ΞΌ, Ξ½))
dΞΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 4 2 2 2 2 4 4 4 4 4 4 β
(Ξ½)β β
β4β
a β
cos (Ξ½)β
cosh (ΞΌ)β
sin (Ξ½)β
sinh (ΞΌ) + 2β
a β
cos (Ξ½)β
sinh (ΞΌ) + 2β
a β
cosh (ΞΌ)β
sin (Ξ½)β