Langmuir
Simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LangmuirCore::ElectronAgent Class Reference

A class to represent moving negative charges. More...

#include <chargeagent.h>

Public Member Functions

 ElectronAgent (World &world, int site, QObject *parent=0)
 Construct ElectronAgent. More...
 
- Public Member Functions inherited from LangmuirCore::ChargeAgent
 ChargeAgent (Agent::Type getType, World &world, Grid &grid, int site, QObject *parent=0)
 Construct charge. More...
 
virtual ~ChargeAgent ()
 Destroy charge. More...
 
int charge ()
 Get the charge of the ChargeAgent. More...
 
void chooseFuture ()
 Propose a random site to move to. More...
 
void decideFuture ()
 Decide what should happen, called after chooseFuture. More...
 
void completeTick ()
 Perform action, called after decideFuture. More...
 
bool removed ()
 True if decideFuture removed the charge from the grid. More...
 
int lifetime ()
 Number of steps ChargeAgent has existed. More...
 
int pathlength ()
 Number of sites ChargeAgent has traversed. More...
 
void setOpenCLID (int id)
 Set the ChargeAgent OpenCL identifier. More...
 
int getOpenCLID ()
 Get the ChargeAgent OpenCL identifier. More...
 
double coulombInteraction ()
 Perform coulombCPU() or coulombGPU() More...
 
void coulombCPU ()
 Calculate the Coulomb potential on the CPU. More...
 
void coulombGPU ()
 Retrieve the Coulomb potential from the GPU More...
 
void compareCoulomb ()
 compare results for CPU and GPU Coulomb (assumes kernel was called) More...
 
GridgetGrid ()
 Get the grid this ChargeAgent exists in. More...
 
void setRemoved (const bool &status=true)
 Set the removed status of this ChargeAgent. More...
 
- Public Member Functions inherited from LangmuirCore::Agent
 Agent (Type type, World &world, int site=0, QObject *parent=0)
 Create an Agent. More...
 
virtual ~Agent ()
 Destroy Agent. More...
 
const QVector< int > & getNeighbors () const
 Get Agent neighbor list. More...
 
void setNeighbors (QVector< int > neighbors)
 Set Agent neighbor list. More...
 
int getCurrentSite () const
 Get Agent current site. More...
 
int getFutureSite () const
 Get Agent future site. More...
 
void setCurrentSite (int site)
 Set Agent current site. More...
 
void setFutureSite (int site)
 Set Agent future site. More...
 
Type getType () const
 Get Agent::Type enum. More...
 
WorldgetWorld () const
 Get Langmuir::World reference. More...
 

Protected Member Functions

virtual double bindingPotential (int site)
 Calculate Exciton Binding Energy. More...
 
virtual Agent::Type otherType ()
 Return other Agent::Type. More...
 
virtual GridotherGrid ()
 Return other Grid. More...
 

Additional Inherited Members

- Public Types inherited from LangmuirCore::Agent
enum  Type {
  Empty = 0, Electron = 1, Hole = 2, Defect = 3,
  Source = 4, Drain = 5, SIZE = 6
}
 An identifier for the type of Agent. More...
 
- Static Public Member Functions inherited from LangmuirCore::Agent
static QString toQString (const Agent::Type e)
 Convert Agent type enum to QString. More...
 
- Protected Attributes inherited from LangmuirCore::ChargeAgent
int m_charge
 Charge of ChargeAgent (in units of e) More...
 
bool m_removed
 Removed status of ChargeAgent. More...
 
int m_lifetime
 Number of steps ChargeAgent as been in existance. More...
 
int m_pathlength
 Number of grid spaces ChargeAgent has moved. More...
 
Gridm_grid
 The Grid the ChargeAgent lives in. More...
 
int m_openClID
 The index of the Charge in the OpenCL vectors (see OpenClHelper) More...
 
double m_de
 The difference in Coulomb potential between ChargeAgent::m_site and ChargeAgent::m_fSite. More...
 
- Protected Attributes inherited from LangmuirCore::Agent
int m_site
 Current site the Agent occupies. More...
 
int m_fSite
 Future site the Agent will occupy. More...
 
Worldm_world
 Reference to World object. More...
 
QVector< int > m_neighbors
 List fo neighboring site ids. More...
 
Type m_type
 Agent Type enum. More...
 

Detailed Description

A class to represent moving negative charges.

Constructor & Destructor Documentation

LangmuirCore::ElectronAgent::ElectronAgent ( World world,
int  site,
QObject *  parent = 0 
)

Construct ElectronAgent.

Member Function Documentation

virtual double LangmuirCore::ElectronAgent::bindingPotential ( int  site)
protectedvirtual

Calculate Exciton Binding Energy.

Parameters
sitethe site to check in other Grid
Returns
  • $+0.5$ eV if exciton
  • 0 otherwise

Implements LangmuirCore::ChargeAgent.

virtual Grid& LangmuirCore::ElectronAgent::otherGrid ( )
protectedvirtual

Return other Grid.

Returns
World::holeGrid

Implements LangmuirCore::ChargeAgent.

virtual Agent::Type LangmuirCore::ElectronAgent::otherType ( )
protectedvirtual

Return other Agent::Type.

Returns
Agent::Hole

Implements LangmuirCore::ChargeAgent.


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