FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Public Types | Public Member Functions | Public Attributes | List of all members
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 TangentialSpaceType::Point_t Point_t
 
typedef TangentialSpaceType::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)
 
- 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

◆ restart()

template<class Acceleration >
void Traum::IntegrateGeodesic< Acceleration >::restart ( const Point_t x0,
const Vector_t v0 
)
inlineoverridevirtual

◆ velocity()

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