Langmuir
Simulation
|
A class to represent moving charged particles. More...
#include <chargeagent.h>
Public Member Functions | |
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... | |
Grid & | getGrid () |
Get the grid this ChargeAgent exists in. More... | |
void | setRemoved (const bool &status=true) |
Set the removed status of this ChargeAgent. More... | |
virtual Agent::Type | otherType ()=0 |
Return the opposite ChargeAgent type relative to this ChargeAgent. More... | |
virtual Grid & | otherGrid ()=0 |
Return the opposite Grid relative to this ChargeAgent's Agent::Type. 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... | |
World & | getWorld () const |
Get Langmuir::World reference. More... | |
Protected Member Functions | |
virtual double | bindingPotential (int site)=0 |
Calculate the exciton binding energy. More... | |
Protected Attributes | |
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... | |
Grid & | m_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... | |
World & | m_world |
Reference to World object. More... | |
QVector< int > | m_neighbors |
List fo neighboring site ids. More... | |
Type | m_type |
Agent Type enum. 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... | |
A class to represent moving charged particles.
LangmuirCore::ChargeAgent::ChargeAgent | ( | Agent::Type | getType, |
World & | world, | ||
Grid & | grid, | ||
int | site, | ||
QObject * | parent = 0 |
||
) |
Construct charge.
getType | Agent type; must be Agent::Electron or Agent::Hole |
world | reference to world |
grid | reference to grid |
site | site id in grid |
parent | parent QObject |
|
virtual |
Destroy charge.
|
protectedpure virtual |
Calculate the exciton binding energy.
site | the site to check in other Grid |
Implemented in LangmuirCore::HoleAgent, and LangmuirCore::ElectronAgent.
int LangmuirCore::ChargeAgent::charge | ( | ) |
Get the charge of the ChargeAgent.
void LangmuirCore::ChargeAgent::chooseFuture | ( | ) |
Propose a random site to move to.
void LangmuirCore::ChargeAgent::compareCoulomb | ( | ) |
compare results for CPU and GPU Coulomb (assumes kernel was called)
void LangmuirCore::ChargeAgent::completeTick | ( | ) |
Perform action, called after decideFuture.
void LangmuirCore::ChargeAgent::coulombCPU | ( | ) |
Calculate the Coulomb potential on the CPU.
void LangmuirCore::ChargeAgent::coulombGPU | ( | ) |
Retrieve the Coulomb potential from the GPU
double LangmuirCore::ChargeAgent::coulombInteraction | ( | ) |
Perform coulombCPU() or coulombGPU()
depends upon SimulationParameters::useOpenCL and SimulationParameters::okCL
void LangmuirCore::ChargeAgent::decideFuture | ( | ) |
Decide what should happen, called after chooseFuture.
Grid& LangmuirCore::ChargeAgent::getGrid | ( | ) |
Get the grid this ChargeAgent exists in.
int LangmuirCore::ChargeAgent::getOpenCLID | ( | ) |
Get the ChargeAgent OpenCL identifier.
int LangmuirCore::ChargeAgent::lifetime | ( | ) |
Number of steps ChargeAgent has existed.
|
pure virtual |
Return the opposite Grid relative to this ChargeAgent's Agent::Type.
Implemented in LangmuirCore::HoleAgent, and LangmuirCore::ElectronAgent.
|
pure virtual |
Return the opposite ChargeAgent type relative to this ChargeAgent.
Implemented in LangmuirCore::HoleAgent, and LangmuirCore::ElectronAgent.
int LangmuirCore::ChargeAgent::pathlength | ( | ) |
Number of sites ChargeAgent has traversed.
bool LangmuirCore::ChargeAgent::removed | ( | ) |
True if decideFuture removed the charge from the grid.
void LangmuirCore::ChargeAgent::setOpenCLID | ( | int | id | ) |
Set the ChargeAgent OpenCL identifier.
void LangmuirCore::ChargeAgent::setRemoved | ( | const bool & | status = true | ) |
Set the removed status of this ChargeAgent.
|
protected |
Charge of ChargeAgent (in units of e)
|
protected |
The difference in Coulomb potential between ChargeAgent::m_site and ChargeAgent::m_fSite.
|
protected |
The Grid the ChargeAgent lives in.
|
protected |
Number of steps ChargeAgent as been in existance.
|
protected |
The index of the Charge in the OpenCL vectors (see OpenClHelper)
|
protected |
Number of grid spaces ChargeAgent has moved.
|
protected |
Removed status of ChargeAgent.