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[dual] - dual operator

Calling Sequence:

     dual(expr)

Parameters:

      expr - any tensor expression.

Description:

  • The dual  procedure calculates the dual operator on an expression (just rise and lower indexes in local coordinates). The operator has the following properties.
  • The dual operator is linear.
  • For any vector field X in local coordinates we have:dual(X)[j] = Sum(X^i*g[ij],i = 1 .. n) .
  • For any 1-form omegain local coordinates we have:dual(omega)^i = Sum(omega[j]*g^ji,j = 1 .. n) .
  • For any tensor fields Omegaand Tthe following rule for dual operator takes place: dual(`&.`(Omega,T)) = `&.`(dual(Omega),dual(T)).

Examples:
restart:
with(atlas):

Declare constants:
Constants(Lambda);

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

Declare functions:
Functions(f=f(x,y),h=h(z));

{h, f}

Declare p-forms:
Forms(e[k]=1,xi=1);

{xi, e[k]}

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

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

Declare coframe:
Coframe(e[1]=d(x),e[2]=d(y));

[e[1] = d(x), e[2] = d(y)]

Declare frame:
Frame(E[k]);

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

Declare metric:
Metric(g=4*(d(x)&.d(x)+d(y)&.d(y))/(1+Lambda*(x^2+y^2))^2);

g = 4*(`&.`(e[1],e[1])+`&.`(e[2],e[2]))/(1+Lambda*(x^2+y^2))^2

Using dual  - procedure:

For frame vectors:
'dual(E[j])'=dual(E[j]);

dual(E[j]) = 4*delta[1,j]/(1+Lambda*(x^2+y^2))^2*e[1]+4*delta[2,j]/(1+Lambda*(x^2+y^2))^2*e[2]

For coframe 1-forms:
'dual(e[j])'=dual(e[j]);

dual(e[j]) = 1/4*delta[1,j]*(1+Lambda*x^2+Lambda*y^2)^2*E[1]+1/4*delta[2,j]*(1+Lambda*x^2+Lambda*y^2)^2*E[2]

For exact 1-form:
'dual(d(f))'=dual(d(f));

dual(d(f)) = 1/4*Diff(f,x)*(1+Lambda*x^2+Lambda*y^2)^2*E[1]+1/4*Diff(f,y)*(1+Lambda*x^2+Lambda*y^2)^2*E[2]

With ToBasis procedure:
dual(X)=dual(ToBasis(X));

dual(X) = 4*iota[X](e[1])/(1+Lambda*(x^2+y^2))^2*e[1]+4*iota[X](e[2])/(1+Lambda*(x^2+y^2))^2*e[2]

For 1-form:
dual(xi)=dual(ToBasis(xi));

dual(xi) = 1/4*iota[E[1]](xi)*(1+Lambda*x^2+Lambda*y^2)^2*E[1]+1/4*iota[E[2]](xi)*(1+Lambda*x^2+Lambda*y^2)^2*E[2]

For [1,1] tensor:
'dual(&.(E[i],e[j]))'=dual(&.(E[i],e[j]));

dual(`&.`(E[i],e[j])) = delta[1,i]*delta[1,j]*`&.`(e[1],E[1])+delta[1,i]*delta[2,j]*`&.`(e[1],E[2])+delta[2,i]*delta[1,j]*`&.`(e[2],E[1])+delta[2,i]*delta[2,j]*`&.`(e[2],E[2])
dual(`&.`(E[i],e[j])) = delta[1,i]*delta[1,j]*`&.`(e[1],E[1])+delta[1,i]*delta[2,j]*`&.`(e[1],E[2])+delta[2,i]*delta[1,j]*`&.`(e[2],E[1])+delta[2,i]*delta[2,j]*`&.`(e[2],E[2])

For metric tensor:
'dual(g)'=simplify(dual(g));

dual(g) = 1/4*(1+Lambda*x^2+Lambda*y^2)^2*(`&.`(E[1],E[1])+`&.`(E[2],E[2]))

See Also:

atlas , atlas[d] , atlas[cov] , atlas[`&.`] , atlas[`&^`] , atlas[iota] .