21#ifndef VOTCA_XTP_KMCRATES_H
22#define VOTCA_XTP_KMCRATES_H
57 virtual double Rate(
Index edge,
double t)
const = 0;
67 virtual double Period()
const {
return 0.0; }
70 virtual bool isStatic()
const {
return false; }
84 return graph_.getEdge(edge).rate;
87 return graph_.EscapeRate(site);
90 return graph_.getEdge(edge).rate;
92 bool isStatic()
const override {
return true; }
StaticRates(const ToFGraph &graph)
bool isStatic() const override
true if no rate depends on time
double EscapeRate(Index site, double) const override
double UpperBound(Index edge) const override
an upper bound of Rate(edge, t) for all t (needed by thinning)
double Rate(Index edge, double) const override
rate of edge e at time t
virtual double EscapeRate(Index site, double t) const
const ToFGraph & Graph() const
virtual double UpperBound(Index edge) const =0
an upper bound of Rate(edge, t) for all t (needed by thinning)
virtual bool isStatic() const
true if no rate depends on time
virtual ~TimeDependentRates()=default
virtual double Period() const
common period T of all rates if they are periodic, 0 otherwise
virtual double Rate(Index edge, double t) const =0
rate of edge e at time t
TimeDependentRates(const ToFGraph &graph)
Hopping graph for time-of-flight (ToF) transport.
Provides a means for comparing floating point numbers.