Digi Area Group - Math Tools for Professionals
   Maple and Mathematica packages - math tools for professionals

atlas™ - modern differential geometry for Maple™

> Features List & Examples
> Template Worksheets
> Screenshots
> Documentation & Downloads
> License & Pricing
> Buy Online

 
 
 
 
Google

Features List & Examples  |  Introduction  |  Dimension  |  Indexing  |  Forms  |  Metric  |  atlasWizard - Maplet™

atlas[Metric] - declaration of a metric tensor

Calling Sequence:

     Metric(Id)
     Metric(Id=expr)

Parameters:

      Id - variable - metric identifier
      expr - expression - metric declaration.  

Description:

The Metric  procedure declares metric tensor.

The Metric procedure can be used in two ways:

  • Metric(Id) - sets Id as a metric tensor identifier (the metric tensor components is indefinite).
  • Metric(Id=expr) - sets Id as a metric tensor identifier and expr as a metric tensor.

In the atlas  package the metric declared is a procedure. Use atlas[ToBasis]  procedure to see metric as a tensor.

Example 1

Abstract metric
restart:
with(atlas):

Declare forms:
Forms(e[j]=1,xi=1);

{xi, e[j]}

Declare vectors:
Vectors(X,Y,Z,E[j]);

{Y, Z, E[j], X}

Declare functions:
Functions(f=f(x,y,z));

{f}

Declare coframe with 1-forms: e[1], e[2], `` .. e[n]  (see atlas[Coframe] )
Coframe(e[j],j=1..n);

{e[j]}[j = 1 .. n]

Declare frame vectors (see atlas[Frame] ):
Frame(E[i]);

{E[i]}[i = 1 .. n]

Declare indefinite metric tensor g:
Metric(g);

g

Interior product of E[j] and g (see atlas[iota] ):
'iota[E[j]](g)'=iota[E[j]](g);

iota[E[j]](g) = Sum(g(E[l[1]],E[j])*e[l[1]],l[1] = 1 .. n)

Linear property of metric tensor (see atlas[ToBasis] ):
g(X,Y)=g(ToBasis(X),Y);

g(X,Y) = Sum(iota[X](e[l[1]])*g(Y,E[l[1]]),l[1] = 1 .. n)

Example 2

Conformally flat metric of sphere -S^3
restart:
with(atlas):

Declare forms:
Forms(e[j]=1,xi=1);

{e[j], xi}

Declare vectors:
Vectors(X,Y,Z,E[j]);

{E[j], X, Y, Z}

Declare functions:
Functions(f=f(x,y,z));

{f}

Declare constant lambda :
Constants(lambda);

{I, lambda, -I, _Z, Pi, Catalan}

Declare coframe:
Coframe(e[1]=d(x),e[2]=d(y),e[3]=d(z));

[e[1] = d(x), e[2] = d(y), e[3] = d(z)]

Declare frame:
Frame(E[i]);

[E[1] = Diff(``,x), E[2] = Diff(``,y), E[3] = Diff(``,z)]

Declare conformally flat metric of   S^3 :
Metric(g=4*(d(x)&.d(x)+d(y)&.d(y)+d(z)&.d(z))/(1+lambda*(x^2+y^2+z^2))^2);

g = 4*(`&.`(e[1],e[1])+`&.`(e[2],e[2])+`&.`(e[3],e[3]))/(1+lambda*(x^2+y^2+z^2))^2

Simple calculations:
'iota[E[k]](g)'=iota[E[k]](g);

iota[E[k]](g) = 4/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*(delta[1,k]*e[1]+delta[2,k]*e[2]+delta[3,k]*e[3])

'g(E[i],E[j])'=g(E[i],E[j]);

g(E[i],E[j]) = 4/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*(delta[1,i]*delta[1,j]+delta[2,i]*delta[2,j]+delta[3,i]*delta[3,j])

'g(E[j],X)'=g(E[j],ToBasis(X));

g(E[j],X) = 4*iota[X](e[1])/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*delta[1,j]+4*iota[X](e[2])/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*delta[2,j]+4*iota[X](e[3])/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*de...

g=ToBasis(g);

g = 4*(`&.`(e[1],e[1])+`&.`(e[2],e[2])+`&.`(e[3],e[3]))/(1+lambda*(x^2+y^2+z^2))^2

Connection calculation (see atlas[Connection] ):
Connection(omega);

omega[i,j]

Now connection 1-forms omega[i,j]  are calculated:
'omega[3,2]'=omega[3,2];

