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

A struct to store all simulation options. More...

#include <parameters.h>

Public Member Functions

 SimulationParameters ()
 

Public Attributes

QString simulationType
 tells Langmuir how to set up the sources and drains More...
 
quint64 randomSeed
 seed the random number generator, if negative, uses the current time (making seperate runs random) More...
 
qint32 gridZ
 the number of sites per layer, at least one More...
 
qint32 gridY
 the number of sites along the device width, at least one More...
 
qint32 gridX
 the number of sites along the device length, at least one More...
 
bool coulombCarriers
 turn on Coulomb interactions between ChargeAgents More...
 
qreal coulombGaussianSigma
 multiply Coulomb terms by erf[r/(sigma sqrt[2])]; nothing happens if its zero More...
 
qint32 defectsCharge
 the charge of defect sites More...
 
qint32 outputXyz
 output trajectory file (if n < 0, only at the end; if n == 0, never; if n > 0, every n * iterations.print steps) More...
 
bool outputXyzE
 output electrons in trajectory file (ignored if outputXyz is off) More...
 
bool outputXyzH
 output holes in trajectory file (ignored if outputXyz is off) More...
 
bool outputXyzD
 output defects in trajectory file (ignored if outputXyz is off) More...
 
bool outputXyzT
 output traps in trajectory file (ignored if outputXyz is off) More...
 
qint32 outputXyzMode
 output mode for xyz file (if 0, particle count varies; if 1, particle count is constant using "phantom particles") More...
 
bool outputIdsOnDelete
 output carrier lifetime and pathlength when they are deleted More...
 
qint32 outputCoulomb
 output coulomb energy for the entire grid (if n < 0, only at the end; if n == 0, never; if n > 0, every n * iterations.print steps) More...
 
qint32 outputStepChk
 output a checkpoint file every this * iterationsPrint More...
 
bool outputChkTrapPotential
 output trap potentials in checkpoint files More...
 
bool outputPotential
 output grid potential at the start of the simulation, includes the trap potential More...
 
bool outputIsOn
 if false, produce no output (useful for LangmuirView) More...
 
bool imageDefects
 output images of defects More...
 
bool imageTraps
 output images of defects More...
 
qint32 imageCarriers
 output images of carriers (if n < 0, only at the end; if n == 0, never; if n > 0, every n * iterations.print steps) More...
 
qint32 iterationsPrint
 if Langmuir, how often to output; if LangmuirView, how many steps between rendering More...
 
qint32 iterationsReal
 number of simulation steps after equilibration More...
 
qint32 outputPrecision
 number of significant figures used for doubles in output More...
 
qint32 outputWidth
 width of columns in output, ignored in certain files, like trajectory files More...
 
QString outputStub
 the stub to use when naming output files More...
 
qreal electronPercentage
 the percent of the grid that is reserved for electrons, between 0 and 1 More...
 
qreal holePercentage
 the percent of the grid that is reserved for holes, between 0 and 1 More...
 
qreal seedCharges
 if true, place charges randomly before the simulation starts More...
 
qreal defectPercentage
 the percent of the grid that is reserved for electrons, between 0 and 1 More...
 
qreal trapPercentage
 the percent of the grid that is reserved for traps, between 0 and 1 More...
 
qreal trapPotential
 the potential of traps More...
 
qreal gaussianStdev
 the standard deviation of trap sites More...
 
qreal seedPercentage
 the percent of the traps to be placed and grown upon to form islands More...
 
qreal voltageRight
 the potential on the right side of the grid, used in setting up an electric field More...
 
qreal voltageLeft
 the potential on the left side of the grid, used in setting up an electric field More...
 
qreal excitonBinding
 the energy change (eV) when a hole/electron pair goes from the same site to adjacent sites More...
 
qreal temperatureKelvin
 the temperature used in the boltzmann factor More...
 
qreal sourceRate
 the rate at which all sources inject charges More...
 
qreal eSourceLRate
 the rate at which the left electron source injects charges (overrides default) More...
 
qreal eSourceRRate
 the rate at which the right electron source injects charges (overrides default) More...
 
qreal hSourceLRate
 the rate at which the left hole source injects charges (overrides default) More...
 
qreal hSourceRRate
 the rate at which the right hole source injects charges (overrides default) More...
 
qreal generationRate
 the rate at which the exciton source injects charges (overrides default) More...
 
bool balanceCharges
 if true, try to keep the number of charges in the simulation balanced More...
 
