Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Traum::IntegrateGeodesic< Acceleration > Class Template Reference

Implementation of a coordinate-specific integration of geodesics in a certain coordinate system, based on known generic integrators which can be selected at runtime. More...

#include <IntegrateGeodesic.hpp>

Inheritance diagram for Traum::IntegrateGeodesic< Acceleration >:
Traum::GeodesicIntegrator< Acceleration::TangentialSpace_t > Traum::GeodesicIntegratorBase

Public Types

enum  { Dims = Acceleration::Dims }
typedef Acceleration::TangentialSpace_t TangentialSpace_t
 The associated coordinate representation of the tangential space.
typedef GeodesicIntegrator< TangentialSpace_tBase_t
typedef Base_t::Point_t Point_t
 The coordinate-specific point type.
typedef Base_t::Vector_t Vector_t
 The coordinate-specific tangential vector type (from TangentialSpace<> ).
typedef Acceleration::Point_t GenericPoint_t
 The coordinate-independent numerical raw type.
typedef Acceleration::Vector_t GenericVector_t
 The coordinate-specific tangential vector type (possibly just a Vector<> ).
Public Types inherited from Traum::GeodesicIntegrator< Acceleration::TangentialSpace_t >
enum  
typedef Acceleration::TangentialSpace_t::Point_t Point_t
typedef Acceleration::TangentialSpace_t::Vector_t Vector_t
Public Types inherited from Traum::GeodesicIntegratorBase
enum  IntegratorType { Euler , RungeKutta , AdamsStoermer , DOP853 }

Public Member Functions

 IntegrateGeodesic (const Acceleration &A, IntegratorType t)
success_code advance (bool bk=false) override
void setStepSize (double ds)
void restart (const Point_t &x0, const Vector_t &v0) override
Point_t position () const override
Vector_t velocity () const override
Public Member Functions inherited from Traum::GeodesicIntegrator< Acceleration::TangentialSpace_t >
 GeodesicIntegrator (IntegratorType t)
virtual void restart (const Point_t &x0, const Vector_t &v0)=0
Public Member Functions inherited from Traum::GeodesicIntegratorBase
 GeodesicIntegratorBase (IntegratorType t)

Public Attributes

EulerGeodesic< Acceleration > E
RungeKuttaGeodesic< Acceleration > RK
AdamsStoermerGeodesic< Acceleration > AS
Geodesic853< Acceleration > DP853
Public Attributes inherited from Traum::GeodesicIntegratorBase
const IntegratorType myType

Detailed Description

template<class Acceleration>
class Traum::IntegrateGeodesic< Acceleration >

Implementation of a coordinate-specific integration of geodesics in a certain coordinate system, based on known generic integrators which can be selected at runtime.

Parameters
AccelerationA class that conforms to the concept of an Acceleration, i.e. it must provide
  1. a type TangentialSpace_t that is an instance of TangentialSpace<>
  2. may be used as template argument of all supported geoedeisc integrators

Currently supported integrators are:

  1. EulerGeodesic

RungeKuttaGeodesic

  1. AdamsStoermerGeodesic
  2. Geodesic853

Member Function Documentation

◆ advance()

template<class Acceleration>
success_code Traum::IntegrateGeodesic< Acceleration >::advance ( bool bk = false)
inlineoverridevirtual

◆ position()

template<class Acceleration>
Point_t Traum::IntegrateGeodesic< Acceleration >::position ( ) const
inlineoverridevirtual

◆ velocity()

template<class Acceleration>
Vector_t Traum::IntegrateGeodesic< Acceleration >::velocity ( ) const
inlineoverridevirtual