Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
sagemanifolds
GitHub Repository: sagemanifolds/IntroToManifolds
Path: blob/main/15Manifold_Pullback.ipynb
Views: 80
Kernel: SageMath 9.6

15. Pulback of tensor fields

This notebook is part of the Introduction to manifolds in SageMath by Andrzej Chrzeszczyk (Jan Kochanowski University of Kielce, Poland).

version()
'SageMath version 9.6, Release Date: 2022-05-15'

Recall from notebook 7, that every smooth map between two smooth manifolds ψ:MN\psi : M → N defines a pullback map ψ:C(N)C(M)\psi^* : C^∞ (N ) → C^∞ (M ) by

ψf=fψ for any fC(N).\psi^∗ f = f ◦ \psi\quad \mbox{ for any } f ∈ C^∞ (N ).

Example 15.1

If we denote by ψ\psi the coordinate change defined by x=rcos(ϕ),  y=rsin(ϕ)x=r\cos(\phi),\; y=r\sin(\phi) on the open set U={(r,ϕ):r>0,0<ϕ<2π},U=\{(r,\phi): r>0, 0<\phi <2\pi \}, then for a scalar function ff of variables x,y,x,y, the pullback ψf\psi^*f is the function (r,ϕ)f(rcos(ϕ),rsin(ϕ))(r,\phi)\to f(r\cos(\phi),r\sin(\phi)), defined on UU.

In the special case f(x,y)=x2+y2f(x,y)=\sqrt{x^2+y^2}, the pullback ψf\psi^*f is the function on UU: (r,ϕ)r.(r,\phi)\to r.

%display latex M = Manifold(2, 'R^2p') # manifold R^2 U = M.open_subset('U') # open subset of R2, # polar coord. on U: c_rphi.<r,phi>=U.chart(r'r:(0,oo) phi:(0,2*pi):\phi') N = Manifold(2, 'R^2c') # second copy of R^2 c_xy.<x,y> = N.chart() # Cartesian coordinates: # psi: M --> N : polar to Cart.: psi = U.diff_map(N, (r*cos(phi), r*sin(phi)),name=r'\psi') # f -scalar function on N f=N.scalar_field(sqrt(x^2+y^2),name='f') fplb=psi.pullback(f) # psi^*f -scalar func. on M fplb.disp() # show pullback psi^*f

ψf:UR(r,ϕ)r\displaystyle \begin{array}{llcl} {\psi}^*f:& U & \longrightarrow & \mathbb{R} \\ & \left(r, {\phi}\right) & \longmapsto & r \end{array}


Pullback of covariant tensor fields


If ψ:MN\psi: M\to N is a smooth map between smooth manifolds, one can extend the pullback operation to a map ψ:T(0,k)NT(0,k)M\psi^∗ : T^{(0,k)}N → T^{(0,k)}M by

ParseError: KaTeX parse error: Undefined control sequence: \label at position 105: …dψ_p u_{kp} ), \̲l̲a̲b̲e̲l̲{}\tag{15.1} \e…

for u1p,...,ukpTpM,  pM.u_{1p} , . . . , u_{kp} ∈ T_p M,\ \ p ∈ M. From the linearity of dψpd\psi_p it follows the multilinearity of (ψt)p(\psi^*t)_p.

If fC(N)f ∈ C^∞ (N ), then the differential dfd f of ff is a tensor field of type (0,1)(0,1), consequently from (15.1) it follows

(ψdf)p(vp)=dfψ(p)(dψpvp),(ψ^∗ d f )_p (v_p ) = d f_{ψ( p)} (dψ_p v_p ),

for vpTpM.v_p ∈ T_p M.
From the definitions of dfdf and dψd\psi we have

dfψ(p)(dψpvp)=dψpvp(f)=vp(ψf)=d(ψf)p(vp).d f_{ ψ( p)} (dψ_p v_p ) = dψ_p v_p ( f ) = v_p (ψ^∗ f ) = d(ψ^*f )_p (v_p ).

We have checked that for a smooth map  ψ:MN \ \psi : M → N\ and  fC(N)\ f\in C^∞ (N )

