SamplePublisher`GrassmannCalculus`
ContractInteriorOnBasis |
|
| | ||||
Details and Options
Examples
(1)
Basic Examples
(1)
In[1]:=
<<GrassmannCalculus`
In[2]:=
savePreferences=
;
AllPreferences |
In[3]:=
★ |
5
In[4]:=
e
1
e
4
e
5
e
1
e
5
ContractInteriorOnBasis |
Out[4]=
e
1
e
4
e
5
e
1
e
5
Out[4]=
-
e
4
For pure basis expressions is significantly faster.
ContractInteriorOnBasis
In[5]:=
test1a=
[(★⋀⋀⋀⋀⋀)⊖#]&/@
3//Timingtest1b=
[(★⋀⋀⋀⋀⋀)⊖#]&/@
3;//Timingtest1a===test1b
ContractInteriorOnBasis |
e
1
e
2
e
3
e
4
e
5
GrassmannBases |
ToMetricElements |
e
1
e
2
e
3
e
4
e
5
GrassmannBases |
Out[5]=
{0.062400,{⋀⋀⋀,-(⋀⋀⋀),⋀⋀⋀,-(⋀⋀⋀),⋀⋀⋀,★⋀⋀⋀,-(★⋀⋀⋀),★⋀⋀⋀,-(★⋀⋀⋀),★⋀⋀⋀,-(★⋀⋀⋀),★⋀⋀⋀,★⋀⋀⋀,-(★⋀⋀⋀),★⋀⋀⋀}}
e
2
e
3
e
4
e
5
e
1
e
3
e
4
e
5
e
1
e
2
e
4
e
5
e
1
e
2
e
3
e
5
e
1
e
2
e
3
e
4
e
3
e
4
e
5
e
2
e
4
e
5
e
2
e
3
e
5
e
2
e
3
e
4
e
1
e
4
e
5
e
1
e
3
e
5
e
1
e
3
e
4
e
1
e
2
e
5
e
1
e
2
e
4
e
1
e
2
e
3
Out[5]=
{24.039754,Null}
Out[5]=
True
In[6]:=
test1a=
[(★⋀⋀⋀⋀)⊖#]&/@
3//Timingtest1b=
[(★⋀⋀⋀⋀)⊖#]&/@
3;//Timingtest1a===test1b
ContractInteriorOnBasis |
e
1
e
2
e
4
e
5
GrassmannBases |
ToMetricElements |
e
1
e
2
e
4
e
5
GrassmannBases |
Out[6]=
{0.046800,{⋀⋀,-(⋀⋀),0,⋀⋀,-(⋀⋀),★⋀⋀,0,-(★⋀⋀),★⋀⋀,0,★⋀⋀,-(★⋀⋀),0,0,★⋀⋀}}
e
2
e
4
e
5
e
1
e
4
e
5
e
1
e
2
e
5
e
1
e
2
e
4
e
4
e
5
e
2
e
5
e
2
e
4
e
1
e
5
e
1
e
4
e
1
e
2
Out[6]=
{10.748469,Null}
Out[6]=
True
Expressions not on a pure basis form will have to be simplified before using .
ContractInteriorOnBasis
In[7]:=
((a)⋀⋀)⊖(⋀(b))+(⋀⋀(Sin[a])⋀⋀)⊖((Cos[b]+d)⋀⋀)%//
//
//
//.ep_Wedge
[ep]//
//
//Timing
e
1
e
3
e
4
e
3
e
4
e
1
e
2
e
3
e
4
e
5
e
1
e
3
e
2
e
5
ExpandExteriorProducts |
ExpandInteriorProducts |
AggregateScalars |
OrderExterior |
AggregateScalars |
ContractInteriorOnBasis |
Out[7]=
(a)⋀⋀⊖⋀(b)+⋀⋀(Sin[a])⋀⋀⊖(Cos[b]+d)⋀⋀
e
1
e
3
e
4
e
3
e
4
e
1
e
2
e
3
e
4
e
5
e
1
e
3
e
2
e
5
Out[7]=
{0.031200,ab-dSin[a]⋀+Cos[b]Sin[a]⋀}
e
1
e
1
e
4
e
3
e
4
Customized evaluation can be much more efficient than using or .
ToMetricElements
★
In[8]:=
((a)⋀⋀)⊖(⋀(b))+(⋀⋀(Sin[a])⋀⋀)⊖((Cos[b]+d)⋀⋀)%//
//Timing
e
1
e
3
e
4
e
3
e
4
e
1
e
2
e
3
e
4
e
5
e
1
e
3
e
2
e
5
ToMetricElements |
Out[8]=
(a)⋀⋀⊖⋀(b)+⋀⋀(Sin[a])⋀⋀⊖(Cos[b]+d)⋀⋀
e
1
e
3
e
4
e
3
e
4
e
1
e
2
e
3
e
4
e
5
e
1
e
3
e
2
e
5
Out[8]=
{2.667617,ab-dSin[a]⋀+Cos[b]Sin[a]⋀}
e
1
e
1
e
4
e
3
e
4
In[9]:=
((a)⋀⋀)⊖(⋀(b))+(⋀⋀(Sin[a])⋀⋀)⊖((Cos[b]+d)⋀⋀)%//
//
//Timing
e
1
e
3
e
4
e
3
e
4
e
1
e
2
e
3
e
4
e
5
e
1
e
3
e
2
e
5
★ |
ContractInteriorOnBasis |
Out[9]=
(a)⋀⋀⊖⋀(b)+⋀⋀(Sin[a])⋀⋀⊖(Cos[b]+d)⋀⋀
e
1
e
3
e
4
e
3
e
4
e
1
e
2
e
3
e
4
e
5
e
1
e
3
e
2
e
5
Out[9]=
{0.327602,ab-dSin[a]⋀+Cos[b]Sin[a]⋀}
e
1
e
1
e
4
e
3
e
4
In[10]:=
Clear[test1a,test1b]
In[11]:=
RestorePreferences |
|
""
