Numerical integration and symbolic calculus

Almost all problems in physics and engineering are described by ordinary differential (ODE) or partial differential equations (PDE). The topic is so wide that entire libraries could be devoted to textbooks on ODE theory, classification, solving method…

However, in most viable relativistic models, the PDE fall in the class of hyperbolic equations. This is related to the notion of causality, which is one of the sacred principles in many physical models. Classifying PDEs have been a topic of rich activity and is still an open subject with many works and advances.

While some particular problem can be treated fully analytically, many – and actually probably among the most interesting – problems don’t admit an analytic solution. One then has to resort to numerical integration, which should be supported by appropriate convergence theorem of the method used.

For instance, while it is known for a long time that the Einstein equations are hyperbolic (see, a consistent long time evolution within GR has only been performed recently (see for a review), together with the advances in understanding the PDE structure of gauge theories.

Static or stationary problems are more simple, though static are the ‘easiest’. There, the time dependence is trivial and the problem usually reduces to solving a system of ODEs or 2 variables PDEs. ODEs are easily handled with Mathematica or any other equivalent, but PDEs are usually more problematic (apart from some simple one that can be treated with Mathematica too). Of course, one can code a solver, and many algorithm are available. An interesting library for PDEs, most suited for elliptic-like equations is FidiSol/CadSol, that is nowadays not maintained any more, but still used efficiently in some groups.

Before solving equations, one should derive them. Two efficient (commercial) software for symbolic calculation are Mathematica or Mapple.  They now integrate numerical computation rather efficiently. Mathlab is also a good option for numerical computations, but there are also open source equivalent such as SymPy

Note that Mathematica doesn’t handle tensors, but here is a nice add-on that does: xAct,