| 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 declares p-forms. One can declare indexed p-forms e.g. e[j] is treated as a set of p-forms
Examples: restart: with(atlas): Declare some forms: Forms(e[i]=1,phi=1,z=1,omega=2,alpha=q,beta=p); ![{z, phi, e[i], omega, alpha, beta}](prod/atlas/help/images/Forms2.gif)
Varify that e[1] is 1-form using kind procedure (see atlas[kind] ): kind(e[1]); ![[0, 1]](prod/atlas/help/images/Forms3.gif)
Using exterior product operator (see atlas[`&^`] ): 'omega&^beta'=omega&^beta; 
'beta&^alpha'=beta&^alpha; 
Some more examples: 'e[j]&^e[i]'=e[j]&^e[i]; ![`&^`(e[j],e[i]) = -`&^`(e[i],e[j])](prod/atlas/help/images/Forms6.gif)
'kind(d(beta))'=kind(d(beta)); ![kind(d(beta)) = [0, 1+p]](prod/atlas/help/images/Forms7.gif)
And more: p - was not declared as a constant! 'd(omega&^beta)'=d(omega&^beta); 
'd(beta&^omega)'=d(beta&^omega); 
Declare p as a constant: Constants(p); 
Thus: 'd(omega&^beta)'=d(omega&^beta); 
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],[{z, phi, e[i], omega, alpha, beta}, Tensors],[{z, phi, e[i], omega, alpha, beta}, Forms],[{_Z, Pi, I, p, -I, Catalan}, Constants],[{}, Functions])](prod/atlas/help/images/Forms13.gif)
See Also: atlas , atlas[Constants] , atlas[Functions] , atlas[Vectors] , atlas[Tensors] , atlas[d] , atlas[`&^`] , atlas[Who] . |