qreal drainRate
 the rate at which all drains accept charges (default, used when eDrainL, etc. are < 0) More...
 
qreal eDrainLRate
 the rate at which the left electron drain accepts charges (overrides default) More...
 
qreal eDrainRRate
 the rate at which the right electron drain accepts charges (overrides default) More...
 
qreal hDrainLRate
 the rate at which the left hole drain accepts charges (overrides default) More...
 
qreal hDrainRRate
 the rate at which the right hole drain accepts charges (overrides default) More...
 
bool useOpenCL
 if true, try to use OpenCL to speed up Coulomb interaction calculations More...
 
qint32 workX
 the x size of OpenCL 3DRange kernel work groups - only needed if using SimulationParameters::outputCoulomb More...
 
qint32 workY
 the y size of OpenCL 3DRange kernel work groups - only needed if using SimulationParameters::outputCoulomb More...
 
qint32 workZ
 the z size of OpenCL 3DRange kernel work groups - only needed if using SimulationParameters::outputCoulomb More...
 
qint32 workSize
 the size of OpenCL 1DRange kernel work groups More...
 
qint32 openclThreshold
 the minimum number of charges that must be present to use OpenCL More...
 
qint32 openclDeviceID
 the device to choose if there are multiple More...
 
qreal boltzmannConstant
 physical constant, the boltzmann constant More...
 
qreal dielectricConstant
 physical constant, the dielectic constant More...
 
qreal elementaryCharge
 physical constant, the elementary charge More...
 
qreal permittivitySpace
 physical constant, the permittivity of free spece More...
 
qreal gridFactor
 size constant, the size associated with grid sites (~1nm) More...
 
qint32 electrostaticCutoff
 the cut off for Coulomb interations More...
 
qreal electrostaticPrefactor
 a compilation of physical constants More...
 
qreal inverseKT
 a compilation of physical constants More...
 
bool okCL
 if true, OpenCL can be used on this platform More...
 
quint32 currentStep
 the current step of the simulation More...
 
QDateTime simulationStart
 the time this simulation started More...
 
qint32 hoppingRange
 the number of sites away from a given site used when calculating neighboring sites More...
 
qreal slopeZ
 slope of potential along z direction when there are multiple layers (as if there were a gate electrode) More...
 
bool sourceMetropolis
 if true, use an energy change (source potential and site) and metropolis criterion to calculate injection probability for hole and electron sources (not exciton sources) More...
 
bool sourceCoulomb
 if true, use the Coulomb + Image interaction when calcualting energy change for injection More...
 
qreal recombinationRate
 the rate at which holes and electrons can combine when they sit upon one another More...
 
qint32 recombinationRange
 the number of sites to consider when performing recombinations (0 means same-site, 1 means one-site away and same-site) More...
 
bool outputIdsOnEncounter
 output carrier lifetime and pathlength when holes and electrons encounter one another More...
 
qreal sourceScaleArea
 for SimulationParameters::simulationType == "solarcell", multiply SimulationParameters::sourceRate by (Grid::xyPlaneArea)/(SimulationParameters::sourceScaleArea); if <= 0, does not scale rate More...
 
qint32 maxThreads
 max threads allowed for QThreadPool - if its <= 0 then the QThread::idealThreadCount is used; note that Qt ignores PBS and SGE so when this isn't set Qt will use all the cores on a node More...
 

Detailed Description

A struct to store all simulation options.

To add new variables, follow these steps:

Constructor & Destructor Documentation

LangmuirCore::SimulationParameters::SimulationParameters ( )
inline

Member Data Documentation

bool LangmuirCore::SimulationParameters::balanceCharges

if true, try to keep the number of charges in the simulation balanced

qreal LangmuirCore::SimulationParameters::boltzmannConstant

physical constant, the boltzmann constant

bool LangmuirCore::SimulationParameters::coulombCarriers

turn on Coulomb interactions between ChargeAgents

qreal LangmuirCore::SimulationParameters::coulombGaussianSigma

multiply Coulomb terms by erf[r/(sigma sqrt[2])]; nothing happens if its zero

quint32 LangmuirCore::SimulationParameters::currentStep

the current step of the simulation

qreal LangmuirCore::SimulationParameters::defectPercentage

the percent of the grid that is reserved for electrons, between 0 and 1

qint32 LangmuirCore::SimulationParameters::defectsCharge

the charge of defect sites

