transform a tensor from one manifold or coordinate system to another - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : DifferentialGeometry : Tensor : DifferentialGeometry/Tensor/PushPullTensor

Tensor[PushPullTensor] - transform a tensor from one manifold or coordinate system to another

Calling Sequences

     PushPullTensor(Phi, Psi, T)

     PushPullTensor(Phi, S)

Parameters

   Phi      - a transformation from a manifold M to another manifold N

   Psi      - the inverse of the transformation Phi, a transformation from the manifold N to the manifold M

   T        - a vector, differential form, tensor, or a connection defined on the manifold M

   S        - a differential form or a covariant tensor field defined on the manifold N

 

Description

Examples

Description

• 

PushPullTensor(Phi, Psi, M) will apply the transformation Phi to the vector, form or tensor T on  M and return an object of the same type on N.

• 

Applied to tensors on M, PushPullTensor acts as a ring homomorphism, that is, if T1 and T2 are tensors on M, then PushPullTensor(Phi, Psi, T1 &tensor T2) = PushPullTensor(Phi, Psi, T1) &tensor PushPullTensor(Phi, Psi, T2).  Therefore to completely describe the action of PushPullTensor on a tensor T, it suffices to note that [i] if T is a vector field on M, then PushPullTensor(Phi , Psi, T) = Pushforward(Phi, Psi, T) and [ii], if T is a 1-form on M, then PushPullTensor(Phi, Psi, T) = Pullback(Psi, T).

• 

Let A be a connection on M and let B = PushPullTensor(Phi, Psi, A).  Let X, Y be vector fields on M and let Z = DirectionalCovariantDerivative(X, Y, A).  Let U, V, W be the vector fields on N which are the pushforwards of X, Y and Z using Phi and Psi.  The defining property of the connection B is the identity W = DirectionalCovariantDerivative(U, V, B).

• 

Let A be a connection on M and let B = PushPullTensor(Phi, Psi, A).  Let R be the curvature tensor for A and let S be the curvature tensor for B.  We remark that PushPullTensor(Phi, Psi, R) = S.

• 

Let S be a differential form or a covariant tensor field defined on the manifold N.  Then the command PushPullTensor(Phi, S) will Pullback S to a differential form or tensor on M.  With this calling sequence, the transformation Phi from M to N need not be invertible.  For example, suppose M is a submanifold of N and Phi : M -> N is the inclusion mapping.  Then, if g is a Riemannian metric on N, PushPullTensor(Phi, g) computes the induced metric on M.  

• 

The PushPullTensor command works with arbitrary frames and can therefore be used to re-express any tensor in the coordinate frame in terms of the user defined frame.

• 

The PushPullTensor command may also be applied to tensor fields associated  with a vector bundle E -> M.

• 

This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form PushPullTensor(...) only after executing the command with(DifferentialGeometry) and with(Tensor) in that order.  It can always be used in the long form DifferentialGeometry:-Tensor:-PushPullTensor.

Examples

withDifferentialGeometry:withTensor:

 

Example 1.

First create two manifolds M, N and define a diffeomorphism phi : M -> N.

DGsetupx,y,z,M:

M > 

DGsetupu,v,w,N:

 

Define a transformation from M to N and calculate its inverse.

N > 

Φ1TransformationM,N,u=xy,v=y,w=xz

_DGtransformation,M,0,N,0,,Matrix%id=4555846274,xy,u,y,v,xz,w

(2.1)
M > 

Ψ1InverseTransformationΦ1

_DGtransformation,N,0,M,0,,Matrix%id=4555847618,uv,x,v,y,wvu,z

(2.2)

 

CASE 1.  Acting on vectors on M, PushPullTensor is the same as the DifferentialGeometry command PushForward.

N > 

PushforwardΦ1,Ψ1,D_x,PushforwardΦ1,Ψ1,D_y,PushforwardΦ1,Ψ1,D_z

N > 

PushPullTensorΦ1,Ψ1,D_x,PushPullTensorΦ1,Ψ1,D_y,PushPullTensorΦ1,Ψ1,D_z

 

CASE 2.  Acting on 1-forms on M, PushPullTensor is the same as the DifferentialGeometry command Pullback, using the inverse of Phi1, that is, the transformation Psi1.

N > 

PullbackΨ1,dx,PullbackΨ1,dy,PullbackΨ1,dz

N > 

PushPullTensorΦ1,Ψ1,dx,PushPullTensorΦ1,Ψ1,dy,PushPullTensorΦ1,Ψ1,dz

 

CASE 3.  The action of PushPullTensor on tensors on M is determined by Case1 and Case2 and the fact that PushPullTensor is a homomorphism.

N > 