ParseError: KaTeX parse error: Undefined control sequence: \label at position 39: …f = d(ψ^∗ f ). \̲l̲a̲b̲e̲l̲{}\tag{15.2} \e…

Example 15.2

Compute the pullback of differential of the scalar function from Example 15.1.

First we compute the left hand side of (15.2):

# continuation df=f.differential() # differential of f dfplb=psi.pullback(df) # pullback psi^*df dfplb.disp(basis=c_rphi) # display in polar coordinates

ψdf=dr\displaystyle {\psi}^*\mathrm{d}f = \mathrm{d} r

Here is the right hand side of (15.2):

fplb.differential().disp() # d(psi^*f)

dψf=dr\displaystyle \mathrm{d}{\psi}^*f = \mathrm{d} r


Example 15.3

Compute pullback of a scalar function and its differential for general mapping between two-dimensional manifolds MM and NN

ψ:MN,ψ(u,v)=(ψ1(u,v),ψ2(u,v)).\psi: M \to N,\quad \psi(u,v)= (\psi_1(u,v),\psi_2(u,v)).
%display latex M = Manifold(2, r'R^2_{uv}') # manifold M c_uv.<u,v>=M.chart() # coordinates u,v N = Manifold(2, r'R^2_{xy}') # manifold N c_xy.<x,y> = N.chart() # coordinates x,y # first component of psi psi1=M.scalar_field(function('psi1')(u,v),name=r'\psi1') # second component of psi psi2=M.scalar_field(function('psi2')(u,v),name=r'\psi2') # define psi psi = M.diff_map(N,(psi1.expr(),psi2.expr()) ,name=r'\psi') # scalar function f f=N.scalar_field(function('f')(x,y),name='f') fplb=psi.pullback(f) # pullback psi^*f fplb.disp() # show pullback psi^*f

ψf:Ruv2R(u,v)f(ψ1(u,v),ψ2(u,v))\displaystyle \begin{array}{llcl} {\psi}^*f:& R^2_{uv} & \longrightarrow & \mathbb{R} \\ & \left(u, v\right) & \longmapsto & f\left(\psi_{1}\left(u, v\right), \psi_{2}\left(u, v\right)\right) \end{array}

fplb.differential().disp() # d(psi^*f)

dψf=(f(ψ1(u,v))ψ1u+f(ψ2(u,v))ψ2u)du+(f(ψ1(u,v))ψ1v+f(ψ2(u,v))ψ2v)dv\displaystyle \mathrm{d}{\psi}^*f = \left( \frac{\partial\,f}{\partial \left( \psi_{1}\left(u, v\right) \right)} \frac{\partial\,\psi_{1}}{\partial u} + \frac{\partial\,f}{\partial \left( \psi_{2}\left(u, v\right) \right)} \frac{\partial\,\psi_{2}}{\partial u} \right) \mathrm{d} u + \left( \frac{\partial\,f}{\partial \left( \psi_{1}\left(u, v\right) \right)} \frac{\partial\,\psi_{1}}{\partial v} + \frac{\partial\,f}{\partial \left( \psi_{2}\left(u, v\right) \right)} \frac{\partial\,\psi_{2}}{\partial v} \right) \mathrm{d} v

df=f.differential() # df dfplb=psi.pullback(df) # psi^*(df) dfplb.disp() # show pullback of df

ψdf=(f(ψ1(u,v))ψ1u+f(ψ2(u,v))ψ2u)du+(f(ψ1(u,v))ψ1v+f(ψ2(u,v))ψ2v)dv\displaystyle {\psi}^*\mathrm{d}f = \left( \frac{\partial\,f}{\partial \left( \psi_{1}\left(u, v\right) \right)} \frac{\partial\,\psi_{1}}{\partial u} + \frac{\partial\,f}{\partial \left( \psi_{2}\left(u, v\right) \right)} \frac{\partial\,\psi_{2}}{\partial u} \right) \mathrm{d} u + \left( \frac{\partial\,f}{\partial \left( \psi_{1}\left(u, v\right) \right)} \frac{\partial\,\psi_{1}}{\partial v} + \frac{\partial\,f}{\partial \left( \psi_{2}\left(u, v\right) \right)} \frac{\partial\,\psi_{2}}{\partial v} \right) \mathrm{d} v