qreal LangmuirCore::SimulationParameters::dielectricConstant

physical constant, the dielectic constant

qreal LangmuirCore::SimulationParameters::drainRate

the rate at which all drains accept charges (default, used when eDrainL, etc. are < 0)

qreal LangmuirCore::SimulationParameters::eDrainLRate

the rate at which the left electron drain accepts charges (overrides default)

qreal LangmuirCore::SimulationParameters::eDrainRRate

the rate at which the right electron drain accepts charges (overrides default)

qreal LangmuirCore::SimulationParameters::electronPercentage

the percent of the grid that is reserved for electrons, between 0 and 1

qint32 LangmuirCore::SimulationParameters::electrostaticCutoff

the cut off for Coulomb interations

qreal LangmuirCore::SimulationParameters::electrostaticPrefactor

a compilation of physical constants

qreal LangmuirCore::SimulationParameters::elementaryCharge

physical constant, the elementary charge

qreal LangmuirCore::SimulationParameters::eSourceLRate

the rate at which the left electron source injects charges (overrides default)

qreal LangmuirCore::SimulationParameters::eSourceRRate

the rate at which the right electron source injects charges (overrides default)

qreal LangmuirCore::SimulationParameters::excitonBinding

the energy change (eV) when a hole/electron pair goes from the same site to adjacent sites

qreal LangmuirCore::SimulationParameters::gaussianStdev

the standard deviation of trap sites

qreal LangmuirCore::SimulationParameters::generationRate

the rate at which the exciton source injects charges (overrides default)

qreal LangmuirCore::SimulationParameters::gridFactor

size constant, the size associated with grid sites (~1nm)

qint32 LangmuirCore::SimulationParameters::gridX

the number of sites along the device length, at least one

qint32 LangmuirCore::SimulationParameters::gridY

the number of sites along the device width, at least one

qint32 LangmuirCore::SimulationParameters::gridZ

the number of sites per layer, at least one

qreal LangmuirCore::SimulationParameters::hDrainLRate

the rate at which the left hole drain accepts charges (overrides default)

qreal LangmuirCore::SimulationParameters::hDrainRRate

the rate at which the right hole drain accepts charges (overrides default)

qreal LangmuirCore::SimulationParameters::holePercentage

the percent of the grid that is reserved for holes, between 0 and 1

qint32 LangmuirCore::SimulationParameters::hoppingRange

the number of sites away from a given site used when calculating neighboring sites

qreal LangmuirCore::SimulationParameters::hSourceLRate

the rate at which the left hole source injects charges (overrides default)

qreal LangmuirCore::SimulationParameters::hSourceRRate

the rate at which the right hole source injects charges (overrides default)

qint32 LangmuirCore::SimulationParameters::imageCarriers

output images of carriers (if n < 0, only at the end; if n == 0, never; if n > 0, every n * iterations.print steps)

bool LangmuirCore::SimulationParameters::imageDefects

output images of defects

bool LangmuirCore::SimulationParameters::imageTraps

output images of defects

qreal LangmuirCore::SimulationParameters::inverseKT

a compilation of physical constants

qint32 LangmuirCore::SimulationParameters::iterationsPrint

if Langmuir, how often to output; if LangmuirView, how many steps between rendering

qint32 LangmuirCore::SimulationParameters::iterationsReal

number of simulation steps after equilibration

qint32 LangmuirCore::SimulationParameters::maxThreads

max threads allowed for QThreadPool - if its <= 0 then the QThread::idealThreadCount is used; note that Qt ignores PBS and SGE so when this isn't set Qt will use all the cores on a node

bool LangmuirCore::SimulationParameters::okCL

if true, OpenCL can be used on this platform

qint32 LangmuirCore::SimulationParameters::openclDeviceID

the device to choose if there are multiple

qint32 LangmuirCore::SimulationParameters::openclThreshold

the minimum number of charges that must be present to use OpenCL

bool LangmuirCore::SimulationParameters::outputChkTrapPotential

output trap potentials in checkpoint files

qint32 LangmuirCore::SimulationParameters::outputCoulomb

output coulomb energy for the entire grid (if n < 0, only at the end; if n == 0, never; if n > 0, every n * iterations.print steps)

bool LangmuirCore::SimulationParameters::outputIdsOnDelete

output carrier lifetime and pathlength when they are deleted

bool LangmuirCore::SimulationParameters::outputIdsOnEncounter

