Further Examples

Load the packages:

In[1]:=

Needs["xAct`xTensor`"]

--------------------------------------------------------------------------------

Package xAct`xCore`  version 0.5.0,  {2008, 5, 16}

CopyRight (C) 2007-2008, Jose M. Martin-Garcia, under the General Public License.

--------------------------------------------------------------------------------

Package ExpressionManipulation`

CopyRight (C) 1999-2008, David J. M. Park and Ted Ersek

--------------------------------------------------------------------------------

Package xAct`xPerm`  version 1.0.1,  {2008, 5, 16}

CopyRight (C) 2003-2008, Jose M. Martin-Garcia, under the General Public License.

Connecting to external linux executable...

Connection established.

--------------------------------------------------------------------------------

Package xAct`xTensor`  version 0.9.5,  {2008, 5, 16}

CopyRight (C) 2002-2008, Jose M. Martin-Garcia, under the General Public License.

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

Before defining a vbundle we need to define a manifold:

Define a 3d manifold M:

In[2]:=

DefManifold[M, 3, {a, b, c, d, e}]

** DefManifold: Defining manifold M.

** DefVBundle: Defining vbundle TangentM.

Its tangent bundle has been defined:

In[3]:=

? TangentM

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]:=

Catch @ UndefVBundle[TangentM]

General :: noundef : Symbol TangentM cannot be undefined because its master is still alive .

Now we can define inner vbundles (for example those used in gauge theories):

Define an inner vbundle over the same base manifold:

In[5]:=

DefVBundle[Fiber, M, 4, {A, B, C, D, F}]

** DefVBundle: Defining vbundle Fiber.

ValidateSymbol :: capital : System name C is overloaded as an abstract index.

ValidateSymbol :: capital : System name D is overloaded as an abstract index.

In[6]:=

? Fiber

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]:=

$Manifolds

Out[7]=

{M}

In[8]:=

$VBundles

Out[8]=

{TangentM, Fiber}

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]:=

DefVBundle[complex, M, 2, {, , , , ℯ}, Dagger→Complex]

** DefVBundle: Defining vbundle complex.

** DefVBundle: Defining conjugated vbundle complex†. Assuming fixed anti-isomorphism between complex and complex†

In[10]:=

? complex†

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]:=

UndefVBundle[Fiber]

** UndefVBundle: Undefined vbundle Fiber

In[12]:=

UndefVBundle[complex]

** UndefVBundle: Undefined conjugated vbundle complex†

** UndefVBundle: Undefined vbundle complex

In[13]:=

UndefManifold[M]

** UndefVBundle: Undefined vbundle TangentM

** UndefManifold: Undefined manifold M


Created by Mathematica  (May 16, 2008) Valid XHTML 1.1!