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 (Ξ½)βŽ