Geodesic.hpp

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 */