atlas 2 for Maple

Atlas Documentation

Declaration operators

Calculation operators

Standard DG operators

Utility operators

General Tutorials

Atlas Wizard Tutorials

Licenses & Pricing

atlas[iota] - interior product operator 

Calling Sequence: 

    iota[V1, V2, ..., Vn](expr)
    iota(V1, V2, ..., Vn, expr)
    
atlas[iota](V1, V2, ..., Vn, expr) 

Parameters: 

       expr - any expression (on which interior product operator is defined).
       V1, V2, ..., Vn - vector fields.
 

Description: 

  • The iota - procedure allows one to calculate the interior product of given expression and vector fields. The main syntax is iota[X](alpha) i.e. iota[X](alpha) where X is a vector and alpha is a p-form.
 

  • Let X be a vector and omega be n-form in some k-dimensional manifold then under definition:  [iota[X](omega)][i[1], i[2] .. i[`+`(n, `-`(1))]] = Sum(`*`(X[j], `*`(omega[j, i[1], i[2] .. i[`+`(n, `-`(1))]])), j = 1 .. k)
 

  • Multiple iota operator defined as follows:  iota[X[1], X[2] .. X[j]](omega) = iota[X[1]](iota[X[2]](() .. iota[X[j]](omega)))
 

  • It is well known that iota operator is anti-differentiation for p-forms. Thus if omega[1] is p-form then:  `and`(`and`(iota[X](`and`(omega[1], omega[2])) = iota[X](omega[1]), `+`(omega[2], `*`(`^`(-1, p), `*`(omega[1])))), iota[X](omega[2]))
 

Examples: 

> restart:
with(atlas):
 

Declare constants:  

> Constants(alpha);
 

{`+`(`-`(I)), I, Pi, _Z, Catalan, alpha}(2.1)
 

Declare functions:  

> Functions(F=F(x,y));
 

{F}(2.2)
 

Declare p-forms:  

> Forms(e[i]=1,omega=2,omega[1]=p,omega[2]=q);
 

{omega, e[i], omega[1], omega[2]}(2.3)
 

Declare vectors:  

> Vectors(X,Y,Z);
 

{X, Y, Z}(2.4)
 

Using iota- procedure: 

Just definition for "long" iota operator:
'iota[X,Y,Z](omega[1])'=iota[X,Y,Z](omega[1]);
'iota(X,Y,Z,omega[1])'=iota(X,Y,Z,omega[1]);
'iota[X](Y,Z,omega[1])'=iota[X](Y,Z,omega[1]);
 

 

 

iota[X, Y, Z](omega[1]) = iota[X](iota[Y](iota[Z](omega[1])))
iota(X, Y, Z, omega[1]) = iota[X](iota[Y](iota[Z](omega[1])))
iota[X](Y, Z, omega[1]) = iota[X](iota[Y](iota[Z](omega[1])))(2.5)
 

As omega[1] is p-form and omega[2] is q-form then under main rule for interior product we have:'iota[X](omega[1]&^omega[2])'=simplify(iota[X](omega[1]&^omega[2])); 

iota[X](`&^`(omega[1], omega[2])) = `+`(`*`(`^`(-1, `*`(`+`(`-`(1), p), `*`(q))), `*`(`&^`(omega[2], iota[X](omega[1])))), `*`(`^`(-1, p), `*`(`&^`(omega[1], iota[X](omega[2])))))
iota[X](`&^`(omega[1], omega[2])) = `+`(`*`(`^`(-1, `*`(`+`(`-`(1), p), `*`(q))), `*`(`&^`(omega[2], iota[X](omega[1])))), `*`(`^`(-1, p), `*`(`&^`(omega[1], iota[X](omega[2])))))
(2.6)
 

It is obvious that `and`(`and`(`*`(`^`(-1, `*`(`+`(`-`(1), p), `*`(q))), `*`(omega[2])), iota[X](omega[1]) = iota[X](omega[1])), omega[2]) (see atlas[`&^`]). 

Interior product on any 0-form equals zero:
'iota[X]'(h)=iota[X](h);
 

iota[X](h) = 0(2.7)
 

Interior product is linear with respect to any argument:
'iota[alpha*X+F*Y+x*Z]'(e[j])=iota[alpha*X+F*Y+x*Z](e[j]);
 

iota[`+`(`*`(alpha, `*`(X)), `*`(F, `*`(Y)), `*`(x, `*`(Z)))](e[j]) = `+`(`*`(alpha, `*`(iota[X](e[j]))), `*`(F, `*`(iota[Y](e[j]))), `*`(x, `*`(iota[Z](e[j]))))(2.8)
 

And
'iota[X]'(F*e[j]+alpha*e[k]+x*e[l])=iota[X](F*e[j]+alpha*e[k]+x*e[l]);
 

iota[X](`+`(`*`(F, `*`(e[j])), `*`(alpha, `*`(e[k])), `*`(x, `*`(e[l])))) = `+`(`*`(F, `*`(iota[X](e[j]))), `*`(alpha, `*`(iota[X](e[k]))), `*`(x, `*`(iota[X](e[l]))))(2.9)
 

Iota operator reduces covariance:
iota[X](e[j]);
kind(%);
 

 

iota[X](e[j])
[0, 0](2.10)
 

Calculate on 2-form:
iota[X](omega);
kind(%);
 

 

iota[X](omega)
[0, 1](2.11)
 

Calculate on p-form:
iota[X](omega[1]);
kind(%);
 

 

iota[X](omega[1])
[0, `+`(`-`(1), p)](2.12)
 

Calculate triple iota on p-form:
iota[X,Y,Z](omega[1]);
kind(%);
 

 

iota[X](iota[Y](iota[Z](omega[1])))
[0, `+`(`-`(3), p)](2.13)
 

Verify the main rule for interior product:
'iota[X](e[i]&^e[j])'=iota[X](e[i]&^e[j]); 

iota[X](`&^`(e[i], e[j])) = `+`(`*`(iota[X](e[i]), `*`(e[j])), `-`(`*`(iota[X](e[j]), `*`(e[i]))))(2.14)
 

But for tensor product we have:
'iota[X]'(e[j]&.e[i])=iota[X](e[j]&.e[i]); 

iota[X](`&.`(e[j], e[i])) = `*`(iota[X](e[j]), `*`(e[i]))(2.15)
 

And then:
'iota[Y,X]'(e[i]&.e[j])=iota[Y,X](e[i]&.e[j]); 

iota[Y, X](`&.`(e[i], e[j])) = `*`(iota[X](e[i]), `*`(iota[Y](e[j])))(2.16)
 

>
 

See Also:  

atlas, atlas[Constants], atlas[Functions], atlas[Forms], atlas[`&$`], atlas[`&^`].