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[Forms] - declaration of p-forms 

Calling Sequence: 

    Forms(F1=n, F2=k, ..., Fi=p) 

Parameters: 

    Fi=p - equations where Fi - form identifier and p is a variable or an integer - the form's degree. 

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

Examples: 

> restart:
with(atlas):
 

Declare some forms:  

> Forms(e[i]=1,phi=1,z=1,omega=2,alpha=q,beta=p);
 

{phi, z, alpha, beta, omega, e[i]}(2.1)
 

Varify that e[1] is 1-form using kind procedure (see atlas[kind]):  

> kind(e[1]);
 

[0, 1](2.2)
 

Using exterior product operator (see atlas[`&^`]): 

> 'omega&^beta'=omega&^beta;
 

`&^`(omega, beta) = `*`(`^`(-1, `+`(`*`(2, `*`(p)))), `*`(`&^`(beta, omega)))(2.3)
 

> 'beta&^alpha'=beta&^alpha;
 

`&^`(beta, alpha) = `*`(`^`(-1, `*`(p, `*`(q))), `*`(`&^`(alpha, beta)))(2.4)
 

Some more examples: 

> 'e[j]&^e[i]'=e[j]&^e[i];
 

`&^`(e[j], e[i]) = `+`(`-`(`&^`(e[i], e[j])))(2.5)
 

> 'kind(d(beta))'=kind(d(beta));
 

kind(d(beta)) = [0, `+`(1, p)](2.6)
 

And more: 

p - was not declared as a constant!
'd(omega&^beta)'=d(omega&^beta); 

d(`&^`(omega, beta)) = `+`(`*`(2, `*`(`^`(-1, `+`(`*`(2, `*`(p)))), `*`(ln(`+`(`*`(2, `*`(p)))), `*`(`^`(-1, `+`(p, 2)), `*`(`&^`(beta, omega, d(p))))))), `*`(`^`(-1, `+`(`*`(2, `*`(p)))), `*`(`+`(`*`...
d(`&^`(omega, beta)) = `+`(`*`(2, `*`(`^`(-1, `+`(`*`(2, `*`(p)))), `*`(ln(`+`(`*`(2, `*`(p)))), `*`(`^`(-1, `+`(p, 2)), `*`(`&^`(beta, omega, d(p))))))), `*`(`^`(-1, `+`(`*`(2, `*`(p)))), `*`(`+`(`*`...
(2.7)
 

> 'd(beta&^omega)'=d(beta&^omega);
 

d(`&^`(beta, omega)) = `+`(`*`(`^`(-1, `+`(2, `*`(2, `*`(p)))), `*`(`&^`(omega, d(beta)))), `*`(`^`(-1, p), `*`(`&^`(beta, d(omega)))))(2.8)
 

Declare p as a constant:
Constants(p); 

{`+`(`-`(I)), I, Pi, _Z, p, Catalan}(2.9)
 

Thus:
'd(omega&^beta)'=d(omega&^beta); 

d(`&^`(omega, beta)) = `*`(`^`(-1, `+`(`*`(2, `*`(p)))), `*`(`+`(`*`(`^`(-1, `+`(2, `*`(2, `*`(p)))), `*`(`&^`(omega, d(beta)))), `*`(`^`(-1, p), `*`(`&^`(beta, d(omega)))))))(2.10)
 

Let's see "who is who" 

> Who([alpha,beta,omega,e[j],x,y,z,p]);
 

alpha: q - form
beta: p - form
omega: 2 - form
e[j]: 1 - form
x: 0 - form
y: 0 - form
z: 1 - form
p: constant
 

> Who();
 

piecewise(Domains, {}, Mappings, {}, Tensors, {phi, z, alpha, beta, omega, e[i]}, Forms, {phi, z, alpha, beta, omega, e[i]}, Constants, {`+`(`-`(I)), I, Pi, _Z, p, Catalan}, Functions, {})(2.11)
 

>
 

See Also:  

atlas, atlas[Constants], atlas[Functions], atlas[Vectors], atlas[Tensors], atlas[d], atlas[`&^`], atlas[Who].