Data types in the atlas package

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). To declare a variable as a constant, vector, tensor or p-form use Constants, Vectors, Tensors, Forms, respectively. To find out information about indexing facilities of the package see Indexing.
The Atlas package uses its own data types, called "Constant", scal, "Vector", tensor, form, func, domain, mapping, coframe, frame to represent corresponding objects. Use TypeQ to check the corresponding types.

Examples:

Kind[t]t -any expression containing tensors, vectors, p-forms etc.
Constants[c1,c2,...,ci,...,cn]c1, c2, ..., ci, ..., cn - constants identifiers.
Vectors[v1,v2,...,vi,...,vn]vi - vector identivier.
Forms[f1n,f2k,...,fip]fip - rules where fi - form identifier and p is a variable or an integer - the form's degree.
Functions[f1f1[x1,x2,...,xn],f2f2[y1,y2,...,ym],...,
fkfk[z1,z2,...,zj]]
fk=fk[z1, z2, ..., zj] - rules where fk-function identifier and zj - variables.

Necessary functions.

In[163]:=
Click for copyable input
Declare some constants:
In[164]:=
Click for copyable input
Out[164]=
Verify that C is a constant using Kind (see Kind) and TypeQ procedures:
In[165]:=
Click for copyable input
Out[165]=
In[166]:=
Click for copyable input
Out[166]=
Declare some vectors:
In[167]:=
Click for copyable input
Out[167]=
Verify that i is vector using Kind and TypeQ procedures:
In[168]:=
Click for copyable input
Out[168]=
In[169]:=
Click for copyable input
Out[169]=
Declare some forms:
In[170]:=
Click for copyable input
Out[170]=
Verify that is p-form using Kind and TypeQ procedures:
In[171]:=
Click for copyable input
Out[171]=
In[172]:=
Click for copyable input
Out[172]=
Obviously:
In[173]:=
Click for copyable input
Out[173]=
But:
In[174]:=
Click for copyable input
Out[174]=
In[175]:=
Click for copyable input
Out[175]=
Out[176]=
In[177]:=
Click for copyable input
Out[177]=
In[178]:=
Click for copyable input
Out[178]=
In[179]:=
Click for copyable input
Out[179]=
In[180]:=
Click for copyable input
Out[180]=
In[181]:=
Click for copyable input
Out[181]=
Domain[manifold]manifold - string - a manifold name or a name of a manifold domain.
Coframe[idj,{j,1,n}]id - identifier for indexed variable - the coframe 1-forms n - dimension of working manifold (a variable or integer) idiexpri - rules where idi is indexed variable - coframe 1-form and expri is decomposition of the 1-form on exact 1-forms.
Mapping[f,m,n]f - variable - the mapping identifier i.e. f : mn m - variable - first domain identifier n - variable - second domain identifier
Who[]returns information about all declarations made.
Who[l]l -an identifier, list or set of identifies.

Necessary functions.

Declare domain M:
In[182]:=
Click for copyable input
Out[182]=
In[183]:=
Click for copyable input
Out[183]=
In[184]:=
Click for copyable input
Out[184]=
Declare coframe on M:
In[186]:=
Click for copyable input
Out[186]=
Declare frame on M:
In[187]:=
Click for copyable input
Out[187]=
In[188]:=
Click for copyable input
Out[188]=
Declare domain N:
In[189]:=
Click for copyable input
Out[189]=
In[190]:=
Click for copyable input
Out[190]=
Declare coframe on N:
In[192]:=
Click for copyable input
Out[192]=
In[193]:=
Click for copyable input
Out[193]=
ek are not coframe 1-forms on N:
In[194]:=
Click for copyable input
Out[194]=
i are not frame vectors on N:
In[195]:=
Click for copyable input
Out[195]=
Declare mapping F:
In[197]:=
Click for copyable input
Out[197]//TableForm=
In[198]:=
Click for copyable input
Out[198]=
Let's see "who is who"
In[199]:=
Click for copyable input
Out[199]//TableForm=