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

A class to orchestrate the calculation. More...

#include <simulation.h>

Public Member Functions

 Simulation (World &world, QObject *parent=0)
 Create a Simulation. More...
 
virtual ~Simulation ()
 Destroy the Simulation. More...
 
virtual void performIterations (int nIterations)
 simulate for a set number of steps More...
 

Protected Member Functions

void performRecombinations ()
 Recombine holes and electrons (in solarcell simulations only) More...
 
void performInjections ()
 Tell sources to inject charges. More...
 
void balanceCharges ()
 Try to use the sources to keep the number of ChargeAgents balanced More...
 
void nextTick ()
 Remove charges from the simulation. More...
 

Static Protected Member Functions

static void chargeAgentCoulombInteractionQtConcurrentCPU (ChargeAgent *chargeAgent)
 A method needed to call ChargeAgent::coulombCPU() in parallel. More...
 
static void chargeAgentCoulombInteractionQtConcurrentGPU (ChargeAgent *chargeAgent)
 A method needed to call ChargeAgent::coulombGPU() in parallel. More...
 

Protected Attributes

Worldm_world
 Reference to World object. More...
 

Detailed Description

A class to orchestrate the calculation.

Constructor & Destructor Documentation

LangmuirCore::Simulation::Simulation ( World world,
QObject *  parent = 0 
)

Create a Simulation.

Parameters
worldreference to World Object
parentQObject this belongs to
virtual LangmuirCore::Simulation::~Simulation ( )
virtual

Destroy the Simulation.

Member Function Documentation

void LangmuirCore::Simulation::balanceCharges ( )
protected

Try to use the sources to keep the number of ChargeAgents balanced

static void LangmuirCore::Simulation::chargeAgentCoulombInteractionQtConcurrentCPU ( ChargeAgent chargeAgent)
staticprotected

A method needed to call ChargeAgent::coulombCPU() in parallel.

static void LangmuirCore::Simulation::chargeAgentCoulombInteractionQtConcurrentGPU ( ChargeAgent chargeAgent)
staticprotected

A method needed to call ChargeAgent::coulombGPU() in parallel.

Does not perform GPU calcuations. The coulomb kernel in OpenCLHelper is used to do that. This function copies the GPU results from OpenCLHelper to each ChargeAgent. It is assumed that the coulomb kernel was launched beforehand.

void LangmuirCore::Simulation::nextTick ( )
protected

Remove charges from the simulation.

Charges are removed only if a DrainAgent sets their removed status to True. This function will also output carrier statistics if output.id.on.delete is set.

void LangmuirCore::Simulation::performInjections ( )
protected

Tell sources to inject charges.

virtual void LangmuirCore::Simulation::performIterations ( int  nIterations)
virtual

simulate for a set number of steps

Parameters
nIterationsthe number of steps to simulate
void LangmuirCore::Simulation::performRecombinations ( )
protected

Recombine holes and electrons (in solarcell simulations only)

Member Data Documentation

World& LangmuirCore::Simulation::m_world
protected

Reference to World object.


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