output carrier lifetime and pathlength when holes and electrons encounter one another

bool LangmuirCore::SimulationParameters::outputIsOn

if false, produce no output (useful for LangmuirView)

bool LangmuirCore::SimulationParameters::outputPotential

output grid potential at the start of the simulation, includes the trap potential

qint32 LangmuirCore::SimulationParameters::outputPrecision

number of significant figures used for doubles in output

qint32 LangmuirCore::SimulationParameters::outputStepChk

output a checkpoint file every this * iterationsPrint

QString LangmuirCore::SimulationParameters::outputStub

the stub to use when naming output files

qint32 LangmuirCore::SimulationParameters::outputWidth

width of columns in output, ignored in certain files, like trajectory files

qint32 LangmuirCore::SimulationParameters::outputXyz

output trajectory file (if n < 0, only at the end; if n == 0, never; if n > 0, every n * iterations.print steps)

bool LangmuirCore::SimulationParameters::outputXyzD

output defects in trajectory file (ignored if outputXyz is off)

bool LangmuirCore::SimulationParameters::outputXyzE

output electrons in trajectory file (ignored if outputXyz is off)

bool LangmuirCore::SimulationParameters::outputXyzH

output holes in trajectory file (ignored if outputXyz is off)

qint32 LangmuirCore::SimulationParameters::outputXyzMode

output mode for xyz file (if 0, particle count varies; if 1, particle count is constant using "phantom particles")

bool LangmuirCore::SimulationParameters::outputXyzT

output traps in trajectory file (ignored if outputXyz is off)

qreal LangmuirCore::SimulationParameters::permittivitySpace

physical constant, the permittivity of free spece

quint64 LangmuirCore::SimulationParameters::randomSeed

seed the random number generator, if negative, uses the current time (making seperate runs random)

qint32 LangmuirCore::SimulationParameters::recombinationRange

the number of sites to consider when performing recombinations (0 means same-site, 1 means one-site away and same-site)

qreal LangmuirCore::SimulationParameters::recombinationRate

the rate at which holes and electrons can combine when they sit upon one another

qreal LangmuirCore::SimulationParameters::seedCharges

if true, place charges randomly before the simulation starts

qreal LangmuirCore::SimulationParameters::seedPercentage

the percent of the traps to be placed and grown upon to form islands

QDateTime LangmuirCore::SimulationParameters::simulationStart

the time this simulation started

QString LangmuirCore::SimulationParameters::simulationType

tells Langmuir how to set up the sources and drains

qreal LangmuirCore::SimulationParameters::slopeZ

slope of potential along z direction when there are multiple layers (as if there were a gate electrode)

bool LangmuirCore::SimulationParameters::sourceCoulomb

if true, use the Coulomb + Image interaction when calcualting energy change for injection

bool LangmuirCore::SimulationParameters::sourceMetropolis

if true, use an energy change (source potential and site) and metropolis criterion to calculate injection probability for hole and electron sources (not exciton sources)

qreal LangmuirCore::SimulationParameters::sourceRate

the rate at which all sources inject charges

qreal LangmuirCore::SimulationParameters::sourceScaleArea
qreal LangmuirCore::SimulationParameters::temperatureKelvin

the temperature used in the boltzmann factor

qreal LangmuirCore::SimulationParameters::trapPercentage

the percent of the grid that is reserved for traps, between 0 and 1

qreal LangmuirCore::SimulationParameters::trapPotential

the potential of traps

bool LangmuirCore::SimulationParameters::useOpenCL

if true, try to use OpenCL to speed up Coulomb interaction calculations

qreal LangmuirCore::SimulationParameters::voltageLeft

the potential on the left side of the grid, used in setting up an electric field

qreal LangmuirCore::SimulationParameters::voltageRight

the potential on the right side of the grid, used in setting up an electric field

qint32 LangmuirCore::SimulationParameters::workSize

the size of OpenCL 1DRange kernel work groups

qint32 LangmuirCore::SimulationParameters::workX

the x size of OpenCL 3DRange kernel work groups - only needed if using SimulationParameters::outputCoulomb

qint32 LangmuirCore::SimulationParameters::workY

the y size of OpenCL 3DRange kernel work groups - only needed if using SimulationParameters::outputCoulomb

qint32 LangmuirCore::SimulationParameters::workZ

the z size of OpenCL 3DRange kernel work groups - only needed if using SimulationParameters::outputCoulomb


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