- #1

strangerep

Science Advisor

- 3,498

- 1,786

- TL;DR Summary
- I need to perform some highly tedious calculations in Finsler-like geometry, at least an order of magnitude more complicated than Riemannian geometry. I'm proficient (A-level) in both Finslerian and Riemannian geometries (and in C++), but I'm B-level in Maple. I'm hoping for suggestions as to the best way to approach Finslerian computations in Maple.

My context here is Finsler geometry with Cartan connection. I use ##x^\mu## for the usual spacetime position coordinates, and ##u^\mu \equiv \dot x^\mu## for velocity coordinates (the overdot denotes differentiation by an arbitrary parameter, not necessarily proper time). To explain the problem I need to introduce some further auxiliary definitions:

## \eta_{\mu\nu}## is an ordinary Minkowski metric , of signature ##(-1,+1,+1,+1)~,##

## A := \sqrt{-\eta_{\mu\nu} u^\mu u^\nu} ~,##

## \hat u^\alpha := u^\alpha/A ~,## is a "unit" velocity vector,

##\epsilon := \hat u^0 \equiv u^0/A ~## is called the local time direction of an observer at ##x~,##

##\Upsilon## is a constant with dimensions of inverse length ,

##\rho := (1 - \epsilon\Upsilon x^0)## is just a convenient shorthand.

(On the ordinary mass hyperboloid, ##\epsilon## is just sign##(u^0)##, but I need to perform off-shell computations, e.g., differentiations, hence I need the more complicated expression above.)

In my

$$L(x,u) \equiv F^2(x,u) ~:=~ \frac{\eta_{00} + \eta_{jk}\epsilon^2 \Upsilon^2 x^j x^k}{\rho^4}\, (u^0)^2

~+~ \frac{2\epsilon\Upsilon \eta_{jk} x^j\, u^k u^0}{\rho^3} ~+~ \frac{\eta_{jk} u^j u^k}{\rho^2}.$$

The series of computations I need to perform are as follows:

$$g_{\mu\nu} ~=~ \frac12 \, \frac{\partial^2 L}{\partial u^\mu \partial u^\nu} ~,$$ and ##g^{\mu\nu}## as the usual inverse matrix thereof. Then I need:

$$G_\alpha ~:=~ \frac12\left( \frac{\partial^2 L}{\partial x^\nu \partial u^\alpha}\, u^\nu

~-~ \frac{\partial L}{\partial x^\alpha} \right) ~,~~~~~~

G^\lambda ~:=~ g^{\lambda\alpha} G_\alpha ~,$$ $$N^\lambda_{~\nu} ~:=~ \frac{\partial G^\lambda}{\partial u^\nu} ~,~~~~~~

B^\lambda_{~\nu\sigma} ~:=~ \frac{\partial N^\lambda_{~\nu}}{\partial u^\sigma} ~,$$ $$R^\lambda_{~\nu} ~=~u^\mu \frac{\partial N^\lambda_{~\nu}}{\partial x^\mu}

- 2 \frac{\partial G^\lambda}{\partial x^\nu} + N^\sigma_{~\nu} N^\lambda_{~\sigma}

- 2 G^\sigma B^\lambda_{~\nu\sigma} ~. $$

In an older Finsler textbook, I've seen Maple programs for simpler cases that just use explicit coordinates ##t,x,y,z## and velocities ##T,X,Y,Z##. All tensor components and contractions are written out in full. But my case is much more complicated.

I'd appreciate suggestions on what programming paradigm I should try here. Explicit components? Matrices? Other?

Or other symbolic math packages likely to be better than Maple for my problem?

I'm aware a Maple package "New Finsler", as described in this paper by Youssef and Elgendi, but they seem not to say where I can download it. I've attempted to contact them, but so far no response.

## \eta_{\mu\nu}## is an ordinary Minkowski metric , of signature ##(-1,+1,+1,+1)~,##

## A := \sqrt{-\eta_{\mu\nu} u^\mu u^\nu} ~,##

## \hat u^\alpha := u^\alpha/A ~,## is a "unit" velocity vector,

##\epsilon := \hat u^0 \equiv u^0/A ~## is called the local time direction of an observer at ##x~,##

##\Upsilon## is a constant with dimensions of inverse length ,

##\rho := (1 - \epsilon\Upsilon x^0)## is just a convenient shorthand.

(On the ordinary mass hyperboloid, ##\epsilon## is just sign##(u^0)##, but I need to perform off-shell computations, e.g., differentiations, hence I need the more complicated expression above.)

In my

*particular*Finsler geometry, the fundamental function is given via$$L(x,u) \equiv F^2(x,u) ~:=~ \frac{\eta_{00} + \eta_{jk}\epsilon^2 \Upsilon^2 x^j x^k}{\rho^4}\, (u^0)^2

~+~ \frac{2\epsilon\Upsilon \eta_{jk} x^j\, u^k u^0}{\rho^3} ~+~ \frac{\eta_{jk} u^j u^k}{\rho^2}.$$

The series of computations I need to perform are as follows:

$$g_{\mu\nu} ~=~ \frac12 \, \frac{\partial^2 L}{\partial u^\mu \partial u^\nu} ~,$$ and ##g^{\mu\nu}## as the usual inverse matrix thereof. Then I need:

$$G_\alpha ~:=~ \frac12\left( \frac{\partial^2 L}{\partial x^\nu \partial u^\alpha}\, u^\nu

~-~ \frac{\partial L}{\partial x^\alpha} \right) ~,~~~~~~

G^\lambda ~:=~ g^{\lambda\alpha} G_\alpha ~,$$ $$N^\lambda_{~\nu} ~:=~ \frac{\partial G^\lambda}{\partial u^\nu} ~,~~~~~~

B^\lambda_{~\nu\sigma} ~:=~ \frac{\partial N^\lambda_{~\nu}}{\partial u^\sigma} ~,$$ $$R^\lambda_{~\nu} ~=~u^\mu \frac{\partial N^\lambda_{~\nu}}{\partial x^\mu}

- 2 \frac{\partial G^\lambda}{\partial x^\nu} + N^\sigma_{~\nu} N^\lambda_{~\sigma}

- 2 G^\sigma B^\lambda_{~\nu\sigma} ~. $$

In an older Finsler textbook, I've seen Maple programs for simpler cases that just use explicit coordinates ##t,x,y,z## and velocities ##T,X,Y,Z##. All tensor components and contractions are written out in full. But my case is much more complicated.

I'd appreciate suggestions on what programming paradigm I should try here. Explicit components? Matrices? Other?

Or other symbolic math packages likely to be better than Maple for my problem?

I'm aware a Maple package "New Finsler", as described in this paper by Youssef and Elgendi, but they seem not to say where I can download it. I've attempted to contact them, but so far no response.