Example 15.4

Compute the pullback of 1-form   𝛼=𝑎0(𝑥,𝑦)d𝑥+𝑎1(𝑥,𝑦)d𝑦 \ \ 𝛼=𝑎_0(𝑥,𝑦)d𝑥+𝑎_1(𝑥,𝑦)d𝑦\ under the map ψ\psi from the previous example.

%display latex M = Manifold(2, r'R^2_{uv}') # manifold M c_uv.<u,v>=M.chart() # coordinates u,v N = Manifold(2, r'R^2_{xy}') # manifold N c_xy.<x,y> = N.chart() # coordinates x,y # first component of psi psi1=M.scalar_field(function('psi1')(u,v),name=r'\psi1') # second component of psi psi2=M.scalar_field(function('psi2')(u,v),name=r'\psi2') # define psi psi = M.diff_map(N,(psi1.expr(),psi2.expr()) ,name=r'\psi') # scalar function f f=N.scalar_field(function('f')(x,y),name='f') al=N.diff_form(1,name=r'\alpha') # 1-form al astr=['a'+str(i) for i in range(2)] # list of comp. names af=[N.scalar_field(function(astr[i])(x,y),name=astr[i]) for i in range(2)] # list of components al[:]=af # define all components al.disp() # show al

α=a0(x,y)dx+a1(x,y)dy\displaystyle \alpha = a_{0}\left(x, y\right) \mathrm{d} x + a_{1}\left(x, y\right) \mathrm{d} y

Manifold.options.omit_function_arguments=False alplb=psi.pullback(al) # pullback psi^*al alplb.disp() # show pullback of al

ψα=(a0(ψ1(u,v),ψ2(u,v))ψ1u+a1(ψ1(u,v),ψ2(u,v))ψ2u)du+(a0(ψ1(u,v),ψ2(u,v))ψ1v+a1(ψ1(u,v),ψ2(u,v))ψ2v)dv\displaystyle {\psi}^*\alpha = \left( a_{0}\left(\psi_{1}\left(u, v\right), \psi_{2}\left(u, v\right)\right) \frac{\partial\,\psi_{1}}{\partial u} + a_{1}\left(\psi_{1}\left(u, v\right), \psi_{2}\left(u, v\right)\right) \frac{\partial\,\psi_{2}}{\partial u} \right) \mathrm{d} u + \left( a_{0}\left(\psi_{1}\left(u, v\right), \psi_{2}\left(u, v\right)\right) \frac{\partial\,\psi_{1}}{\partial v} + a_{1}\left(\psi_{1}\left(u, v\right), \psi_{2}\left(u, v\right)\right) \frac{\partial\,\psi_{2}}{\partial v} \right) \mathrm{d} v

Shorter result can be obtained omitting functions arguments.

Manifold.options.omit_function_arguments=True alplb.disp()

ψα=(a0(ψ1,ψ2)ψ1u+a1(ψ1,ψ2)ψ2u)du+(a0(ψ1,ψ2)ψ1v+a1(ψ1,ψ2)ψ2v)dv\displaystyle {\psi}^*\alpha = \left( a_{0}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u} + a_{1}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{2}}{\partial u} \right) \mathrm{d} u + \left( a_{0}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial v} + a_{1}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{2}}{\partial v} \right) \mathrm{d} v


Example 15.5

Compute the pullback of a tensor field of (0,2)-type f00(𝑥,𝑦)d𝑥d𝑥+𝑓01(𝑥,𝑦)d𝑥d𝑦+𝑓10(𝑥,𝑦)d𝑦d𝑥+𝑓11(𝑥,𝑦)d𝑦d𝑦  f_{00}(𝑥,𝑦)d𝑥⊗d𝑥+𝑓_{01}(𝑥,𝑦)d𝑥⊗d𝑦+𝑓_{10}(𝑥,𝑦)d𝑦⊗d𝑥+𝑓_{11}(𝑥,𝑦)d𝑦⊗d𝑦\ \ on a two dimensional manifold under ψ\psi from Example 15.3.

