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[Coframe] - declaration of coframe 1-forms

Calling Sequence:

     Coframe(Id[j], j=1..n)
     Coframe(Id[j]=expr[j], j=1..n)
     Coframe(Id[1]=expr[1], Id[2]=expr[2], ...Id[n]=expr[n])

Parameters:

      Id - identifier for indexed variable - the coframe 1-forms
      n - dimension of working manifold  (a variable or integer)
 
    Id[i] = expr[i] - equation where Id[i] is indexed variable - coframe 1-form and expr[i] is decomposition of the 1-form on exact 1-forms.  

Description:

The Coframe  procedure declares coframe 1-forms. If third type of calling sequence is used then local coordinates, coframe 1-forms and dimension of working manifold have been defined automatically.

The Coframe procedure can be used in tree ways:

  • Coframe(Id[j], j=1..n) - sets Id[j] as a coframe 1-forms e.g. Coframe(e[j],j=1..n) - sets 1-forms e[1], e[2], `` .. e[n]  as a coframe, here n is dimension of working manifold i.e. dim=n  (see atlas[dim] ); n can be variable or integer.
  • Coframe(Id[j]=f[j], j=1..n) - sets Id[j] as a coframe 1-forms so that Id[j]=f[j] where f[j] is some 1-form or liner expression on 1-forms (see examples below), here n is dimension of working manifold i.e. dim=n ; n can be variable or integer.
  • Coframe(Id[1]=expr1, Id[2]=expr2, ...Id[n]=exprn) -sets Id[1], Id[2], ..Id[n] as coframe 1-forms e.g. Coframe(e[1]=d(x), e[2]=d(y)) sets 1-forms e[1], e[2]  as a coframe which is d(x), d(y)  where x, y are 0-forms.
  • Only indexed variable can be used as a coframe 1-form. The name of the indexed variable must be one and the same for all coframe 1-forms e.g. e[1], e[2], `` .. e[n]   or phi[1], phi[2], `` .. phi[k]  and so on. To declare coframes such as l, n, `` .. m  use procedure alias  (see example 4 below).

Example 1
restart:
with(atlas):

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

{e[j], phi[i]}

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

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

Declare functions:
Functions(f=f(x,y,z),F=F(z[i]));

{f, F}

Declare another coframe with 1-forms: e[1], e[2], `` .. e[n]  (dim = n):
Coframe(e[i],i=1..n);

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

Function F is declared as follows F = F(z[k]) ; now k = 1, 2, `` .. n :
'd(F)'=d(F);

d(F) = Sum(Diff(F,z[l[1]])*d(z[l[1]]),l[1] = 1 .. n)

For function f we have:
'd(f)'=d(f);

d(f) = Diff(f,x)*d(x)+Diff(f,y)*d(y)+Diff(f,z)*d(z)

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

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

"To basis" decomposition:
Y=ToBasis(Y);

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

Interior product of vector Y and 1-form e[j]:
iota[Y](e[j])=iota[ToBasis(Y)](e[j]);

iota[Y](e[j]) = Sum(iota[Y](e[l[1]])*delta[j,l[1]],l[1] = 1 .. n)

"To basis" decomposition:
phi[j]=ToBasis(phi[j]);

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

Example 2
restart:
with(atlas):

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

{e[j], phi[i]}

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

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

Declare functions:
Functions(F=F(z[i]),z[1]=z[1](x,y));

{F, z[1]}

Declare coframe with 1-forms: e[1], e[2], e[3]  (dim = 3):
Coframe(e[j],j=1..3);

[e[1], e[2], e[3]]

Functions F, z[1]  are declared as follows F = F(z[k])  and z[1] = z[1](x,y) ; now k = 1, 2, 3 :
'd(F)'=d(F);

d(F) = Diff(F,z[i])*d(z[i])

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

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

"To basis" decomposition:
Z=ToBasis(Z);

Z = iota[Z](e[1])*E[1]+iota[Z](e[2])*E[2]+iota[Z](e[3])*E[3]