W1PushPullTensorΦ1,Ψ1,D_x&tdx

_DGtensor,N,con_bas,cov_bas,,1,1,1,1,2,uv,3,1,wu,3,2,wv

(2.3)
N > 

W2PushPullTensorΦ1,Ψ1,D_x&tensorPushPullTensorΦ1,Ψ1,dx

_DGtensor,N,con_bas,cov_bas,,1,1,1,1,2,uv,3,1,wu,3,2,wv

(2.4)
N > 

W1&minusW2

_DGtensor,N,con_bas,cov_bas,,1,1,0

(2.5)

 

CASE 4.  The command PushPullTensor will pushforward a connection on M to a connection on N. Define a connection A on M and push it forward to get a connection B on N.

N > 

AConnectionyD_y&tdy&tdx

_DGconnection,M,con_bas,cov_bas,cov_bas,,2,2,1,y

(2.6)
M > 

BPushPullTensorΦ1,Ψ1,A

_DGconnection,N,con_bas,cov_bas,cov_bas,,1,1,2,1v,1,3,1,2wu2,1,3,2,2wvu,1,3,3,1u,2,1,1,u1v,2,1,2,uu2v2,2,2,1,1,2,2,2,uv,2,3,1,2wvu,2,3,2,2wv2,2,3,3,1v,3,3,1,1u,3,3,2,1v

(2.7)

 

We check the defining property of the pushforward connection B.  Pick two vectors X and Y on M and calculate the directional covariant derivative with respect to A.  Call it Z.

N > 

XD_x:YD_y:ZDirectionalCovariantDerivativeX,Y,A

_DGtensor,M,con_bas,,2,y

(2.8)

 

Push the vectors X, Y, Z over to N and get vector fields U, V, W.

M > 

UPushPullTensorΦ1,Ψ1,X

_DGvector,N,,1,v,3,wvu

(2.9)
N > 

VPushPullTensorΦ1,Ψ1,Y

_DGvector,N,,1,uv,2,1

(2.10)
N > 

WPushPullTensorΦ1,Ψ1,Z

_DGtensor,N,con_bas,,1,u,2,v

(2.11)

 

Check that W is the directional covariant derivative of V in the direction of U with respect to the connection B.

N > 

DirectionalCovariantDerivativeU,V,B

_DGtensor,N,con_bas,,1,1,2,u2+v2uv

(2.12)

 

We can also calculate the curvature tensor R of A, the curvature tensor S of B and check that the PushPullTensor applied to R gives S.

N > 

RCurvatureTensorA

_DGtensor,M,con_bas,cov_bas,cov_bas,cov_bas,,2,2,1,2,1,2,2,2,1,1

(2.13)
M > 

SCurvatureTensorB

_DGtensor,N,con_bas,cov_bas,cov_bas,cov_bas,,1,3,1,2,4wvu2,1,3,1,3,2u2,1,3,2,1,4wvu2,1,3,2,3,4vu,1,3,3,1,2u2,1,3,3,2,4vu,2,1,1,2,u2v2,2,1,2,1,u2v2,2,2,1,2,1v,2,2,2,1,1v,2,3,1,2,4wv2u,2,3,1,3,4vu,2,3,2,1,4wv2u,2,3,2,3,6v2,2,3,3,1,4vu,2,3,3,2,6v2

(2.14)
N > 

PushPullTensorΦ1,Ψ1,R&minusS

_DGtensor,N,con_bas,cov_bas,cov_bas,cov_bas,,1,2,1,2,uv2,1,2,2,1,uv2,1,3,1,2,4wvu2,1,3,1,3,2u2,1,3,2,1,4wvu2,1,3,2,3,4vu,1,3,3,1,2u2,1,3,3,2,4vu,2,1,1,2,u2v2,2,1,2,1,u2v2,2,3,1,2,4wv2u,2,3,1,3,4vu,2,3,2,1,4wv2u,2,3,2,3,6v2,2,3,3,1,4vu,2,3,3,2,6v2

(2.15)

 

CASE 5.  If S is a covariant tensor on N, then the second calling sequence to PushPullTensor will generate a covariant tensor field on M.

N > 

SevalDGdu&tdw

_DGtensor,N,cov_bas,cov_bas,,1,3,1

(2.16)
N > 

PushPullTensorΦ1,S

_DGtensor,M,cov_bas,cov_bas,,1,1,yz,1,3,xy,2,1,xz,2,3,x2

(2.17)

 

Example 2.

In this example, we define a mapping from R^3 to R^4 whose image is the unit sphere S^3 in R^4.  The Pullback of the standard metric on R^4 by this map gives the metric on S^3 in conformal coordinates.

M > 

DGsetupu,v,w,R3:

R3 > 