# continuation t = N.tensor_field(0,2, name='t') # tensor field t of type (0,2) # list of component names: def fn(i,j): return 'f'+str(i)+str(j) # list of component functions: f=[[N.scalar_field(function(fn(j,k))(x,y),name=fn(j,k)) for k in range(2)] for j in range(2)] t[:]=f # define all components of t t.disp() # show t

t=f00dxdx+f01dxdy+f10dydx+f11dydy\displaystyle t = f_{00} \mathrm{d} x\otimes \mathrm{d} x + f_{01} \mathrm{d} x\otimes \mathrm{d} y + f_{10} \mathrm{d} y\otimes \mathrm{d} x + f_{11} \mathrm{d} y\otimes \mathrm{d} y

Manifold.options.omit_function_arguments=True tplb=psi.pullback(t) # pullback psi^*t tplb.display_comp() # show pullback components

ψtuuuu=f00(ψ1,ψ2)(ψ1u)2+f11(ψ1,ψ2)(ψ2u)2+(f01(ψ1,ψ2)ψ1u+f10(ψ1,ψ2)ψ1u)ψ2uψtuvuv=f00(ψ1,ψ2)ψ1uψ1v+f10(ψ1,ψ2)ψ1vψ2u+(f01(ψ1,ψ2)ψ1u+f11(ψ1,ψ2)ψ2u)ψ2vψtvuvu=f00(ψ1,ψ2)ψ1uψ1v+f01(ψ1,ψ2)ψ1vψ2u+(f10(ψ1,ψ2)ψ1u+f11(ψ1,ψ2)ψ2u)ψ2vψtvvvv=f00(ψ1,ψ2)(ψ1v)2+(f01(ψ1,ψ2)+f10(ψ1,ψ2))ψ1vψ2v+f11(ψ1,ψ2)ψ2v2\displaystyle \begin{array}{lcl} {\psi}^*t_{ \, u \, u }^{ \phantom{\, u}\phantom{\, u} } & = & f_{00}\left(\psi_{1}, \psi_{2}\right) \left(\frac{\partial\,\psi_{1}}{\partial u}\right)^{2} + f_{11}\left(\psi_{1}, \psi_{2}\right) \left(\frac{\partial\,\psi_{2}}{\partial u}\right)^{2} + {\left(f_{01}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u} + f_{10}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u}\right)} \frac{\partial\,\psi_{2}}{\partial u} \\ {\psi}^*t_{ \, u \, v }^{ \phantom{\, u}\phantom{\, v} } & = & f_{00}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u} \frac{\partial\,\psi_{1}}{\partial v} + f_{10}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial v} \frac{\partial\,\psi_{2}}{\partial u} + {\left(f_{01}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u} + f_{11}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{2}}{\partial u}\right)} \frac{\partial\,\psi_{2}}{\partial v} \\ {\psi}^*t_{ \, v \, u }^{ \phantom{\, v}\phantom{\, u} } & = & f_{00}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u} \frac{\partial\,\psi_{1}}{\partial v} + f_{01}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial v} \frac{\partial\,\psi_{2}}{\partial u} + {\left(f_{10}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{1}}{\partial u} + f_{11}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{2}}{\partial u}\right)} \frac{\partial\,\psi_{2}}{\partial v} \\ {\psi}^*t_{ \, v \, v }^{ \phantom{\, v}\phantom{\, v} } & = & f_{00}\left(\psi_{1}, \psi_{2}\right) \left(\frac{\partial\,\psi_{1}}{\partial v}\right)^{2} + {\left(f_{01}\left(\psi_{1}, \psi_{2}\right) + f_{10}\left(\psi_{1}, \psi_{2}\right)\right)} \frac{\partial\,\psi_{1}}{\partial v} \frac{\partial\,\psi_{2}}{\partial v} + f_{11}\left(\psi_{1}, \psi_{2}\right) \frac{\partial\,\psi_{2}}{\partial v}^{2} \end{array}


Basic properties of pullback


For a smooth map ψ:MN, \psi: M \to N,\ tensor fields tt and ss on NN of type (0,k)( 0,k) and constants a,bR a,b\in R\ we have

