Ask Your Question

# Bel decomposition Hi All,

Is there any way to obtain the Bel decomposition (https://en.wikipedia.org/wiki/Bel_dec...) into the electrogravitic, magnetogravitic and topogravitic tensors given the metric?

Thanks,

Daniel

edit retag close merge delete

## 1 Answer

Sort by » oldest newest most voted

The Bel decomposition does not appear in the sagemanifolds reference document, so I assume it is a default command. Nonetheless, it is fairly easy to implement. Assuming that one already has a metric g and a 1-form e0 (perhaps from the 0th element of the coordinate coframe)

theVolumeForm = g.volume_form()
theStarForTwoForms = theVolumeForm.up(g,0).up(g,1)

theRiemann = g.riemann()
theRiemannAllDown = theRiemann.down(g,0)
theStarRiemann = theStarForTwoForms['^{ef}_{ab}']*theRiemannAllDown['_{efcd}']
theStarRiemannStar = theStarForTwoForms['^{ef}_{cd}']*theStarRiemann['_{abef}']

theElectrograviticTensor = (theRiemannAllDown['_{abcd}']*(e0.up(g))['^d'])['_{abc}']*(e0.up(g))['^b']
theMagnetograviticTensor = (theStarRiemann['_{abcd}']*(e0.up(g))['^d'])['_{abc}']*(e0.up(g))['^b']
theTopograviticTensor = (theStarRiemannStar['_{abcd}']*(e0.up(g))['^d'])['_{abc}']*(e0.up(g))['^b']


I have probably mangled some signs in the choice of order of raising and contracting indices on the volume form.

(Some tricks to be aware of: When using up and down, since sagemanifolds stores all contravariant indices first, for a fully contravariant tensor, raising index 1 and then lowering index 1 gives an error since the raised index is automatically moved to index 0. The * operation on tensor only works on a pair of tensors. The latex notation for indices (e.g. ['^{ab}']) can be used to take products and contract tensors, but the latex indexing is lost once the * operation is complete. Thus for a product of three indices, one needs to open a parenthesis, apply the indices to get the correct contraction and product for the first two tensors, close the parenthesis, apply a new set of indices, and then multiply by the third tensor.)

more

## Comments

Thank you very much!

I've put BEFORE you code the following (Schwarzschild metric):

M = Manifold(4, 'M')
print M

X.<t,r,th,ph> = M.chart(r't r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):\varphi')
X

var('m', domain='real')
assume(m>=0)

g = M.lorentzian_metric('g')
g[0,0] = (2*m-r)/r
g[1,1] = r/(r-2*m)
g[2,2] = r^2
g[3,3] = (r*sin(th))^2
g.display()


I do not understand what is e0 in you code, so I do not know how to proceed.

Thanks,

Daniel

I think what you want is

e0 = M.one_form()
e0 = sqrt(1-2*m/r)


This gives a unit timelike one-form. Of course, relativity being relativity, there are infinitely many other choices of unit timelike vector. This becomes a more serious issue when working in Kerr.

## Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

## Stats

Asked: 2019-05-18 15:14:37 +0200

Seen: 149 times

Last updated: May 21 '19