Further Examples
Load the packages:
In[1]:=
Before defining a vbundle we need to define a manifold:
Define a 3d manifold M:
In[2]:=
Its tangent bundle has been defined:
In[3]:=
Global`TangentM
Dagger[TangentM]^=TangentM |
|
VBundleQ[TangentM]^=True |
|
BaseOfVBundle[TangentM]^=M |
|
MetricsOfVBundle[TangentM]^={} |
|
SubvbundlesOfVBundle[TangentM]^={} |
|
IndicesOfVBundle[TangentM]^={{a,b,c,d,e},{}} |
|
DimOfVBundle[TangentM]^=3 |
|
Info[TangentM]^={vbundle,} |
|
PrintAs[TangentM]^=TangentM |
|
MasterOf[TangentM]^=M |
|
A tangent bundle cannot be undefined, unless we undefine its base manifold:
In[4]:=
Now we can define inner vbundles (for example those used in gauge theories):
Define an inner vbundle over the same base manifold:
In[5]:=
In[6]:=
Global`Fiber
Dagger[Fiber]^=Fiber |
|
VBundleQ[Fiber]^=True |
|
BaseOfVBundle[Fiber]^=M |
|
MetricsOfVBundle[Fiber]^={} |
|
SubvbundlesOfVBundle[Fiber]^={} |
|
IndicesOfVBundle[Fiber]^={{A,B,C,D,F},{}} |
|
DimOfVBundle[Fiber]^=4 |
|
Info[Fiber]^={vbundle,} |
|
PrintAs[Fiber]^=Fiber |
|
HostsOf[Fiber]^={M} |
|
In[7]:=
Out[7]=
In[8]:=
Out[8]=
We can also define a complex vbundle. Its conjugate is automatically defined. Note that the latter has its own set of abstract indices:
In[9]:=
In[10]:=
Global`complex†
Dagger[complex†]^=complex |
|
VBundleQ[complex†]^=True |
|
BaseOfVBundle[complex†]^=M |
|
MetricsOfVBundle[complex†]^={} |
|
SubvbundlesOfVBundle[complex†]^={} |
|
IndicesOfVBundle[complex†]^={{a†,b†,c†,d†,e†},{}} |
|
DimOfVBundle[complex†]^=2 |
|
Info[complex†]^={conjugated vbundle,Assuming fixed anti-isomorphism between complex and complex†} |
|
PrintAs[complex†]^=complex† |
|
MasterOf[complex†]^=complex |
|
HostsOf[complex†]^={M} |
|
Tidy up:
In[11]:=
In[12]:=
In[13]:=