atlas 2 for Maple

atlas package Overview

Declaration operators

Calculation operators

Standard DG operators

Utility operators

Features List & Examples

atlasWizard - Maplet™

Template Worksheets

Licenses & Pricing

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 allows one to declare coframe 1-forms. If the third type of calling sequence is used, then the local coordinates, coframe 1-forms and dimension of the 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.
 

Warning! Only indexed variables can be used as a coframe 1-forms. 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).  

Examples: 

Example 1 

> restart:
with(atlas):
 

Declare forms: 

> Forms(e[j]=1,phi[i]=1);
 

{e[j], phi[i]}(2.1.1)
 

Declare vectors: 

> Vectors(X,Y,Z,E[j]);
 

{X, Y, Z, E[j]}(2.1.2)
 

Declare functions: 

> Functions(f=f(x,y,z),F=F(z[i]));
 

{F, f}(2.1.3)
 

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](2.1.4)
 

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)(2.1.5)
 

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))))(2.1.6)
 

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

{E[i]}[i = 1 .. n](2.1.7)
 

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

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

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)(2.1.9)
 

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

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

Example 2 

> restart:
with(atlas):
 

Declare forms: 

> Forms(e[j]=1,phi[i]=1);
 

{e[j], phi[i]}(2.2.1)
 

Declare vectors: 

> Vectors(X,Y,Z,E[j]);
 

{X, Y, Z, E[j]}(2.2.2)
 

Declare functions: 

> Functions(F=F(z[i]),z[1]=z[1](x,y));
 

{F, z[1]}(2.2.3)
 

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]](2.2.4)
 

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])))(2.2.5)
 

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

{E[i]}[i = 1 .. 3](2.2.6)
 

"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])))(2.2.7)
 

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])))(2.2.8)
 

"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])))(2.2.9)
 

Example 3 

> restart:
with(atlas):
 

Declare forms: 

> Forms(e[j]=1);
 

{e[j]}(2.3.1)
 

Declare vectors: 

> Vectors(X,Y,Z,E[j],Phi[i]);
 

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

Declare functions: 

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

{F, f, h, z[1]}(2.3.3)
 

Declare constant lambda:
Constants(lambda); 

{`+`(`-`(I)), I, Pi, _Z, Catalan, lambda}(2.3.4)
 

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)](2.3.5)
 

Declare frame
Frame(E[i]); 

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

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))))(2.3.7)
 

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

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

>
 

Example 4 

> restart:
with(atlas):
 

Declare functions: 

> Functions(f=f(r,theta,phi));
 

{f}(2.4.1)
 

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

{`+`(`-`(I)), I, Pi, _Z, Catalan, r[g]}(2.4.2)
 

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

{K, L1, M, N, E[j]}(2.4.3)
 

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

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


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(2.4.5)
 

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), `-`(`/`(`*`(d(r)), `*`(`+`(1, `-`(`/`(`*`(r[g]), `*`(r)))))))), m = `+`(`*`(`/`(...
[l = `+`(`*`(`/`(1, 2), `*`(`+`(1, `-`(`/`(`*`(r[g]), `*`(r)))), `*`(d(t)))), `*`(`/`(1, 2), `*`(d(r)))), n = `+`(d(t), `-`(`/`(`*`(d(r)), `*`(`+`(1, `-`(`/`(`*`(r[g]), `*`(r)))))))), m = `+`(`*`(`/`(...
[l = `+`(`*`(`/`(1, 2), `*`(`+`(1, `-`(`/`(`*`(r[g]), `*`(r)))), `*`(d(t)))), `*`(`/`(1, 2), `*`(d(r)))), n = `+`(d(t), `-`(`/`(`*`(d(r)), `*`(`+`(1, `-`(`/`(`*`(r[g]), `*`(r)))))))), m = `+`(`*`(`/`(...
(2.4.6)
 

Declare frame:
Frame(E[i]); 

[L1 = `+`(Diff(``, r), `/`(`*`(r, `*`(Diff(``, t))), `*`(`+`(r, `-`(r[g]))))), N = `+`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(r), r[g]), `*`(Diff(``, r)))), `*`(r)), `*`(`/`(1, 2), `*`(Diff(``, t)))), M = `+`...
[L1 = `+`(Diff(``, r), `/`(`*`(r, `*`(Diff(``, t))), `*`(`+`(r, `-`(r[g]))))), N = `+`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(r), r[g]), `*`(Diff(``, r)))), `*`(r)), `*`(`/`(1, 2), `*`(Diff(``, t)))), M = `+`...
[L1 = `+`(Diff(``, r), `/`(`*`(r, `*`(Diff(``, t))), `*`(`+`(r, `-`(r[g]))))), N = `+`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(r), r[g]), `*`(Diff(``, r)))), `*`(r)), `*`(`/`(1, 2), `*`(Diff(``, t)))), M = `+`...
(2.4.7)
 

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)))(2.4.8)
 

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

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

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

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

> '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)), `*`(`+`...
d(f) = `+`(`/`(`*`(`/`(1, 2), `*`(Diff(f, r), `*`(`+`(`-`(`*`(n, `*`(r))), `*`(n, `*`(r[g])), `*`(2, `*`(l, `*`(r))))))), `*`(r)), `/`(`*`(`/`(1, 2), `*`(Diff(f, theta), `*`(`^`(2, `/`(1, 2)), `*`(`+`...
(2.4.11)
 

> '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))))(2.4.12)
 

Example 5 

> restart:
with(atlas):
 

Declare forms: 

> Forms(e[j]=1);
 

{e[j]}(2.5.1)
 

Declare vectors: 

> Vectors(E[j]);
 

{E[j]}(2.5.2)
 

Declare functions: 

> Functions(f=f(x,y[k],z));
 

{f}(2.5.3)
 

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

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

Declare frame:
Frame(E[i]); 

{E[i]}[i = 1 .. n](2.5.5)
 

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

d(e[i]) = 0(2.5.6)
 

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

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

> '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))))(2.5.8)
 

Example 6 

> restart:
with(atlas):
 

Declare constant lambda:
Constants(lambda); 

{`+`(`-`(I)), I, Pi, _Z, Catalan, lambda}(2.6.1)
 

Declare forms: 

> Forms(e[j]=1);
 

{e[j]}(2.6.2)
 

Declare vectors: 

> Vectors(E[j]);
 

{E[j]}(2.6.3)
 

Declare functions: 

> Functions(h=h(x[k]));
 

{h}(2.6.4)
 

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](2.6.5)
 

Declare frame:
Frame(E[i]); 

{E[i]}[i = 1 .. n](2.6.6)
 

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

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

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

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

> '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)(2.6.9)
 

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

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

>
 

See Also:  

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