PushPullTensor - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


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

Φ1:=u=xy,v=y,w=xz

(2.1)
M > 

Ψ1InverseTransformationΦ1

Ψ1:=x=uv,y=v,z=wvu

(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

W1:=D_uduuD_udvv+wD_wduuwD_wdvv

(2.3)
N > 

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

W2:=D_uduuD_udvv+wD_wduuwD_wdvv

(2.4)
N > 

W1&minusW2

0D_udu

(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

A:=yD_ydydx

(2.6)
M > 

BPushPullTensorΦ1,Ψ1,A

B:=D_ududvv+2wD_udwduu22wD_udwdvvuD_udwdwu+u1D_vduduvuu2D_vdudvv2+D_vdvduuD_vdvdvv2wD_vdwduvu+2wD_vdwdvv2+D_vdwdwvD_wdwduu+D_wdwdvv

(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

Z:=yD_y

(2.8)

 

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

M > 

UPushPullTensorΦ1,Ψ1,X

U:=vD_u+wvD_wu

(2.9)
N > 

VPushPullTensorΦ1,Ψ1,Y

V:=uD_uv+D_v

(2.10)
N > 

WPushPullTensorΦ1,Ψ1,Z

W:=D_uu+D_vv

(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

D_u+u2+v2uD_vv

(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

R:=D_ydxdydy+D_ydxdydy

(2.13)
M > 

SCurvatureTensorB

S:=4wD_udwdudvvu22D_udwdudwu24wD_udwdvduvu2+4D_udwdvdwvu+2D_udwdwduu24D_udwdwdvvuu2D_vdududvv2+u2D_vdudvduv2D_vdvdudvv+D_vdvdvduv4wD_vdwdudvv2u+4D_vdwdudwvu+4wD_vdwdvduv2u6D_vdwdvdwv24D_vdwdwduvu+6D_vdwdwdvv2

(2.14)
N > 

PushPullTensorΦ1,Ψ1,R&minusS

uD_udvdudvv2+uD_udvdvduv24wD_udwdudvvu2+2D_udwdudwu2+4wD_udwdvduvu24D_udwdvdwvu2D_udwdwduu2+4D_udwdwdvvu+u2D_vdududvv2u2D_vdudvduv2+4wD_vdwdudvv2u4D_vdwdudwvu4wD_vdwdvduv2u+6D_vdwdvdwv2+4D_vdwdwduvu6D_vdwdwdvv2

(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

S:=dudw

(2.16)
N > 

PushPullTensorΦ1,S

yzdxdx+xydxdz+xzdydx+x2dydz

(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

Φ2:=x1=2uu2+v2+w2+1,x2=2vu2+v2+w2+1,x3=2wu2+v2+w2+1,x4=u2+v2+w21u2+v2+w2+1

(2.18)

 

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

R3 > 

fPullbackΦ2,x12+x22+x32+x42

f:=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

g:=dx1dx1+dx2dx2+dx3dx3+dx4dx4

(2.21)
R4 > 

PushPullTensorΦ2,g

4duduu2+v2+w2+12+4dvdvu2+v2+w2+12+4dwdwu2+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

yE1Θ1x+E1Θ2y2E2Θ1x2yE2Θ2x

(2.26)

 

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

M1 > 

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

D_xD_yD_zx2y+D_yD_yD_zxy2

(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

Φ4:=x=x,y=y,z=z,p=ux+vy,q=uyvx

(2.28)
E > 

Ψ4InverseTransformationΦ4

Ψ4:=x=x,y=y,z=z,u=px+qyx2+y2,v=py+qxx2+y2

(2.29)
F > 

PushPullTensorΦ4,Ψ4,yD_u

D_pxy+D_qy2

(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

ydpx2+y2xdqx2+y2

(2.31)
F > 

ChangeFrameE:

 

Transform a connection on E to one on F.

E > 

ConEConnectionD_u&tdu&tdx

ConE:=D_ududx

(2.32)
E > 

ConFPushPullTensorΦ4,Ψ4,ConE

ConF:=xx1D_pdpdxx2+y2yD_pdpdyx2+y2+yx+1D_pdqdxx2+y2xD_pdqdyx2+y2+yx1D_qdpdxx2+y2+xD_qdpdyx2+y2y2+xD_qdqdxx2+y2yD_qdqdyx2+y2

(2.33)
F > 

CurvatureTensorConF

4yx2D_pdpdxdyx2+y224yx2D_pdpdydxx2+y222x2y2xD_pdqdxdyx2+y22+2x2y2xD_pdqdydxx2+y222x2y2xD_qdpdxdyx2+y22+2x2y2xD_qdpdydxx2+y224yx2D_qdqdxdyx2+y22+4yx2D_qdqdydxx2+y22

(2.34)

See Also

DifferentialGeometry

Tensor

LieAlgebras

Connection

CurvatureTensor

DirectionalCovariantDerivative

InverseTransformation

Pullback

Pushforward

Transformation