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[Tensors] - declaration of tensors

Calling Sequence:

     Tensors(T1=[n1,p1], T2=[n2,p2], ..., Ti=[ni,pi])

Parameters:

      Ti=[ni,pi]  - equations where Ti - tensor identifier and [ni,pi] is a list of variables or integers
 - the kind of the tensor.

Description:

  • In the atlas  package any identifier is treated as 0-form  i.e. as non-constant scalar  (if it not declared as constant, p-form, tensor etc. (see atlas[types] )).
  • The Tensors procedure declares tensors of any kind but it normally used to declare tensors which are not vectors or forms. For vectors and forms it is more convenient to use atlas[Vectors]  and atlas[Forms]  procedures.
  • The atlas  package deals with tensors themselves not their components. Thus indexed quantities such as e[j]  or E[k]  are treated as sets of tensors e[1], e[2], `` .. e[j], `` .. ``  or    E[1], E[2], `` .. E[k], `` .. `` . To get components of a tensor use atlas[iota]  procedures.

Examples:
restart:
with(atlas):

Declare tensors T, Omega vectors X, Z[k] and 1-forms e[j]:
Tensors(T=[n,k],X=[1,0],e[j]=[0,1],Z[l]=[1,0],Omega=[1,3]);

{T, Omega, e[j], Z[l], X}

Verify that e[i] is 1-form using kind (see atlas[kind] ) and type procedures:
kind(e[i]);

[0, 1]

type(e[i],form);

true

Verify that X is a vector using kind and type procedures:
kind(X);

[1, 0]

type(X,vect);

true

Calculation of interior product (see atlas[iota] ):
iota[X](e[j]);

iota[X](e[j])

What kind is the result?
kind(iota[X](e[j]));

[0, 0]

Construct [1,1] tensor using tensor product operator (see atlas[`&.`] ):
Z[i]&.e[k];
kind(%);

`&.`(Z[i],e[k])

[1, 1]

And another one
add(alpha[i]*Z[i]&.e[i],i=1..3);
kind(%);

alpha[1]*`&.`(Z[1],e[1])+alpha[2]*`&.`(Z[2],e[2])+alpha[3]*`&.`(Z[3],e[3])

[1, 1]

And for tensor T:
iota[X](T);

iota[X](T)

What kind?
kind(iota[X](T));

[n, -1+k]

Calculate Lie derivative of e[j] along vector field X (see atlas[L] ):
'L[X]'(e[j])=L[X](e[j]);

L[X](e[j]) = iota[X](d(e[j]))+d(iota[X](e[j]))

Construct new tensor from Omega and T (see atlas[`&.`] ):
Omega &. T;

`&.`(Omega,T)

What kind?
kind(Omega &. T);

[n+1, k+3]

Let's see "who is who"
Who([T,X,Omega,e[k],Omega &. T]);


T: [n, k] - tensor



X: vector



Omega: [1, 3] - tensor



e[k]: 1 - form



`&.`(Omega,T): [n+1, k+3] - tensor


Who();

PIECEWISE([{}, Domains],[{}, Mappings],[{T, Omega, e[j], Z[l], X}, Tensors],[{e[j]}, Forms],[{_Z, I, -I, Catalan, Pi}, Constants],[{}, Functions])

See Also:

atlas , atlas[Constants] , atlas[Functions] , atlas[Vectors] , atlas[Forms] , atlas[iota] , atlas[`&.`] , atlas[Who] .