(ψ(at+bs))p(u1p,...,ukp)=(at+bs)ψ(p)(dψpu1p,...,dψpukp)=(atψ(p)+bsψ(p))(dψpu1p,...,dψpukp)=atψ(p)(dψpu1p,...,dψpukp)+bsψ(p)(dψpu1p,...,dψpukp)=a(ψt)p(u1p,...,ukp)+b(ψs)p(u1p,...,ukp)=(aψt+bψs)p(up,...,wp),(ψ^*(at + bs))_p (u_{1p} , . . . , u_{kp} ) = (at + bs)_{ψ( p)} (dψ_p u_{1p} , . . . , dψ_p u_{kp} )\\ = (at_{ψ( p)} + bs_{ψ( p)} )(dψ_p u_{1p} , . . . , dψ_p u_{kp} )\\ = at_{ψ( p)} (dψ_p u_{1p} , . . . , dψ_p u_{kp} ) + bs_{ψ( p)} (dψ_p u_{1p} , . . . , dψ_p u_{kp} )\\ = a(ψ^∗ t)_p (u_{1p} , . . . , u_{kp} ) + b(ψ^∗ s)_p (u_{1p} , . . . , u_{kp} )\\ = (aψ^∗ t + bψ^∗ s)_p (u_p , . . . , w_p ),

for u1p,...,ukpTpMu_{1p} , . . . , u_{kp} ∈ T_p M. Therefore we have the following linearity result.

Let ψ:MNψ : M → N be a smooth map. If tt and ss are tensor fields of type (0,k)( 0,k) on NN and a,bRa, b ∈ R, then

ParseError: KaTeX parse error: Undefined control sequence: \label at position 51: …^∗ t + bψ^∗ s. \̲l̲a̲b̲e̲l̲{}\tag{15.3} \e…

For ψ \psi\ as before, fC(N) f\in C^\infty(N)\ and tT(0.k)Nt\in T^{(0.k)}N, we have

(ψ(ft)p(u1p,...,ukp)=(ft)ψ(p)(dψpu1p,...,dψpukp)=f(ψ(p))tψ(p)(dψpu1p,...,dψpukp)=(ψf)(p)(ψt)p(u1p,...,ukp)=((ψf)(ψt))p(u1p,...,ukp).(ψ^∗ ( f t)_p (u_{1p} , . . . , u_{kp} ) = ( f t)_{ψ( p)} (dψ_p u_{1p} , . . . , dψ_p u_{kp} )\\ = f( ψ( p)) t_{ψ( p)} (dψ_p u_{1p} , . . . , dψ_p u_{kp} ) = (ψ^∗ f )( p) (ψ^∗ t)_p (u_{1p} , . . . , u_{kp} ) =((ψ^∗ f )(ψ^∗ t))_p (u_{1p} , . . . , u_{kp} ).

Thus ParseError: KaTeX parse error: Undefined control sequence: \label at position 48: …^∗ f )(ψ^∗ t). \̲l̲a̲b̲e̲l̲{}\tag{15.4} \e…

If ψ:MN \psi:M\to N\ is smooth, tt and ss are tensor fields on NN of types (0,k)(0,k) and (0,l)(0,l) respectively, we have

ψ(ts)p(u1p,...,u(k+l)p)=(ts)ψ(p)(dψpu1p,...,dψpu(k+l)p)=tψ(p)(dψpu1p,...,dψpukp)sψ(p)(dψpu(k+1)p,...,dψpu(k+l)p)=(ψt)p(u1p,...,ukp)(ψs)p(u(k+1)p,...,u(k+l)p)=((ψt)(ψs))p(u1p,...,u(k+l)p),ψ^*(t ⊗ s)_p(u_{1p},...,u_{(k+l)p}) = (t ⊗ s)_{ψ( p)} (dψ_p u_{1p} , . . . , dψ_p u_{(k+l)p} )\\ = t_{ψ( p)} (dψ_p u_{1p} , . . .,dψ_p u_{kp}) s_{ψ( p)} (dψ_p u_{(k+1)p},. . . , dψ_p u_{(k+l)p} )\\ = (ψ^∗ t)_p (u_{1p} , . . .,u_{kp})(ψ^∗ s)_p (u_{(k+1)p},. . . , u_{(k+l)p} ) = ((ψ^∗ t) ⊗ (ψ^∗ s))_p (u_{1p} , . . . , u_{(k+l)p} ),

so

ParseError: KaTeX parse error: Undefined control sequence: \label at position 51: … t) ⊗ (ψ^∗ s). \̲l̲a̲b̲e̲l̲{}\tag{15.5} \e…

