00001 00002 // 00003 // $Id: Geodesic.hpp,v 1.10 2007/02/22 23:11:52 werner Exp $ 00004 // 00005 // $Log: Geodesic.hpp,v $ 00006 // Revision 1.10 2007/02/22 23:11:52 werner 00007 // Using Eagle library instead of Vecal 00008 // 00009 // Revision 1.9 2004/08/12 16:21:33 werner 00010 // Integration of numerical geodesics now compiles. Working is not yet satisfying. 00011 // 00012 // Revision 1.8 2004/05/12 14:36:22 werner 00013 // Separation of chart definitions on a manifold and the tangential space. 00014 // Introduced convenient coordinate transformations. 00015 // 00016 // Revision 1.7 2004/05/11 18:05:10 werner 00017 // 00018 // Revision 1.6 2004/05/11 16:53:47 werner 00019 // Introduction of coordinate systems for improved type-safety. 00020 // Will support easy coordinate transformations soon. 00021 // 00022 // Revision 1.5 2004/05/06 22:42:16 werner 00023 // Towards a specification of a spacetime via the Acceleration structure. 00024 // 00025 // Revision 1.4 2004/05/05 15:56:52 werner 00026 // Separation of DOP core routines with dynamic size into the ODE library. 00027 // 00028 // Revision 1.3 2004/05/03 13:33:33 werner 00029 // integration improved 00030 // 00031 // Revision 1.2 2004/03/29 11:51:02 werner 00032 // Common interface among simple integrators, DiffMe and Vecal, and preliminiary work on integrating dop853. 00033 // 00034 // Revision 1.1 2004/03/22 11:55:02 werner 00035 // Schwarzschild geodesic integration. 00036 // 00037 // Revision 1.1 2004/02/13 16:36:21 werner 00038 // Initial preliminiary version of the Vector Algebra Library. 00039 // 00041 #ifndef __Geodesic_HPP 00042 #define __Geodesic_HPP "Created 27.02.2001 21:42:27 by werner" 00043 00044 #include <eagle/Chart.hpp> 00045 #include <ode/Integrator.hpp> 00046 00047 namespace Traum 00048 { 00049 00050 template <class Acceleration> 00051 struct Geodesic 00052 { 00053 typedef typename Acceleration::Scalar_t Scalar_t; 00054 typedef typename Acceleration::Point_t Point_t; 00055 typedef typename Acceleration::Vector_t Vector_t; 00056 typedef typename Acceleration::Christoffel_t Christoffel_t; 00057 00058 typedef typename Point_t::Vector_t PointComponents_t; 00059 enum { Dims = PointComponents_t::SIZE }; 00060 00061 Point_t x; 00062 Vector_t v; 00063 }; 00064 00065 00066 } /* namespace VecAl */ 00067 00068 #endif /* __Geodesic_HPP */