| 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
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
as a coframe which is 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.
or and so on. To declare coframes such as 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]}](prod/atlas/help/images/Coframe7.gif)
Declare vectors: Vectors(X,Y,Z,E[j]); ![{X, Y, Z, E[j]}](prod/atlas/help/images/Coframe8.gif)
Declare functions: Functions(f=f(x,y,z),F=F(z[i])); 
Declare another coframe with 1-forms: (dim = n): Coframe(e[i],i=1..n); ![{e[i]}[i = 1 .. n]](prod/atlas/help/images/Coframe11.gif)
Function F is declared as follows ; now : 'd(F)'=d(F); ![d(F) = Sum(Diff(F,z[l[1]])*d(z[l[1]]),l[1] = 1 .. n)](prod/atlas/help/images/Coframe14.gif)
For function f we have: 'd(f)'=d(f); 
Declare frame vectors (see atlas[Frame] ): Frame(E[i]); ![{E[i]}[i = 1 .. n]](prod/atlas/help/images/Coframe16.gif)
"To basis" decomposition: Y=ToBasis(Y); *E[l[1]],l[1] = 1 .. n)](prod/atlas/help/images/Coframe17.gif)
Interior product of vector Y and 1-form e[j]: iota[Y](e[j])=iota[ToBasis(Y)](e[j]);  = Sum(iota[Y](e[l[1]])*delta[j,l[1]],l[1] = 1 .. n)](prod/atlas/help/images/Coframe18.gif)
"To basis" decomposition: phi[j]=ToBasis(phi[j]); ![phi[j] = Sum(iota[E[l[1]]](phi[j])*e[l[1]],l[1] = 1 .. n)](prod/atlas/help/images/Coframe19.gif)
Example 2 restart: with(atlas): Declare forms: Forms(e[j]=1,phi[i]=1); ![{e[j], phi[i]}](prod/atlas/help/images/Coframe20.gif)
Declare vectors: Vectors(X,Y,Z,E[j]); ![{X, Y, Z, E[j]}](prod/atlas/help/images/Coframe21.gif)
Declare functions: Functions(F=F(z[i]),z[1]=z[1](x,y)); ![{F, z[1]}](prod/atlas/help/images/Coframe22.gif)
Declare coframe with 1-forms: (dim = 3): Coframe(e[j],j=1..3); ![[e[1], e[2], e[3]]](prod/atlas/help/images/Coframe24.gif)
Functions F, are declared as follows and ; now : 'd(F)'=d(F); ![d(F) = Diff(F,z[i])*d(z[i])](prod/atlas/help/images/Coframe29.gif)
Declare frame vectors (see atlas[Frame] ): Frame(E[i]); ![{E[i]}[i = 1 .. 3]](prod/atlas/help/images/Coframe30.gif)
"To basis" decomposition: Z=ToBasis(Z); *E[1]+iota[Z](e[2])*E[2]+iota[Z](e[3])*E[3]](prod/atlas/help/images/Coframe31.gif)
Interior product of vector Z and 1-form e[j]: iota[Z](e[j])=iota[ToBasis(Z)](e[j]);  = iota[Z](e[1])*delta[1,j]+iota[Z](e[2])*delta[2,j]+iota[Z](e[3])*delta[3,j]](prod/atlas/help/images/Coframe32.gif)
"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]](prod/atlas/help/images/Coframe33.gif)
Example 3 restart: with(atlas): Declare forms: Forms(e[j]=1); ![{e[j]}](prod/atlas/help/images/Coframe34.gif)
Declare vectors: Vectors(X,Y,Z,E[j],Phi[i]); ![{X, Y, Z, E[j], Phi[i]}](prod/atlas/help/images/Coframe35.gif)
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]}](prod/atlas/help/images/Coframe36.gif)
Declare constant : Constants(lambda); 
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)]](prod/atlas/help/images/Coframe39.gif)
Declare frame Frame(E[i]); ![[E[1] = Diff(``,x), E[2] = Diff(``,y), E[3] = Diff(``,z)]](prod/atlas/help/images/Coframe40.gif)
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](prod/atlas/help/images/Coframe41.gif)
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])](prod/atlas/help/images/Coframe42.gif)
Example 4 restart: with(atlas): Declare functions: Functions(f=f(r,theta,phi)); 
Declare constant Constants(r[g]); ![{Catalan, I, _Z, Pi, -I, r[g]}](prod/atlas/help/images/Coframe45.gif)
Declare vectors: Vectors(L1,N,M,K,E[j]); ![{N, M, E[j], L1, K}](prod/atlas/help/images/Coframe46.gif)
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]}](prod/atlas/help/images/Coframe47.gif)
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]);

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)]](prod/atlas/help/images/Coframe50.gif)
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...](prod/atlas/help/images/Coframe52.gif)
Declare metric: Metric( g=u[1]&.u[2]+u[2]&.u[1]-u[3]&.u[4]-u[4]&.u[3] ); 
Simple calculations: 'd(phi)&^d(theta)'=d(phi)&^d(theta); 
'd(r)'=d(r); ![d(r) = 1/2*(-n*r+n*r[g]+2*l*r)/r](prod/atlas/help/images/Coframe55.gif)
'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)](prod/atlas/help/images/Coframe56.gif)
'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](prod/atlas/help/images/Coframe57.gif)
Example 5 restart: with(atlas): Declare forms: Forms(e[j]=1); ![{e[j]}](prod/atlas/help/images/Coframe58.gif)
Declare vectors: Vectors(E[j]); ![{E[j]}](prod/atlas/help/images/Coframe59.gif)
Declare functions: Functions(f=f(x,y[k],z)); 
Declare coframe: Coframe(e[k]=d(y[k]),k=1..n); ![{e[k] = d(y[k])}[k = 1 .. n]](prod/atlas/help/images/Coframe61.gif)
Declare frame: Frame(E[i]); ![{E[i]}[i = 1 .. n]](prod/atlas/help/images/Coframe62.gif)
Simple calculations: 'd(e[i])'=d(e[i]); ![d(e[i]) = 0](prod/atlas/help/images/Coframe63.gif)
'd(y[i]*y[j])'=d(y[i]*y[j]); ![d(y[i]*y[j]) = e[i]*y[j]+y[i]*e[j]](prod/atlas/help/images/Coframe64.gif)
'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)](prod/atlas/help/images/Coframe65.gif)
Example 6 restart: with(atlas): Declare constant : Constants(lambda); 
Declare forms: Forms(e[j]=1); ![{e[j]}](prod/atlas/help/images/Coframe68.gif)
Declare vectors: Vectors(E[j]); ![{E[j]}](prod/atlas/help/images/Coframe69.gif)
Declare functions: Functions(h=h(x[k])); 
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]](prod/atlas/help/images/Coframe71.gif)
Declare frame: Frame(E[i]); ![{E[i]}[i = 1 .. n]](prod/atlas/help/images/Coframe72.gif)
Simple calculations: 'd(e[j])'=normal(d(e[j])); ![d(e[j]) = 2*lambda*Sum(x[i]*`&^`(e[j],e[i]),i = 1 .. n)](prod/atlas/help/images/Coframe73.gif)
'd(x[k])'=d(x[k]); ![d(x[k]) = e[k]+e[k]*lambda*Sum(x[i]^2,i = 1 .. n)](prod/atlas/help/images/Coframe74.gif)
'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)](prod/atlas/help/images/Coframe75.gif)
'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)](prod/atlas/help/images/Coframe76.gif)
See Also: atlas , atlas[Frame] , atlas[ToBasis] , atlas[Metric] . |