Langmuir
Simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
simulation.h
Go to the documentation of this file.
1 #ifndef SIMULATION_H
2 #define SIMULATION_H
3 
4 #include <QObject>
5 
6 namespace LangmuirCore
7 {
8 
9 class World;
10 class Grid;
11 class Agent;
12 class Potential;
13 class DrainAgent;
14 class SourceAgent;
15 class ChargeAgent;
16 struct SimulationParameters;
17 
21 class Simulation : public QObject
22 {
23 private:
24  Q_OBJECT
25  Q_DISABLE_COPY(Simulation)
26 
27 public:
33  Simulation(World &world, QObject *parent = 0);
34 
38  virtual ~Simulation();
39 
44  virtual void performIterations(int nIterations);
45 
46 protected:
47 
51  void performRecombinations();
52 
56  void performInjections();
57 
61  void balanceCharges();
62 
70  void nextTick();
71 
76 
85 
90 };
91 
92 }
93 
94 #endif
void nextTick()
Remove charges from the simulation.
void balanceCharges()
Try to use the sources to keep the number of ChargeAgents balanced
static void chargeAgentCoulombInteractionQtConcurrentGPU(ChargeAgent *chargeAgent)
A method needed to call ChargeAgent::coulombGPU() in parallel.
void performRecombinations()
Recombine holes and electrons (in solarcell simulations only)
A class to hold all objects in a simulation.
Definition: world.h:51
void performInjections()
Tell sources to inject charges.
World & m_world
Reference to World object.
Definition: simulation.h:89
Simulation(World &world, QObject *parent=0)
Create a Simulation.
A class to represent moving charged particles.
Definition: chargeagent.h:13
static void chargeAgentCoulombInteractionQtConcurrentCPU(ChargeAgent *chargeAgent)
A method needed to call ChargeAgent::coulombCPU() in parallel.
Definition: agent.h:12
virtual ~Simulation()
Destroy the Simulation.
virtual void performIterations(int nIterations)
simulate for a set number of steps
A class to orchestrate the calculation.
Definition: simulation.h:21