GrassmannCalculus`
ComposePlaneElement |
| ComposePlaneElement[c] ComposePlaneElement[c,s] s | |
Details and Options
Examples
(1)
Basic Examples
(1)
In[1]:=
<<GrassmannCalculus`
Set the book 3-dimensional Point space.
In[2]:=
★A;
;
★ |
3
Compare a point, line and plane element in 3-space.
In[3]:=
MapThreadRow[{#1,#2[c]}]&,{"Point: ","Line: ","Plane: "},
,
,
//Column
ComposePoint |
ComposeLineElement |
ComposePlaneElement |
Out[3]=
Point: ★+ c 1 e 1 c 2 e 2 c 3 e 3 |
Line: (★+ c 1 e 1 c 2 e 2 c 3 e 3 c 4 e 1 c 5 e 2 c 6 e 3 |
Plane: (★+ c 1 e 1 c 2 e 2 c 3 e 3 c 4 e 1 c 5 e 2 c 6 e 3 c 7 e 1 c 8 e 2 c 9 e 3 |
You can use the full form of , or its alias .
ComposePlaneElement[c]
★Π
c
In[4]:=
★A;
;
[c]
//Column
★ |
3
ComposePlaneElement |
,
★Π |
c
Out[4]=
(★+ c 1 e 1 c 2 e 2 c 3 e 3 c 4 e 1 c 5 e 2 c 6 e 3 c 7 e 1 c 8 e 2 c 9 e 3 |
(★+ c 1 e 1 c 2 e 2 c 3 e 3 c 4 e 1 c 5 e 2 c 6 e 3 c 7 e 1 c 8 e 2 c 9 e 3 |
The current space needs to be a point space. If it is not, no composition will occur.
In[5]:=
;
,
;
//Column
★ℬ |
3
★Π |
a
★ |
3
★Π |
a
Out[5]=
ComposePlaneElement[a] |
(★+ a 1 e 1 a 2 e 2 a 3 e 3 a 4 e 1 a 5 e 2 a 6 e 3 a 7 e 1 a 8 e 2 a 9 e 3 |
You can compose plane elements in any dimension.
In[6]:=
Table
;
,{i,1,4}//Column
★ |
i
★Π |
c
Out[6]=
(★+c e 1 c 2 e 1 c 3 e 1 |
(★+ c 1 e 1 c 2 e 2 c 3 e 1 c 4 e 2 c 5 e 1 c 6 e 2 |
(★+ c 1 e 1 c 2 e 2 c 3 e 3 c 4 e 1 c 5 e 2 c 6 e 3 c 7 e 1 c 8 e 2 c 9 e 3 |
(★+ c 1 e 1 c 2 e 2 c 3 e 3 c 4 e 4 c 5 e 1 c 6 e 2 c 7 e 3 c 8 e 4 c 9 e 1 c 10 e 2 c 11 e 3 c 12 e 4 |
You can compose lists of plane elements.
In[7]:=
★ |
2
★Π |
{a,b,c}
Out[7]=
(★+ a 1 e 1 a 2 e 2 a 3 e 1 a 4 e 2 a 5 e 1 a 6 e 2 |
(★+ b 1 e 1 b 2 e 2 b 3 e 1 b 4 e 2 b 5 e 1 b 6 e 2 |
(★+ c 1 e 1 c 2 e 2 c 3 e 1 c 4 e 2 c 5 e 1 c 6 e 2 |
You can make the starting index of the coefficients whatever you want.
In[8]:=
★Π |
{a,b,c},0
Out[8]=
(★+ a 0 e 1 a 1 e 2 a 2 e 1 a 3 e 2 a 4 e 1 a 5 e 2 |
(★+ b 0 e 1 b 1 e 2 b 2 e 1 b 3 e 2 b 4 e 1 b 5 e 2 |
(★+ c 0 e 1 c 1 e 2 c 2 e 1 c 3 e 2 c 4 e 1 c 5 e 2 |
In[9]:=
★Π |
{a,b,c},{-2,0,α}
Out[9]=
(★+ a -2 e 1 a -1 e 2 a 0 e 1 a 1 e 2 a 2 e 1 a 3 e 2 |
(★+ b 0 e 1 b 1 e 2 b 2 e 1 b 3 e 2 b 4 e 1 b 5 e 2 |
(★+ c α e 1 c 1+α e 2 c 2+α e 1 c 3+α e 2 c 4+α e 1 c 5+α e 2 |
Note that all the scalar symbols generated as coefficients of the basis elements have been automatically declared as scalar symbols.
In[10]:=
ScalarSymbols
Out[10]=
{a,b,c,d,e,f,g,h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
a
-2
a
-1
a
0
a
1
a
2
a
3
a
4
a
5
a
6
b
0
b
1
b
2
b
3
b
4
b
5
b
6
c
0
c
1
c
2
c
3
c
4
c
5
c
6
c
α
c
1+α
c
2+α
c
3+α
c
4+α
c
5+α
You can also generate templates for plane elements using the placeholder symbol. This allows you to tab through the composed result and enter your own values.
In[11]:=
★ |
3
★Π |
|
Out[11]=
(★+++)⋀(++)⋀(++)
e
1
e
2
e
3
e
1
e
2
e
3
e
1
e
2
e
3
This could be copied and filled in to create a specific plane.
In[12]:=
(★+1+2+3)⋀(4+5+6)⋀(a+b+c)
e
1
e
2
e
3
e
1
e
2
e
3
e
1
e
2
e
3
Out[12]=
(★++2+3)⋀(4+5+6)⋀(a+b+c)
e
1
e
2
e
3
e
1
e
2
e
3
e
1
e
2
e
3
Subscripted scalars are convenient for generic derivations. For specific cases it will often be easier simply to dot the Basis with a List of coefficients.
In[13]:=
({1,1,2,3}.Basis)⋀({0,4,5,6}.Basis)⋀({0,a,b,c}.Basis)
Out[13]=
(★++2+3)⋀(4+5+6)⋀(a+b+c)
e
1
e
2
e
3
e
1
e
2
e
3
e
1
e
2
e
3
It is also possible to enter a plane element as, say, two points and a vector using the point and vector composers within an exterior product.
In[14]:=
★ |
|
★ |
|
★ |
|
Out[14]=
(★+++)⋀(★+++)⋀(++)
e
1
e
2
e
3
e
1
e
2
e
3
e
1
e
2
e
3
|
""

