Geometric numerical integration