atlas[dual] - dual operator
dual(expr)
Parameters:
expr - any tensor expression.
- The dual - procedure allows one to calculate 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:
. - For any 1-form
in local coordinates we have:
. - For any tensor fields
and
the following rule for dual operator takes place:
.
| > | restart: with(atlas): |
Declare constants:
| > | Constants(Lambda); |
| (2.1) |
Declare functions:
| > | Functions(f=f(x,y),h=h(z)); |
| (2.2) |
Declare p-forms:
| > | Forms(e[k]=1,xi=1); |
| (2.3) |
Declare vectors:
| > | Vectors(E[j],X,Y,Z); |
| (2.4) |
Declare coframe:
Coframe(e[1]=d(x),e[2]=d(y));
| (2.5) |
Declare frame:
Frame(E[k]);
| (2.6) |
Declare metric:Metric(g=4*(d(x)&.d(x)+d(y)&.d(y))/(1+Lambda*(x^2+y^2))^2);
![]() | (2.7) |
Using dual - procedure:
For frame vectors:
'dual(E[j])'=dual(E[j]);
![]() | (2.8) |
For coframe 1-forms:
'dual(e[j])'=dual(e[j]);
| (2.9) |
For exact 1-form:
'dual(d(f))'=dual(d(f));
| (2.10) |
With ToBasis procedure:
dual(X)=dual(ToBasis(X));
![]() | (2.11) |
For 1-form:
dual(xi)=dual(ToBasis(xi));
![]() | (2.12) |
For [1,1] tensor:
'dual(&.(E[i],e[j]))'=dual(&.(E[i],e[j]));
| (2.13) |
For metric tensor:
'dual(g)'=simplify(dual(g));
| (2.14) |
| > |

![g = `+`(`/`(`*`(4, `*`(`+`(`&.`(e[1], e[1]), `&.`(e[2], e[2])))), `*`(`^`(`+`(1, `*`(Lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)))))), 2))))](Maple/atlas/help/images/dual_13.gif)
![dual(E[j]) = `+`(`/`(`*`(4, `*`(delta[1, j], `*`(e[1]))), `*`(`^`(`+`(1, `*`(Lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)))))), 2))), `/`(`*`(4, `*`(delta[2, j], `*`(e[2]))), `*`(`^`(`+`(1, `*`(Lambd...](Maple/atlas/help/images/dual_14.gif)
, `*`(e[1]))), `*`(`^`(`+`(1, `*`(Lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)))))), 2))), `/`(`*`(4, `*`(iota[X](e[2]), `*`(e[2]))), `*`(`^`(`+`(1, `*`(Lamb...](Maple/atlas/help/images/dual_18.gif)
![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, `*`(Lamb...](Maple/atlas/help/images/dual_19.gif)