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[`&.`] - tensor product operator 

Calling Sequence: 

    `&.`(T1, T2, ..., Tn)
    T1 &. T2
 

Parameters: 

       T1, T2, ..., Tn - tensors. 

Description: 

  • The &. - procedure allows one to calculate the tensor product of given tensors. The main syntax is as follows: Omega &. T i.e. `&.`(Omega, T) where Omega and T are tensors. To calculate tensor product for tensors Omega[1], Omega[2] .. Omega[k] use the following `&.`(Omega[1],Omega[2], ...Omega[k]) i.e. `⊗`(Omega[1], Omega[2], () .. Omega[k])
 

  • Tensor product is linear operation with respect to its arguments. Thus if alpha, beta are 0-forms then: `*`(Omega[1], `*`(`⊗`(`+`(`*`(alpha, `*`(Omega[2])), `*`(beta, `*`(Omega[3])))))) = `+`(`*`(alpha, `*`(Omega[1], `*`(`⊗`(Omega[2])))), `*`(beta, `*`(`⊗`(Omega[1], Omega[3]))))
 

Examples: 

> restart:
with(atlas):
 

Declare Vectors  

> Vectors(X,Y,Z);
 

{X, Y, Z}(2.1)
 

Declare tensors:  

> Tensors(T=[a,b],Omega=[0,1],Omega[1]=[p,n],Omega[2]=[q,n],Omega[3]=[l,m]);
 

{T, Omega, Omega[1], Omega[2], Omega[3]}(2.2)
 

Using &.- procedure: 

Tensor product is linear operation with respect to its arguments
'`&.`(Omega[1],alpha*Omega[2]+beta*Omega[3])' = `&.`(Omega[1],alpha*Omega[2]+beta*Omega[3]); 

`&.`(Omega[1], `+`(`*`(alpha, `*`(Omega[2])), `*`(beta, `*`(Omega[3])))) = `+`(`*`(alpha, `*`(`&.`(Omega[1], Omega[2]))), `*`(beta, `*`(`&.`(Omega[1], Omega[3]))))(2.3)
 

Some more examples:
`&.`(Omega,T,Omega[3],Omega[2],Omega[1]);
 

`&.`(Omega, T, Omega[3], Omega[2], Omega[1])(2.4)
 

And with Lie derivative (Omega is 1-form see Tensors defenition above):
'L[X]'(Omega&.T)=L[X](Omega&.T); 

L[X](`&.`(Omega, T)) = `+`(`&.`(iota[X](d(Omega)), T), `&.`(d(iota[X](Omega)), T), `&.`(Omega, L[X](T)))(2.5)
 

And again:
'L[X]'(Omega[1]&.Omega[2])=L[X](Omega[1]&.Omega[2]); 

L[X](`&.`(Omega[1], Omega[2])) = `+`(`&.`(L[X](Omega[1]), Omega[2]), `&.`(Omega[1], L[X](Omega[2])))(2.6)
 

And finally
'Omega[3]&.(L[Z](Omega)&.T)'=Omega[3]&.(L[Z](Omega)&^T); 

`&.`(Omega[3], `&.`(L[Z](Omega), T)) = `+`(`*`(`^`(-1, b), `*`(`&.`(Omega[3], `&^`(T, iota[Z](d(Omega)))))), `*`(`^`(-1, b), `*`(`&.`(Omega[3], `&^`(T, d(iota[Z](Omega)))))))
`&.`(Omega[3], `&.`(L[Z](Omega), T)) = `+`(`*`(`^`(-1, b), `*`(`&.`(Omega[3], `&^`(T, iota[Z](d(Omega)))))), `*`(`^`(-1, b), `*`(`&.`(Omega[3], `&^`(T, d(iota[Z](Omega)))))))
(2.7)
 

>
 

See Also:  

atlas, atlas[L], atlas[Tensors], atlas[`&^`], atlas[Forms].