This page was generated from doc/tutorials/sp2g3.nblink.

[1]:
# Unit sphere R^3 as a submanifold of g3 in cartesian coordinates

# Make SymPy available to this program:
import sympy
from sympy import *

# Make GAlgebra available to this program:
from galgebra.ga import *
from galgebra.mv import *
from galgebra.printer import Fmt, GaPrinter, Format
    # Fmt:       sets the way that a multivector's basis expansion is output.
    # GaPrinter: makes GA output a little more readable.
    # Format:    turns on latex printer.
from galgebra.gprinter import gFormat, gprint
gFormat()
$\displaystyle \DeclareMathOperator{\Tr}{Tr}$$ $$\DeclareMathOperator{\Adj}{Adj}$$ $$\newcommand{\bfrac}[2]{\displaystyle\frac{#1}{#2}}$$ $$\newcommand{\lp}{\left (}$$ $$\newcommand{\rp}{\right )}$$ $$\newcommand{\paren}[1]{\lp {#1} \rp}$$ $$\newcommand{\half}{\frac{1}{2}}$$ $$\newcommand{\llt}{\left <}$$ $$\newcommand{\rgt}{\right >}$$ $$\newcommand{\abs}[1]{\left |{#1}\right | }$$ $$\newcommand{\pdiff}[2]{\bfrac{\partial {#1}}{\partial {#2}}}$$ $$\newcommand{\npdiff}[3]{\bfrac{\partial^{#3} {#1}}{\partial {#2}^{#3}}}$$ $$\newcommand{\lbrc}{\left \{}$$ $$\newcommand{\rbrc}{\right \}}$$ $$\newcommand{\W}{\wedge}$$ $$\newcommand{\prm}[1]{{#1}^{\prime}}$$ $$\newcommand{\ddt}[1]{\bfrac{d{#1}}{dt}}$$ $$\newcommand{\R}{\dagger}$$ $$\newcommand{\deriv}[3]{\bfrac{d^{#3}#1}{d{#2}^{#3}}}$$ $$\newcommand{\grade}[2]{\left < {#1} \right >_{#2}}$$ $$\newcommand{\f}[2]{{#1}\lp {#2} \rp}$$ $$\newcommand{\eval}[2]{\left . {#1} \right |_{#2}}$$ $$\newcommand{\bs}[1]{\boldsymbol{#1}}$$ $$\newcommand{\grad}{\bs{\nabla}}$
[2]:
# Unit sphere R^3 as a submanifold of g3 in cartesian coordinates

# g3: Base manifold.
g3coords = (x,y,z) = symbols('x y z', real=True)
g3 = Ga('\mathbf{e}', g=[1,1,1], coords=g3coords)
(ex, ey, ez) = g3.mv()

# sp2: Submanifold
sp2coords = (phi,th) = symbols('phi theta', real=True)
  # Parameterize unit sphere using the coordinates of g3:
sp2param = [sin(phi)*cos(th), sin(phi)*sin(th), cos(phi)]
  # Map the g3 coordinates of the sphere to its sp2 coordinates:
sp2 = g3.sm(sp2param, sp2coords, norm=True)  # "sm" is submanifold

(ephi, eth) = sp2.mv()
(rphi, rth) = sp2.mvr()

# Derivatives
grad  = sp2.grad
from galgebra.dop import *
pdphi = Pdop(phi)
pdth  = Pdop(th)
[3]:
grad = sp2.grad
grad
[3]:
$\displaystyle \mathbf{e}_{\phi} \frac{\partial}{\partial \phi} + \mathbf{e}_{\theta} \frac{1}{\sin{\left(\phi \right)}} \frac{\partial}{\partial \theta}$
[ ]: