Ask Your Question
3

Bel decomposition

asked 2019-05-18 15:14:37 +0100

danielvolinski gravatar image

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 flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2019-05-21 20:56:03 +0100

my_screen_name gravatar image

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.)

edit flag offensive delete link 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

danielvolinski gravatar imagedanielvolinski ( 2019-05-22 20:44:30 +0100 )edit

I think what you want is

e0 = M.one_form()
e0[0] = 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.

my_screen_name gravatar imagemy_screen_name ( 2019-06-03 13:44:40 +0100 )edit

Thanks, I understand.

danielvolinski gravatar imagedanielvolinski ( 2019-06-06 02:35:00 +0100 )edit

Your Answer

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

Add Answer

Question Tools

1 follower

Stats

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

Seen: 762 times

Last updated: May 21 '19