Geometric numerical integration : structure-preserving algorithms for ordinary differential equations - Hairer, Ernst, 1949- (Springer series in computational mathematics ;, 2002)