10 struct SimulationParameters;
void completeTick()
Perform action, called after decideFuture.
void chooseFuture()
Propose a random site to move to.
A class that abstractly represents an object that can occupy grid sites.
Definition: agent.h:24
ChargeAgent(Agent::Type getType, World &world, Grid &grid, int site, QObject *parent=0)
Construct charge.
bool m_removed
Removed status of ChargeAgent.
Definition: chargeagent.h:124
int m_lifetime
Number of steps ChargeAgent as been in existance.
Definition: chargeagent.h:127
A class to represent moving negative charges.
Definition: chargeagent.h:143
Grid & getGrid()
Get the grid this ChargeAgent exists in.
virtual Grid & otherGrid()
Return other Grid.
A class to hold Agents, calculate their positions, and store the background potential.
Definition: cubicgrid.h:35
double coulombInteraction()
Perform coulombCPU() or coulombGPU()
virtual Grid & otherGrid()
Return other Grid.
Type
An identifier for the type of Agent.
Definition: agent.h:33
void compareCoulomb()
compare results for CPU and GPU Coulomb (assumes kernel was called)
int m_charge
Charge of ChargeAgent (in units of e)
Definition: chargeagent.h:121
virtual double bindingPotential(int site)=0
Calculate the exciton binding energy.
void coulombGPU()
Retrieve the Coulomb potential from the GPU
virtual ~ChargeAgent()
Destroy charge.
int charge()
Get the charge of the ChargeAgent.
A class to hold all objects in a simulation.
Definition: world.h:51
Type getType() const
Get Agent::Type enum.
Definition: agent.h:153
int lifetime()
Number of steps ChargeAgent has existed.
HoleAgent(World &world, int site, QObject *parent=0)
Construct HoleAgent.
void decideFuture()
Decide what should happen, called after chooseFuture.
virtual double bindingPotential(int site)
Calculate Exciton Binding Energy.
void setRemoved(const bool &status=true)
Set the removed status of this ChargeAgent.
A class to represent moving charged particles.
Definition: chargeagent.h:13
A class to represent moving positive charges.
Definition: chargeagent.h:172
int pathlength()
Number of sites ChargeAgent has traversed.
Grid & m_grid
The Grid the ChargeAgent lives in.
Definition: chargeagent.h:133
virtual Agent::Type otherType()
Return other Agent::Type.
bool removed()
True if decideFuture removed the charge from the grid.
int getOpenCLID()
Get the ChargeAgent OpenCL identifier.
ElectronAgent(World &world, int site, QObject *parent=0)
Construct ElectronAgent.
void setOpenCLID(int id)
Set the ChargeAgent OpenCL identifier.
void coulombCPU()
Calculate the Coulomb potential on the CPU.
int m_openClID
The index of the Charge in the OpenCL vectors (see OpenClHelper)
Definition: chargeagent.h:136
virtual double bindingPotential(int site)
Calculate Exciton Binding Energy.
virtual Grid & otherGrid()=0
Return the opposite Grid relative to this ChargeAgent's Agent::Type.
virtual Agent::Type otherType()=0
Return the opposite ChargeAgent type relative to this ChargeAgent.
virtual Agent::Type otherType()
Return other Agent::Type.
int m_pathlength
Number of grid spaces ChargeAgent has moved.
Definition: chargeagent.h:130
double m_de
The difference in Coulomb potential between ChargeAgent::m_site and ChargeAgent::m_fSite.
Definition: chargeagent.h:139