omega[3,2] = 2/(1+lambda*x^2+lambda*y^2+lambda*z^2)*lambda*z*e[2]-2*lambda*y/(1+lambda*x^2+lambda*y^2+lambda*z^2)*e[3]

'iota[E[i]](omega[1,2])'=iota[E[i]](omega[1,2]);

iota[E[i]](omega[1,2]) = -2*lambda*y/(1+lambda*x^2+lambda*y^2+lambda*z^2)*delta[1,i]+2*lambda*x/(1+lambda*x^2+lambda*y^2+lambda*z^2)*delta[2,i]

Verify that vector Z = x*E[2]-y*E[1]  is Killing one (see atlas[L] ):
Z:=x*E[2]-y*E[1];
'L[Z](g)'=L[Z](g);

Z := x*E[2]-y*E[1]

L[Z](g) = 0

Verify that there are no Killing vectors among frame ones:
'L[E[k]](g)'=L[E[k]](g);

L[E[k]](g) = -8*(`&.`(e[1],e[1])+`&.`(e[2],e[2])+`&.`(e[3],e[3]))*lambda/(1+lambda*x^2+lambda*y^2+lambda*z^2)^3*(2*x*delta[1,k]+2*y*delta[2,k]+2*z*delta[3,k])

Curvature calculation (see atlas[Curvature] ):
Curvature(Omega);

Omega[i,j]

Now curvature 2-forms Omega[i,j]  are calculated:
'Omega[1,3]'=Omega[1,3];

Omega[1,3] = 4*lambda/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*`&^`(e[1],e[3])

'iota[E[k]](Omega[2,1])'=iota[E[k]](Omega[2,1]);

iota[E[k]](Omega[2,1]) = -4*lambda/(1+lambda*x^2+lambda*y^2+lambda*z^2)^2*(delta[1,k]*e[2]-delta[2,k]*e[1])

Example 3

Schwarzchild metric
restart:
with(atlas):

Declare vectors:
Vectors(X,Y,Z,E[j]);

{X, Y, Z, E[j]}

Declare functions:
Functions(f=f(x,y,z));

{f}

Declare constant r[g]
Constants(r[g]);

{Catalan, I, _Z, Pi, r[g], -I}

Declare vectors:
Vectors(L1,N,M,K);

{N, M, L1, K}

Declare forms:
Forms(e[j]=1,l=1,n=1,m=1,k=1,x=1,y=1,z=1);

{l, x, m, y, z, k, n, e[j]}


Using alias for vectors and forms:
alias(L1=E[1],N=E[2],M=E[3],K=E[4],l=e[1],n=e[2],m=e[3],k=e[4]);

L1, N, M, K, l, n, m, k

Now 1-forms e[1], e[2], e[3], e[4]  are:
[seq(e[i],i=1..4)];

[l, n, m, k]

Declare coframe:
Coframe(l=1/2*((1-r[g]/r)*d(t)+d(r)),
        n=d(t)-1/(1-r[g]/r)*d(r),
        m=r/sqrt(2)*(d(theta)-I*sin(theta)*d(phi)),
        k=r/sqrt(2)*(d(theta)+I*sin(theta)*d(phi)));

[l = 1/2*(1-r[g]/r)*d(t)+1/2*d(r), n = d(t)-1/(1-r[g]/r)*d(r), m = 1/2*r*2^(1/2)*(d(theta)-I*sin(theta)*d(phi)), k = 1/2*r*2^(1/2)*(d(theta)+sin(theta)*d(phi)*I)]
[l = 1/2*(1-r[g]/r)*d(t)+1/2*d(r), n = d(t)-1/(1-r[g]/r)*d(r), m = 1/2*r*2^(1/2)*(d(theta)-I*sin(theta)*d(phi)), k = 1/2*r*2^(1/2)*(d(theta)+sin(theta)*d(phi)*I)]

Declare frame:
Frame(E[j]);

