- #1
- 3,765
- 2,212
- 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 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.
## \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.