| atlas[ToBasis] - To basis decomposition Calling Sequence: ToBasis(T) Parameters: T - variable or expression of tensor type Description: The ToBasis procedure decomposes a tensor into basis. No decomposition is available if coframe and frame have not been defined before. Examples: restart: with(atlas): Declare forms: Forms(e[j]=1,xi=1,phi=1); ![{xi, phi, e[j]}](prod/atlas/help/images/ToBasis1.gif)
Declare vectors: Vectors(X,Y,Z,E[j]); ![{E[j], X, Y, Z}](prod/atlas/help/images/ToBasis2.gif)
One can not make the decomposition before coframe declaration: ToBasis(X); 
Declare coframe: Coframe(e[j],j=1..n); ![{e[j]}[j = 1 .. n]](prod/atlas/help/images/ToBasis4.gif)
Declare frame: Frame(E[k]); ![{E[k]}[k = 1 .. n]](prod/atlas/help/images/ToBasis5.gif)
"To basis" decomposition X=ToBasis(X); *E[l[1]],l[1] = 1 .. n)](prod/atlas/help/images/ToBasis6.gif)
xi=ToBasis(xi); ![xi = Sum(iota[E[l[1]]](xi)*e[l[1]],l[1] = 1 .. n)](prod/atlas/help/images/ToBasis7.gif)
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/ToBasis8.gif)
Functions declaration : Functions(xi[i]=xi[i](x[k])); ![{xi[i]}](prod/atlas/help/images/ToBasis10.gif)
New cofame declaration: Coframe(e[j]=xi[j]*d(x[j]),j=1..3);
Warning, You have to restart the Coframe procedure and then Frame procedure!
Coframe(e[j]=xi[j]*d(x[j]),j=1..3); ![[e[1] = xi[1]*d(x[1]), e[2] = xi[2]*d(x[2]), e[3] = xi[3]*d(x[3])]](prod/atlas/help/images/ToBasis11.gif)
'd(xi[i])'=d(xi[i]); ![d(xi[i]) = Diff(xi[i],x[k])*(delta[1,k]/xi[1]*e[1]+delta[2,k]/xi[2]*e[2]+delta[3,k]/xi[3]*e[3])](prod/atlas/help/images/ToBasis12.gif)
'd(x[k])'=d(x[k]); ![d(x[k]) = delta[1,k]/xi[1]*e[1]+delta[2,k]/xi[2]*e[2]+delta[3,k]/xi[3]*e[3]](prod/atlas/help/images/ToBasis13.gif)
'd(e[3])'=d(e[3]); ![d(e[3]) = -Diff(xi[3],x[k])/xi[3]*`&^`(e[3],d(x[k]))](prod/atlas/help/images/ToBasis14.gif)
Declare frame: Frame(E[k]); ![[E[1] = 1/xi[1]*Diff(``,x[1]), E[2] = 1/xi[2]*Diff(``,x[2]), E[3] = 1/xi[3]*Diff(``,x[3])]](prod/atlas/help/images/ToBasis15.gif)
"To basis" decomposition X=ToBasis(X); *E[1]+iota[X](e[2])*E[2]+iota[X](e[3])*E[3]](prod/atlas/help/images/ToBasis16.gif)
Note that are functions but is 1-form: xi=ToBasis(xi); ![xi = iota[E[1]](xi)*e[1]+iota[E[2]](xi)*e[2]+iota[E[3]](xi)*e[3]](prod/atlas/help/images/ToBasis19.gif)
X&.xi=ToBasis(X&.xi); *iota[E[1]](xi)*`&.`(E[1],e[1])+iota[X](e[1])*iota[E[2]](xi)*`&.`(E[1],e[2])+iota[X](e[1])*iota[E[3]](xi)*`&.`(E[1],e[3])+iota[X](e[2])*iota[E[1]](xi)*`&.`(E[2],e[1])+iota[X](...](prod/atlas/help/images/ToBasis22.gif)
xi&.xi=ToBasis(xi&.xi); ![`&.`(xi,xi) = iota[E[1]](xi)^2*`&.`(e[1],e[1])+iota[E[1]](xi)*iota[E[2]](xi)*`&.`(e[1],e[2])+iota[E[1]](xi)*iota[E[3]](xi)*`&.`(e[1],e[3])+iota[E[1]](xi)*iota[E[2]](xi)*`&.`(e[2],e[1])+iota[E[2]](xi)^2...](prod/atlas/help/images/ToBasis25.gif)
&@(x)=ToBasis(&@(x)); *E[1]+iota[Diff(``,x)](e[2])*E[2]+iota[Diff(``,x)](e[3])*E[3]](prod/atlas/help/images/ToBasis26.gif)
&@(x[1])=ToBasis(&@(x[1])); ![Diff(``,x[1]) = E[1]*xi[1]](prod/atlas/help/images/ToBasis27.gif)
See Also: atlas , atlas[Coframe] , atlas[Frame] . |