If M1,M2,M3M_1, M_2, M_3 are smooth manifolds, ψ1:M1M2ψ_1 : M_1 → M_2 and ψ2:M2M3ψ_2 : M_2 → M_3 are smooth maps, then

(ψ2ψ1)t=(ψ1ψ2)  t,for tT(0,k)M3.(ψ_2 ◦ ψ_1 )^∗ t = (ψ_1^∗ ◦ ψ_2^∗ )\;t,\quad \mbox{for } t ∈ T^{(0,k)} M_3.

To prove this relation let us note that ((ψ2ψ1)t)p(u1p,...,ukp)=t(ψ2ψ1)(p)(d(ψ2ψ1)pu1p,...,d(ψ2ψ1)pukp)=tψ2(ψ1(p))(dψ2ψ1(p)(dψ1pu1p),...,dψ2ψ1(p)(dψ1pukp))=(ψ2t)ψ1(p)(dψ1pu1p,...,dψ1pukp)=(ψ1(ψ2t))p(u1p,...,ukp).((ψ_2 ◦ ψ_1 )^∗ t)_p (u_{1p} , . . . , u_{kp} )\\ = t_{(ψ_2 ◦ψ_1 )( p)} (d(ψ_2 ◦ ψ_1 )_p u_{1p} , . . . , d(ψ_2 ◦ ψ_1 )_p u_{kp})\\ = t_{ψ_2(ψ_1(p))} (dψ_{2ψ_1( p)} (dψ_{1p} u_{1p} ), . . . , dψ_{2ψ_1( p)} (dψ_{1p} u_{kp} ))\\ = (ψ_2^∗ t)_{ψ 1 ( p)} (dψ_{1 p} u_{1p} , . . . , dψ_{1p} u_{kp} ) = (ψ_1^∗ (ψ_2^∗ t))_p (u_{1p} , . . . , u_{kp} ).


Pullback of covariant tensor fields in components


If tt is a tensor field of type (0,k)(0,k) on NN, given locally by t=ti1...ikdyi1dyikt = t_{i_1... i_k} dy^{i_1} ⊗ · · · ⊗dy^{i_k}, then the pullback of tt under ψψ is given by

ψt=ψ(ti1...ikdyi1dyik)=(ψti1...ik)(ψdyi1)(ψdyik)=(ψti1...ik)d(ψyi1)d(ψyik).ψ^∗ t = ψ^∗ (t_{i_1... i_k} dy^{i_1} ⊗ · · · ⊗ dy^{i_k} )\\ = (ψ^∗ t_{i_1... i_k} )(ψ^∗ dy^{i_1} ) ⊗ · · · ⊗ (ψ^∗ dy^{i_k} )\\ = (ψ^∗ t_{i_1... i_k} ) d(ψ^∗ y^{i_1} ) ⊗ · · · ⊗ d(ψ^∗ y^{i_k} ).

Since d(ψyi)=((ψyi)/xm)dxmd(ψ^∗ y^i ) = (∂(ψ^∗ y^i )/∂ x^m) dx^m, where (x1,...,xn)(x^1 , . . . , x^n ) are coordinates on MM, we have

ψt=(ψti1...ik)(ψyi1)xm1(ψyik)xmkdxm1dxmk.\begin{equation} ψ^∗ t = (ψ^∗ t_{i_1... i_k} )\frac{\partial(\psi^*y^{i_1})}{ \partial x^{m_1}}\ldots \frac{\partial(\psi^*y^{i_k})}{\partial x^{m_k}}dx^{m_1}⊗ · · · ⊗ dx^{m_k}. \tag{15.6} \end{equation}

