C++QEDCore  2.100.2 (v2 Milestone 10 Development branch)
a framework for simulating open quantum dynamics – core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
evolved::MakerGSL< A > Class Template Reference

Implements Maker and incorporates MakerGSL::_, the actual GSL-based implementation of the Evolved interface. More...

#include <EvolvedGSL.h>

+ Inheritance diagram for evolved::MakerGSL< A >:
+ Collaboration diagram for evolved::MakerGSL< A >:

Public Member Functions

 MakerGSL (SteppingFunction sf=SF_RKCK, double nextDtTryCorrectionFactor=100.)
 
- Public Member Functions inherited from evolved::Maker< A >
const Ptr operator() (A &array, Derivs derivs, double dtInit, double epsRel, double epsAbs, const A &scaleAbs) const
 The factory member function expecting the most generic set of parameters. More...
 

Additional Inherited Members

- Public Types inherited from evolved::Maker< A >
typedef Evolved< A >::Ptr Ptr
 
typedef Evolved< A >::Derivs Derivs
 

Detailed Description

template<typename A>
class evolved::MakerGSL< A >

Implements Maker and incorporates MakerGSL::_, the actual GSL-based implementation of the Evolved interface.

Definition at line 21 of file EvolvedGSL.h.

Constructor & Destructor Documentation

template<typename A >
evolved::MakerGSL< A >::MakerGSL ( SteppingFunction  sf = SF_RKCK,
double  nextDtTryCorrectionFactor = 100. 
)
inline
Parameters
nextDtTryCorrectionFactorThis parameter is connected to the patching in _::step_v() of an undesired behaviour in gsl_odeiv: GSL seems to take dtDid as a basis of calculating dtTry, instead of the previous dtTry. Now, since dtDid will be at most deltaT, this will result in a severe drop of dtTry, if deltaT is very small (e.g. when completing a given interval at its end). Since this drop can be several orders of magnitude, this must not be allowed as it would slow down the simulation extremely. To patch this, we check before the actual timestep whether we are in the case of a very small deltaT (< dtTry/nextDtTryCorrectionFactor). If this is found to be the case, then the present dtTry will be cached and used unchanged in the next step. That is, the present (tiny) step is excluded from stepsize control.

Definition at line 31 of file EvolvedGSL.h.


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