atlas[Vectors] - declaration of vectors 

Calling Sequence: 

    Vectors(V1, V2, ..., Vi, ..., Vn) 

Parameters: 

     Vi - vector identivier. 

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 Vectors procedure allows one to declare vectors. One can declare indexed vectors e.g. E[j] is treated as a set of vectors E[1], E[2], () .. E[j], () .. () .
 

Examples: 

> restart:
with(atlas):
 

Declare f, h and z as functions:  

> Vectors(E[j],X,Y,Z,U[i]);
 

{X, Y, Z, E[j], U[i]}(2.1)
 

Verify that E[1] is vector using kind (see atlas[kind]) and type  procedures:  

> kind(E[1]);
 

[1, 0](2.2)
 

> type(E[1],vect);
 

true(2.3)
 

Construct new [2,0] tensors T[i,j] using tensor product operator (see atlas[`&.`]): 

> T[i,j]:=E[i]&.E[j]+E[j]&.U[i];
'kind(T[i,j])'=kind(T[i,j]);
 

 

`+`(`&.`(E[i], E[j]), `&.`(E[j], U[i]))
kind(T[i, j]) = [2, 0](2.4)
 

Calculation of Lie derivative (see atlas[L]): 

> 'L[X]'(f*Z+Y)=L[X](f*Z+Y);
 

L[X](`+`(`*`(f, `*`(Z)), Y)) = `+`(`*`(iota[X](d(f)), `*`(Z)), `*`(f, `*`(L[X](Z))), L[X](Y))(2.5)
 

Some more examples (see atlas[iota] and atlas[`&^`]): 

> 'iota[E[j]](d(x)&^d(y))'=iota[E[j]](d(x)&^d(y));
 

iota[E[j]](`&^`(d(x), d(y))) = `+`(`*`(iota[E[j]](d(x)), `*`(d(y))), `-`(`*`(iota[E[j]](d(y)), `*`(d(x)))))(2.6)
 

> 'iota[U[i],Z](d(x)&^d(y))'=iota[U[i],Z](d(x)&^d(y));
 

iota[U[i], Z](`&^`(d(x), d(y))) = `+`(`*`(iota[Z](d(x)), `*`(iota[U[i]](d(y)))), `-`(`*`(iota[Z](d(y)), `*`(iota[U[i]](d(x))))))(2.7)
 

Let's see "who is who" 

> Who([X,Y,Z,x,E[k],U[1]]);
 

X: vector
Y: vector
Z: vector
x: 0 - form
E[k]: vector
U[1]: vector
 

> Who();
 

piecewise(Domains, {}, Mappings, {}, Tensors, {X, Y, Z, E[j], U[i]}, Forms, {}, Constants, {`+`(`-`(I)), I, Pi, _Z, Catalan}, Functions, {})(2.8)
 

>
 

See Also:  

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