The same formula can be written: ψ(ti1...ikdyi1dyik)=(ti1...ikψ)(yi1ψ)xm1(yikψ)xmkdxm1dxmk.ψ^∗ (t_{i_1... i_k} dy^{i_1} ⊗ · · · ⊗dy^{i_k} )= (t_{i_1... i_k}\circ\psi )\frac{\partial(y^{i_1}\circ\psi)}{ \partial x^{m_1}}\ldots \frac{\partial(y^{i_k}\circ\psi)}{\partial x^{m_k}}dx^{m_1}⊗ · · · ⊗ dx^{m_k}.
So to obtain ψt\psi^*t, just replace in t=ti1...ikdyi1dyikt=t_{i_1... i_k} dy^{i_1} ⊗ · · · ⊗dy^{i_k}
ti1...ikti1...ikψt_{i_1... i_k}\to t_{i_1... i_k}\circ \psi\quad and dyi(yiψ)xmdxm.dy^i\to \frac{\partial(y^{i}\circ\psi)}{\partial x^{m}}dx^{m}.


Example 15.6

Consider the covariant tensor field  g=dxdx+dydy+dzdz \ g=dx\otimes dx+ dy\otimes dy+ dz\otimes dz in R3R^3 and its pullback under the embedding ψ:S2R3\psi: S^2\to R^3 defined by

ψ(θ,ϕ)=(sinθcosϕ,sinθsinϕ,cosθ).\psi(\theta,\phi)=(\sin \theta \cos \phi, \sin \theta\sin \phi,\cos\theta).
%display latex S2=manifolds.Sphere(2) # manifolds.Sphere module contains the def. Phi=S2.embedding() # of the embedding S^2 -> E^3 sph.<th,ph>=S2.spherical_coordinates() # spherical coordinates E=S2.ambient() # 3-dim Euclidean space c_cart.<x,y,z> = E.cartesian_coordinates() # Cartesian coord. in E^3 Phi.disp() # show Phi

ι:S2E3on A:(θ,ϕ)(x,y,z)=(cos(ϕ)sin(θ),sin(ϕ)sin(θ),cos(θ))\displaystyle \begin{array}{llcl} \iota:& \mathbb{S}^{2} & \longrightarrow & \mathbb{E}^{3} \\ \mbox{on}\ A : & \left(\theta, {\phi}\right) & \longmapsto & \left(x, y, z\right) = \left(\cos\left({\phi}\right) \sin\left(\theta\right), \sin\left({\phi}\right) \sin\left(\theta\right), \cos\left(\theta\right)\right) \end{array}

metric is a predefined covariant tensor field of type (0,2) in E3E^3

g=E.metric() # g is predefined tensor field of type (0,2) g.disp() # show g

g=dxdx+dydy+dzdz\displaystyle g = \mathrm{d} x\otimes \mathrm{d} x+\mathrm{d} y\otimes \mathrm{d} y+\mathrm{d} z\otimes \mathrm{d} z

The pullback of g:

Phi.pullback(g).disp() # pullback of g

ιg=dθdθ+sin(θ)2dϕdϕ\displaystyle {\iota}^*g = \mathrm{d} \theta\otimes \mathrm{d} \theta + \sin\left(\theta\right)^{2} \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}


Example 15.7

We can repeat the previous example in higher dimensions. For example we can compute the pullback of  g=dx1dx1+dx2dx2+dx3dx3+dx4dx4 \ g=dx_1\otimes dx_1+ dx_2\otimes dx_2+ dx_3\otimes dx_3+dx_4\otimes dx_4 under the embedding S3E4.S^3\to E^4.

%display latex S3=manifolds.Sphere(3) # manifolds.Sphere module contains the def. Phi=S3.embedding() # of the embedding S^3 -> E^4 sph.<chi,theta,phi>=S3.spherical_coordinates() # and spherical coordinates E=S3.ambient() # Euclidean space E^4 c_cart.<x1,x2,x3,x4> = E.cartesian_coordinates() # Cartesian coord. in E^4 fun=Phi.coord_functions()[:];fun # functions defining the emb. S^3 -> E^4

