| Dimension in the atlas package Description: - In the atlas package the working dimension can be integer or symbolic. The corresponding variable is automatically assigned by atlas[Coframe] procedure.
- If the dimension is not an integer then all calculations are performed in terms of Sum operator (see examples below).
Examples: restart: with(atlas): Declare some functions: Functions(f=f(y[k]),h=h(x[j])); 
Declare some vectors: Vectors(E[k],X,Y,Z); ![{E[k], X, Y, Z}](prod/atlas/help/images/dim2.gif)
Declare some forms: Forms(e[j]=1,xi=1,theta=p); ![{theta, e[j], xi}](prod/atlas/help/images/dim3.gif)
Declare coframe 1-forms: Coframe(e[k],k=1..n); ![{e[k]}[k = 1 .. n]](prod/atlas/help/images/dim4.gif)
Declare frame vectors: Frame(E[j]); ![{E[j]}[j = 1 .. n]](prod/atlas/help/images/dim5.gif)
Declare connection: Connection(omega); ![omega[i,j]](prod/atlas/help/images/dim6.gif)
Using d-procedure: For functions: 'd(f*h)'=d(f*h); ![d(f*h) = Sum(Diff(f,y[l[2]])*d(y[l[2]]),l[2] = 1 .. n)*h+f*Sum(Diff(h,x[l[2]])*d(x[l[2]]),l[2] = 1 .. n)](prod/atlas/help/images/dim7.gif)
Obviously that: 'd(h*xi)'=d(h*xi); ![d(h*xi) = Sum(Diff(h,x[l[2]])*`&^`(d(x[l[2]]),xi),l[2] = 1 .. n)+h*d(xi)](prod/atlas/help/images/dim8.gif)
Using ToBasis procedure: X&.xi=ToBasis(X&.xi); ![`&.`(X,xi) = Sum(iota[E[l[2]]](xi)*Sum(iota[X](e[l[1]])*`&.`(E[l[1]],e[l[2]]),l[1] = 1 .. n),l[2] = 1 .. n)](prod/atlas/help/images/dim9.gif)
Using div-procedure: div(X)=div(ToBasis(X)); *Sum(iota[E[l[2]]](omega[l[2],l[1]]),l[2] = 1 .. n),l[1] = 1 .. n)+Sum(iota[E[l[1]]](d(iota[X](e[l[1]]))),l[1] = 1 .. n)](prod/atlas/help/images/dim10.gif)
Using Lie derivative: 'L[E[i]](e[k])'=L[E[i]](e[k]); ![L[E[i]](e[k]) = iota[E[i]](d(e[k]))](prod/atlas/help/images/dim11.gif)
'L[E[i]](E[j])'=L[E[i]](E[j]); ![L[E[i]](E[j]) = Sum((iota[E[i]](omega[l[1],j])-iota[E[j]](omega[l[1],i]))*E[l[1]],l[1] = 1 .. n)](prod/atlas/help/images/dim12.gif)
Declare constant : Constants(lambda); 
Let us declare another coframe 1-forms: Coframe(e[j]=d(x[j])/(1+lambda*Sum(x[i]^2,i=1..N)),j=1..N); Warning, You have to restart the Coframe procedure and then Frame procedure!
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/dim15.gif)
And another frame vectors: Frame(E[k]); ![{E[k]}[k = 1 .. N]](prod/atlas/help/images/dim16.gif)
'd(e[k])'=normal(d(e[k])); ![d(e[k]) = -2*lambda*Sum(x[i]*`&^`(e[i],e[k]),i = 1 .. N)](prod/atlas/help/images/dim17.gif)
'd(x[j])'=d(x[j]); ![d(x[j]) = e[j]+e[j]*lambda*Sum(x[i]^2,i = 1 .. N)](prod/atlas/help/images/dim18.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/dim19.gif)
Functions(F=F(f,h)); 
'd(F)'=d(F); ![d(F) = Diff(F,f)*Sum(Diff(f,y[l[1]])*d(y[l[1]]),l[1] = 1 .. N)+Diff(F,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/dim21.gif)
See Also: atlas , atlas[Coframe] , atlas[Frame] , atlas[Connection] . |