Routines and classes for handling space and time, raum und zeit.
More...
Detailed Description
Routines and classes for handling space and time, raum und zeit.
Traum is a collection of classes describing a spacetimes by the means of differential geometry to allow the computation of geodesics and other operations. The concept of a manifold with charts is inherited from the VecAl library and extended to an tangential space which homes tangential and co-tangential vectors, a metric tensor field and Christoffel symbols.
The design of Traum allows two approaches for numerical operations:
- type-safe programming within a certain coordinate systems
- generic programming operating on a collection of numbers
- coordinate-specific algorithms independent from numerical representation The first variant provides more programming safety when dealing with a coordinate representation, e.g. three-dimensional polar coordinates are distinguished from three-dimensional cartesian coordinates. The second variant allows common treatment of all three-dimensional coordinates by just operating on the numerical type; this variant is suitable for pre-compiling large numerical routines operating on a specific numerical type (float, double, qdouble). The third variant allows to specify operations as templates specific the properties of a coordinate system, e.g. when operating on VecAl::CartesianCoordinates and instances of TangentialSpace on a VecAl::Chart.