(cos(ϕ)sin(χ)sin(θ),sin(χ)sin(ϕ)sin(θ),cos(θ)sin(χ),cos(χ))\displaystyle \left(\cos\left({\phi}\right) \sin\left(\chi\right) \sin\left(\theta\right), \sin\left(\chi\right) \sin\left({\phi}\right) \sin\left(\theta\right), \cos\left(\theta\right) \sin\left(\chi\right), \cos\left(\chi\right)\right)

metric is a predefined covariant tensor field of type (0,2) in E4.E^4.

g=E.metric() # g is a predefined (0,2) type tensor field g.disp() # show g

g=dx1dx1+dx2dx2+dx3dx3+dx4dx4\displaystyle g = \mathrm{d} {x_{1}}\otimes \mathrm{d} {x_{1}}+\mathrm{d} {x_{2}}\otimes \mathrm{d} {x_{2}}+\mathrm{d} {x_{3}}\otimes \mathrm{d} {x_{3}}+\mathrm{d} {x_{4}}\otimes \mathrm{d} {x_{4}}

Pullback of g:

Phi.pullback(g).disp() # pullback Psi^*g

ιg=dχdχ+sin(χ)2dθdθ+sin(χ)2sin(θ)2dϕdϕ\displaystyle {\iota}^*g = \mathrm{d} \chi\otimes \mathrm{d} \chi + \sin\left(\chi\right)^{2} \mathrm{d} \theta\otimes \mathrm{d} \theta + \sin\left(\chi\right)^{2} \sin\left(\theta\right)^{2} \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}


Since the differential k-forms are special cases of covariant tensor fields, the pullback operation can be applied to such forms.


Example 15.8

Consider the same embedding ψ:S2R3\psi: S^2\to R^3 as in Example 15.6, defined by ψ(θ,ϕ)=(sinθcosϕ,sinθsinϕ,cosθ), \psi(\theta,\phi)=(\sin \theta \cos \phi, \sin \theta\sin \phi,\cos\theta), and compute the pullbacks ψ(dxdy), ψ(dydz), ψ(dxdz).\psi^*(dx\wedge dy),\ \psi^*(dy\wedge dz),\ \psi^*(dx\wedge dz).

%display latex M = Manifold(3, 'R^3') # manifold M=R^3 c_xyz.<x,y,z> = M.chart() # Cartesian coordinates N = Manifold(2, 'N') # manifold N=S^2 c_sph.<theta,phi>=N.chart() # spherical coordinates # embedding S^2->R^3 psi = N.diff_map(M, (sin(theta)*cos(phi), sin(theta)*sin(phi),cos(theta)), name='psi',latex_name=r'\psi') E=c_xyz.coframe() # coframe (dx,dy,dz) dx,dy,dz=E[:] # define dx,dy,dz omega1=dx.wedge(dy) # wedge prod. dx/\dy omega2=dy.wedge(dz) # wedge prod. dy/\dz omega3=dx.wedge(dz) # wedge prod. dx/\dz plb=psi.pullback(omega1) # pullback psi^*omega1 plb.disp()

ψdxdy=cos(θ)sin(θ)dθdϕ\displaystyle {\psi}^* \mathrm{d} x \wedge \mathrm{d} y = \cos\left(\theta\right) \sin\left(\theta\right) \mathrm{d} \theta\wedge \mathrm{d} {\phi}

plb=psi.pullback(omega2) # pullback psi^*omega2 plb.disp()

ψdydz=cos(ϕ)sin(θ)2dθdϕ\displaystyle {\psi}^* \mathrm{d} y \wedge \mathrm{d} z = \cos\left({\phi}\right) \sin\left(\theta\right)^{2} \mathrm{d} \theta\wedge \mathrm{d} {\phi}

plb=psi.pullback(omega3) # pullback psi^*omega3 plb.disp()

ψdxdz=sin(ϕ)sin(θ)2dθdϕ\displaystyle {\psi}^* \mathrm{d} x \wedge \mathrm{d} z = -\sin\left({\phi}\right) \sin\left(\theta\right)^{2} \mathrm{d} \theta\wedge \mathrm{d} {\phi}

More examples of pullbacks of k-forms can be found in the next notebook.

What's next?

Take a look at the notebook Exterior derivative.