Langmuir
Simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
drainagent.h
Go to the documentation of this file.
1 #ifndef DRAINAGENT_H
2 #define DRAINAGENT_H
3 
4 #include "fluxagent.h"
5 
6 namespace LangmuirCore
7 {
8 
9 class ChargeAgent;
10 
19 class DrainAgent : public FluxAgent
20 {
21 public:
25  DrainAgent(World &world, Grid &grid, QObject *parent = 0);
26 
30  virtual bool tryToAccept(ChargeAgent *charge);
31 };
32 
37 {
38 public:
42  ElectronDrainAgent(World &world, int site, QObject *parent = 0);
43 
47  ElectronDrainAgent(World &world, Grid::CubeFace cubeFace, QObject *parent = 0);
48 protected:
56  virtual double energyChange(int fSite);
57 };
58 
62 class HoleDrainAgent : public DrainAgent
63 {
64 public:
68  HoleDrainAgent(World &world, int site, QObject *parent = 0);
69 
73  HoleDrainAgent(World &world, Grid::CubeFace cubeFace, QObject *parent = 0);
74 protected:
82  virtual double energyChange(int fSite);
83 };
84 
94 {
95 public:
99  RecombinationAgent(World &world, QObject *parent = 0);
100 
104  virtual bool tryToAccept(ChargeAgent *charge);
105 
109  void guessProbability();
110 
111 private:
115  virtual double energyChange(int fSite);
116 };
117 
118 }
119 #endif
virtual double energyChange(int fSite)
same as FluxAgent::energyChange(), but specialized for ElectronAgents.
A class to remove HoleAgents.
Definition: drainagent.h:62
RecombinationAgent(World &world, QObject *parent=0)
create a RecombinationAgent
Grid & grid() const
get the Grid this FluxAgent belongs to
virtual double energyChange(int fSite)
currently implemented as zero and not really used
virtual double energyChange(int fSite)
same as FluxAgent::energyChange(), but specialized for HoleAgents.
A class to hold Agents, calculate their positions, and store the background potential.
Definition: cubicgrid.h:35
A class to remove Excitons.
Definition: drainagent.h:93
ElectronDrainAgent(World &world, int site, QObject *parent=0)
create an ElectronDrainAgent at a specific site
DrainAgent(World &world, Grid &grid, QObject *parent=0)
create a DrainAgent
A class to remove ElectronAgents.
Definition: drainagent.h:36
A class to change the number of carriers in the system.
Definition: fluxagent.h:17
A class to remove charges.
Definition: drainagent.h:19
A class to hold all objects in a simulation.
Definition: world.h:51
void guessProbability()
calculate an acceptance probability based upon the desired rate and encounter frequency ...
virtual bool tryToAccept(ChargeAgent *charge)
accept charge with constant probability
A class to represent moving charged particles.
Definition: chargeagent.h:13
Definition: agent.h:12
virtual bool tryToAccept(ChargeAgent *charge)
accept charge with constant probability
CubeFace
A way to indicate the faces of a cube.
Definition: cubicgrid.h:46
HoleDrainAgent(World &world, int site, QObject *parent=0)
create an HoleDrainAgent at a specific site