SamplePublisher`GrassmannCalculus`DifferentialGeometry`
ExpandContractors |
|
| | ||||
Examples
(1)
Basic Examples
(1)
In[1]:=
<<GrassmannCalculus`
In[2]:=
SetCoordinateVectorSpace |
★★S |
In[3]:=
〈
adx+bdy,ce
x
e
z
〉
%//ExpandContractors |
Out[3]=
〈adx+bdy,c+d〉
e
x
e
z
Out[3]=
ac〈dx,〉+ad〈dx,〉+bc〈dy,〉+bd〈dy,〉
e
x
e
z
e
x
e
z
In[4]:=
〈
adw+bdx⋀dz,ce
x
e
w
e
z
〉
%//ExpandContractors |
Out[4]=
〈adw+bdx⋀dz,c+⋀(d)〉
e
x
e
w
e
z
Out[4]=
ac〈dw,〉+ad〈dw,⋀〉+bc〈dx⋀dz,〉+bd〈dx⋀dz,⋀〉
e
x
e
w
e
z
e
x
e
w
e
z
Contraction of a k-vector on a scalar will always be zero.
In[5]:=
〈
a,e
x
〉
%//ExpandContractors |
Out[5]=
〈a,〉
e
x
Out[5]=
0
Contraction of two scalars is their product.
In[6]:=
〈
2,3〉
%//ExpandContractors |
Out[6]=
〈2,3〉
Out[6]=
6
The following composes an inner Contractor of a 3-form and 3-factor and then expands it, and evaluates.
In[7]:=
form3=
["Form"];
[3,a];vector3=
["Vector"];
[3,b];
//Timingstep1//
SwitchBasis |
ComposeMElement |
SwitchBasis |
ComposeMElement |
〈
form3,vector3〉
step1=%//ExpandContractors |
EvaluateContractorsMF |
Out[7]=
〈dw⋀dx⋀dy+dw⋀dx⋀dz+dw⋀dy⋀dz+dx⋀dy⋀dz,⋀⋀+⋀⋀+⋀⋀+⋀⋀〉
a
1
a
2
a
3
a
4
b
1
e
w
e
x
e
y
b
2
e
w
e
x
e
z
b
3
e
w
e
y
e
z
b
4
e
x
e
y
e
z
Out[7]=
{0.187201,〈dw⋀dx⋀dy,⋀⋀〉+〈dw⋀dx⋀dz,⋀⋀〉+〈dw⋀dy⋀dz,⋀⋀〉+〈dx⋀dy⋀dz,⋀⋀〉+〈dw⋀dx⋀dy,⋀⋀〉+〈dw⋀dx⋀dz,⋀⋀〉+〈dw⋀dy⋀dz,⋀⋀〉+〈dx⋀dy⋀dz,⋀⋀〉+〈dw⋀dx⋀dy,⋀⋀〉+〈dw⋀dx⋀dz,⋀⋀〉+〈dw⋀dy⋀dz,⋀⋀〉+〈dx⋀dy⋀dz,⋀⋀〉+〈dw⋀dx⋀dy,⋀⋀〉+〈dw⋀dx⋀dz,⋀⋀〉+〈dw⋀dy⋀dz,⋀⋀〉+〈dx⋀dy⋀dz,⋀⋀〉}
e
w
e
x
e
y
a
1
b
1
e
w
e
x
e
y
a
2
b
1
e
w
e
x
e
y
a
3
b
1
e
w
e
x
e
y
a
4
b
1
e
w
e
x
e
z
a
1
b
2
e
w
e
x
e
z
a
2
b
2
e
w
e
x
e
z
a
3
b
2
e
w
e
x
e
z
a
4
b
2
e
w
e
y
e
z
a
1
b
3
e
w
e
y
e
z
a
2
b
3
e
w
e
y
e
z
a
3
b
3
e
w
e
y
e
z
a
4
b
3
e
x
e
y
e
z
a
1
b
4
e
x
e
y
e
z
a
2
b
4
e
x
e
y
e
z
a
3
b
4
e
x
e
y
e
z
a
4
b
4
Out[7]=
a
1
b
1
a
2
b
2
a
3
b
3
a
4
b
4
""