Interior product of vector Z and 1-form e[j]:
iota[Z](e[j])=iota[ToBasis(Z)](e[j]);

iota[Z](e[j]) = iota[Z](e[1])*delta[1,j]+iota[Z](e[2])*delta[2,j]+iota[Z](e[3])*delta[3,j]

"To basis" decomposition:
phi[j]=ToBasis(phi[j]);

phi[j] = iota[E[1]](phi[j])*e[1]+iota[E[2]](phi[j])*e[2]+iota[E[3]](phi[j])*e[3]

Example 3
restart:
with(atlas):

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

{e[j]}

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

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

Declare functions:
Functions(f=f(x,y,z),F=F(z[i]),z[1]=z[1](x,y),h=h(x[k]));

{h, f, F, z[1]}

Declare constant lambda :
Constants(lambda);

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

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 metric (see atlas[Metric] ):
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 calculation:
'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])

Example 4
restart:
with(atlas):

Declare functions:
Functions(f=f(r,theta,phi));

{f}

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

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

Declare vectors:
Vectors(L1,N,M,K,E[j]);

{N, M, E[j], L1, K}

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

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


Using alias for vectors and forms:

alias(L1=E[1],N=E[2],M=E[3],K=E[4],l=u[1],n=u[2],m=u[3],k=u[4]);

L1, N, M, K, 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[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...
[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=u[1]&.u[2]+u[2]&.u[1]-u[3]&.u[4]-u[4]&.u[3] );

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

Simple calculations:
'd(phi)&^d(theta)'=d(phi)&^d(theta);

`&^`(d(phi),d(theta)) = 1/r^2/sin(theta)*`&^`(m,k)*I

'd(r)'=d(r);

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

'd(f)'=d(f);

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

'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

Example 5
restart:
with(atlas):

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

{e[j]}

Declare vectors:
Vectors(E[j]);

{E[j]}

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

{f}

Declare coframe:
Coframe(e[k]=d(y[k]),k=1..n);

{e[k] = d(y[k])}[k = 1 .. n]

Declare frame:
Frame(E[i]);

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

Simple calculations:
'd(e[i])'=d(e[i]);

d(e[i]) = 0

'd(y[i]*y[j])'=d(y[i]*y[j]);

d(y[i]*y[j]) = e[i]*y[j]+y[i]*e[j]

'd(f)'=d(f);

d(f) = Diff(f,x)*d(x)+Sum(Diff(f,y[l[1]])*e[l[1]],l[1] = 1 .. n)+Diff(f,z)*d(z)

Example 6
restart:
with(atlas):

Declare constant lambda :
Constants(lambda);

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

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

{e[j]}

Declare vectors:
Vectors(E[j]);

{E[j]}

Declare functions:
Functions(h=h(x[k]));

{h}

Declare coframe:
Coframe(e[j]=d(x[j])/(1+lambda*Sum(x[i]^2,i=1..n)),j=1..n);

{e[j] = d(x[j])/(1+lambda*Sum(x[i]^2,i = 1 .. n))}[j = 1 .. n]

Declare frame:
Frame(E[i]);

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

Simple calculations:
'd(e[j])'=normal(d(e[j]));

d(e[j]) = 2*lambda*Sum(x[i]*`&^`(e[j],e[i]),i = 1 .. n)

'd(x[k])'=d(x[k]);

d(x[k]) = e[k]+e[k]*lambda*Sum(x[i]^2,i = 1 .. n)

'd(h)'=d(h);

d(h) = Sum(Diff(h,x[l[1]])*(e[l[1]]+e[l[1]]*lambda*Sum(x[i]^2,i = 1 .. n)),l[1] = 1 .. n)

'iota[E[j]](d(e[k]))'=normal(iota[E[j]](d(e[k])));

iota[E[j]](d(e[k])) = 2*lambda*(-delta[i,j]*e[k]+delta[j,k]*e[i])*Sum(x[i],i = 1 .. n)

See Also:

atlas , atlas[Frame] , atlas[ToBasis] , atlas[Metric] .