[L1 = r/(r-r[g])*Diff(``,t)+Diff(``,r), N = 1/2*Diff(``,t)+1/2*1/r*(-r+r[g])*Diff(``,r), M = 1/2*2^(1/2)/r*Diff(``,theta)+1/2*I*2^(1/2)/r/sin(theta)*Diff(``,phi), K = 1/2*2^(1/2)/r*Diff(``,theta)-1/2*I...
[L1 = r/(r-r[g])*Diff(``,t)+Diff(``,r), N = 1/2*Diff(``,t)+1/2*1/r*(-r+r[g])*Diff(``,r), M = 1/2*2^(1/2)/r*Diff(``,theta)+1/2*I*2^(1/2)/r/sin(theta)*Diff(``,phi), K = 1/2*2^(1/2)/r*Diff(``,theta)-1/2*I...

Declare metric:
Metric(g=e[1]&.e[2]+e[2]&.e[1]-e[3]&.e[4]-e[4]&.e[3] );

g = `&.`(l,n)+`&.`(n,l)-`&.`(m,k)-`&.`(k,m)

Simple calculations:
'g(E[i],E[j])'=g(E[i],E[j]);

g(E[i],E[j]) = delta[1,i]*delta[2,j]+delta[2,i]*delta[1,j]-delta[3,i]*delta[4,j]-delta[4,i]*delta[3,j]

'g(E[j],X)'=g(E[j],ToBasis(X));

g(E[j],X) = iota[X](l)*delta[2,j]+iota[X](n)*delta[1,j]-iota[X](m)*delta[4,j]-iota[X](k)*delta[3,j]

'iota[E[k]](g)'=iota[E[k]](g);

iota[E[k]](g) = delta[1,k]*n+delta[2,k]*l-delta[3,k]*k-delta[4,k]*m

g=ToBasis(g);

g = `&.`(l,n)+`&.`(n,l)-`&.`(m,k)-`&.`(k,m)

Connection calculation:
Connection(Gamma);

Gamma[i,j]

Now connection 1-forms are calculated:
'Gamma[4,2]'=Gamma[4,2];

Gamma[4,2] = -1/2*(r-r[g])/r^2*k

Simple calculation:
'd(r)'=d(r);

d(r) = 1/2*(-n*r+n*r[g]+2*l*r)/r

'd(m)'=d(m);

d(m) = -1/2*1/r*2^(1/2)*cos(theta)/sin(theta)*`&^`(m,k)+1/2*(1/4*1/r^2*2^(1/2)*(-r*`&^`(n,k)-r*`&^`(n,m)+r[g]*`&^`(n,k)+r[g]*`&^`(n,m)+2*r*`&^`(l,k)+2*r*`&^`(l,m))+1/4*1/r^2*2^(1/2)*(r*`&^`(n,k)-r*`&^`...
d(m) = -1/2*1/r*2^(1/2)*cos(theta)/sin(theta)*`&^`(m,k)+1/2*(1/4*1/r^2*2^(1/2)*(-r*`&^`(n,k)-r*`&^`(n,m)+r[g]*`&^`(n,k)+r[g]*`&^`(n,m)+2*r*`&^`(l,k)+2*r*`&^`(l,m))+1/4*1/r^2*2^(1/2)*(r*`&^`(n,k)-r*`&^`...
d(m) = -1/2*1/r*2^(1/2)*cos(theta)/sin(theta)*`&^`(m,k)+1/2*(1/4*1/r^2*2^(1/2)*(-r*`&^`(n,k)-r*`&^`(n,m)+r[g]*`&^`(n,k)+r[g]*`&^`(n,m)+2*r*`&^`(l,k)+2*r*`&^`(l,m))+1/4*1/r^2*2^(1/2)*(r*`&^`(n,k)-r*`&^`...
d(m) = -1/2*1/r*2^(1/2)*cos(theta)/sin(theta)*`&^`(m,k)+1/2*(1/4*1/r^2*2^(1/2)*(-r*`&^`(n,k)-r*`&^`(n,m)+r[g]*`&^`(n,k)+r[g]*`&^`(n,m)+2*r*`&^`(l,k)+2*r*`&^`(l,m))+1/4*1/r^2*2^(1/2)*(r*`&^`(n,k)-r*`&^`...

'L[M](E[i])'=L[M](E[i]);

L[M](E[i]) = (iota[M](Gamma[1,i])+1/2*(r-r[g])/r^2*delta[4,i])*L1+(iota[M](Gamma[2,i])-1/r*delta[4,i])*N+(iota[M](Gamma[3,i])+1/2*1/r*2^(1/2)*cos(theta)/sin(theta)*delta[4,i]-1/2*1/r*2^(1/2)*cos(theta)...
L[M](E[i]) = (iota[M](Gamma[1,i])+1/2*(r-r[g])/r^2*delta[4,i])*L1+(iota[M](Gamma[2,i])-1/r*delta[4,i])*N+(iota[M](Gamma[3,i])+1/2*1/r*2^(1/2)*cos(theta)/sin(theta)*delta[4,i]-1/2*1/r*2^(1/2)*cos(theta)...

See Also:

atlas , atlas[Frame] , atlas[Coframe] , atlas[Connection] .