Langmuir
Simulation
|
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... | |
A struct to store all simulation options.
To add new variables, follow these steps:
|
inline |
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 |
for SimulationParameters::simulationType == "solarcell", multiply SimulationParameters::sourceRate by (Grid::xyPlaneArea)/(SimulationParameters::sourceScaleArea); if <= 0, does not scale rate
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