List of all members | Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy > Class Template Reference

#include "utl/RK5ODEIntegrator.h"

Public Member Functions

 AdaptiveRK5Iterator (const double x0, const double dx0, const VectorType &y0, DerivativeFunctor &d, const double accuracy=1e-5, const ErrorScalingPolicy &errorScaling=DefaultRK5ErrorScaling())
 
 AdaptiveRK5Iterator (const double dx0, const RK5Iterator< DerivativeFunctor, VectorType > &rk5It, const double accuracy=1e-5, const ErrorScalingPolicy &errorScaling=DefaultRK5ErrorScaling())
 
bool Advance (const double dx)
 
bool Advance ()
 
void ClearStatus ()
 
double GetNextStepSize () const
 
double GetX () const
 
VectorType & GetY ()
 
const VectorType & GetY () const
 
const VectorType & GetYError () const
 
 operator bool () const
 
AdaptiveRK5Iteratoroperator++ ()
 
AdaptiveRK5Iteratoroperator+= (const double dx)
 
AdaptiveRK5Iteratoroperator-= (const double dx)
 

Static Private Member Functions

static double GetMaxScaledError (const unsigned int n, const VectorType &error, const VectorType &scaling)
 

Private Attributes

double fAccuracy
 
const ErrorScalingPolicy & fErrorScaling
 
RK5Iterator< DerivativeFunctor,
VectorType > 
fIterator
 
double fNextStepSize
 

Static Private Attributes

static const double fPowerDown = -0.25
 
static const double fPowerLawThreshold = 1.889568e-4
 
static const double fPowerUp = -0.2
 
static const double fSlightlyLess = 0.9
 

Detailed Description

template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
class utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >

This iterator class will advance the solution from the current point maintaining the accuracy of the result. See class RK5ODEIntegrator for details.

Author
Darko Veberic
Date
20 Jun 2008

Definition at line 191 of file RK5ODEIntegrator.h.

Constructor & Destructor Documentation

template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::AdaptiveRK5Iterator ( const double  x0,
const double  dx0,
const VectorType &  y0,
DerivativeFunctor &  d,
const double  accuracy = 1e-5,
const ErrorScalingPolicy &  errorScaling = DefaultRK5ErrorScaling() 
)
inline

Definition at line 193 of file RK5ODEIntegrator.h.

template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::AdaptiveRK5Iterator ( const double  dx0,
const RK5Iterator< DerivativeFunctor, VectorType > &  rk5It,
const double  accuracy = 1e-5,
const ErrorScalingPolicy &  errorScaling = DefaultRK5ErrorScaling() 
)
inline

Definition at line 205 of file RK5ODEIntegrator.h.

Member Function Documentation

template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
bool utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::Advance ( const double  dx)
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
bool utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::Advance ( )
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
void utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::ClearStatus ( )
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
static double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::GetMaxScaledError ( const unsigned int  n,
const VectorType &  error,
const VectorType &  scaling 
)
inlinestaticprivate
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::GetNextStepSize ( ) const
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::GetX ( ) const
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
VectorType& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::GetY ( )
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const VectorType& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::GetY ( ) const
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const VectorType& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::GetYError ( ) const
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::operator bool ( ) const
inlineexplicit
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
AdaptiveRK5Iterator& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::operator++ ( )
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
AdaptiveRK5Iterator& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::operator+= ( const double  dx)
inline
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
AdaptiveRK5Iterator& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::operator-= ( const double  dx)
inline

Member Data Documentation

template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fAccuracy
private
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const ErrorScalingPolicy& utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fErrorScaling
private
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
RK5Iterator<DerivativeFunctor, VectorType> utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fIterator
private
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fNextStepSize
private
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fPowerDown = -0.25
staticprivate
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fPowerLawThreshold = 1.889568e-4
staticprivate
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fPowerUp = -0.2
staticprivate
template<class DerivativeFunctor, class VectorType, class ErrorScalingPolicy = DefaultRK5ErrorScaling>
const double utl::AdaptiveRK5Iterator< DerivativeFunctor, VectorType, ErrorScalingPolicy >::fSlightlyLess = 0.9
staticprivate

The documentation for this class was generated from the following file:

, generated on Tue Sep 26 2023.