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™

Data types in the atlas package

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). To declare a variable as a constant, vector, tensor or p-form use atlas[Constants] , atlas[Vectors] , atlas[Tensors] , atlas[Forms] , respectively. To find out information about indexing facilities of the package see atlas[indexing] .
  • The atlas  package uses its own data types, called  const, scalar, vect, tensor, form, func, domain, mapping, coframe, frame  to represent corresponding objects. Use type  to check the corresponding types.

Examples:
restart:
with(atlas):

Declare some constants:
Constants(lambda,alpha[1],C);

{Catalan, I, _Z, Pi, lambda, C, -I, alpha[1]}

Verify that C is a constant using kind (see atlas[kind] ) and type procedures:
kind(C);

[0, 0]

type(C,const);

true

Declare some vectors:
Vectors(E[k],U[i],X,Y,z);

{z, X, Y, E[k], U[i]}

Verify that E[i] is vector using kind and type procedures:
kind(E[i]);

[1, 0]

type(E[i],vect);

true

Declare some forms:
Forms(e[j]=1,u[k]=1,xi=2,theta=p);

{e[j], u[k], theta, xi}

Verify that theta  is p-form using kind and type procedures:
kind(theta);

[0, p]

type(theta,form);

true

Obviously:
type(theta,tensor);

true

But:
type(theta,vect);

false

e[i]&^E[j];
kind(%);

`&^`(e[i],E[j])

[1, 1]

type(e[i]&^E[j],tensor);

true

Functions(h[i]=h[i](z[k]));

{h[i]}

type(h[0],func);

true

type(h[k],func);

true

type(h[0,k],func);

false

Declare domain M:
Domain(M);

M

type(M,domain);

true

type(N,domain);

false

Declare coframe on M:
Coframe(e[i]=d(x[i]),i=1..2);

[e[1] = d(x[1]), e[2] = d(x[2])]

type(e[k],coframe);

true

Declare frame on M:
Frame(E[j]);

[E[1] = Diff(``,x[1]), E[2] = Diff(``,x[2])]

type(E[1],frame);

true

Declare domain N:
Domain(N);

N

type(N,domain);

true

Declare coframe on N:
Coframe(u[i]=d(y[i]),i=1..2);

[u[1] = d(y[1]), u[2] = d(y[2])]

type(u[k],coframe);

true

Frame(U[i]);

[U[1] = Diff(``,y[1]), U[2] = Diff(``,y[2])]

e[k] are not coframe 1-forms on N:
type(e[k],coframe);

false

E[i] are not frame vectors on N:
type(E[i],frame);

false

Declare mapping F:
Mapping(F,M,N);

F

M.`--->`.N

Who(F);


F: mapping


TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...
TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...
TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...
TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...
TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...
TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...
TABLE([coframe = {u[1] = Diff(y[1],x[2])*e[2]+Diff(y[1],x[1])*e[1], u[2] = Diff(y[2],x[2])*e[2]+Diff(y[2],x[1])*e[1]}, natural = [Diff(``,x[2]) = Diff(y[1],x[2])*Diff(``,y[1])+Diff(y[2],x[2])*Diff(``,y...

type(F,mapping);

true

Let's see "who is who"
Who();

PIECEWISE([{N, M}, Domains],[{F}, Mappings],[{z, e[j], u[k], theta, X, Y, xi, E[k], U[i]}, Tensors],[{e[j], u[k], theta, xi}, Forms],[{Catalan, I, _Z, Pi, lambda, C, -I, alpha[1]}, Constants],[{h[i]}, ...

See Also:

atlas , atlas[Functions] , atlas[Forms] , atlas[Vectors] , atlas[Tensors] , atlas[Who] .