DGsetupx1,x2,x3,x4,R4:

R4 > 

Φ2TransformationR3,R4,x2=2vv2+w2+1+u2,x1=2uv2+w2+1+u2,x4=u2+w2+v21v2+w2+1+u2,x3=2wv2+w2+1+u2

_DGtransformation,R3,0,R4,0,,Matrix%id=4544847106,2uu2+v2+w2+1,x1,2vu2+v2+w2+1,x2,2wu2+v2+w2+1,x3,u2+v2+w21u2+v2+w2+1,x4

(2.18)

 

We check that the image of Phi2 is the unit sphere in R4.

R3 > 

fPullbackΦ2,x12+x22+x32+x42

4u2u2+v2+w2+12+4v2u2+v2+w2+12+4w2u2+v2+w2+12+u2+v2+w212u2+v2+w2+12

(2.19)
R3 > 

simplifyf

1

(2.20)

 

We Pullback the standard Euclidean metric on R4 to R3.

R3 > 

gevalDGdx1&tdx1+dx2&tdx2+dx3&tdx3+dx4&tdx4

_DGtensor,R4,cov_bas,cov_bas,,1,1,1,2,2,1,3,3,1,4,4,1

(2.21)
R4 > 

PushPullTensorΦ2,g

_DGtensor,R3,cov_bas,cov_bas,,1,1,4u2+v2+w2+12,2,2,4u2+v2+w2+12,3,3,4u2+v2+w2+12

(2.22)

 

Example 3.

In this example we return to the manifold M defined in Example 1 and introduce on M a local frame E1, E2, E3 with dual 1-forms Theta1, Theta2, Theta3.

R3 > 

ChangeFrameM

R3

(2.23)
M > 

FRFrameDataxD_x+yD_y,xD_y,yD_z,M1:

M > 

DGsetupFR:

 

Define the identity transformation from M to M1 and its inverse.

M1 > 

Φ3TransformationM,M1,x=x,y=y,z=z

_DGtransformation,M,0,M1,0,,Matrix%id=4553395650,x,x,y,y,z,z

(2.24)
M > 

Ψ3TransformationM1,M,x=x,y=y,z=z

_DGtransformation,M1,0,M,0,,Matrix%id=4535464194,x,x,y,y,z,z

(2.25)

 

Write a type (1, 1) tensor given in the coordinate frame in terms of the frame FR and its dual.

M1 > 

PushPullTensorΦ3,Ψ3,D_x&tdy

_DGtensor,M1,con_bas,cov_bas,,1,1,yx,1,2,1,2,1,y2x2,2,2,yx

(2.26)

 

Write a type (3, 0) tensor given in the frame FR in the coordinate frame.

M1 > 

PushPullTensorΨ3,Φ3,E3&tE2&tE1

_DGtensor,M,con_bas,con_bas,con_bas,,3,2,1,x2y,3,2,2,xy2

(2.27)

Example 4.

Create a pair of rank 2 vector bundles over a common 3 dimension base and define a bundle automorphism.

M > 

DGsetupx,y,z,u,v,E:

E > 

DGsetupx,y,z,p,q,F:

F > 

Φ4TransformationE,F,x=x,y=y,z=z,p=xu+yv,q=yuxv

_DGtransformation,E,0,F,0,,Matrix%id=4537407298,x,x,y,y,z,z,ux+vy,p,uyvx,q

(2.28)
E > 

Ψ4InverseTransformationΦ4

_DGtransformation,F,0,E,0,,Matrix%id=4537408578,x,x,y,y,z,z,px+qyx2+y2,u,py+qxx2+y2,v

(2.29)
F > 

PushPullTensorΦ4,Ψ4,yD_u

_DGvector,F,,4,xy,5,y2

(2.30)

 

To pushover a one form on the fibers of E to F, first convert it to a tensor.

F > 

PushPullTensorΦ4,Ψ4,convertdv,DGtensor

_DGtensor,F,cov_vrt,,4,yx2+y2,5,xx2+y2

(2.31)
F > 

ChangeFrameE:

 

Transform a connection on E to one on F.

E > 

ConEConnectionD_u&tdu&tdx

_DGconnection,E,con_vrt,cov_vrt,cov_bas,,4,4,1,1

(2.32)
E > 

ConFPushPullTensorΦ4,Ψ4,ConE

_DGconnection,F,con_vrt,cov_vrt,cov_bas,,4,4,1,xx1x2+y2,4,4,2,yx2+y2,4,5,1,yx+1x2+y2,4,5,2,xx2+y2,5,4,1,yx1x2+y2,5,4,2,xx2+y2,5,5,1,y2+xx2+y2,5,5,2,yx2+y2

(2.33)
F >