Reactions::Reaction Class Reference

Abstract base class for reactions. More...

Inheritance diagram for Reactions::Reaction:

Reactions::Adsorption Reactions::Desorption Reactions::Diffusion Reactions::DissociativeAdsorption

List of all members.

Public Types

typedef std::string Name
 Define name.
typedef std::vector< EventPtrEventContainer
 Container of Reaction::pointer s.
typedef std::vector
< Surface::Site * > 
SitePtrContainer
 Container of Surface::Site* on which the reaction is performed.

Public Member Functions

virtual ~Reaction ()
 Destructor.
virtual void UpdateTime ()=0
 Draw time from $-\frac{1}{k_{cc'}}\ln u$, with $k_{cc'}$ Arrhenius expression.
virtual double Time () const =0
 Return reaction duration.
virtual bool Enabled () const =0
 Test whether the Reaction is enabled.
virtual void operator() ()=0
 Callback, perform Reaction, return time.
virtual EventContainer GetEvents (const Surface::Site *) const =0
 Return newed ptr to enabled events.
virtual SitePtrContainer site_container () const =0
 Return Surface::Site* to be updated after the Reaction has been performed.
Accessors
virtual Name name () const =0
 name


Detailed Description

Usage:
Adding new 'Reactions', i.e., diffusion, adsorbtion, etc. bound to a site on the lattice boils down to inheriting from this abstract base class (ABC) and providing a do_update(), and a do_enabled() methods, a public constructor (ctor) and a private copy constructor. The ctor can also add relevant information (another Site, for example) to the derived class.

Usage:
The class is implemented as a functor: calling its operator() performs the reaction
Author:
Mathias Laurin <mathias_laurin@users.sourceforge.net>
Date:
2008-10-30

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

SourceForge.net Logo Project's page
Generated on Mon Nov 17 00:23:06 2008 for dmcut2 by doxygen 1.5.7