votca 2026-dev
Loading...
Searching...
No Matches
votca::xtp::TimeDependentRates Class Referenceabstract

Hop rates of the edges of a ToFGraph as functions of time. More...

#include <kmcrates.h>

Inheritance diagram for votca::xtp::TimeDependentRates:
Collaboration diagram for votca::xtp::TimeDependentRates:

Public Member Functions

virtual ~TimeDependentRates ()=default
virtual double Rate (Index edge, double t) const =0
 rate of edge e at time t
virtual double EscapeRate (Index site, double t) const
virtual double UpperBound (Index edge) const =0
 an upper bound of Rate(edge, t) for all t (needed by thinning)
virtual double Period () const
 common period T of all rates if they are periodic, 0 otherwise
virtual bool isStatic () const
 true if no rate depends on time
const ToFGraph & Graph () const

Protected Member Functions

 TimeDependentRates (const ToFGraph &graph)

Protected Attributes

const ToFGraph & graph_

Detailed Description

Hop rates of the edges of a ToFGraph as functions of time.

Edges are identified by their global index in the graph (sites i own the edges [ToFGraph::EdgeOffset(i), ToFGraph::EdgeOffset(i+1))). Times are the absolute simulation time in s (the same clock as the injection times), rates in 1/s. Implementations must be thread safe for the const methods (runs are done in parallel).

Used by the waiting-time strategies of the KMC engine (WaitingTimeStrategy): the strategy decides how waiting times are drawn from these rates.

Example for a time-dependent implementation (to be written for oscillating fields): Marcus rates with the field F(t) = F0 + F1 cos(2 pi f t + phi), evaluated per edge from constants stored at construction (prefactor, site-energy difference, R_ij, reorganization energy), with Period() = 1/f and UpperBound() = the maximum over one period.

Definition at line 52 of file kmcrates.h.

Constructor & Destructor Documentation

◆ ~TimeDependentRates()

virtual votca::xtp::TimeDependentRates::~TimeDependentRates ( )
virtualdefault

◆ TimeDependentRates()

votca::xtp::TimeDependentRates::TimeDependentRates ( const ToFGraph & graph)
inlineexplicitprotected

Definition at line 75 of file kmcrates.h.

Member Function Documentation

◆ EscapeRate()

double votca::xtp::TimeDependentRates::EscapeRate ( Index site,
double t ) const
virtual

sum of the rates of the out-edges of site i at time t; override if it can be computed faster than the sum over the edges

Reimplemented in votca::xtp::StaticRates.

Definition at line 31 of file kmcwaitingtime.cc.

◆ Graph()

const ToFGraph & votca::xtp::TimeDependentRates::Graph ( ) const
inline

Definition at line 72 of file kmcrates.h.

◆ isStatic()

virtual bool votca::xtp::TimeDependentRates::isStatic ( ) const
inlinevirtual

true if no rate depends on time

Reimplemented in votca::xtp::StaticRates.

Definition at line 70 of file kmcrates.h.

◆ Period()

virtual double votca::xtp::TimeDependentRates::Period ( ) const
inlinevirtual

common period T of all rates if they are periodic, 0 otherwise

Definition at line 67 of file kmcrates.h.

◆ Rate()

virtual double votca::xtp::TimeDependentRates::Rate ( Index edge,
double t ) const
pure virtual

rate of edge e at time t

Implemented in votca::xtp::StaticRates.

◆ UpperBound()

virtual double votca::xtp::TimeDependentRates::UpperBound ( Index edge) const
pure virtual

an upper bound of Rate(edge, t) for all t (needed by thinning)

Implemented in votca::xtp::StaticRates.

Member Data Documentation

◆ graph_

const ToFGraph& votca::xtp::TimeDependentRates::graph_
protected

Definition at line 76 of file kmcrates.h.


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