diff --git a/.gitmodules b/.gitmodules index 364bfef..d8ea186 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "KMC_Lattice"] path = KMC_Lattice url = https://github.com/MikeHeiber/KMC_Lattice +[submodule "googletest"] + path = googletest + url = https://github.com/google/googletest diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..65cac02 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,47 @@ +# Copyright (c) 2018 Michael C. Heiber +# This source file is part of the Excimontec project, which is subject to the MIT License. +# For more information, see the LICENSE file that accompanies this software. +# The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec +# Travis CI continuous integration build script + +language: cpp +os: linux +dist: trusty +sudo: required + +compiler: + - gcc + +env: + - OPTIONS="GCC_VERSION=5 && MPI=openmpi && TARGET=test_coverage" + - OPTIONS="GCC_VERSION=4.7 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test" + - OPTIONS="GCC_VERSION=4.8 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=4.8 && MPI=openmpi && TARGET=test" + - OPTIONS="GCC_VERSION=4.9 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=4.9 && MPI=openmpi && TARGET=test" + - OPTIONS="GCC_VERSION=5 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=5 && MPI=openmpi && TARGET=test" + - OPTIONS="GCC_VERSION=6 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=6 && MPI=openmpi && TARGET=test" + - OPTIONS="GCC_VERSION=7 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=7 && MPI=openmpi && TARGET=test" + - OPTIONS="GCC_VERSION=8 && MPI=mpich2 && TARGET=test" + - OPTIONS="GCC_VERSION=8 && MPI=openmpi && TARGET=test" + +before_install: + - eval "${OPTIONS}" + - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + - sudo apt-get update -qq + - sudo apt-get install -qq gcc-$GCC_VERSION g++-$GCC_VERSION -y + - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$GCC_VERSION 60 --slave /usr/bin/g++ g++ /usr/bin/g++-$GCC_VERSION + - sudo update-alternatives --config gcc + - gcc --version + - if [[ "$MPI" = mpich2 ]]; then sudo apt-get -y install -qq mpich2 libmpich2-dev; fi + - if [[ "$MPI" = openmpi ]]; then sudo apt-get -y install -qq openmpi-bin libopenmpi-dev; fi + - if [[ "$TARGET" = test_coverage ]]; then pip install --user cpp-coveralls; fi + +script: + - make -j10 $TARGET && travis_wait ./test/Excimontec_tests.exe + - if [[ "$TARGET" = test_coverage ]]; then coveralls --include src --exclude "googletest/*" --gcov-options '\-lp'; fi + - if [[ "$TARGET" = test ]]; then make -j10 && mpiexec -n 4 ./Excimontec.exe parameters_default.txt; fi diff --git a/Doxyfile b/Doxyfile index b41c6c0..73af5fe 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,13 +38,13 @@ PROJECT_NAME = Excimontec # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v1.0-beta.3 +PROJECT_NUMBER = v1.0-beta.4 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = "An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more" +PROJECT_BRIEF = "An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more." # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -58,7 +58,7 @@ PROJECT_LOGO = # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = Z:\Software_Projects\Local\Excimontec\docs +OUTPUT_DIRECTORY = docs # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -790,7 +790,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = Z:\Software_Projects\Local\Excimontec +INPUT = . # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -873,7 +873,9 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = +EXCLUDE = googletest \ + KMC_Lattice \ + test # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded diff --git a/KMC_Lattice b/KMC_Lattice index 488dd05..692836b 160000 --- a/KMC_Lattice +++ b/KMC_Lattice @@ -1 +1 @@ -Subproject commit 488dd056651ca266866b8e1a1fc8a5e607bcdd86 +Subproject commit 692836b51d8c9191a666668ef2156308ed19ca49 diff --git a/README.md b/README.md index c286c7e..02b7c5e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,17 @@ # Excimontec -The goal of this project is to develop an open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more. -The software is being developed in modern C++ and is optimized for efficient execution on high performance computing clusters using MPI. -This software package uses object-oriented design and extends the [KMC_Lattice](https://github.com/MikeHeiber/KMC_Lattice) framework. + +Kinetic Monte Carlo simulations are a powerful computational tool that have been used in concert with experiments and more detailed theoretical methods to understand and optimize organic semiconductor materials and devices. +However, despite over 30 years of applying KMC tools to organic semiconductors, no widespread or standardized software tools have taken hold in the community. +Instead, many research groups around the world have maintained private codebases of varying complexity, efficiency, and reliability. +As a result, there have been large barriers to entry for new researchers and a lot of repeated effort throughout the community that would be much better off applied to pushing the capabilities of the technique and further refining the physical models. + +Excimontec represents an honest effort to bring the community together around a well-tested, optimized, reliable, and accessible open-source tool for performing KMC simulations of organic electronic devices. The software is being developed in modern C++ and is optimized for efficient execution on high performance computing clusters using MPI. +This software package uses object-oriented design and extends the [KMC_Lattice](https://github.com/MikeHeiber/KMC_Lattice) framework. #### Major Features: - Adjustable periodic boundary conditions in all three directions allow users to perform 1D, 2D, or 3D simulations. - Choose between several film architectures, including a neat film, bilayer film, or random blend film. -- Import bulk heterojunction morphologies generated by [Ising_OPV v3.2 and v4](https://github.com/MikeHeiber/Ising_OPV). +- Import bulk heterojunction morphologies generated by [Ising_OPV](https://github.com/MikeHeiber/Ising_OPV) v3.2 and v4. - Donor and acceptor materials can take on an uncorrelated Gaussian DOS, a correlated Gaussian DOS with different correlation functions, or an uncorrelated exponential DOS model. - Dynamics test simulations can be performed to generate exciton and charge carrier density transients that can be used to model exciton dissociation, charge carrier separation, and charge carrier recombination kinetics. - Time-of-flight charge transport simulations of electrons or holes can be performed on neat, random blend, or bulk heterojunction blend films. @@ -18,7 +23,10 @@ This software package uses object-oriented design and extends the [KMC_Lattice]( - Choose between several KMC algorithms (first reaction method, selective recalculation method, or full recalculation method). ## Current Status -The current release (Excimontec v1.0-beta.3) is built with KMC_Lattice v2.0-beta.3 and allows the user to perform several simulation tests relevant for OPV and OLED devices. + +The current release, Excimontec +[![GitHub (pre-)release](https://img.shields.io/github/release/MikeHeiber/Excimontec/all.svg?style=flat-square)](https://github.com/MikeHeiber/Excimontec/releases) +, is built with KMC_Lattice [![GitHub (pre-)release](https://img.shields.io/github/release/MikeHeiber/KMC_Lattice/all.svg?style=flat-square)](https://github.com/MikeHeiber/KMC_Lattice/releases) and allows the user to perform several simulation tests relevant for OPV and OLED devices. All major planned features that are to be included in v1.0 are now implemented and have undergone preliminary testing. However, this software tool is still under development, and as such, there may still be bugs that need to be squashed. Please report any bugs or submit feature requests in the [Issues](https://github.com/MikeHeiber/Excimontec/issues) section. @@ -26,37 +34,54 @@ Please report any bugs or submit feature requests in the [Issues](https://github Major releases and other significant developments will be announced on the Excimontec: General News mailing list. If you are interested in keeping up to date with the development and application of this tool, please subscribe at the following link: [Subscribe Here](http://eepurl.com/dis9AT) -Travis CI continuous integration status: +#### Continuous Integration and Testing Status: -Excimontec is currently being tested on Ubuntu v14.04 with the GCC compiler (versions 4.7, 4.8, 4.9, 5, 6, and 7) and on both OpenMPI v1.6.5 and MPICH v3.04. +Excimontec is currently being tested on [Ubuntu](https://www.ubuntu.com/) v14.04 with the [GCC compiler](https://gcc.gnu.org/) (versions 4.7, 4.8, 4.9, 5, 6, 7, and 8) and on both [Open MPI](http://www.open-mpi.org/) v1.6.5 and [MPICH](http://www.mpich.org/) v3.04 using [Travis CI](https://travis-ci.com/). -Master branch: [![Build Status](https://travis-ci.org/MikeHeiber/Excimontec.svg?branch=master)](https://travis-ci.org/MikeHeiber/Excimontec) +| Branch | Status | +| :------: | ------ | +| Master | [![Build Status](https://img.shields.io/travis/MikeHeiber/Excimontec/master.svg?style=for-the-badge)](https://travis-ci.org/MikeHeiber/Excimontec) | +| Development | [![Build Status](https://img.shields.io/travis/MikeHeiber/Excimontec/development.svg?style=for-the-badge)](https://travis-ci.org/MikeHeiber/Excimontec) | -Development branch: [![Build Status](https://travis-ci.org/MikeHeiber/Excimontec.svg?branch=development)](https://travis-ci.org/MikeHeiber/Excimontec) +Code is being tested using [googletest](https://github.com/google/googletest) with test coverage assessment by [Coveralls](https://coveralls.io/). -## Work Together +| Branch | Status | +| :------: | ------ | +| Master | [![Coveralls github branch](https://img.shields.io/coveralls/github/MikeHeiber/Excimontec/master.svg?style=for-the-badge)](https://coveralls.io/github/MikeHeiber/Excimontec?branch=master) | +| Development | [![Coveralls github branch](https://img.shields.io/coveralls/github/MikeHeiber/Excimontec/development.svg?style=for-the-badge)](https://coveralls.io/github/MikeHeiber/Excimontec?branch=development) | + +## Contact If you would like to contribute to the development of this project or would like some help in using the tool for your research, please contact me (heiber@mailaps.org) to discuss a collaboration. You can check out my KMC research and other work on [Researchgate](https://www.researchgate.net/profile/Michael_Heiber). -Have a quick question or want to chat about Excimontec? Join the dicussion on Gitter: [![Gitter chat](https://badges.gitter.im/Excimontec.png)](https://gitter.im/Excimontec) +Have a quick question or want to chat about Excimontec? Join the discussion on Gitter: [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=for-the-badge) +](https://gitter.im/Excimontec) ## How to try Excimontec? -#### Building an Executable +#### Building and Testing the Executable This software tool uses [Message Passing Interface (MPI)](https://computing.llnl.gov/tutorials/mpi/) to utilize parallel computing power. As a result, using Excimontec requires that an MPI library is pre-installed on your system, and the final Excitmontec executable must be built on your specific system. We cannot provide pre-built binaries for your system. Contact your HPC admin to determine the protocols for building MPI applications on your HPC system. -In many cases, the HPC system will already be configured for you, and the package comes with a default makefile that can be used with the [GCC compiler](https://gcc.gnu.org/). +In many cases, the HPC system will already be configured for you, and the package comes with a default makefile that can be used with the [GCC compiler](https://gcc.gnu.org/) or the [PGI compiler](https://www.pgroup.com/). If you wish, you can also install MPI on your own personal workstation and then build Excimontec there as well. For development and preliminary simulation tests, sometimes it is more efficient to run on your own workstation instead of an HPC system. More information about common MPI packages can be found here: -- http://www.open-mpi.org/ -- http://www.mpich.org/ -- http://mvapich.cse.ohio-state.edu/ +- Open MPI, http://www.open-mpi.org/ +- MPICH, http://www.mpich.org/ +- MVAPICH, http://mvapich.cse.ohio-state.edu/ + +Once you have an MPI library installed, to build Excimontec, copy the Excimontec directory to your machine, set it as your working directory, and run `make`. +Compilation flags have been set for GCC and PGI compilers. If you are using another compiler, you will need to edit the makefile and define your own compiler options. +Once the normal build is successful, you should test Excimontec on your own hardware using the unit and system tests provided before you use the tool. +Build the testing executable by running `make test`. +Once the test build is complete, navigate to the testing directory, and run `./Excimontec_tests.exe`. +Please report any build or testing errors in the [Issues](https://github.com/MikeHeiber/Excimontec/issues) section. #### Usage + In most cases, your HPC system will use a job scheduler to manage the computing workload. For performing Excimontec simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation. An example batch script for the [SLURM](https://slurm.schedmd.com/) job scheduling system is provided with this package (slurm_script.sh). @@ -67,11 +92,13 @@ Excimontec.exe takes one required input argument, which is the filename of the i An example parameter file is provided with this package (parameters_default.txt). For example, within the batch script, to create a simulation that runs on 10 processors, an the execution command is: -> mpiexec -n 10 Excimontec.exe parameters_default.txt + +```mpiexec -n 10 Excimontec.exe parameters_default.txt``` In this example, the parameters_default.txt file that is located in the current working directory is loaded into the Excimontec program to determine what simulation to run. #### Output + Excimontec will create a number of different output files depending which test is chosen in the parameter file: - results#.txt -- This text file will contain the results for each processor where the # will be replaced by the processor ID. - analysis_summary.txt -- When MPI is enabled, this text file will contain average final results from all of the processors. @@ -80,10 +107,13 @@ Excimontec will create a number of different output files depending which test i - ToF_transit_time_dist.txt -- When performing a time-of-flight charge transport test, the resulting polaron transit time probability distribution will be output to this file. - ToF_results.txt -- When performing a time-of-flight charge transport test, the resulting quantitative results are put into this parsable delimited results file. - Charge_extraction_map#.txt -- When performing a time-of-flight or IQE test, the x-y locations where charges are extracted from the lattice are saving into this map file. +- DOS_correlation_data#.txt -- When a correlated density of states model is enabled, data showing the statistical correlation of site energies vs. distance is output into this file. #### Data Analysis + For [Igor Pro](https://www.wavemetrics.com/) users, I am developing an open-source procedures package for loading, analyzing, and plotting data from Excimontec simulations called [Excimontec_Analysis](https://github.com/MikeHeiber/Excimontec_Analysis). This is a good starting point for managing the data generated by Excimontec, and the Igor Pro scripting environment provides a nice playground where users can perform more advanced data analysis as needed. ## For Software Developers + Public API documentation for the Excimontec package is still under development and can be viewed [here](https://mikeheiber.github.io/Excimontec/). diff --git a/docs/Thumbs.db b/docs/Thumbs.db index fc645e7..668a12a 100644 Binary files a/docs/Thumbs.db and b/docs/Thumbs.db differ diff --git a/docs/_event_8cpp.html b/docs/_event_8cpp.html deleted file mode 100644 index 657985b..0000000 --- a/docs/_event_8cpp.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -Excimontec: KMC_Lattice/Event.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
Excimontec -  v1.0-beta.3 -
-
An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Event.cpp File Reference
-
-
-
#include "Event.h"
-
-
- - - - diff --git a/docs/_event_8h.html b/docs/_event_8h.html deleted file mode 100644 index c64d6f0..0000000 --- a/docs/_event_8h.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -Excimontec: KMC_Lattice/Event.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
Excimontec -  v1.0-beta.3 -
-
An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Event.h File Reference
-
-
-
#include "Simulation.h"
-#include "Utils.h"
-#include <list>
-#include <memory>
-#include <ctime>
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  Event
 This base class contains the basic properties of a KMC simulation event and the functions needed to interact with it. More...
 
-
-
- - - - diff --git a/docs/_event_8h_source.html b/docs/_event_8h_source.html deleted file mode 100644 index c45d4c0..0000000 --- a/docs/_event_8h_source.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - -Excimontec: KMC_Lattice/Event.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
Excimontec -  v1.0-beta.3 -
-
An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Event.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the KMC_Lattice project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The KMC_Lattice project can be found on Github at https://github.com/MikeHeiber/KMC_Lattice
5 
6 #ifndef EVENT_H
7 #define EVENT_H
8 
9 #include "Simulation.h"
10 #include "Utils.h"
11 #include <list>
12 #include <memory>
13 #include <ctime>
14 
15 // Forward declaration of the Object and Simulation classes are needed by the compiler
16 class Object;
17 class Simulation;
18 
26 class Event{
27  public:
29  virtual ~Event();
30 
32  Event();
33 
37 
45  void calculateExecutionTime(const double rate);
46 
52  Coords getDestCoords() const;
53 
56  virtual std::string getEventType() const;
57 
62  Object* getObjectPtr() const;
63 
68  Object* getObjectTargetPtr() const;
69 
73  double getExecutionTime() const;
74 
77  void setDestCoords(const Coords& coords);
78 
83  bool setExecutionTime(const double time);
84 
87  void setObjectPtr(Object* input_ptr);
88 
91  void setObjectTargetPtr(Object* input_ptr);
92 
93  protected:
94  // Variables
97  Simulation* sim_ptr = nullptr;
98  // Functions
99  private:
100  // Variables and objects
101  static const std::string event_type_base;
102  double execution_time = -1;
103  Object* object_ptr = nullptr;
104  Object* object_target_ptr = nullptr;
105  Coords coords_dest = {-1,-1,-1};
106 };
107 
108 #endif // EVENT_H
bool setExecutionTime(const double time)
Sets the execution time of the event.
Definition: Event.cpp:53
-
Object * getObjectPtr() const
Gets a pointer to the Object object that is designated as the subject of the event.
Definition: Event.cpp:41
-
void setDestCoords(const Coords &coords)
Sets the desination coordinates of the event.
Definition: Event.cpp:49
-
Coords getDestCoords() const
Gets the coordinates of the event destination site.
Definition: Event.cpp:29
-
This base class contains the basic properties of a KMC simulation event and the functions needed to i...
Definition: Event.h:26
- -
Event()
The default constructor that creates an empty Event object.
Definition: Event.cpp:17
-
Simulation * sim_ptr
The sim_ptr member variable provides a point to the Simulation object that the Event is asociated wit...
Definition: Event.h:97
-
double getExecutionTime() const
Gets the currently planned execution time of the event.
Definition: Event.cpp:33
-
Object * getObjectTargetPtr() const
Gets a pointer to the Object object that is designated as the target of the event.
Definition: Event.cpp:45
-
void calculateExecutionTime(const double rate)
Calculates and sets the execution time of the event.
Definition: Event.cpp:25
- -
void setObjectPtr(Object *input_ptr)
Sets the pointer to the Object object that is designated as the subject of the event.
Definition: Event.cpp:63
-
void setObjectTargetPtr(Object *input_ptr)
Sets the pointer to the Object object that is designated as the target of the event.
Definition: Event.cpp:67
-
virtual std::string getEventType() const
Gets the name of event class.
Definition: Event.cpp:37
-
This abstract base class contains the basic properties of a KMC simulation and the functions needed t...
Definition: Simulation.h:63
-
This simple struct contains Cartesian coordinates specified by integers x,y,z.
Definition: Utils.h:25
-
virtual ~Event()
Default virtual destructor needed by the base class.
Definition: Event.cpp:13
-
This base class contains the basic properties of a KMC simulation object and the functions needed to ...
Definition: Object.h:23
-
-
- - - - diff --git a/docs/_exciton_8cpp.html b/docs/_exciton_8cpp.html index 03d3f84..1aae9a0 100644 --- a/docs/_exciton_8cpp.html +++ b/docs/_exciton_8cpp.html @@ -5,7 +5,7 @@ -Excimontec: Exciton.cpp File Reference +Excimontec: src/Exciton.cpp File Reference @@ -30,9 +30,9 @@
Excimontec -  v1.0-beta.3 +  v1.0-beta.4
-
An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
+
An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
@@ -97,7 +97,7 @@
-
#include "KMC_Lattice/Utils.h"
-#include "KMC_Lattice/Object.h"
-#include "KMC_Lattice/Event.h"
-#include "KMC_Lattice/Simulation.h"
+
#include "Utils.h"
+#include "Object.h"
+#include "Event.h"
+#include "Simulation.h"
#include <string>

Go to the source code of this file.

@@ -104,28 +104,28 @@

Classes

class  Exciton - This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor. More...
+ This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor. More...
  class  Exciton_Creation - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
  class  Exciton_Hop - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
  class  Exciton_Recombination - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
  class  Exciton_Dissociation - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
  class  Exciton_Intersystem_Crossing - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
  class  Exciton_Exciton_Annihilation - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
  class  Exciton_Polaron_Annihilation - This class extends the Event class to create an specific type of exciton event. More...
+ This class extends the Event class to create an specific type of exciton event. More...
 
@@ -133,7 +133,7 @@
-Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the Excimontec project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec
5 
6 #ifndef EXCITON_H
7 #define EXCITON_H
8 
9 #include "KMC_Lattice/Utils.h"
10 #include "KMC_Lattice/Object.h"
11 #include "KMC_Lattice/Event.h"
12 #include "KMC_Lattice/Simulation.h"
13 #include <string>
14 
19 class Exciton : public Object{
20  public:
22  static const std::string object_type;
23 
28  Exciton(const double time, const int tag_num, const Coords& coords_start) : Object(time, tag_num, coords_start) {}
29 
31  void flipSpin(){spin_state = !spin_state;}
32 
35  std::string getObjectType() const{return object_type;}
36 
40  bool getSpin() const{return spin_state;}
41 
44  void setSpin(bool spin_state_new){spin_state = spin_state_new;}
45 
46  private:
47  bool spin_state; // false represents triplet state, true represents singlet state
48 };
49 
54 class Exciton_Creation : public Event{
55  public:
57  static const std::string event_type;
58 
61 
64  Exciton_Creation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
65 
68  std::string getEventType() const{return event_type;}
69 
70  private:
71 };
72 
77 class Exciton_Hop : public Event{
78  public:
80  static const std::string event_type;
81 
83  Exciton_Hop() : Event() {}
84 
87  Exciton_Hop(Simulation* simulation_ptr) : Event(simulation_ptr) {}
88 
93  void calculateExecutionTime(const double prefactor, const double distance, const double E_delta) {
94  double rate = prefactor*Utils::intpow(1.0 / distance, 6);
95  if (E_delta > 0) {
96  rate *= exp(-E_delta / (Utils::K_b*sim_ptr->getTemp()));
97  }
99  }
100 
106  void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta) {
107  double rate = prefactor*exp(-2.0*localization*distance);
108  if (E_delta>0) {
109  rate *= exp(-E_delta / (Utils::K_b*sim_ptr->getTemp()));
110  }
112  }
113 
116  std::string getEventType() const{return event_type;}
117 
118  private:
119 };
120 
126  public:
128  static const std::string event_type;
129 
132 
135  Exciton_Recombination(Simulation* simulation_ptr) : Event(simulation_ptr) {}
136 
139  std::string getEventType() const{return event_type;}
140 
141  private:
142 };
143 
149  public:
151  static const std::string event_type;
152 
155 
158  Exciton_Dissociation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
159 
165  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
166  double rate = prefactor*exp(-2.0*localization*distance);
167  if(E_delta>0){
168  rate *= exp(-E_delta/(Utils::K_b*sim_ptr->getTemp()));
169  }
171  }
172 
179  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta,const double reorganization){
180  double rate = (prefactor/sqrt(4.0*Utils::Pi*reorganization*Utils::K_b*sim_ptr->getTemp()))*exp(-2.0*localization*distance)*exp(-Utils::intpow(reorganization+E_delta,2)/(4.0*reorganization*Utils::K_b*sim_ptr->getTemp()));
182  }
183 
186  std::string getEventType() const{return event_type;}
187 
188  private:
189 };
190 
196  public:
198  static const std::string event_type;
199 
202 
205  Exciton_Intersystem_Crossing(Simulation* simulation_ptr) : Event(simulation_ptr) {}
206 
210  void calculateExecutionTime(const double prefactor, const double E_delta) {
211  double rate = prefactor;
212  if (E_delta>0) {
213  rate *= exp(-E_delta / (Utils::K_b*sim_ptr->getTemp()));
214  }
216  }
217 
220  std::string getEventType() const{return event_type;}
221 
222  private:
223 };
224 
230  public:
232  static const std::string event_type;
233 
236 
239  Exciton_Exciton_Annihilation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
240 
244  void calculateExecutionTime(const double prefactor, const double distance) {
245  Event::calculateExecutionTime(prefactor*Utils::intpow(1.0 / distance, 6));
246  }
247 
252  void calculateExecutionTime(const double prefactor, const double localization, const double distance) {
253  Event::calculateExecutionTime(prefactor*exp(-2.0*localization*distance));
254  }
255 
258  std::string getEventType() const { return event_type; }
259 
260  private:
261 };
262 
268  public:
270  static const std::string event_type;
271 
274 
277  Exciton_Polaron_Annihilation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
278 
282  void calculateExecutionTime(const double prefactor, const double distance) {
283  Event::calculateExecutionTime(prefactor*Utils::intpow(1.0 / distance, 6));
284  }
285 
290  void calculateExecutionTime(const double prefactor, const double localization, const double distance) {
291  Event::calculateExecutionTime(prefactor*exp(-2.0*localization*distance));
292  }
293 
296  std::string getEventType() const { return event_type; }
297 
298  private:
299 };
300 
301 #endif // EXCITON_H
Exciton_Polaron_Annihilation(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:277
+Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the Excimontec project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec
5 
6 #ifndef EXCITON_H
7 #define EXCITON_H
8 
9 #include "Utils.h"
10 #include "Object.h"
11 #include "Event.h"
12 #include "Simulation.h"
13 #include <string>
14 
19 class Exciton : public Object{
20  public:
22  static const std::string object_type;
23 
28  Exciton(const double time, const int tag_num, const Coords& coords_start) : Object(time, tag_num, coords_start) {}
29 
31  void flipSpin(){spin_state = !spin_state;}
32 
35  std::string getObjectType() const{return object_type;}
36 
40  bool getSpin() const{return spin_state;}
41 
44  void setSpin(bool spin_state_new){spin_state = spin_state_new;}
45 
46  private:
47  bool spin_state; // false represents triplet state, true represents singlet state
48 };
49 
54 class Exciton_Creation : public Event{
55  public:
57  static const std::string event_type;
58 
60  Exciton_Creation() : Event() {}
61 
64  Exciton_Creation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
65 
68  std::string getEventType() const{return event_type;}
69 
70  private:
71 };
72 
77 class Exciton_Hop : public Event{
78  public:
80  static const std::string event_type;
81 
83  Exciton_Hop() : Event() {}
84 
87  Exciton_Hop(Simulation* simulation_ptr) : Event(simulation_ptr) {}
88 
93  void calculateExecutionTime(const double prefactor, const double distance, const double E_delta) {
94  double rate = prefactor*Utils::intpow(1.0 / distance, 6);
95  if (E_delta > 0) {
96  rate *= exp(-E_delta / (Utils::K_b*sim_ptr->getTemp()));
97  }
98  Event::calculateExecutionTime(rate);
99  }
100 
106  void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta) {
107  double rate = prefactor*exp(-2.0*localization*distance);
108  if (E_delta>0) {
109  rate *= exp(-E_delta / (Utils::K_b*sim_ptr->getTemp()));
110  }
111  Event::calculateExecutionTime(rate);
112  }
113 
116  std::string getEventType() const{return event_type;}
117 
118  private:
119 };
120 
125 class Exciton_Recombination : public Event{
126  public:
128  static const std::string event_type;
129 
131  Exciton_Recombination() : Event() {}
132 
135  Exciton_Recombination(Simulation* simulation_ptr) : Event(simulation_ptr) {}
136 
139  std::string getEventType() const{return event_type;}
140 
141  private:
142 };
143 
148 class Exciton_Dissociation : public Event{
149  public:
151  static const std::string event_type;
152 
154  Exciton_Dissociation() : Event() {}
155 
158  Exciton_Dissociation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
159 
165  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
166  double rate = prefactor*exp(-2.0*localization*distance);
167  if(E_delta>0){
168  rate *= exp(-E_delta/(Utils::K_b*sim_ptr->getTemp()));
169  }
170  Event::calculateExecutionTime(rate);
171  }
172 
179  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta,const double reorganization){
180  double rate = (prefactor/sqrt(4.0*Utils::Pi*reorganization*Utils::K_b*sim_ptr->getTemp()))*exp(-2.0*localization*distance)*exp(-Utils::intpow(reorganization+E_delta,2)/(4.0*reorganization*Utils::K_b*sim_ptr->getTemp()));
181  Event::calculateExecutionTime(rate);
182  }
183 
186  std::string getEventType() const{return event_type;}
187 
188  private:
189 };
190 
195 class Exciton_Intersystem_Crossing : public Event {
196  public:
198  static const std::string event_type;
199 
202 
205  Exciton_Intersystem_Crossing(Simulation* simulation_ptr) : Event(simulation_ptr) {}
206 
210  void calculateExecutionTime(const double prefactor, const double E_delta) {
211  double rate = prefactor;
212  if (E_delta>0) {
213  rate *= exp(-E_delta / (Utils::K_b*sim_ptr->getTemp()));
214  }
215  Event::calculateExecutionTime(rate);
216  }
217 
220  std::string getEventType() const{return event_type;}
221 
222  private:
223 };
224 
229 class Exciton_Exciton_Annihilation : public Event{
230  public:
232  static const std::string event_type;
233 
236 
239  Exciton_Exciton_Annihilation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
240 
244  void calculateExecutionTime(const double prefactor, const double distance) {
245  Event::calculateExecutionTime(prefactor*Utils::intpow(1.0 / distance, 6));
246  }
247 
252  void calculateExecutionTime(const double prefactor, const double localization, const double distance) {
253  Event::calculateExecutionTime(prefactor*exp(-2.0*localization*distance));
254  }
255 
258  std::string getEventType() const { return event_type; }
259 
260  private:
261 };
262 
267 class Exciton_Polaron_Annihilation : public Event{
268  public:
270  static const std::string event_type;
271 
274 
277  Exciton_Polaron_Annihilation(Simulation* simulation_ptr) : Event(simulation_ptr) {}
278 
282  void calculateExecutionTime(const double prefactor, const double distance) {
283  Event::calculateExecutionTime(prefactor*Utils::intpow(1.0 / distance, 6));
284  }
285 
290  void calculateExecutionTime(const double prefactor, const double localization, const double distance) {
291  Event::calculateExecutionTime(prefactor*exp(-2.0*localization*distance));
292  }
293 
296  std::string getEventType() const { return event_type; }
297 
298  private:
299 };
300 
301 #endif // EXCITON_H
Exciton_Polaron_Annihilation(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:277
Exciton_Exciton_Annihilation(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:239
-
int getTemp() const
Gets the value of the temperature parameter.
Definition: Simulation.cpp:157
Exciton_Recombination()
Constructs an empty event that is uninitialized.
Definition: Exciton.h:131
static const std::string event_type
This static member variable holds the name of the event, which is "Exciton_Recombination".
Definition: Exciton.h:128
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:54
-
This base class contains the basic properties of a KMC simulation event and the functions needed to i...
Definition: Event.h:26
-
void calculateExecutionTime(const double prefactor, const double distance, const double E_delta)
Calculates and updates the execution time for the exciton hop event using the FRET hopping mechanism...
Definition: Exciton.h:93
std::string getEventType() const
Gets the event type string that denotes what type of Event class this is.
Definition: Exciton.h:186
-
Simulation * sim_ptr
The sim_ptr member variable provides a point to the Simulation object that the Event is asociated wit...
Definition: Event.h:97
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:148
Exciton_Intersystem_Crossing()
Constructs an empty event that is uninitialized.
Definition: Exciton.h:201
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:125
@@ -113,16 +109,12 @@
void setSpin(bool spin_state_new)
Sets the spin state of the exciton.
Definition: Exciton.h:44
static const std::string object_type
This static member variable holds the name of the object, which is "Exciton".
Definition: Exciton.h:22
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:267
-
void calculateExecutionTime(const double rate)
Calculates and sets the execution time of the event.
Definition: Event.cpp:25
-
void calculateExecutionTime(const double prefactor, const double E_delta)
Calculates and updates the execution time for the exciton intersystem crossing event.
Definition: Exciton.h:210
void calculateExecutionTime(const double prefactor, const double localization, const double distance)
Calculates and updates the execution time for the exciton-polaron annihilation event using the Dexter...
Definition: Exciton.h:290
static const std::string event_type
This static member variable holds the name of the event, which is "Exciton_Polaron_Annihilation".
Definition: Exciton.h:270
static const std::string event_type
This static member variable holds the name of the event, which is "Exciton_Intersystem_Crossing".
Definition: Exciton.h:198
Exciton_Creation(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:64
-
std::string getEventType() const
Gets the event type string that denotes what type of Event class this is.
Definition: Exciton.h:220
-
void calculateExecutionTime(const double prefactor, const double distance)
Calculates and updates the execution time for the exciton-polaron annihilation event using a FRET hop...
Definition: Exciton.h:282
Exciton_Creation()
Constructs an empty event that is uninitialized.
Definition: Exciton.h:60
static const std::string event_type
This static member variable holds the name of the event, which is "Exciton_Exciton_Annihilation".
Definition: Exciton.h:232
@@ -131,7 +123,6 @@
Exciton_Dissociation(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:158
Exciton_Recombination(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:135
Exciton_Intersystem_Crossing(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:205
-
This abstract base class contains the basic properties of a KMC simulation and the functions needed t...
Definition: Simulation.h:63
void calculateExecutionTime(const double prefactor, const double distance)
Calculates and updates the execution time for the exciton-exciton annihilation event using a FRET hop...
Definition: Exciton.h:244
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:77
std::string getEventType() const
Gets the event type string that denotes what type of Event class this is.
Definition: Exciton.h:258
@@ -141,17 +132,14 @@
Exciton_Hop(Simulation *simulation_ptr)
Constructs and initializes an event.
Definition: Exciton.h:87
static const std::string event_type
This static member variable holds the name of the event, which is "Exciton_Dissociation".
Definition: Exciton.h:151
std::string getEventType() const
Gets the event type string that denotes what type of Event class this is.
Definition: Exciton.h:139
-
This simple struct contains Cartesian coordinates specified by integers x,y,z.
Definition: Utils.h:25
Exciton_Dissociation()
Constructs an empty event that is uninitialized.
Definition: Exciton.h:154
static const std::string event_type
This static member variable holds the name of the event, which is "Exciton_Hop".
Definition: Exciton.h:80
void calculateExecutionTime(const double prefactor, const double localization, const double distance)
Calculates and updates the execution time for the exciton-exciton annihilation event using the Dexter...
Definition: Exciton.h:252
-
This base class contains the basic properties of a KMC simulation object and the functions needed to ...
Definition: Object.h:23
This class extends the Object class to create an exciton object to represent a singlet or triplet exc...
Definition: Exciton.h:19
Exciton_Exciton_Annihilation()
Constructs an empty event that is uninitialized.
Definition: Exciton.h:235
bool getSpin() const
Gets the current spin state of the exciton.
Definition: Exciton.h:40
void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)
Calculates and updates the execution time for the exciton dissociation event using the Miller-Abraham...
Definition: Exciton.h:165
Exciton(const double time, const int tag_num, const Coords &coords_start)
Constructor that creates and initializes an exciton.
Definition: Exciton.h:28
-
base_type intpow(const base_type base, const int exponent)
This template function calculates and returns the results of an integer power operation on a base num...
Definition: Utils.h:202
std::string getEventType() const
Gets the event type string that denotes what type of Event class this is.
Definition: Exciton.h:116
std::string getEventType() const
Gets the event type string that denotes what type of Event class this is.
Definition: Exciton.h:296
@@ -159,7 +147,7 @@
-
#include "KMC_Lattice/Simulation.h"
-#include "KMC_Lattice/Site.h"
+
#include "Simulation.h"
+#include "Site.h"
#include "Exciton.h"
#include "Polaron.h"
#include <algorithm>
@@ -116,7 +116,7 @@
-Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the Excimontec project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec
5 
6 #ifndef OSC_SIM_H
7 #define OSC_SIM_H
8 
10 #include "KMC_Lattice/Site.h"
11 #include "Exciton.h"
12 #include "Polaron.h"
13 #include <algorithm>
14 #include <numeric>
15 
17  // Additional General Parameters
19  // Morphology Parameters
20  bool Enable_neat; // Neat takes on donor properties
22  int Thickness_donor; // sites
23  int Thickness_acceptor; // sites
25  double Acceptor_conc;
27  std::ifstream* Morphology_file;
28  // Test Parameters
29  int N_tests;
45  // Exciton Parameters
48  double Singlet_lifetime_donor; // seconds
49  double Singlet_lifetime_acceptor; // seconds
50  double Triplet_lifetime_donor; // seconds
51  double Triplet_lifetime_acceptor; // seconds
77  // Polaron Parameters
81  double Polaron_localization_donor; // nm^-1
91  // Additional Lattice Parameters
92  double Homo_donor;
93  double Lumo_donor;
94  double Homo_acceptor;
95  double Lumo_acceptor;
97  double Energy_stdev_donor; // eV
98  double Energy_stdev_acceptor; // eV
100  double Energy_urbach_donor; // eV
106  int Power_kernel_exponent; // must be negative
107  // Coulomb Calculation Parameters
110  int Coulomb_cutoff; // nm
111 };
112 
113 class Site_OSC : public Site{
114  public:
115  double getEnergy() const{return *energy_it;}
116  short getType() const{return type;}
117  void setEnergy(const double energy) { *energy_it = energy; }
118  void setEnergyIt(const std::vector<double>::iterator it){energy_it = it;}
119  void setType(const short site_type){type = site_type;}
120  private:
121  std::vector<double>::iterator energy_it;
122  short type = 0; // type 1 represent donor, type 2 represents acceptor
123 };
124 
125 class OSC_Sim : public Simulation{
126  public:
127  // Functions
128  OSC_Sim();
129  virtual ~OSC_Sim();
130  bool init(const Parameters_OPV& params,const int id);
131  double calculateDiffusionLength_avg() const;
132  double calculateDiffusionLength_stdev() const;
133  std::vector<std::pair<double,double>> calculateDOSCorrelation(const double cutoff_radius);
134  std::vector<double> calculateTransitTimeDist(const std::vector<double>& data,const int counts) const;
135  double calculateTransitTime_avg() const;
136  double calculateTransitTime_stdev() const;
137  std::vector<double> calculateMobilities(const std::vector<double>& transit_times) const;
138  double calculateMobility_avg() const;
139  double calculateMobility_stdev() const;
140  bool checkFinished() const;
141  bool checkParameters(const Parameters_OPV& params) const;
142  bool executeNextEvent();
143  std::vector<double> getDiffusionData() const;
144  std::vector<std::pair<double, double>> getDOSCorrelationData() const;
145  std::vector<double> getDynamicsExcitonEnergies() const;
146  std::vector<double> getDynamicsElectronEnergies() const;
147  std::vector<double> getDynamicsHoleEnergies() const;
148  std::vector<int> getDynamicsTransientSinglets() const;
149  std::vector<int> getDynamicsTransientTriplets() const;
150  std::vector<int> getDynamicsTransientElectrons() const;
151  std::vector<int> getDynamicsTransientHoles() const;
152  std::vector<double> getDynamicsTransientTimes() const;
153  std::vector<double> getDynamicsExcitonMSDV() const;
154  std::vector<double> getDynamicsElectronMSDV() const;
155  std::vector<double> getDynamicsHoleMSDV() const;
156  double getInternalField() const;
157  std::vector<double> getSiteEnergies(const short site_type) const;
158  std::vector<std::string> getChargeExtractionMap(const bool charge) const;
159  std::vector<int> getToFTransientCounts() const;
160  std::vector<double> getToFTransientEnergies() const;
161  std::vector<double> getToFTransientTimes() const;
162  std::vector<double> getToFTransientVelocities() const;
163  std::vector<double> getTransitTimeData() const;
164  int getN_excitons_created() const;
165  int getN_excitons_created(const short site_type) const;
166  int getN_excitons_dissociated() const;
174  int getN_electrons_created() const;
175  int getN_electrons_collected() const;
176  int getN_electrons_recombined() const;
177  int getN_holes_created() const;
178  int getN_holes_collected() const;
179  int getN_holes_recombined() const;
180  int getN_geminate_recombinations() const;
182  int getN_transient_cycles() const;
183  void outputStatus();
184  void reassignSiteEnergies();
185  protected:
186 
187  private:
188  // Additional General Parameters
189  double Internal_potential;
190  // Morphology Parameters
191  bool Enable_neat; // Neat takes on donor properties
192  bool Enable_bilayer;
193  int Thickness_donor; // sites
194  int Thickness_acceptor; // sites
195  bool Enable_random_blend;
196  double Acceptor_conc;
197  bool Enable_import_morphology;
198  std::ifstream* Morphology_file;
199  // Test Parameters
200  int N_tests;
201  bool Enable_exciton_diffusion_test;
202  bool Enable_ToF_test;
203  bool ToF_polaron_type;
204  int ToF_initial_polarons;
205  //double ToF_transient_start;
206  //double ToF_transient_end;
207  //int ToF_pnts_per_decade;
208  bool Enable_IQE_test;
209  double IQE_time_cutoff;
210  bool Enable_dynamics_test;
211  bool Enable_dynamics_extraction;
212  double Dynamics_initial_exciton_conc;
213  //double Dynamics_transient_start;
214  //double Dynamics_transient_end;
215  //int Dynamics_pnts_per_decade;
216  double Transient_start;
217  double Transient_end;
218  int Transient_pnts_per_decade;
219  // Exciton Parameters
220  double Exciton_generation_rate_donor;
221  double Exciton_generation_rate_acceptor;
222  double Singlet_lifetime_donor; // seconds
223  double Singlet_lifetime_acceptor; // seconds
224  double Triplet_lifetime_donor; // seconds
225  double Triplet_lifetime_acceptor; // seconds
226  double R_singlet_hopping_donor;
227  double R_singlet_hopping_acceptor;
228  double Singlet_localization_donor;
229  double Singlet_localization_acceptor;
230  double R_triplet_hopping_donor;
231  double R_triplet_hopping_acceptor;
232  double Triplet_localization_donor;
233  double Triplet_localization_acceptor;
234  bool Enable_FRET_triplet_annihilation;
235  double R_exciton_exciton_annihilation_donor;
236  double R_exciton_exciton_annihilation_acceptor;
237  double R_exciton_polaron_annihilation_donor;
238  double R_exciton_polaron_annihilation_acceptor;
239  int FRET_cutoff;
240  double E_exciton_binding_donor;
241  double E_exciton_binding_acceptor;
242  double R_exciton_dissociation_donor;
243  double R_exciton_dissociation_acceptor;
244  int Exciton_dissociation_cutoff; // nm
245  double R_exciton_isc_donor;
246  double R_exciton_isc_acceptor;
247  double R_exciton_risc_donor;
248  double R_exciton_risc_acceptor;
249  double E_exciton_ST_donor;
250  double E_exciton_ST_acceptor;
251  // Polaron Parameters
252  bool Enable_phase_restriction;
253  double R_polaron_hopping_donor;
254  double R_polaron_hopping_acceptor;
255  double Polaron_localization_donor; // nm^-1
256  double Polaron_localization_acceptor; // nm^-1
257  bool Enable_miller_abrahams;
258  bool Enable_marcus;
259  double Reorganization_donor;
260  double Reorganization_acceptor;
261  double R_polaron_recombination;
262  int Polaron_hopping_cutoff; // nm
263  bool Enable_gaussian_polaron_delocalization;
264  double Polaron_delocalization_length;
265  // Additional Lattice Parameters
266  double Homo_donor;
267  double Lumo_donor;
268  double Homo_acceptor;
269  double Lumo_acceptor;
270  bool Enable_gaussian_dos;
271  double Energy_stdev_donor; // eV
272  double Energy_stdev_acceptor; // eV
273  bool Enable_exponential_dos;
274  double Energy_urbach_donor;
275  double Energy_urbach_acceptor;
276  bool Enable_correlated_disorder;
277  double Disorder_correlation_length; // nm
278  bool Enable_gaussian_kernel;
279  bool Enable_power_kernel;
280  int Power_kernel_exponent; // must be negative
281  // Coulomb Calculation Parameters
282  double Dielectric_donor;
283  double Dielectric_acceptor;
284  int Coulomb_cutoff; // nm
285  // Additional Output Files
286  //
287  // Additional Parameters
288  bool isLightOn;
289  double R_exciton_generation_donor;
290  double R_exciton_generation_acceptor;
291  double Transient_creation_time;
292  int Transient_index_prev;
293  int Transient_singlet_counts_prev;
294  int Transient_triplet_counts_prev;
295  int Transient_electron_counts_prev;
296  int Transient_hole_counts_prev;
297  // Site Data Structure
298  std::vector<Site_OSC> sites;
299  // Object Data Structures
300  std::list<Exciton> excitons;
301  std::list<Polaron> electrons;
302  std::list<Polaron> holes;
303  // Event Data Structures
304  std::list<Exciton_Creation> exciton_creation_events;
305  std::list<Event*>::const_iterator exciton_creation_it;
306  std::list<Exciton_Hop> exciton_hop_events;
307  std::list<Exciton_Recombination> exciton_recombination_events;
308  std::list<Exciton_Dissociation> exciton_dissociation_events;
309  std::list<Exciton_Exciton_Annihilation> exciton_exciton_annihilation_events;
310  std::list<Exciton_Polaron_Annihilation> exciton_polaron_annihilation_events;
311  std::list<Exciton_Intersystem_Crossing> exciton_intersystem_crossing_events;
312  std::list<Polaron_Hop> electron_hop_events;
313  std::list<Polaron_Hop> hole_hop_events;
314  std::list<Polaron_Recombination> polaron_recombination_events;
315  std::list<Polaron_Extraction> electron_extraction_events;
316  std::list<Polaron_Extraction> hole_extraction_events;
317  // Additional Data Structures
318  std::vector<double> Coulomb_table;
319  std::vector<double> E_potential;
320  std::vector<double> site_energies_donor;
321  std::vector<double> site_energies_acceptor;
322  std::vector<std::pair<double, double>> DOS_correlation_data;
323  std::vector<double> diffusion_distances;
324  std::vector<int> transient_exciton_tags;
325  std::vector<int> transient_electron_tags;
326  std::vector<int> transient_hole_tags;
327  std::vector<int> ToF_positions_prev;
328  std::vector<double> transient_exciton_energies_prev;
329  std::vector<double> transient_electron_energies_prev;
330  std::vector<double> transient_hole_energies_prev;
331  std::vector<double> transient_exciton_msdv;
332  std::vector<double> transient_electron_msdv;
333  std::vector<double> transient_hole_msdv;
334  std::vector<int> electron_extraction_data;
335  std::vector<int> hole_extraction_data;
336  std::vector<double> transient_times;
337  std::vector<double> transient_velocities;
338  std::vector<double> transient_exciton_energies;
339  std::vector<double> transient_electron_energies;
340  std::vector<double> transient_hole_energies;
341  std::vector<double> transit_times;
342  std::vector<int> transient_singlet_counts;
343  std::vector<int> transient_triplet_counts;
344  std::vector<int> transient_electron_counts;
345  std::vector<int> transient_hole_counts;
346  // Additional Counters
347  int N_donor_sites;
348  int N_acceptor_sites;
349  int N_excitons_created = 0;
350  int N_excitons_created_donor = 0;
351  int N_excitons_created_acceptor = 0;
352  int N_singlet_excitons_recombined = 0;
353  int N_triplet_excitons_recombined = 0;
354  int N_excitons_dissociated = 0;
355  int N_singlet_singlet_annihilations = 0;
356  int N_singlet_triplet_annihilations = 0;
357  int N_triplet_triplet_annihilations = 0;
358  int N_singlet_polaron_annihilations = 0;
359  int N_triplet_polaron_annihilations = 0;
360  int N_exciton_intersystem_crossings = 0;
361  int N_exciton_reverse_intersystem_crossings = 0;
362  int N_excitons_quenched = 0;
363  int N_excitons = 0;
364  int N_singlets = 0;
365  int N_triplets = 0;
366  int N_electrons_created = 0;
367  int N_electrons_recombined = 0;
368  int N_electrons_collected = 0;
369  int N_electrons = 0;
370  int N_holes_created = 0;
371  int N_holes_recombined = 0;
372  int N_holes_collected = 0;
373  int N_holes = 0;
374  int N_geminate_recombinations = 0;
375  int N_bimolecular_recombinations = 0;
376  int N_electron_surface_recombinations = 0;
377  int N_hole_surface_recombinations = 0;
378  int N_transient_cycles = 0;
379  // Additional Functions
380  double calculateCoulomb(const std::list<Polaron>::const_iterator polaron_it, const Coords& coords) const;
381  double calculateCoulomb(const bool charge, const Coords& coords) const;
382  Coords calculateExcitonCreationCoords();
383  void calculateExcitonEvents(Exciton* exciton_ptr);
384  void calculateObjectListEvents(const std::vector<Object*>& object_ptr_vec);
385  void calculatePolaronEvents(Polaron* polaron_ptr);
386  void createCorrelatedDOS(const double correlation_length);
387  bool createImportedMorphology();
388  void deleteObject(Object* object_ptr);
389  // Exciton Event Execution Functions
390  bool executeExcitonCreation();
391  bool executeExcitonHop(const std::list<Event*>::const_iterator event_it);
392  bool executeExcitonRecombination(const std::list<Event*>::const_iterator event_it);
393  bool executeExcitonDissociation(const std::list<Event*>::const_iterator event_it);
394  bool executeExcitonIntersystemCrossing(const std::list<Event*>::const_iterator event_it);
395  bool executeExcitonExcitonAnnihilation(const std::list<Event*>::const_iterator event_it);
396  bool executeExcitonPolaronAnnihilation(const std::list<Event*>::const_iterator event_it);
397  // General Event Functions
398  bool executeObjectHop(const std::list<Event*>::const_iterator event_it);
399  // Polaron Event Execution Functions
400  bool executePolaronHop(const std::list<Event*>::const_iterator event_it);
401  bool executePolaronRecombination(const std::list<Event*>::const_iterator event_it);
402  bool executePolaronExtraction(const std::list<Event*>::const_iterator event_it);
403  Coords generateExciton();
404  void generateElectron(const Coords& coords,int tag);
405  void generateHole(const Coords& coords,int tag);
406  void generateDynamicsExcitons();
407  void generateToFPolarons();
408  std::list<Exciton>::iterator getExcitonIt(const Object* object_ptr);
409  std::list<Polaron>::iterator getPolaronIt(const Object* object_ptr);
410  double getSiteEnergy(const Coords& coords) const;
411  short getSiteType(const Coords& coords) const;
412  bool initializeArchitecture();
413  bool siteContainsHole(const Coords& coords);
414  void updateTransientData();
415 };
416 
417 #endif //OSC_SIM_H
Definition: OSC_Sim.h:125
-
int getN_excitons_created() const
Definition: OSC_Sim.cpp:2352
-
std::vector< double > getDynamicsElectronMSDV() const
Definition: OSC_Sim.cpp:2276
-
double IQE_time_cutoff
Definition: OSC_Sim.h:38
+Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the Excimontec project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec
5 
6 #ifndef OSC_SIM_H
7 #define OSC_SIM_H
8 
9 #include "Simulation.h"
10 #include "Site.h"
11 #include "Exciton.h"
12 #include "Polaron.h"
13 #include <algorithm>
14 #include <numeric>
15 
16 struct Parameters_OPV : Parameters_Simulation{
17  // Additional General Parameters
19  // Morphology Parameters
20  bool Enable_neat; // Neat takes on donor properties
22  int Thickness_donor; // sites
23  int Thickness_acceptor; // sites
25  double Acceptor_conc;
27  std::ifstream* Morphology_file;
28  // Test Parameters
29  int N_tests;
48  // Exciton Parameters
51  double Singlet_lifetime_donor; // seconds
52  double Singlet_lifetime_acceptor; // seconds
53  double Triplet_lifetime_donor; // seconds
54  double Triplet_lifetime_acceptor; // seconds
80  // Polaron Parameters
84  double Polaron_localization_donor; // nm^-1
94  // Additional Lattice Parameters
95  double Homo_donor;
96  double Lumo_donor;
97  double Homo_acceptor;
98  double Lumo_acceptor;
100  double Energy_stdev_donor; // eV
101  double Energy_stdev_acceptor; // eV
103  double Energy_urbach_donor; // eV
109  int Power_kernel_exponent; // must be negative
110  // Coulomb Calculation Parameters
113  int Coulomb_cutoff; // nm
114 };
115 
116 class Site_OSC : public Site{
117  public:
118  double getEnergy() const{return *energy_it;}
119  short getType() const{return type;}
120  void setEnergy(const double energy) { *energy_it = energy; }
121  void setEnergyIt(const std::vector<double>::iterator it){energy_it = it;}
122  void setType(const short site_type){type = site_type;}
123  private:
124  std::vector<double>::iterator energy_it;
125  short type = 0; // type 1 represent donor, type 2 represents acceptor
126 };
127 
128 class OSC_Sim : public Simulation{
129  public:
130  // Functions
131  OSC_Sim();
132  virtual ~OSC_Sim();
133  bool init(const Parameters_OPV& params,const int id);
134  void calculateAllEvents();
136  void calculateDOSCorrelation(const double cutoff_radius);
137  std::vector<double> calculateTransitTimeDist(const std::vector<double>& data,const int counts) const;
138  std::vector<double> calculateMobilityData(const std::vector<double>& transit_times) const;
139  bool checkFinished() const;
140  bool checkParameters(const Parameters_OPV& params) const;
141  void createExciton(const Coords& coords, const bool spin);
142  void createElectron(const Coords& coords);
143  void createHole(const Coords& coords);
144  bool executeNextEvent();
145  std::vector<std::pair<double, double>> getDOSCorrelationData() const;
146  std::vector<double> getDynamicsExcitonEnergies() const;
147  std::vector<double> getDynamicsElectronEnergies() const;
148  std::vector<double> getDynamicsHoleEnergies() const;
149  std::vector<int> getDynamicsTransientSinglets() const;
150  std::vector<int> getDynamicsTransientTriplets() const;
151  std::vector<int> getDynamicsTransientElectrons() const;
152  std::vector<int> getDynamicsTransientHoles() const;
153  std::vector<double> getDynamicsTransientTimes() const;
154  std::vector<double> getDynamicsExcitonMSDV() const;
155  std::vector<double> getDynamicsElectronMSDV() const;
156  std::vector<double> getDynamicsHoleMSDV() const;
157  std::vector<Event> getEvents() const;
158  std::vector<double> getExcitonDiffusionData() const;
159  std::vector<int> getExcitonHopLengthData() const;
160  std::vector<double> getExcitonLifetimeData() const;
161  double getInternalField() const;
162  std::vector<double> getSiteEnergies(const short site_type) const;
163  std::vector<std::string> getChargeExtractionMap(const bool charge) const;
164  std::vector<int> getToFTransientCounts() const;
165  std::vector<double> getToFTransientEnergies() const;
166  std::vector<double> getToFTransientTimes() const;
167  std::vector<double> getToFTransientVelocities() const;
168  std::vector<double> getTransitTimeData() const;
169  int getN_excitons_created() const;
170  int getN_excitons_created(const short site_type) const;
171  int getN_excitons_dissociated() const;
179  int getN_electrons_created() const;
180  int getN_electrons_collected() const;
181  int getN_electrons_recombined() const;
182  int getN_holes_created() const;
183  int getN_holes_collected() const;
184  int getN_holes_recombined() const;
185  int getN_geminate_recombinations() const;
187  int getN_transient_cycles() const;
188  void outputStatus();
189  void reassignSiteEnergies();
190  protected:
191 
192  private:
193 
194  struct ExcitonEventCalcVars {
195  int range;
196  int dim;
197  Exciton_Hop hop_event;
198  std::vector<Exciton_Hop> hops_temp;
199  Exciton_Dissociation diss_event;
200  std::vector<Exciton_Dissociation> dissociations_temp;
201  Exciton_Exciton_Annihilation ee_annihilation_event;
202  std::vector<Exciton_Exciton_Annihilation> ee_annihilations_temp;
203  Exciton_Polaron_Annihilation ep_annihilation_event;
204  std::vector<Exciton_Polaron_Annihilation> ep_annihilations_temp;
205  std::vector<bool> hops_valid;
206  std::vector<bool> dissociations_valid;
207  std::vector<bool> ee_annihilations_valid;
208  std::vector<bool> ep_annihilations_valid;
209  // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations
210  std::vector<double> distances;
211  // pre-calculated isInDissRange and isInFRETRange vectors that contains booleans to indicate whether the nearby sites are within range for the different exciton events to be possible.
212  std::vector<bool> isInDissRange;
213  std::vector<bool> isInFRETRange;
214 
215  ExcitonEventCalcVars() {}
216 
217  ExcitonEventCalcVars(OSC_Sim* sim_ptr) {
218  range = (int)ceil(((sim_ptr->FRET_cutoff > sim_ptr->Exciton_dissociation_cutoff) ? (sim_ptr->FRET_cutoff) : (sim_ptr->Exciton_dissociation_cutoff)) / sim_ptr->lattice.getUnitSize());
219  dim = (2 * range + 1);
220  hop_event = Exciton_Hop(sim_ptr);
221  hops_temp.assign(dim*dim*dim, hop_event);
222  diss_event = Exciton_Dissociation(sim_ptr);
223  dissociations_temp.assign(dim*dim*dim, diss_event);
224  ee_annihilation_event = Exciton_Exciton_Annihilation(sim_ptr);
225  ee_annihilations_temp.assign(dim*dim*dim, ee_annihilation_event);
226  ep_annihilation_event = Exciton_Polaron_Annihilation(sim_ptr);
227  ep_annihilations_temp.assign(dim*dim*dim, ep_annihilation_event);
228  hops_valid.assign(dim*dim*dim, false);
229  dissociations_valid.assign(dim*dim*dim, false);
230  ee_annihilations_valid.assign(dim*dim*dim, false);
231  ep_annihilations_valid.assign(dim*dim*dim, false);
232  // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations
233  distances.assign(dim*dim*dim, 0.0);
234  // pre-calculated isInDissRange and isInFRETRange vectors that contains booleans to indicate whether the nearby sites are within range for the different exciton events to be possible.
235  isInDissRange.assign(dim*dim*dim, false);
236  isInFRETRange.assign(dim*dim*dim, false);
237  // Initiaize distances, isInDissRange, and isInFRETRange vectors
238  for (int i = -range; i <= range; i++) {
239  for (int j = -range; j <= range; j++) {
240  for (int k = -range; k <= range; k++) {
241  int index = (i + range)*dim*dim + (j + range)*dim + (k + range);
242  distances[index] = sim_ptr->lattice.getUnitSize()*sqrt((double)(i*i + j * j + k * k));
243  if (!((distances[index] - 0.0001) > sim_ptr->Exciton_dissociation_cutoff)) {
244  isInDissRange[index] = true;
245  }
246  if (!((distances[index] - 0.0001) > sim_ptr->FRET_cutoff)) {
247  isInFRETRange[index] = true;
248  }
249  }
250  }
251  }
252  }
253  };
254  ExcitonEventCalcVars exciton_event_calc_vars;
255 
256  struct PolaronEventCalcVars {
257  int range;
258  int dim;
259  Polaron_Hop hop_event;
260  std::vector<Polaron_Hop> hops_temp;
261  Polaron_Recombination rec_event;
262  std::vector<Polaron_Recombination> recombinations_temp;
263  std::vector<bool> hops_valid;
264  std::vector<bool> recombinations_valid;
265  // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations
266  std::vector<double> distances;
267  std::vector<double> E_deltas;
268  // pre-calculated isInRange vector that contains booleans to indicate if the nearby sites are within range for polaron events to be possible.
269  std::vector<bool> isInRange;
270 
271  PolaronEventCalcVars() {}
272 
273  PolaronEventCalcVars(OSC_Sim* sim_ptr) {
274  range = (int)ceil(sim_ptr->Polaron_hopping_cutoff / sim_ptr->lattice.getUnitSize());
275  dim = (2 * range + 1);
276  hop_event = Polaron_Hop(sim_ptr);
277  hops_temp.assign(dim*dim*dim, hop_event);
278  rec_event = Polaron_Recombination(sim_ptr);
279  recombinations_temp.assign(dim*dim*dim, rec_event);
280  hops_valid.assign(dim*dim*dim, false);
281  recombinations_valid.assign(dim*dim*dim, false);
282  // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations
283  distances.assign(dim*dim*dim, 0.0);
284  E_deltas.assign(dim*dim*dim, 0.0);
285  // pre-calculated isInRange vector that contains booleans to indicate if the nearby sites are within range for polaron events to be possible.
286  isInRange.assign(dim*dim*dim, false);
287  // Intialize distances and isInRange vectors
288  for (int i = -range; i <= range; i++) {
289  for (int j = -range; j <= range; j++) {
290  for (int k = -range; k <= range; k++) {
291  int index = (i + range)*dim*dim + (j + range)*dim + (k + range);
292  distances[index] = sim_ptr->lattice.getUnitSize()*sqrt((double)(i*i + j * j + k * k));
293  if (!((distances[index] - 0.0001) > sim_ptr->Polaron_hopping_cutoff)) {
294  isInRange[index] = true;
295  }
296  }
297  }
298  }
299  }
300  };
301  PolaronEventCalcVars polaron_event_calc_vars;
302 
303  // Additional General Parameters
304  double Internal_potential;
305  // Morphology Parameters
306  bool Enable_neat; // Neat takes on donor properties
307  bool Enable_bilayer;
308  int Thickness_donor; // sites
309  int Thickness_acceptor; // sites
310  bool Enable_random_blend;
311  double Acceptor_conc;
312  bool Enable_import_morphology;
313  std::ifstream* Morphology_file;
314  // Test Parameters
315  int N_tests;
316  bool Enable_exciton_diffusion_test;
317  bool Enable_ToF_test;
318  bool ToF_polaron_type;
319  int ToF_initial_polarons;
320  bool Enable_ToF_random_placement;
321  bool Enable_ToF_energy_placement;
322  double ToF_placement_energy;
323  //double ToF_transient_start;
324  //double ToF_transient_end;
325  //int ToF_pnts_per_decade;
326  bool Enable_IQE_test;
327  double IQE_time_cutoff;
328  bool Enable_dynamics_test;
329  bool Enable_dynamics_extraction;
330  double Dynamics_initial_exciton_conc;
331  //double Dynamics_transient_start;
332  //double Dynamics_transient_end;
333  //int Dynamics_pnts_per_decade;
334  double Transient_start;
335  double Transient_end;
336  int Transient_pnts_per_decade;
337  // Exciton Parameters
338  double Exciton_generation_rate_donor;
339  double Exciton_generation_rate_acceptor;
340  double Singlet_lifetime_donor; // seconds
341  double Singlet_lifetime_acceptor; // seconds
342  double Triplet_lifetime_donor; // seconds
343  double Triplet_lifetime_acceptor; // seconds
344  double R_singlet_hopping_donor;
345  double R_singlet_hopping_acceptor;
346  double Singlet_localization_donor;
347  double Singlet_localization_acceptor;
348  double R_triplet_hopping_donor;
349  double R_triplet_hopping_acceptor;
350  double Triplet_localization_donor;
351  double Triplet_localization_acceptor;
352  bool Enable_FRET_triplet_annihilation;
353  double R_exciton_exciton_annihilation_donor;
354  double R_exciton_exciton_annihilation_acceptor;
355  double R_exciton_polaron_annihilation_donor;
356  double R_exciton_polaron_annihilation_acceptor;
357  int FRET_cutoff;
358  double E_exciton_binding_donor;
359  double E_exciton_binding_acceptor;
360  double R_exciton_dissociation_donor;
361  double R_exciton_dissociation_acceptor;
362  int Exciton_dissociation_cutoff; // nm
363  double R_exciton_isc_donor;
364  double R_exciton_isc_acceptor;
365  double R_exciton_risc_donor;
366  double R_exciton_risc_acceptor;
367  double E_exciton_ST_donor;
368  double E_exciton_ST_acceptor;
369  // Polaron Parameters
370  bool Enable_phase_restriction;
371  double R_polaron_hopping_donor;
372  double R_polaron_hopping_acceptor;
373  double Polaron_localization_donor; // nm^-1
374  double Polaron_localization_acceptor; // nm^-1
375  bool Enable_miller_abrahams;
376  bool Enable_marcus;
377  double Reorganization_donor;
378  double Reorganization_acceptor;
379  double R_polaron_recombination;
380  int Polaron_hopping_cutoff; // nm
381  bool Enable_gaussian_polaron_delocalization;
382  double Polaron_delocalization_length;
383  // Additional Lattice Parameters
384  double Homo_donor;
385  double Lumo_donor;
386  double Homo_acceptor;
387  double Lumo_acceptor;
388  bool Enable_gaussian_dos;
389  double Energy_stdev_donor; // eV
390  double Energy_stdev_acceptor; // eV
391  bool Enable_exponential_dos;
392  double Energy_urbach_donor;
393  double Energy_urbach_acceptor;
394  bool Enable_correlated_disorder;
395  double Disorder_correlation_length; // nm
396  bool Enable_gaussian_kernel;
397  bool Enable_power_kernel;
398  int Power_kernel_exponent; // must be negative
399  // Coulomb Calculation Parameters
400  double Dielectric_donor;
401  double Dielectric_acceptor;
402  int Coulomb_cutoff; // nm
403  // Additional Output Files
404  //
405  // Additional Parameters
406  bool isLightOn;
407  double R_exciton_generation_donor;
408  double R_exciton_generation_acceptor;
409  double Transient_step_size;
410  double Transient_creation_time;
411  int Transient_index_prev;
412  int Transient_singlet_counts_prev;
413  int Transient_triplet_counts_prev;
414  int Transient_electron_counts_prev;
415  int Transient_hole_counts_prev;
416  int Coulomb_range;
417  double AvgDielectric;
418  double Image_interaction_prefactor;
419  int N_initial_excitons;
420  // Site Data Structure
421  std::vector<Site_OSC> sites;
422  // Object Data Structures
423  std::list<Exciton> excitons;
424  std::list<Polaron> electrons;
425  std::list<Polaron> holes;
426  // Event Data Structures
427  std::list<Exciton_Creation> exciton_creation_events;
428  std::list<Event*>::const_iterator exciton_creation_it;
429  std::list<Exciton_Hop> exciton_hop_events;
430  std::list<Exciton_Recombination> exciton_recombination_events;
431  std::list<Exciton_Dissociation> exciton_dissociation_events;
432  std::list<Exciton_Exciton_Annihilation> exciton_exciton_annihilation_events;
433  std::list<Exciton_Polaron_Annihilation> exciton_polaron_annihilation_events;
434  std::list<Exciton_Intersystem_Crossing> exciton_intersystem_crossing_events;
435  std::list<Polaron_Hop> electron_hop_events;
436  std::list<Polaron_Hop> hole_hop_events;
437  std::list<Polaron_Recombination> polaron_recombination_events;
438  std::list<Polaron_Extraction> electron_extraction_events;
439  std::list<Polaron_Extraction> hole_extraction_events;
440  // Additional Data Structures
441  std::vector<double> Coulomb_table;
442  std::vector<double> E_potential;
443  std::vector<double> site_energies_donor;
444  std::vector<double> site_energies_acceptor;
445  std::vector<std::pair<double, double>> DOS_correlation_data;
446  std::vector<double> exciton_lifetimes;
447  std::vector<double> exciton_diffusion_distances;
448  std::vector<int> exciton_hop_distances; // saved as lattice units squared
449  std::vector<int> transient_exciton_tags;
450  std::vector<int> transient_electron_tags;
451  std::vector<int> transient_hole_tags;
452  std::vector<int> ToF_positions_prev;
453  std::vector<double> transient_exciton_energies_prev;
454  std::vector<double> transient_electron_energies_prev;
455  std::vector<double> transient_hole_energies_prev;
456  std::vector<double> transient_exciton_msdv;
457  std::vector<double> transient_electron_msdv;
458  std::vector<double> transient_hole_msdv;
459  std::vector<int> electron_extraction_data;
460  std::vector<int> hole_extraction_data;
461  std::vector<double> transient_times;
462  std::vector<double> transient_velocities;
463  std::vector<double> transient_exciton_energies;
464  std::vector<double> transient_electron_energies;
465  std::vector<double> transient_hole_energies;
466  std::vector<double> transit_times;
467  std::vector<int> transient_singlet_counts;
468  std::vector<int> transient_triplet_counts;
469  std::vector<int> transient_electron_counts;
470  std::vector<int> transient_hole_counts;
471  // Additional Counters
472  int N_donor_sites;
473  int N_acceptor_sites;
474  int N_excitons_created = 0;
475  int N_excitons_created_donor = 0;
476  int N_excitons_created_acceptor = 0;
477  int N_singlet_excitons_recombined = 0;
478  int N_triplet_excitons_recombined = 0;
479  int N_excitons_dissociated = 0;
480  int N_singlet_singlet_annihilations = 0;
481  int N_singlet_triplet_annihilations = 0;
482  int N_triplet_triplet_annihilations = 0;
483  int N_singlet_polaron_annihilations = 0;
484  int N_triplet_polaron_annihilations = 0;
485  int N_exciton_intersystem_crossings = 0;
486  int N_exciton_reverse_intersystem_crossings = 0;
487  int N_excitons_quenched = 0;
488  int N_excitons = 0;
489  int N_singlets = 0;
490  int N_triplets = 0;
491  int N_electrons_created = 0;
492  int N_electrons_recombined = 0;
493  int N_electrons_collected = 0;
494  int N_electrons = 0;
495  int N_holes_created = 0;
496  int N_holes_recombined = 0;
497  int N_holes_collected = 0;
498  int N_holes = 0;
499  int N_geminate_recombinations = 0;
500  int N_bimolecular_recombinations = 0;
501  int N_electron_surface_recombinations = 0;
502  int N_hole_surface_recombinations = 0;
503  int N_transient_cycles = 0;
504  // Additional Functions
505  double calculateCoulomb(const std::list<Polaron>::const_iterator polaron_it, const Coords& coords) const;
506  double calculateCoulomb(const bool charge, const Coords& coords) const;
507  Coords calculateExcitonCreationCoords();
508  void calculateExcitonEvents(Exciton* exciton_ptr);
509  void calculateObjectListEvents(const std::vector<Object*>& object_ptr_vec);
510  void calculatePolaronEvents(Polaron* polaron_ptr);
511  void createCorrelatedDOS(const double correlation_length);
512  bool createImportedMorphology();
513  void deleteObject(Object* object_ptr);
514  // Exciton Event Execution Functions
515  bool executeExcitonCreation();
516  bool executeExcitonHop(const std::list<Event*>::const_iterator event_it);
517  bool executeExcitonRecombination(const std::list<Event*>::const_iterator event_it);
518  bool executeExcitonDissociation(const std::list<Event*>::const_iterator event_it);
519  bool executeExcitonIntersystemCrossing(const std::list<Event*>::const_iterator event_it);
520  bool executeExcitonExcitonAnnihilation(const std::list<Event*>::const_iterator event_it);
521  bool executeExcitonPolaronAnnihilation(const std::list<Event*>::const_iterator event_it);
522  // General Event Functions
523  bool executeObjectHop(const std::list<Event*>::const_iterator event_it);
524  // Polaron Event Execution Functions
525  bool executePolaronHop(const std::list<Event*>::const_iterator event_it);
526  bool executePolaronRecombination(const std::list<Event*>::const_iterator event_it);
527  bool executePolaronExtraction(const std::list<Event*>::const_iterator event_it);
528  Coords generateExciton();
529  void generateExciton(const Coords& coords, const bool spin, int tag);
530  void generateElectron(const Coords& coords,int tag);
531  void generateHole(const Coords& coords,int tag);
532  void generateDynamicsExcitons();
533  void generateToFPolarons();
534  std::list<Exciton>::iterator getExcitonIt(const Object* object_ptr);
535  std::list<Polaron>::iterator getPolaronIt(const Object* object_ptr);
536  double getSiteEnergy(const Coords& coords) const;
537  short getSiteType(const Coords& coords) const;
538  bool initializeArchitecture();
539  void removeExciton(std::list<Exciton>::iterator exciton_it);
540  bool siteContainsHole(const Coords& coords);
541  void updateTransientData();
542 };
543 
544 #endif //OSC_SIM_H
Definition: OSC_Sim.h:128
+
int getN_excitons_created() const
Definition: OSC_Sim.cpp:2422
+
std::vector< double > getDynamicsElectronMSDV() const
Definition: OSC_Sim.cpp:2326
+
double IQE_time_cutoff
Definition: OSC_Sim.h:41
double Internal_potential
Definition: OSC_Sim.h:18
-
double Energy_urbach_donor
Definition: OSC_Sim.h:100
-
std::vector< double > getSiteEnergies(const short site_type) const
Definition: OSC_Sim.cpp:2442
-
std::vector< double > getDynamicsTransientTimes() const
Definition: OSC_Sim.cpp:2316
-
double R_singlet_hopping_acceptor
Definition: OSC_Sim.h:53
+
double Energy_urbach_donor
Definition: OSC_Sim.h:103
+
void createExciton(const Coords &coords, const bool spin)
Definition: OSC_Sim.cpp:1469
+
std::vector< double > getSiteEnergies(const short site_type) const
Definition: OSC_Sim.cpp:2507
+
std::vector< double > getDynamicsTransientTimes() const
Definition: OSC_Sim.cpp:2366
+
double R_singlet_hopping_acceptor
Definition: OSC_Sim.h:56
bool Enable_bilayer
Definition: OSC_Sim.h:21
-
double Triplet_lifetime_donor
Definition: OSC_Sim.h:50
-
void setEnergy(const double energy)
Definition: OSC_Sim.h:117
-
std::vector< double > getDynamicsElectronEnergies() const
Definition: OSC_Sim.cpp:2288
-
int getN_singlet_triplet_annihilations() const
Definition: OSC_Sim.cpp:2381
+
double Triplet_lifetime_donor
Definition: OSC_Sim.h:53
+
void setEnergy(const double energy)
Definition: OSC_Sim.h:120
+
Definition: Polaron.h:47
+
std::vector< double > getDynamicsElectronEnergies() const
Definition: OSC_Sim.cpp:2338
+
int getN_singlet_triplet_annihilations() const
Definition: OSC_Sim.cpp:2451
int Thickness_acceptor
Definition: OSC_Sim.h:23
-
double Reorganization_acceptor
Definition: OSC_Sim.h:86
-
bool Enable_power_kernel
Definition: OSC_Sim.h:105
-
double E_exciton_ST_donor
Definition: OSC_Sim.h:75
-
double Dynamics_initial_exciton_conc
Definition: OSC_Sim.h:41
-
std::vector< double > getDynamicsHoleMSDV() const
Definition: OSC_Sim.cpp:2280
-
void setEnergyIt(const std::vector< double >::iterator it)
Definition: OSC_Sim.h:118
-
double Polaron_delocalization_length
Definition: OSC_Sim.h:90
-
int Polaron_hopping_cutoff
Definition: OSC_Sim.h:88
- -
double Energy_stdev_acceptor
Definition: OSC_Sim.h:98
-
std::vector< double > calculateMobilities(const std::vector< double > &transit_times) const
Definition: OSC_Sim.cpp:379
-
double R_exciton_polaron_annihilation_donor
Definition: OSC_Sim.h:63
-
std::vector< double > getDynamicsExcitonEnergies() const
Definition: OSC_Sim.cpp:2284
-
void outputStatus()
Definition: OSC_Sim.cpp:2583
+
double Reorganization_acceptor
Definition: OSC_Sim.h:89
+
bool Enable_power_kernel
Definition: OSC_Sim.h:108
+
bool Enable_ToF_energy_placement
Definition: OSC_Sim.h:35
+
double E_exciton_ST_donor
Definition: OSC_Sim.h:78
+
double Dynamics_initial_exciton_conc
Definition: OSC_Sim.h:44
+
std::vector< double > getDynamicsHoleMSDV() const
Definition: OSC_Sim.cpp:2330
+
void setEnergyIt(const std::vector< double >::iterator it)
Definition: OSC_Sim.h:121
+
std::vector< double > getExcitonDiffusionData() const
Definition: OSC_Sim.cpp:2380
+
std::vector< double > getExcitonLifetimeData() const
Definition: OSC_Sim.cpp:2388
+
double Polaron_delocalization_length
Definition: OSC_Sim.h:93
+
std::vector< int > getExcitonHopLengthData() const
Definition: OSC_Sim.cpp:2384
+
int Polaron_hopping_cutoff
Definition: OSC_Sim.h:91
+
double Energy_stdev_acceptor
Definition: OSC_Sim.h:101
+
double R_exciton_polaron_annihilation_donor
Definition: OSC_Sim.h:66
+
std::vector< double > getDynamicsExcitonEnergies() const
Definition: OSC_Sim.cpp:2334
+
void outputStatus()
Definition: OSC_Sim.cpp:2648
bool ToF_polaron_type
Definition: OSC_Sim.h:32
-
int getN_triplet_excitons_recombined() const
Definition: OSC_Sim.cpp:2373
-
double ToF_transient_start
Definition: OSC_Sim.h:34
+
int getN_triplet_excitons_recombined() const
Definition: OSC_Sim.cpp:2443
+
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:148
+
double ToF_transient_start
Definition: OSC_Sim.h:37
-
double Triplet_lifetime_acceptor
Definition: OSC_Sim.h:51
-
bool Enable_phase_restriction
Definition: OSC_Sim.h:78
-
int Coulomb_cutoff
Definition: OSC_Sim.h:110
-
double ToF_transient_end
Definition: OSC_Sim.h:35
-
bool Enable_miller_abrahams
Definition: OSC_Sim.h:83
-
double R_polaron_hopping_donor
Definition: OSC_Sim.h:79
-
double Lumo_donor
Definition: OSC_Sim.h:93
-
std::vector< int > getDynamicsTransientHoles() const
Definition: OSC_Sim.cpp:2312
-
int getN_transient_cycles() const
Definition: OSC_Sim.cpp:2413
-
double Lumo_acceptor
Definition: OSC_Sim.h:95
-
int Dynamics_pnts_per_decade
Definition: OSC_Sim.h:44
-
int getN_excitons_dissociated() const
Definition: OSC_Sim.cpp:2365
-
int FRET_cutoff
Definition: OSC_Sim.h:65
-
double Dielectric_acceptor
Definition: OSC_Sim.h:109
-
int getN_holes_recombined() const
Definition: OSC_Sim.cpp:2409
-
This struct contains all of the main input parameters needed by the Simulation class.
Definition: Simulation.h:25
+
double Triplet_lifetime_acceptor
Definition: OSC_Sim.h:54
+
bool Enable_phase_restriction
Definition: OSC_Sim.h:81
+
int Coulomb_cutoff
Definition: OSC_Sim.h:113
+
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:229
+
double ToF_transient_end
Definition: OSC_Sim.h:38
+
bool Enable_miller_abrahams
Definition: OSC_Sim.h:86
+
double R_polaron_hopping_donor
Definition: OSC_Sim.h:82
+
double Lumo_donor
Definition: OSC_Sim.h:96
+
std::vector< int > getDynamicsTransientHoles() const
Definition: OSC_Sim.cpp:2362
+
int getN_transient_cycles() const
Definition: OSC_Sim.cpp:2483
+
double Lumo_acceptor
Definition: OSC_Sim.h:98
+
int Dynamics_pnts_per_decade
Definition: OSC_Sim.h:47
+
int getN_excitons_dissociated() const
Definition: OSC_Sim.cpp:2435
+
int FRET_cutoff
Definition: OSC_Sim.h:68
+
double Dielectric_acceptor
Definition: OSC_Sim.h:112
+
int getN_holes_recombined() const
Definition: OSC_Sim.cpp:2479
bool Enable_random_blend
Definition: OSC_Sim.h:24
-
double Dielectric_donor
Definition: OSC_Sim.h:108
-
std::vector< std::pair< double, double > > calculateDOSCorrelation(const double cutoff_radius)
Definition: OSC_Sim.cpp:338
-
std::vector< int > getDynamicsTransientTriplets() const
Definition: OSC_Sim.cpp:2300
+
double Dielectric_donor
Definition: OSC_Sim.h:111
+
std::vector< int > getDynamicsTransientTriplets() const
Definition: OSC_Sim.cpp:2350
int Thickness_donor
Definition: OSC_Sim.h:22
-
double Dynamics_transient_end
Definition: OSC_Sim.h:43
-
bool Enable_dynamics_extraction
Definition: OSC_Sim.h:40
-
double Singlet_lifetime_acceptor
Definition: OSC_Sim.h:49
-
double Exciton_generation_rate_donor
Definition: OSC_Sim.h:46
+
double Dynamics_transient_end
Definition: OSC_Sim.h:46
+
bool Enable_dynamics_extraction
Definition: OSC_Sim.h:43
+
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:267
+
double ToF_placement_energy
Definition: OSC_Sim.h:36
+
double Singlet_lifetime_acceptor
Definition: OSC_Sim.h:52
+
double Exciton_generation_rate_donor
Definition: OSC_Sim.h:49
bool Enable_import_morphology
Definition: OSC_Sim.h:26
-
double R_polaron_hopping_acceptor
Definition: OSC_Sim.h:80
-
bool Enable_gaussian_polaron_delocalization
Definition: OSC_Sim.h:89
-
int getN_geminate_recombinations() const
Definition: OSC_Sim.cpp:2397
-
double calculateTransitTime_avg() const
Definition: OSC_Sim.cpp:411
-
std::vector< double > calculateTransitTimeDist(const std::vector< double > &data, const int counts) const
Definition: OSC_Sim.cpp:398
-
std::vector< int > getDynamicsTransientSinglets() const
Definition: OSC_Sim.cpp:2296
-
int ToF_pnts_per_decade
Definition: OSC_Sim.h:36
-
int getN_electrons_collected() const
Definition: OSC_Sim.cpp:2340
-
int getN_holes_created() const
Definition: OSC_Sim.cpp:2405
-
double E_exciton_binding_donor
Definition: OSC_Sim.h:66
-
double R_triplet_hopping_acceptor
Definition: OSC_Sim.h:57
-
double Singlet_localization_donor
Definition: OSC_Sim.h:54
+
double R_polaron_hopping_acceptor
Definition: OSC_Sim.h:83
+
bool Enable_gaussian_polaron_delocalization
Definition: OSC_Sim.h:92
+
int getN_geminate_recombinations() const
Definition: OSC_Sim.cpp:2467
+
Definition: Polaron.h:24
+
std::vector< double > calculateTransitTimeDist(const std::vector< double > &data, const int counts) const
Definition: OSC_Sim.cpp:405
+
std::vector< int > getDynamicsTransientSinglets() const
Definition: OSC_Sim.cpp:2346
+
int ToF_pnts_per_decade
Definition: OSC_Sim.h:39
+
int getN_electrons_collected() const
Definition: OSC_Sim.cpp:2410
+
int getN_holes_created() const
Definition: OSC_Sim.cpp:2475
+
double E_exciton_binding_donor
Definition: OSC_Sim.h:69
+
double R_triplet_hopping_acceptor
Definition: OSC_Sim.h:60
+
double Singlet_localization_donor
Definition: OSC_Sim.h:57
int ToF_initial_polarons
Definition: OSC_Sim.h:33
-
double R_polaron_recombination
Definition: OSC_Sim.h:87
+
void createElectron(const Coords &coords)
Definition: OSC_Sim.cpp:1451
+
double R_polaron_recombination
Definition: OSC_Sim.h:90
std::ifstream * Morphology_file
Definition: OSC_Sim.h:27
-
double R_exciton_dissociation_acceptor
Definition: OSC_Sim.h:69
+
double R_exciton_dissociation_acceptor
Definition: OSC_Sim.h:72
Definition: Polaron.h:14
-
double R_exciton_exciton_annihilation_acceptor
Definition: OSC_Sim.h:62
-
double R_exciton_isc_acceptor
Definition: OSC_Sim.h:72
-
double Singlet_lifetime_donor
Definition: OSC_Sim.h:48
-
double Energy_urbach_acceptor
Definition: OSC_Sim.h:101
-
double Dynamics_transient_start
Definition: OSC_Sim.h:42
-
std::vector< int > getToFTransientCounts() const
Definition: OSC_Sim.cpp:2496
-
double Triplet_localization_donor
Definition: OSC_Sim.h:58
-
std::vector< std::pair< double, double > > getDOSCorrelationData() const
Definition: OSC_Sim.cpp:2308
+
double R_exciton_exciton_annihilation_acceptor
Definition: OSC_Sim.h:65
+
double R_exciton_isc_acceptor
Definition: OSC_Sim.h:75
+
double Singlet_lifetime_donor
Definition: OSC_Sim.h:51
+
double Energy_urbach_acceptor
Definition: OSC_Sim.h:104
+
double Dynamics_transient_start
Definition: OSC_Sim.h:45
+
std::vector< int > getToFTransientCounts() const
Definition: OSC_Sim.cpp:2561
+
double Triplet_localization_donor
Definition: OSC_Sim.h:61
+
std::vector< std::pair< double, double > > getDOSCorrelationData() const
Definition: OSC_Sim.cpp:2358
Definition: OSC_Sim.h:16
-
double R_exciton_exciton_annihilation_donor
Definition: OSC_Sim.h:61
+
double R_exciton_exciton_annihilation_donor
Definition: OSC_Sim.h:64
bool Enable_exciton_diffusion_test
Definition: OSC_Sim.h:30
- -
Definition: OSC_Sim.h:113
-
double R_exciton_risc_donor
Definition: OSC_Sim.h:73
-
double R_exciton_isc_donor
Definition: OSC_Sim.h:71
-
double R_exciton_risc_acceptor
Definition: OSC_Sim.h:74
-
double calculateDiffusionLength_avg() const
Definition: OSC_Sim.cpp:330
+
Definition: OSC_Sim.h:116
+
double R_exciton_risc_donor
Definition: OSC_Sim.h:76
+
double R_exciton_isc_donor
Definition: OSC_Sim.h:74
+
double R_exciton_risc_acceptor
Definition: OSC_Sim.h:77
virtual ~OSC_Sim()
Definition: OSC_Sim.cpp:15
-
double Homo_donor
Definition: OSC_Sim.h:92
-
std::vector< int > getDynamicsTransientElectrons() const
Definition: OSC_Sim.cpp:2304
-
bool Enable_FRET_triplet_annihilation
Definition: OSC_Sim.h:60
-
std::vector< double > getDynamicsExcitonMSDV() const
Definition: OSC_Sim.cpp:2272
-
bool executeNextEvent()
Executes the next event in the simulation.
Definition: OSC_Sim.cpp:1862
-
bool Enable_marcus
Definition: OSC_Sim.h:84
-
std::vector< double > getToFTransientEnergies() const
Definition: OSC_Sim.cpp:2505
-
double Exciton_generation_rate_acceptor
Definition: OSC_Sim.h:47
-
double Polaron_localization_acceptor
Definition: OSC_Sim.h:82
-
double R_exciton_polaron_annihilation_acceptor
Definition: OSC_Sim.h:64
-
double Triplet_localization_acceptor
Definition: OSC_Sim.h:59
-
bool Enable_gaussian_dos
Definition: OSC_Sim.h:96
-
bool checkFinished() const
Checks whether or not the simulation has finished.
Definition: OSC_Sim.cpp:1053
-
double calculateMobility_avg() const
Definition: OSC_Sim.cpp:388
-
bool Enable_IQE_test
Definition: OSC_Sim.h:37
+
double Homo_donor
Definition: OSC_Sim.h:95
+
bool Enable_ToF_random_placement
Definition: OSC_Sim.h:34
+
std::vector< int > getDynamicsTransientElectrons() const
Definition: OSC_Sim.cpp:2354
+
void calculateAllEvents()
Definition: OSC_Sim.cpp:241
+
bool Enable_FRET_triplet_annihilation
Definition: OSC_Sim.h:63
+
std::vector< double > getDynamicsExcitonMSDV() const
Definition: OSC_Sim.cpp:2322
+
bool executeNextEvent()
Definition: OSC_Sim.cpp:1868
+
std::vector< double > calculateMobilityData(const std::vector< double > &transit_times) const
Definition: OSC_Sim.cpp:396
+
bool Enable_marcus
Definition: OSC_Sim.h:87
+
std::vector< double > getToFTransientEnergies() const
Definition: OSC_Sim.cpp:2570
+
double Exciton_generation_rate_acceptor
Definition: OSC_Sim.h:50
+
double Polaron_localization_acceptor
Definition: OSC_Sim.h:85
+
double R_exciton_polaron_annihilation_acceptor
Definition: OSC_Sim.h:67
+
double Triplet_localization_acceptor
Definition: OSC_Sim.h:62
+
std::vector< Event > getEvents() const
Definition: OSC_Sim.cpp:2370
+
bool Enable_gaussian_dos
Definition: OSC_Sim.h:99
+
bool checkFinished() const
Definition: OSC_Sim.cpp:1004
+
void createHole(const Coords &coords)
Definition: OSC_Sim.cpp:1481
+
bool Enable_IQE_test
Definition: OSC_Sim.h:40
-
This abstract base class contains the basic properties of a KMC simulation and the functions needed t...
Definition: Simulation.h:63
-
double E_exciton_binding_acceptor
Definition: OSC_Sim.h:67
-
std::vector< double > getToFTransientTimes() const
Definition: OSC_Sim.cpp:2514
-
std::vector< double > getToFTransientVelocities() const
Definition: OSC_Sim.cpp:2518
-
int getN_electrons_recombined() const
Definition: OSC_Sim.cpp:2348
-
bool Enable_gaussian_kernel
Definition: OSC_Sim.h:104
-
bool Enable_exponential_dos
Definition: OSC_Sim.h:99
+
double E_exciton_binding_acceptor
Definition: OSC_Sim.h:70
+
This class extends the Event class to create an specific type of exciton event.
Definition: Exciton.h:77
+
std::vector< double > getToFTransientTimes() const
Definition: OSC_Sim.cpp:2579
+
std::vector< double > getToFTransientVelocities() const
Definition: OSC_Sim.cpp:2583
+
int getN_electrons_recombined() const
Definition: OSC_Sim.cpp:2418
+
bool Enable_gaussian_kernel
Definition: OSC_Sim.h:107
+
bool Enable_exponential_dos
Definition: OSC_Sim.h:102
double Acceptor_conc
Definition: OSC_Sim.h:25
-
double R_exciton_dissociation_donor
Definition: OSC_Sim.h:68
-
double getEnergy() const
Definition: OSC_Sim.h:115
-
double R_triplet_hopping_donor
Definition: OSC_Sim.h:56
-
int getN_holes_collected() const
Definition: OSC_Sim.cpp:2401
-
This simple struct contains Cartesian coordinates specified by integers x,y,z.
Definition: Utils.h:25
-
double Homo_acceptor
Definition: OSC_Sim.h:94
-
short getType() const
Definition: OSC_Sim.h:116
-
int getN_singlet_singlet_annihilations() const
Definition: OSC_Sim.cpp:2377
-
double Polaron_localization_donor
Definition: OSC_Sim.h:81
-
double E_exciton_ST_acceptor
Definition: OSC_Sim.h:76
-
double calculateTransitTime_stdev() const
Definition: OSC_Sim.cpp:415
-
This base class contains the basic properties of a KMC simulation object and the functions needed to ...
Definition: Object.h:23
-
double calculateDiffusionLength_stdev() const
Definition: OSC_Sim.cpp:334
+
double R_exciton_dissociation_donor
Definition: OSC_Sim.h:71
+
double getEnergy() const
Definition: OSC_Sim.h:118
+
double R_triplet_hopping_donor
Definition: OSC_Sim.h:59
+
int getN_holes_collected() const
Definition: OSC_Sim.cpp:2471
+
double Homo_acceptor
Definition: OSC_Sim.h:97
+
short getType() const
Definition: OSC_Sim.h:119
+
int getN_singlet_singlet_annihilations() const
Definition: OSC_Sim.cpp:2447
+
double Polaron_localization_donor
Definition: OSC_Sim.h:84
+
double E_exciton_ST_acceptor
Definition: OSC_Sim.h:79
This class extends the Object class to create an exciton object to represent a singlet or triplet exc...
Definition: Exciton.h:19
-
double Disorder_correlation_length
Definition: OSC_Sim.h:103
-
void reassignSiteEnergies()
Definition: OSC_Sim.cpp:2626
-
bool Enable_correlated_disorder
Definition: OSC_Sim.h:102
-
std::vector< double > getDynamicsHoleEnergies() const
Definition: OSC_Sim.cpp:2292
-
std::vector< double > getTransitTimeData() const
Definition: OSC_Sim.cpp:2522
-
int getN_triplet_polaron_annihilations() const
Definition: OSC_Sim.cpp:2393
-
double Reorganization_donor
Definition: OSC_Sim.h:85
-
double calculateMobility_stdev() const
Definition: OSC_Sim.cpp:393
+
double Disorder_correlation_length
Definition: OSC_Sim.h:106
+
void reassignSiteEnergies()
Definition: OSC_Sim.cpp:2691
+
bool Enable_correlated_disorder
Definition: OSC_Sim.h:105
+
std::vector< double > getDynamicsHoleEnergies() const
Definition: OSC_Sim.cpp:2342
+
std::vector< double > getTransitTimeData() const
Definition: OSC_Sim.cpp:2587
+
int getN_triplet_polaron_annihilations() const
Definition: OSC_Sim.cpp:2463
+
double Reorganization_donor
Definition: OSC_Sim.h:88
OSC_Sim()
Definition: OSC_Sim.cpp:11
-
int getN_bimolecular_recombinations() const
Definition: OSC_Sim.cpp:2336
+
int getN_bimolecular_recombinations() const
Definition: OSC_Sim.cpp:2406
bool Enable_neat
Definition: OSC_Sim.h:20
-
int getN_singlet_excitons_recombined() const
Definition: OSC_Sim.cpp:2369
+
int getN_singlet_excitons_recombined() const
Definition: OSC_Sim.cpp:2439
bool Enable_ToF_test
Definition: OSC_Sim.h:31
-
std::vector< std::string > getChargeExtractionMap(const bool charge) const
Definition: OSC_Sim.cpp:2460
-
double getInternalField() const
Definition: OSC_Sim.cpp:2332
-
int getN_triplet_triplet_annihilations() const
Definition: OSC_Sim.cpp:2385
-
int Power_kernel_exponent
Definition: OSC_Sim.h:106
-
double Energy_stdev_donor
Definition: OSC_Sim.h:97
-
double Singlet_localization_acceptor
Definition: OSC_Sim.h:55
-
bool checkParameters(const Parameters_OPV &params) const
Definition: OSC_Sim.cpp:1080
-
double R_singlet_hopping_donor
Definition: OSC_Sim.h:52
-
void setType(const short site_type)
Definition: OSC_Sim.h:119
-
int getN_electrons_created() const
Definition: OSC_Sim.cpp:2344
-
int getN_singlet_polaron_annihilations() const
Definition: OSC_Sim.cpp:2389
+
std::vector< std::string > getChargeExtractionMap(const bool charge) const
Definition: OSC_Sim.cpp:2525
+
double getInternalField() const
Definition: OSC_Sim.cpp:2402
+
void calculateDOSCorrelation()
Definition: OSC_Sim.cpp:338
+
int getN_triplet_triplet_annihilations() const
Definition: OSC_Sim.cpp:2455
+
int Power_kernel_exponent
Definition: OSC_Sim.h:109
+
double Energy_stdev_donor
Definition: OSC_Sim.h:100
+
double Singlet_localization_acceptor
Definition: OSC_Sim.h:58
+
bool checkParameters(const Parameters_OPV &params) const
Definition: OSC_Sim.cpp:1031
+
double R_singlet_hopping_donor
Definition: OSC_Sim.h:55
+
void setType(const short site_type)
Definition: OSC_Sim.h:122
+
int getN_electrons_created() const
Definition: OSC_Sim.cpp:2414
+
int getN_singlet_polaron_annihilations() const
Definition: OSC_Sim.cpp:2459
bool init(const Parameters_OPV &params, const int id)
Definition: OSC_Sim.cpp:19
-
std::vector< double > getDiffusionData() const
Definition: OSC_Sim.cpp:2268
int N_tests
Definition: OSC_Sim.h:29
-
bool Enable_dynamics_test
Definition: OSC_Sim.h:39
-
int Exciton_dissociation_cutoff
Definition: OSC_Sim.h:70
-
This base class contains the basic properties of a lattice site and the functions needed to interact ...
Definition: Site.h:18
+
bool Enable_dynamics_test
Definition: OSC_Sim.h:42
+
int Exciton_dissociation_cutoff
Definition: OSC_Sim.h:73
-
#include "KMC_Lattice/Utils.h"
-#include "KMC_Lattice/Object.h"
-#include "KMC_Lattice/Event.h"
+
#include "Utils.h"
+#include "Object.h"
+#include "Event.h"
#include <string>

Go to the source code of this file.

@@ -116,7 +116,7 @@
-Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the Excimontec project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec
5 
6 #ifndef POLARON_H
7 #define POLARON_H
8 
9 #include "KMC_Lattice/Utils.h"
10 #include "KMC_Lattice/Object.h"
11 #include "KMC_Lattice/Event.h"
12 #include <string>
13 
14 class Polaron : public Object{
15  public:
16  static const std::string object_type;
17  Polaron(const double time,const int tag_num,const Coords& start_coords,const bool polaron_charge) : Object(time,tag_num,start_coords){charge = polaron_charge;}
18  bool getCharge() const{return charge;}
19  std::string getObjectType() const{return object_type;}
20  private:
21  bool charge; // false represents negative charge, true represents positive charge
22 };
23 
24 class Polaron_Hop : public Event{
25  public:
26  static const std::string event_type;
27  Polaron_Hop() : Event() {}
28  Polaron_Hop(Simulation* simulation_ptr) : Event(simulation_ptr) {}
29  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
30  // Calculates hopping using the Miller-Abrahams model
31  double rate = prefactor*exp(-2.0*localization*distance);
32  if(E_delta>0){
33  rate *= exp(-E_delta/(Utils::K_b*sim_ptr->getTemp()));
34  }
36  }
37  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta,const double reorganization){
38  // Calculates hopping using the Marcus model
39  double rate = (prefactor/sqrt(4.0*Utils::Pi*reorganization*Utils::K_b*sim_ptr->getTemp()))*exp(-2.0*localization*distance)*exp(-Utils::intpow(reorganization+E_delta,2)/(4.0*reorganization*Utils::K_b*sim_ptr->getTemp()));
41  }
42  std::string getEventType() const{return event_type;}
43  private:
44 
45 };
46 
48  public:
49  static const std::string event_type;
51  Polaron_Recombination(Simulation* simulation_ptr) : Event(simulation_ptr) {}
52  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
53  // Calculates recombination using the Miller-Abrahams model
54  double rate = prefactor*exp(-2.0*localization*distance);
55  if(E_delta>0){
56  rate *= exp(-E_delta/ (Utils::K_b*sim_ptr->getTemp()));
57  }
59  }
60  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta,const double reorganization){
61  // Calculates recombination using the Marcus model
62  double rate = (prefactor/sqrt(4.0*Utils::Pi*reorganization*Utils::K_b*sim_ptr->getTemp()))*exp(-2.0*localization*distance)*exp(-Utils::intpow(reorganization+E_delta,2)/(4.0*reorganization*Utils::K_b*sim_ptr->getTemp()));
64  }
65  std::string getEventType() const{return event_type;}
66  private:
67 
68 };
69 
70 class Polaron_Extraction : public Event{
71  public:
72  static const std::string event_type;
74  Polaron_Extraction(Simulation* simulation_ptr) : Event(simulation_ptr) {}
75  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
76  // Calculates extraction using the Miller-Abrahams model
77  double rate = prefactor*exp(-2.0*localization*distance);
78  if(E_delta>0){
79  rate *= exp(-E_delta/(Utils::K_b*sim_ptr->getTemp()));
80  }
82  }
83  std::string getEventType() const{return event_type;}
84  private:
85 };
86 
87 #endif // POLARON_H
Definition: Polaron.h:47
+Go to the documentation of this file.
1 // Copyright (c) 2018 Michael C. Heiber
2 // This source file is part of the Excimontec project, which is subject to the MIT License.
3 // For more information, see the LICENSE file that accompanies this software.
4 // The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec
5 
6 #ifndef POLARON_H
7 #define POLARON_H
8 
9 #include "Utils.h"
10 #include "Object.h"
11 #include "Event.h"
12 #include <string>
13 
14 class Polaron : public Object{
15  public:
16  static const std::string object_type;
17  Polaron(const double time,const int tag_num,const Coords& start_coords,const bool polaron_charge) : Object(time,tag_num,start_coords){charge = polaron_charge;}
18  bool getCharge() const{return charge;}
19  std::string getObjectType() const{return object_type;}
20  private:
21  bool charge; // false represents negative charge, true represents positive charge
22 };
23 
24 class Polaron_Hop : public Event{
25  public:
26  static const std::string event_type;
27  Polaron_Hop() : Event() {}
28  Polaron_Hop(Simulation* simulation_ptr) : Event(simulation_ptr) {}
29  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
30  // Calculates hopping using the Miller-Abrahams model
31  double rate = prefactor*exp(-2.0*localization*distance);
32  if(E_delta>0){
33  rate *= exp(-E_delta/(Utils::K_b*sim_ptr->getTemp()));
34  }
35  Event::calculateExecutionTime(rate);
36  }
37  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta,const double reorganization){
38  // Calculates hopping using the Marcus model
39  double rate = (prefactor/sqrt(4.0*Utils::Pi*reorganization*Utils::K_b*sim_ptr->getTemp()))*exp(-2.0*localization*distance)*exp(-Utils::intpow(reorganization+E_delta,2)/(4.0*reorganization*Utils::K_b*sim_ptr->getTemp()));
40  Event::calculateExecutionTime(rate);
41  }
42  std::string getEventType() const{return event_type;}
43  private:
44 
45 };
46 
47 class Polaron_Recombination : public Event{
48  public:
49  static const std::string event_type;
50  Polaron_Recombination() : Event() {}
51  Polaron_Recombination(Simulation* simulation_ptr) : Event(simulation_ptr) {}
52  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
53  // Calculates recombination using the Miller-Abrahams model
54  double rate = prefactor*exp(-2.0*localization*distance);
55  if(E_delta>0){
56  rate *= exp(-E_delta/ (Utils::K_b*sim_ptr->getTemp()));
57  }
58  Event::calculateExecutionTime(rate);
59  }
60  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta,const double reorganization){
61  // Calculates recombination using the Marcus model
62  double rate = (prefactor/sqrt(4.0*Utils::Pi*reorganization*Utils::K_b*sim_ptr->getTemp()))*exp(-2.0*localization*distance)*exp(-Utils::intpow(reorganization+E_delta,2)/(4.0*reorganization*Utils::K_b*sim_ptr->getTemp()));
63  Event::calculateExecutionTime(rate);
64  }
65  std::string getEventType() const{return event_type;}
66  private:
67 
68 };
69 
70 class Polaron_Extraction : public Event{
71  public:
72  static const std::string event_type;
73  Polaron_Extraction() : Event() {}
74  Polaron_Extraction(Simulation* simulation_ptr) : Event(simulation_ptr) {}
75  void calculateExecutionTime(const double prefactor,const double localization,const double distance,const double E_delta){
76  // Calculates extraction using the Miller-Abrahams model
77  double rate = prefactor*exp(-2.0*localization*distance);
78  if(E_delta>0){
79  rate *= exp(-E_delta/(Utils::K_b*sim_ptr->getTemp()));
80  }
81  Event::calculateExecutionTime(rate);
82  }
83  std::string getEventType() const{return event_type;}
84  private:
85 };
86 
87 #endif // POLARON_H
Definition: Polaron.h:47
Polaron_Extraction(Simulation *simulation_ptr)
Definition: Polaron.h:74
static const std::string object_type
Definition: Polaron.h:16
-
std::string getEventType() const
Gets the name of event class.
Definition: Polaron.h:42
-
int getTemp() const
Gets the value of the temperature parameter.
Definition: Simulation.cpp:157
-
This base class contains the basic properties of a KMC simulation event and the functions needed to i...
Definition: Event.h:26
-
Simulation * sim_ptr
The sim_ptr member variable provides a point to the Simulation object that the Event is asociated wit...
Definition: Event.h:97
+
std::string getEventType() const
Definition: Polaron.h:42
Polaron(const double time, const int tag_num, const Coords &start_coords, const bool polaron_charge)
Definition: Polaron.h:17
bool getCharge() const
Definition: Polaron.h:18
static const std::string event_type
Definition: Polaron.h:49
-
void calculateExecutionTime(const double rate)
Calculates and sets the execution time of the event.
Definition: Event.cpp:25
void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)
Definition: Polaron.h:60
Polaron_Recombination(Simulation *simulation_ptr)
Definition: Polaron.h:51
Definition: Polaron.h:24
- -
std::string getObjectType() const
Gets the name of the Object class.
Definition: Polaron.h:19
+
std::string getObjectType() const
Definition: Polaron.h:19
static const std::string event_type
Definition: Polaron.h:72
Polaron_Extraction()
Definition: Polaron.h:73
static const std::string event_type
Definition: Polaron.h:26
@@ -114,25 +109,19 @@
void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)
Definition: Polaron.h:37
void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)
Definition: Polaron.h:52
Polaron_Hop()
Definition: Polaron.h:27
- -
void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)
Definition: Polaron.h:75
-
std::string getEventType() const
Gets the name of event class.
Definition: Polaron.h:83
-
This abstract base class contains the basic properties of a KMC simulation and the functions needed t...
Definition: Simulation.h:63
-
This simple struct contains Cartesian coordinates specified by integers x,y,z.
Definition: Utils.h:25
-
This base class contains the basic properties of a KMC simulation object and the functions needed to ...
Definition: Object.h:23
+
std::string getEventType() const
Definition: Polaron.h:83
Polaron_Hop(Simulation *simulation_ptr)
Definition: Polaron.h:28
void calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)
Definition: Polaron.h:29
-
std::string getEventType() const
Gets the name of event class.
Definition: Polaron.h:65
+
std::string getEventType() const
Definition: Polaron.h:65
Definition: Polaron.h:70
-
base_type intpow(const base_type base, const int exponent)
This template function calculates and returns the results of an integer power operation on a base num...
Definition: Utils.h:202
Polaron_Recombination()
Definition: Polaron.h:50
diff --git a/docs/class_exciton.html b/docs/class_exciton.html index d5c8274..f8741d2 100644 --- a/docs/class_exciton.html +++ b/docs/class_exciton.html @@ -30,9 +30,9 @@
Excimontec -  v1.0-beta.3 +  v1.0-beta.4
-
An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
+
An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
@@ -96,7 +96,7 @@
-

This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor. +

This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor. More...

#include <Exciton.h>

@@ -106,20 +106,19 @@
-Object
- + - + @@ -127,49 +126,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 Exciton (const double time, const int tag_num, const Coords &coords_start)
 Exciton (const double time, const int tag_num, const Coords &coords_start)
 Constructor that creates and initializes an exciton. More...
 
void flipSpin ()
 Flips the spin state of the exciton from singlet to triplet or from triplet to singlet. More...
 
std::string getObjectType () const
 Gets the object type string that denotes what type of Object class this is. More...
 Gets the object type string that denotes what type of Object class this is. More...
 
bool getSpin () const
 Gets the current spin state of the exciton. More...
void setSpin (bool spin_state_new)
 Sets the spin state of the exciton. More...
 
- Public Member Functions inherited from Object
virtual ~Object ()
 Default virtual destructor needed by the base class. More...
 
 Object ()
 Default constructor that creates an empty Object object. More...
 
 Object (const double time, const int tag_num, const Coords &start_coords)
 Constructor that creates and initializes a usable Object object. More...
 
double calculateDisplacement () const
 Calculates the displacement of the object from its starting coordinates in lattice units. More...
 
Coords getCoords () const
 Gets the current coordinates of the Object. More...
 
double getCreationTime () const
 Gets the simulation creation time of the Object. More...
 
std::list< Event * >::iterator getEventIt () const
 Gets the event list iterator for the event that is associated with the object. More...
 
int getTag () const
 Gets the tag id number of the Object. More...
 
void incrementDX (const int num)
 Increments the dx parameter, which is to be used when the Object crosses an x-direction periodic boundary. More...
 
void incrementDY (const int num)
 Increments the dy parameter, which is to be used when the Object crosses a y-direction periodic boundary. More...
 
void incrementDZ (const int num)
 Increments the dz parameter, which is to be used when the Object crosses a z-direction periodic boundary. More...
 
void resetInitialCoords (const Coords &input_coords)
 Resets the initial coordinates of the Object. More...
 
void setCoords (const Coords &input_coords)
 Sets the coordinates of the Object. More...
 
void setEventIt (const std::list< Event *>::iterator input_it)
 Sets the iterator that points to a specific entry in the events list within the Simulation class. More...
 
@@ -178,7 +134,7 @@

Static Public Attributes

 

Detailed Description

-

This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor.

+

This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor.

Author
Michael C. Heiber
Date
2018
@@ -207,7 +163,7 @@

- const Coords &  + const Coords &  coords_start  @@ -228,7 +184,7 @@

timeis the simulation time denoting when the exciton was created. tag_numis a unique id number used to distinguish the exciton from other excitons. - coords_startis the Coords struct that represents the starting coordinates of the exciton. + coords_startis the Coords struct that represents the starting coordinates of the exciton. @@ -281,16 +237,14 @@

-inlinevirtual +inline

-

Gets the object type string that denotes what type of Object class this is.

+

Gets the object type string that denotes what type of Object class this is.

Returns
The string "Exciton".
-

Reimplemented from Object.

-
@@ -383,8 +337,8 @@

Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton.png b/docs/class_exciton.png index 3c10483..582873b 100644 Binary files a/docs/class_exciton.png and b/docs/class_exciton.png differ diff --git a/docs/class_exciton___creation-members.html b/docs/class_exciton___creation-members.html index 70d451a..f63ef5e 100644 --- a/docs/class_exciton___creation-members.html +++ b/docs/class_exciton___creation-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -94,23 +94,10 @@

    This is the complete list of members for Exciton_Creation, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Creationstatic
    Exciton_Creation()Exciton_Creationinline
    Exciton_Creation(Simulation *simulation_ptr)Exciton_Creationinline
    getDestCoords() constEvent
    getEventType() constExciton_Creationinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Creationstatic
    Exciton_Creation()Exciton_Creationinline
    Exciton_Creation(Simulation *simulation_ptr)Exciton_Creationinline
    getEventType() constExciton_Creationinline
    diff --git a/docs/class_exciton___creation.html b/docs/class_exciton___creation.html index 18c638b..ce12a15 100644 --- a/docs/class_exciton___creation.html +++ b/docs/class_exciton___creation.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,64 +114,21 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Creation ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Creation (Simulation *simulation_ptr)
     Exciton_Creation (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton Creation"
     This static member variable holds the name of the event, which is "Exciton_Creation". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -216,7 +172,7 @@

    Exciton_Creation::Exciton_Creation ( - Simulation *  + Simulation *  simulation_ptr) @@ -231,7 +187,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -257,16 +213,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Creation".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -295,8 +249,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___creation.png b/docs/class_exciton___creation.png index 8676dcb..1ed95ba 100644 Binary files a/docs/class_exciton___creation.png and b/docs/class_exciton___creation.png differ diff --git a/docs/class_exciton___dissociation-members.html b/docs/class_exciton___dissociation-members.html index 04889e7..b102045 100644 --- a/docs/class_exciton___dissociation-members.html +++ b/docs/class_exciton___dissociation-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,23 +96,10 @@ - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)Exciton_Dissociationinline
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)Exciton_Dissociationinline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Dissociationstatic
    Exciton_Dissociation()Exciton_Dissociationinline
    Exciton_Dissociation(Simulation *simulation_ptr)Exciton_Dissociationinline
    getDestCoords() constEvent
    getEventType() constExciton_Dissociationinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Dissociationstatic
    Exciton_Dissociation()Exciton_Dissociationinline
    Exciton_Dissociation(Simulation *simulation_ptr)Exciton_Dissociationinline
    getEventType() constExciton_Dissociationinline
    diff --git a/docs/class_exciton___dissociation.html b/docs/class_exciton___dissociation.html index 029ebec..f7d6f06 100644 --- a/docs/class_exciton___dissociation.html +++ b/docs/class_exciton___dissociation.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,7 +114,7 @@ - + @@ -125,60 +124,17 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Dissociation ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Dissociation (Simulation *simulation_ptr)
     Exciton_Dissociation (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    void calculateExecutionTime (const double prefactor, const double localization, const double distance, const double E_delta)
     Calculates and updates the execution time for the exciton dissociation event using the Marcus polaron hopping mechanism. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton Dissociation"
     This static member variable holds the name of the event, which is "Exciton_Dissociation". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -222,7 +178,7 @@

    Exciton_Dissociation::Exciton_Dissociation ( - Simulation *  + Simulation *  simulation_ptr) @@ -237,7 +193,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -388,16 +344,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Dissociation".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -426,8 +380,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___dissociation.png b/docs/class_exciton___dissociation.png index 6276bdc..2153d47 100644 Binary files a/docs/class_exciton___dissociation.png and b/docs/class_exciton___dissociation.png differ diff --git a/docs/class_exciton___exciton___annihilation-members.html b/docs/class_exciton___exciton___annihilation-members.html index 70eb685..cb65488 100644 --- a/docs/class_exciton___exciton___annihilation-members.html +++ b/docs/class_exciton___exciton___annihilation-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,23 +96,10 @@ - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double distance)Exciton_Exciton_Annihilationinline
    calculateExecutionTime(const double prefactor, const double localization, const double distance)Exciton_Exciton_Annihilationinline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Exciton_Annihilationstatic
    Exciton_Exciton_Annihilation()Exciton_Exciton_Annihilationinline
    Exciton_Exciton_Annihilation(Simulation *simulation_ptr)Exciton_Exciton_Annihilationinline
    getDestCoords() constEvent
    getEventType() constExciton_Exciton_Annihilationinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Exciton_Annihilationstatic
    Exciton_Exciton_Annihilation()Exciton_Exciton_Annihilationinline
    Exciton_Exciton_Annihilation(Simulation *simulation_ptr)Exciton_Exciton_Annihilationinline
    getEventType() constExciton_Exciton_Annihilationinline
    diff --git a/docs/class_exciton___exciton___annihilation.html b/docs/class_exciton___exciton___annihilation.html index 7ae25bc..22272a6 100644 --- a/docs/class_exciton___exciton___annihilation.html +++ b/docs/class_exciton___exciton___annihilation.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,7 +114,7 @@ - + @@ -125,60 +124,17 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Exciton_Annihilation ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Exciton_Annihilation (Simulation *simulation_ptr)
     Exciton_Exciton_Annihilation (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    void calculateExecutionTime (const double prefactor, const double distance)
     Calculates and updates the execution time for the exciton-exciton annihilation event using the Dexter hopping mechanism. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton-Exciton Annihilation"
     This static member variable holds the name of the event, which is "Exciton_Exciton_Annihilation". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -222,7 +178,7 @@

    Exciton_Exciton_Annihilation::Exciton_Exciton_Annihilation ( - Simulation *  + Simulation *  simulation_ptr) @@ -237,7 +193,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -360,16 +316,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Exciton_Annihilation".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -398,8 +352,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___exciton___annihilation.png b/docs/class_exciton___exciton___annihilation.png index 7d7d5ee..ed566a3 100644 Binary files a/docs/class_exciton___exciton___annihilation.png and b/docs/class_exciton___exciton___annihilation.png differ diff --git a/docs/class_exciton___hop-members.html b/docs/class_exciton___hop-members.html index 724df7c..fab1a97 100644 --- a/docs/class_exciton___hop-members.html +++ b/docs/class_exciton___hop-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,23 +96,10 @@ - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double distance, const double E_delta)Exciton_Hopinline
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)Exciton_Hopinline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Hopstatic
    Exciton_Hop()Exciton_Hopinline
    Exciton_Hop(Simulation *simulation_ptr)Exciton_Hopinline
    getDestCoords() constEvent
    getEventType() constExciton_Hopinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Hopstatic
    Exciton_Hop()Exciton_Hopinline
    Exciton_Hop(Simulation *simulation_ptr)Exciton_Hopinline
    getEventType() constExciton_Hopinline
    diff --git a/docs/class_exciton___hop.html b/docs/class_exciton___hop.html index 9043fac..e595a00 100644 --- a/docs/class_exciton___hop.html +++ b/docs/class_exciton___hop.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,7 +114,7 @@ - + @@ -125,60 +124,17 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Hop ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Hop (Simulation *simulation_ptr)
     Exciton_Hop (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    void calculateExecutionTime (const double prefactor, const double distance, const double E_delta)
     Calculates and updates the execution time for the exciton hop event using the Dexter hopping mechanism. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton Hop"
     This static member variable holds the name of the event, which is "Exciton_Hop". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -222,7 +178,7 @@

    Exciton_Hop::Exciton_Hop ( - Simulation *  + Simulation *  simulation_ptr) @@ -237,7 +193,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -374,16 +330,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Hop".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -412,8 +366,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___hop.png b/docs/class_exciton___hop.png index 5c1688f..b6d6463 100644 Binary files a/docs/class_exciton___hop.png and b/docs/class_exciton___hop.png differ diff --git a/docs/class_exciton___intersystem___crossing-members.html b/docs/class_exciton___intersystem___crossing-members.html index 2df2d04..5f5abdc 100644 --- a/docs/class_exciton___intersystem___crossing-members.html +++ b/docs/class_exciton___intersystem___crossing-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -95,23 +95,10 @@

    This is the complete list of members for Exciton_Intersystem_Crossing, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double E_delta)Exciton_Intersystem_Crossinginline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Intersystem_Crossingstatic
    Exciton_Intersystem_Crossing()Exciton_Intersystem_Crossinginline
    Exciton_Intersystem_Crossing(Simulation *simulation_ptr)Exciton_Intersystem_Crossinginline
    getDestCoords() constEvent
    getEventType() constExciton_Intersystem_Crossinginlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Intersystem_Crossingstatic
    Exciton_Intersystem_Crossing()Exciton_Intersystem_Crossinginline
    Exciton_Intersystem_Crossing(Simulation *simulation_ptr)Exciton_Intersystem_Crossinginline
    getEventType() constExciton_Intersystem_Crossinginline
    diff --git a/docs/class_exciton___intersystem___crossing.html b/docs/class_exciton___intersystem___crossing.html index d060899..4bbb7fc 100644 --- a/docs/class_exciton___intersystem___crossing.html +++ b/docs/class_exciton___intersystem___crossing.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,67 +114,24 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Intersystem_Crossing ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Intersystem_Crossing (Simulation *simulation_ptr)
     Exciton_Intersystem_Crossing (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    void calculateExecutionTime (const double prefactor, const double E_delta)
     Calculates and updates the execution time for the exciton intersystem crossing event. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton Intersystem Crossing"
     This static member variable holds the name of the event, which is "Exciton_Intersystem_Crossing". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -219,7 +175,7 @@

    Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing ( - Simulation *  + Simulation *  simulation_ptr) @@ -234,7 +190,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -305,16 +261,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Intersystem_Crossing".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -343,8 +297,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___intersystem___crossing.png b/docs/class_exciton___intersystem___crossing.png index fd1d737..930c948 100644 Binary files a/docs/class_exciton___intersystem___crossing.png and b/docs/class_exciton___intersystem___crossing.png differ diff --git a/docs/class_exciton___polaron___annihilation-members.html b/docs/class_exciton___polaron___annihilation-members.html index 51b5c13..58de9cb 100644 --- a/docs/class_exciton___polaron___annihilation-members.html +++ b/docs/class_exciton___polaron___annihilation-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,23 +96,10 @@ - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double distance)Exciton_Polaron_Annihilationinline
    calculateExecutionTime(const double prefactor, const double localization, const double distance)Exciton_Polaron_Annihilationinline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Polaron_Annihilationstatic
    Exciton_Polaron_Annihilation()Exciton_Polaron_Annihilationinline
    Exciton_Polaron_Annihilation(Simulation *simulation_ptr)Exciton_Polaron_Annihilationinline
    getDestCoords() constEvent
    getEventType() constExciton_Polaron_Annihilationinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Polaron_Annihilationstatic
    Exciton_Polaron_Annihilation()Exciton_Polaron_Annihilationinline
    Exciton_Polaron_Annihilation(Simulation *simulation_ptr)Exciton_Polaron_Annihilationinline
    getEventType() constExciton_Polaron_Annihilationinline
    diff --git a/docs/class_exciton___polaron___annihilation.html b/docs/class_exciton___polaron___annihilation.html index f753f2f..b3334ae 100644 --- a/docs/class_exciton___polaron___annihilation.html +++ b/docs/class_exciton___polaron___annihilation.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,7 +114,7 @@ - + @@ -125,60 +124,17 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Polaron_Annihilation ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Polaron_Annihilation (Simulation *simulation_ptr)
     Exciton_Polaron_Annihilation (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    void calculateExecutionTime (const double prefactor, const double distance)
     Calculates and updates the execution time for the exciton-polaron annihilation event using the Dexter hopping mechanism. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton-Polaron Annihilation"
     This static member variable holds the name of the event, which is "Exciton_Polaron_Annihilation". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -222,7 +178,7 @@

    Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation ( - Simulation *  + Simulation *  simulation_ptr) @@ -237,7 +193,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -360,16 +316,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Polaron_Annihilation".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -398,8 +352,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___polaron___annihilation.png b/docs/class_exciton___polaron___annihilation.png index a866dda..eea8b9f 100644 Binary files a/docs/class_exciton___polaron___annihilation.png and b/docs/class_exciton___polaron___annihilation.png differ diff --git a/docs/class_exciton___recombination-members.html b/docs/class_exciton___recombination-members.html index 19a49ce..7a52b95 100644 --- a/docs/class_exciton___recombination-members.html +++ b/docs/class_exciton___recombination-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -94,23 +94,10 @@

    This is the complete list of members for Exciton_Recombination, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typeExciton_Recombinationstatic
    Exciton_Recombination()Exciton_Recombinationinline
    Exciton_Recombination(Simulation *simulation_ptr)Exciton_Recombinationinline
    getDestCoords() constEvent
    getEventType() constExciton_Recombinationinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typeExciton_Recombinationstatic
    Exciton_Recombination()Exciton_Recombinationinline
    Exciton_Recombination(Simulation *simulation_ptr)Exciton_Recombinationinline
    getEventType() constExciton_Recombinationinline
    diff --git a/docs/class_exciton___recombination.html b/docs/class_exciton___recombination.html index 2a9333a..46e9d89 100644 --- a/docs/class_exciton___recombination.html +++ b/docs/class_exciton___recombination.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,7 +96,7 @@
    -

    This class extends the Event class to create an specific type of exciton event. +

    This class extends the Event class to create an specific type of exciton event. More...

    #include <Exciton.h>

    @@ -106,7 +106,6 @@
    -Event
    @@ -115,64 +114,21 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Exciton_Recombination ()
     Constructs an empty event that is uninitialized. More...
     
     Exciton_Recombination (Simulation *simulation_ptr)
     Exciton_Recombination (Simulation *simulation_ptr)
     Constructs and initializes an event. More...
     
    std::string getEventType () const
     Gets the event type string that denotes what type of Event class this is. More...
     Gets the event type string that denotes what type of Event class this is. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Exciton Recombination"
     This static member variable holds the name of the event, which is "Exciton_Recombination". More...
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Detailed Description

    -

    This class extends the Event class to create an specific type of exciton event.

    +

    This class extends the Event class to create an specific type of exciton event.

    Author
    Michael C. Heiber
    Date
    2018
    @@ -216,7 +172,7 @@

    Exciton_Recombination::Exciton_Recombination ( - Simulation *  + Simulation *  simulation_ptr) @@ -231,7 +187,7 @@

    Parameters
    - +
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    simulation_ptris a pointer to the Simulation object that is associated with the event.
    @@ -257,16 +213,14 @@

    -inlinevirtual +inline

    -

    Gets the event type string that denotes what type of Event class this is.

    +

    Gets the event type string that denotes what type of Event class this is.

    Returns
    The string "Exciton_Recombination".
    -

    Reimplemented from Event.

    -

    Member Data Documentation

    @@ -295,8 +249,8 @@

    Exciton.h -
  • Exciton.cpp
  • +
  • src/Exciton.h
  • +
  • src/Exciton.cpp
  • diff --git a/docs/class_exciton___recombination.png b/docs/class_exciton___recombination.png index b8cdff6..82ffe12 100644 Binary files a/docs/class_exciton___recombination.png and b/docs/class_exciton___recombination.png differ diff --git a/docs/class_lattice-members.html b/docs/class_lattice-members.html deleted file mode 100644 index 8722957..0000000 --- a/docs/class_lattice-members.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    Lattice Member List
    -
    -
    - -

    This is the complete list of members for Lattice, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    calculateDestinationCoords(const Coords &coords_initial, const int i, const int j, const int k, Coords &coords_dest) constLattice
    calculateDX(const int x, const int i) constLattice
    calculateDX(const Coords &coords_initial, const Coords &coords_dest) constLattice
    calculateDY(const int y, const int j) constLattice
    calculateDY(const Coords &coords_initial, const Coords &coords_dest) constLattice
    calculateDZ(const int z, const int k) constLattice
    calculateDZ(const Coords &coords_initial, const Coords &coords_dest) constLattice
    calculateLatticeDistanceSquared(const Coords &coords_start, const Coords &coords_dest) constLattice
    checkMoveValidity(const Coords &coords_initial, const int i, const int j, const int k) constLattice
    clearOccupancy(const Coords &coords)Lattice
    generateRandomCoords()Lattice
    generateRandomX()Lattice
    generateRandomY()Lattice
    generateRandomZ()Lattice
    getHeight() constLattice
    getLength() constLattice
    getNumSites() constLattice
    getSiteCoords(long int site_index)Lattice
    getSiteIndex(const Coords &coords) constLattice
    getSiteIt(const Coords &coords)Lattice
    getUnitSize() constLattice
    getVolume() constLattice
    getWidth() constLattice
    init(const Parameters_Lattice &params, std::mt19937 *generator_ptr)Lattice
    isOccupied(const Coords &coords) constLattice
    isXPeriodic() constLattice
    isYPeriodic() constLattice
    isZPeriodic() constLattice
    Lattice()Lattice
    outputLatticeOccupancy() constLattice
    setOccupied(const Coords &coords)Lattice
    setSitePointers(const std::vector< Site *> &input_ptrs)Lattice
    -
    - - - - diff --git a/docs/class_lattice.html b/docs/class_lattice.html deleted file mode 100644 index 9050a50..0000000 --- a/docs/class_lattice.html +++ /dev/null @@ -1,1161 +0,0 @@ - - - - - - - -Excimontec: Lattice Class Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    Lattice Class Reference
    -
    -
    - -

    This class contains the properties of a three-dimensional lattice and the functions needed to interact with it. - More...

    - -

    #include <Lattice.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

     Lattice ()
     Default constructor that creates an empty Lattice object. More...
     
    void init (const Parameters_Lattice &params, std::mt19937 *generator_ptr)
     Initializes the Lattice object using the provided Parameters_Lattice input parameter struct. More...
     
    void calculateDestinationCoords (const Coords &coords_initial, const int i, const int j, const int k, Coords &coords_dest) const
     Calculates the destination coordinates when given the starting coordinates and the displacement vector (i,j,k). More...
     
    int calculateDX (const int x, const int i) const
     Calculates a coordinate adjustment factor if the x-direction periodic boundary is crossed. More...
     
    int calculateDX (const Coords &coords_initial, const Coords &coords_dest) const
     Calculates a coordinate adjustment factor if the x-direction periodic boundary is crossed. More...
     
    int calculateDY (const int y, const int j) const
     Calculates a coordinate adjustment factor if the y-direction periodic boundary is crossed. More...
     
    int calculateDY (const Coords &coords_initial, const Coords &coords_dest) const
     Calculates a coordinate adjustment factor if the y-direction periodic boundary is crossed. More...
     
    int calculateDZ (const int z, const int k) const
     Calculates a coordinate adjustment factor if the z-direction periodic boundary is crossed. More...
     
    int calculateDZ (const Coords &coords_initial, const Coords &coords_dest) const
     Calculates a coordinate adjustment factor if the z-direction periodic boundary is crossed. More...
     
    int calculateLatticeDistanceSquared (const Coords &coords_start, const Coords &coords_dest) const
     Calculates the shortest distance between a pair of coordinates in squared lattice units. More...
     
    bool checkMoveValidity (const Coords &coords_initial, const int i, const int j, const int k) const
     Checks to see if a generic move operation from the designated initial coordinates to a destination position specified by the displacement vector (i,j,k) is possible. More...
     
    void clearOccupancy (const Coords &coords)
     Clears the occupancy of the site located at the specified coordinates. More...
     
    Coords generateRandomCoords ()
     Generates the coordinates for a randomly selected site in the lattice. More...
     
    int generateRandomX ()
     Generates a random x coordinate that lies within the x-dimension size of the lattice. More...
     
    int generateRandomY ()
     Generates a random y coordinate that lies within the y-dimension size of the lattice. More...
     
    int generateRandomZ ()
     Generates a random z coordinate that lies within the z-dimension size of the lattice. More...
     
    int getHeight () const
     Gets the z-direction size of the lattice, the height. More...
     
    int getLength () const
     Gets the x-direction size of the lattice, the length. More...
     
    long int getNumSites () const
     Gets the number of sites contained in the lattice. More...
     
    Coords getSiteCoords (long int site_index)
     Gets the coordinates of the specified site. More...
     
    long int getSiteIndex (const Coords &coords) const
     Gets the vector index for the site corresponding to the input coordinates. More...
     
    std::vector< Site * >::iterator getSiteIt (const Coords &coords)
     Gets the vector iterator for the site corresponding to the input coordinates. More...
     
    double getUnitSize () const
     Gets the lattice unit size, which is used to convert lattice units into real space units. More...
     
    double getVolume () const
     Gets the volume of the lattice in cm^-3. More...
     
    int getWidth () const
     Gets the y-direction size of the lattice, the width. More...
     
    bool isOccupied (const Coords &coords) const
     Checks whether the site located at the input coordinates is occupied or not. More...
     
    bool isXPeriodic () const
     Checks whether the x-direction periodic boundaries are enabled or not. More...
     
    bool isYPeriodic () const
     Checks whether the y-direction periodic boundaries are enabled or not. More...
     
    bool isZPeriodic () const
     Checks whether the z-direction periodic boundaries are enabled or not. More...
     
    void outputLatticeOccupancy () const
     Prints to the command line which sites are occupied. More...
     
    void setOccupied (const Coords &coords)
     Sets the site located at the input coordinates to the occupied state. More...
     
    bool setSitePointers (const std::vector< Site *> &input_ptrs)
     Sets the member site pointer vector to the input site pointer vector. More...
     
    -

    Detailed Description

    -

    This class contains the properties of a three-dimensional lattice and the functions needed to interact with it.

    -

    The class makes use of the Parameters_Lattice struct to load the neccessary input parameters, the Coords struct to record the Cartesian coordinates of each lattice site, and the Site class to assign properties to each site.

    -
    Author
    Michael C. Heiber
    -
    Date
    2018
    -

    Constructor & Destructor Documentation

    - -

    ◆ Lattice()

    - -
    -
    - - - - - - - -
    Lattice::Lattice ()
    -
    - -

    Default constructor that creates an empty Lattice object.

    -
    Warning
    An empty lattice object should not be used until initialized using the init function.
    - -
    -
    -

    Member Function Documentation

    - -

    ◆ calculateDestinationCoords()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void Lattice::calculateDestinationCoords (const Coordscoords_initial,
    const int i,
    const int j,
    const int k,
    Coordscoords_dest 
    ) const
    -
    - -

    Calculates the destination coordinates when given the starting coordinates and the displacement vector (i,j,k).

    -

    When the starting coordinates are near one or more of the lattice boundaries and periodic boundary conditions are enabled, the function detemines the destination coordinates across the periodic boundary and assigns the calculated Coords struct to the input coords_dest argument.

    Parameters
    - - - - - - -
    coords_initialis the Coords struct tht designates the starting coordinates.
    iis the displacement in the x-direction.
    jis the displacement in the y-direction.
    kis the displacement in the z-direction.
    coords_destis Coords struct that indicates the output destination coordinates.
    -
    -
    - -
    -
    - -

    ◆ calculateDX() [1/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateDX (const int x,
    const int i 
    ) const
    -
    - -

    Calculates a coordinate adjustment factor if the x-direction periodic boundary is crossed.

    -
    Parameters
    - - - -
    xis the starting x coordinate.
    iis the displacement in the x-direction.
    -
    -
    -
    Returns
    Length (the x-direction size of the lattice) if the x periodic boundary is crossed in the negative direction.
    -
    --Length if the x periodic boundary is crossed in the positive direction.
    -
    -0 if the x periodic boundary is not enabled or if the x periodic boundary is not crossed.
    - -
    -
    - -

    ◆ calculateDX() [2/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateDX (const Coordscoords_initial,
    const Coordscoords_dest 
    ) const
    -
    - -

    Calculates a coordinate adjustment factor if the x-direction periodic boundary is crossed.

    -
    Parameters
    - - - -
    coords_initialis the Coords struct that represents the starting coordinates.
    coords_destis the Coords struct that represents the destination coordinates.
    -
    -
    -
    Returns
    Length (the x-direction size of the lattice) if the x periodic boundary is crossed in the negative direction.
    -
    --Length if the x periodic boundary is crossed in the positive direction.
    -
    -0 if the x periodic boundary is not enabled or if the x periodic boundary is not crossed.
    - -
    -
    - -

    ◆ calculateDY() [1/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateDY (const int y,
    const int j 
    ) const
    -
    - -

    Calculates a coordinate adjustment factor if the y-direction periodic boundary is crossed.

    -
    Parameters
    - - - -
    yis the starting y coordinate.
    jis the displacement in the y-direction.
    -
    -
    -
    Returns
    Width (the y-direction size of the lattice) if the y periodic boundary is crossed in the negative direction.
    -
    --Width if the y periodic boundary is crossed in the positive direction.
    -
    -0 if the y periodic boundary is not enabled or if the y periodic boundary is not crossed.
    - -
    -
    - -

    ◆ calculateDY() [2/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateDY (const Coordscoords_initial,
    const Coordscoords_dest 
    ) const
    -
    - -

    Calculates a coordinate adjustment factor if the y-direction periodic boundary is crossed.

    -
    Parameters
    - - - -
    coords_initialis the Coords struct that represents the starting coordinates.
    coords_destis the Coords struct that represents the destination coordinates.
    -
    -
    -
    Returns
    Width (the y-direction size of the lattice) if the y periodic boundary is crossed in the negative direction.
    -
    --Width if the y periodic boundary is crossed in the positive direction.
    -
    -0 if the y periodic boundary is not enabled or if the y periodic boundary is not crossed.
    - -
    -
    - -

    ◆ calculateDZ() [1/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateDZ (const int z,
    const int k 
    ) const
    -
    - -

    Calculates a coordinate adjustment factor if the z-direction periodic boundary is crossed.

    -
    Parameters
    - - - -
    zis the starting z coordinate.
    kis the displacement in the z-direction.
    -
    -
    -
    Returns
    Height (the z-direction size of the lattice) if the z periodic boundary is crossed in the negative direction.
    -
    --Height if the z periodic boundary is crossed in the positive direction.
    -
    -0 if the z periodic boundary is not enabled or if the z periodic boundary is not crossed.
    - -
    -
    - -

    ◆ calculateDZ() [2/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateDZ (const Coordscoords_initial,
    const Coordscoords_dest 
    ) const
    -
    - -

    Calculates a coordinate adjustment factor if the z-direction periodic boundary is crossed.

    -
    Parameters
    - - - -
    coords_initialis the Coords struct that represents the starting coordinates.
    coords_destis the Coords struct that represents the destination coordinates.
    -
    -
    -
    Returns
    Height (the z-direction size of the lattice) if the z periodic boundary is crossed in the negative direction.
    -
    --Height if the z periodic boundary is crossed in the positive direction.
    -
    -0 if the z periodic boundary is not enabled or if the z periodic boundary is not crossed.
    - -
    -
    - -

    ◆ calculateLatticeDistanceSquared()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int Lattice::calculateLatticeDistanceSquared (const Coordscoords_start,
    const Coordscoords_dest 
    ) const
    -
    - -

    Calculates the shortest distance between a pair of coordinates in squared lattice units.

    -
    Parameters
    - - - -
    coords_startis the Coords struct that represents the starting coordinates.
    coords_destis the Coords struct that represents the destination coordinates.
    -
    -
    -
    Returns
    The distance between the two sets of coordinates in squared lattice units.
    - -
    -
    - -

    ◆ checkMoveValidity()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    bool Lattice::checkMoveValidity (const Coordscoords_initial,
    const int i,
    const int j,
    const int k 
    ) const
    -
    - -

    Checks to see if a generic move operation from the designated initial coordinates to a destination position specified by the displacement vector (i,j,k) is possible.

    -

    The main use of this function is used to check if a proposed move event crosses a non-periodic boundary.

    Parameters
    - - - - - -
    coords_initialis the Coords struct that represents the starting coordinates.
    iis the displacement in the x-direction.
    jis the displacement in the y-direction.
    kis the displacement in the z-direction.
    -
    -
    -
    Returns
    true if a move event is possible.
    -
    -false if a move event is not possible.
    - -
    -
    - -

    ◆ clearOccupancy()

    - -
    -
    - - - - - - - - -
    void Lattice::clearOccupancy (const Coordscoords)
    -
    - -

    Clears the occupancy of the site located at the specified coordinates.

    -
    Parameters
    - - -
    coordsis the Coords struct that represents the coordinates of the site to be cleared.
    -
    -
    - -
    -
    - -

    ◆ generateRandomCoords()

    - -
    -
    - - - - - - - -
    Coords Lattice::generateRandomCoords ()
    -
    - -

    Generates the coordinates for a randomly selected site in the lattice.

    -
    Returns
    A Coords struct containing the coordinates of a randomly selected site from the lattice.
    - -
    -
    - -

    ◆ generateRandomX()

    - -
    -
    - - - - - - - -
    int Lattice::generateRandomX ()
    -
    - -

    Generates a random x coordinate that lies within the x-dimension size of the lattice.

    -
    Returns
    A randomly selected x coordinate value from in the range from to 0 to Length-1.
    - -
    -
    - -

    ◆ generateRandomY()

    - -
    -
    - - - - - - - -
    int Lattice::generateRandomY ()
    -
    - -

    Generates a random y coordinate that lies within the y-dimension size of the lattice.

    -
    Returns
    A randomly selected y coordinate value in the range from 0 to Width-1.
    - -
    -
    - -

    ◆ generateRandomZ()

    - -
    -
    - - - - - - - -
    int Lattice::generateRandomZ ()
    -
    - -

    Generates a random z coordinate that lies within the z-dimension size of the lattice.

    -
    Returns
    A randomly selected z coordinate value in the range from 0 to Height-1.
    - -
    -
    - -

    ◆ getHeight()

    - -
    -
    - - - - - - - -
    int Lattice::getHeight () const
    -
    - -

    Gets the z-direction size of the lattice, the height.

    -
    Returns
    The Height property of the lattice, which is the z-direction size.
    - -
    -
    - -

    ◆ getLength()

    - -
    -
    - - - - - - - -
    int Lattice::getLength () const
    -
    - -

    Gets the x-direction size of the lattice, the length.

    -
    Returns
    The Length property of the lattice, which is the x-direction size.
    - -
    -
    - -

    ◆ getNumSites()

    - -
    -
    - - - - - - - -
    long int Lattice::getNumSites () const
    -
    - -

    Gets the number of sites contained in the lattice.

    -
    Returns
    The number of sites in the lattice.
    - -
    -
    - -

    ◆ getSiteCoords()

    - -
    -
    - - - - - - - - -
    Coords Lattice::getSiteCoords (long int site_index)
    -
    - -

    Gets the coordinates of the specified site.

    -
    Parameters
    - - -
    site_indexis the vector index of the input site
    -
    -
    -
    Returns
    a Coords object that contains the coordinates of the site specified by the site index.
    - -
    -
    - -

    ◆ getSiteIndex()

    - -
    -
    - - - - - - - - -
    long int Lattice::getSiteIndex (const Coordscoords) const
    -
    - -

    Gets the vector index for the site corresponding to the input coordinates.

    -
    Parameters
    - - -
    coordsis the Coords struct that represents the input coordinates.
    -
    -
    -
    Returns
    The vector index for the sites vector that is associated with the site located at the input coordinates.
    -
    --1 if the coordinates are not located in the lattice.
    - -
    -
    - -

    ◆ getSiteIt()

    - -
    -
    - - - - - - - - -
    vector< Site * >::iterator Lattice::getSiteIt (const Coordscoords)
    -
    - -

    Gets the vector iterator for the site corresponding to the input coordinates.

    -
    Parameters
    - - -
    coordsis the Coords struct that represents the input coordinates.
    -
    -
    -
    Returns
    The vector iterator for the sites vector that is associated with the site located at the input coordinates.
    - -
    -
    - -

    ◆ getUnitSize()

    - -
    -
    - - - - - - - -
    double Lattice::getUnitSize () const
    -
    - -

    Gets the lattice unit size, which is used to convert lattice units into real space units.

    -
    Returns
    The unit size property of the lattice.
    - -
    -
    - -

    ◆ getVolume()

    - -
    -
    - - - - - - - -
    double Lattice::getVolume () const
    -
    - -

    Gets the volume of the lattice in cm^-3.

    - -
    -
    - -

    ◆ getWidth()

    - -
    -
    - - - - - - - -
    int Lattice::getWidth () const
    -
    - -

    Gets the y-direction size of the lattice, the width.

    -
    Returns
    The Width property of the lattice, which is the y-direction size.
    - -
    -
    - -

    ◆ init()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void Lattice::init (const Parameters_Latticeparams,
    std::mt19937 * generator_ptr 
    )
    -
    - -

    Initializes the Lattice object using the provided Parameters_Lattice input parameter struct.

    -
    Parameters
    - - - -
    paramsis a Parameters_Lattice struct that contains all of the required parameters to initialize the Lattice object.
    generator_ptris a pointer to a Mersenne twister number generator.
    -
    -
    - -
    -
    - -

    ◆ isOccupied()

    - -
    -
    - - - - - - - - -
    bool Lattice::isOccupied (const Coordscoords) const
    -
    - -

    Checks whether the site located at the input coordinates is occupied or not.

    -
    Parameters
    - - -
    coordsis a Coords struct that represents the input coordinates.
    -
    -
    -
    Returns
    true if the specificed site is occupied
    -
    -false if the specified site is unoccupied
    - -
    -
    - -

    ◆ isXPeriodic()

    - -
    -
    - - - - - - - -
    bool Lattice::isXPeriodic () const
    -
    - -

    Checks whether the x-direction periodic boundaries are enabled or not.

    -
    Returns
    true if periodic boundaries are enabled in the x-direction.
    -
    -false if periodic boundaries are disabled in the x-direction.
    - -
    -
    - -

    ◆ isYPeriodic()

    - -
    -
    - - - - - - - -
    bool Lattice::isYPeriodic () const
    -
    - -

    Checks whether the y-direction periodic boundaries are enabled or not.

    -
    Returns
    true if periodic boundaries are enabled in the y-direction.
    -
    -false if periodic boundaries are disabled in the y-direction.
    - -
    -
    - -

    ◆ isZPeriodic()

    - -
    -
    - - - - - - - -
    bool Lattice::isZPeriodic () const
    -
    - -

    Checks whether the z-direction periodic boundaries are enabled or not.

    -
    Returns
    true if periodic boundaries are enabled in the z-direction.
    -
    -false if periodic boundaries are disabled in the z-direction.
    - -
    -
    - -

    ◆ outputLatticeOccupancy()

    - -
    -
    - - - - - - - -
    void Lattice::outputLatticeOccupancy () const
    -
    - -

    Prints to the command line which sites are occupied.

    - -
    -
    - -

    ◆ setOccupied()

    - -
    -
    - - - - - - - - -
    void Lattice::setOccupied (const Coordscoords)
    -
    - -

    Sets the site located at the input coordinates to the occupied state.

    -
    Parameters
    - - -
    coordsis the Coords struct that represents the input coordinates.
    -
    -
    - -
    -
    - -

    ◆ setSitePointers()

    - -
    -
    - - - - - - - - -
    bool Lattice::setSitePointers (const std::vector< Site *> & input_ptrs)
    -
    - -

    Sets the member site pointer vector to the input site pointer vector.

    -
    Parameters
    - - -
    input_ptrsis the input site pointer vector
    -
    -
    -
    Returns
    false to indicate an error when the sizes of the input site pointer vector and the member site pointer vector are not equal.
    -
    -true when no error occurs.
    - -
    -
    -
    The documentation for this class was generated from the following files: -
    -
    - - - - diff --git a/docs/class_lattice.js b/docs/class_lattice.js deleted file mode 100644 index ea4bd74..0000000 --- a/docs/class_lattice.js +++ /dev/null @@ -1,35 +0,0 @@ -var class_lattice = -[ - [ "Lattice", "class_lattice.html#a70a5cebc3c0c5a0f609be0592e7cc117", null ], - [ "calculateDestinationCoords", "class_lattice.html#aa6b80d6264bfc23ae5fea39abd2557d5", null ], - [ "calculateDX", "class_lattice.html#a08adb2f412af409d3ec241e60e687c1a", null ], - [ "calculateDX", "class_lattice.html#ad89c5473dd37339ede9fb3d0c3db4300", null ], - [ "calculateDY", "class_lattice.html#acdeca889f7df11fe299f8b7941198c83", null ], - [ "calculateDY", "class_lattice.html#a4e8b3577701ec0cefce595f6956b22e3", null ], - [ "calculateDZ", "class_lattice.html#a584ff9c528ebe46a6aea6ed652d107f4", null ], - [ "calculateDZ", "class_lattice.html#a76b38079e102e17c79b13a3398a404a0", null ], - [ "calculateLatticeDistanceSquared", "class_lattice.html#a3f51b0b41cf0e43e0469320310494a1e", null ], - [ "checkMoveValidity", "class_lattice.html#ad0592298c4b92e9e84a768b95cd6d0f0", null ], - [ "clearOccupancy", "class_lattice.html#a97a1b4f24cd40b81ed63aa2d7713b63b", null ], - [ "generateRandomCoords", "class_lattice.html#a9fbb3c8bc23999ff685b6837beb62606", null ], - [ "generateRandomX", "class_lattice.html#ab78435e50e3bf9f376c04fc305785bb4", null ], - [ "generateRandomY", "class_lattice.html#a180a9d79a40b1a0a092c8ab489569700", null ], - [ "generateRandomZ", "class_lattice.html#a96006397a6ab389fb1eee87fde6e2165", null ], - [ "getHeight", "class_lattice.html#aaa0cba3ab33ac620d9b9f9508c56d1ac", null ], - [ "getLength", "class_lattice.html#a4b43b67a36fcd3dfe62c9eeaffa561d2", null ], - [ "getNumSites", "class_lattice.html#a4be17e9123f7737387991a9d1a8b87b3", null ], - [ "getSiteCoords", "class_lattice.html#a74a170b841ad1b74dad43519d37e9eaf", null ], - [ "getSiteIndex", "class_lattice.html#a60431f6504a253d47acb0b02f524571c", null ], - [ "getSiteIt", "class_lattice.html#a46f7d12855d24e1bdd02814621b0a178", null ], - [ "getUnitSize", "class_lattice.html#ac6963a6b2b4b8d96d3417f6e9c2a509d", null ], - [ "getVolume", "class_lattice.html#a46f9cec33419459b64ff0efdf47a38b9", null ], - [ "getWidth", "class_lattice.html#aeb60d2b8bfb02d9da8bef463f0d41428", null ], - [ "init", "class_lattice.html#a2b0a88048fae662aa71386a3a123a260", null ], - [ "isOccupied", "class_lattice.html#a4d37afb6ad4c67f4f6462c2f6d5c337d", null ], - [ "isXPeriodic", "class_lattice.html#accf3b995e0d0cb422907728a29b1b523", null ], - [ "isYPeriodic", "class_lattice.html#ac3192acefb019c5258143a6c758b3e48", null ], - [ "isZPeriodic", "class_lattice.html#ad7dd1b12a253e506aba5cedb57bf86ea", null ], - [ "outputLatticeOccupancy", "class_lattice.html#aa1f65735ecbd750ec04b6413b4d47316", null ], - [ "setOccupied", "class_lattice.html#a515b8bc548ef4a87c3495a7352a60399", null ], - [ "setSitePointers", "class_lattice.html#a59546ec4301871897ba5adfda1126741", null ] -]; \ No newline at end of file diff --git a/docs/class_o_s_c___sim-members.html b/docs/class_o_s_c___sim-members.html index 0922195..51c98de 100644 --- a/docs/class_o_s_c___sim-members.html +++ b/docs/class_o_s_c___sim-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -94,28 +94,18 @@

    This is the complete list of members for OSC_Sim, including all inherited members.

    - - - - - - - - - - + + + + - + - - - - - - - - - + + + + + @@ -128,15 +118,15 @@ - - + + + + - - @@ -153,33 +143,16 @@ - - - - - - - - - + - - - - - - - - - + -
    addEvent(Event *event_ptr)Simulationprotected
    addObject(Object *object_ptr)Simulationprotected
    calculateDiffusionLength_avg() constOSC_Sim
    calculateDiffusionLength_stdev() constOSC_Sim
    calculateDOSCorrelation(const double cutoff_radius)OSC_Sim
    calculateMobilities(const std::vector< double > &transit_times) constOSC_Sim
    calculateMobility_avg() constOSC_Sim
    calculateMobility_stdev() constOSC_Sim
    calculateTransitTime_avg() constOSC_Sim
    calculateTransitTime_stdev() constOSC_Sim
    calculateAllEvents()OSC_Sim
    calculateDOSCorrelation()OSC_Sim
    calculateDOSCorrelation(const double cutoff_radius)OSC_Sim
    calculateMobilityData(const std::vector< double > &transit_times) constOSC_Sim
    calculateTransitTimeDist(const std::vector< double > &data, const int counts) constOSC_Sim
    checkFinished() constOSC_Simvirtual
    checkFinished() constOSC_Sim
    checkParameters(const Parameters_OPV &params) constOSC_Sim
    chooseNextEvent()Simulationprotected
    Error_foundSimulationprotected
    error_msgSimulationprotected
    executeNextEvent()OSC_Simvirtual
    findRecalcObjects(const Coords &coords_start, const Coords &coords_dest) constSimulationprotected
    generatorSimulationprotected
    getAllObjectPtrs() constSimulationprotected
    getChargeExtractionMap(const bool charge) constOSC_Sim
    getDiffusionData() constOSC_Sim
    createElectron(const Coords &coords)OSC_Sim
    createExciton(const Coords &coords, const bool spin)OSC_Sim
    createHole(const Coords &coords)OSC_Sim
    executeNextEvent()OSC_Sim
    getChargeExtractionMap(const bool charge) constOSC_Sim
    getDOSCorrelationData() constOSC_Sim
    getDynamicsElectronEnergies() constOSC_Sim
    getDynamicsElectronMSDV() constOSC_Sim
    getDynamicsTransientSinglets() constOSC_Sim
    getDynamicsTransientTimes() constOSC_Sim
    getDynamicsTransientTriplets() constOSC_Sim
    getErrorMessage() constSimulation
    getId() constSimulation
    getEvents() constOSC_Sim
    getExcitonDiffusionData() constOSC_Sim
    getExcitonHopLengthData() constOSC_Sim
    getExcitonLifetimeData() constOSC_Sim
    getInternalField() constOSC_Sim
    getN_bimolecular_recombinations() constOSC_Sim
    getN_electrons_collected() constOSC_Sim
    getN_electrons_created() constOSC_Sim
    getN_electrons_recombined() constOSC_Sim
    getN_events() constSimulation
    getN_events_executed() constSimulation
    getN_excitons_created() constOSC_Sim
    getN_excitons_created(const short site_type) constOSC_Sim
    getN_excitons_dissociated() constOSC_Sim
    getN_triplet_polaron_annihilations() constOSC_Sim
    getN_triplet_triplet_annihilations() constOSC_Sim
    getSiteEnergies(const short site_type) constOSC_Sim
    getTemp() constSimulation
    getTime() constSimulation
    getToFTransientCounts() constOSC_Sim
    getToFTransientEnergies() constOSC_Sim
    getToFTransientTimes() constOSC_Sim
    getToFTransientVelocities() constOSC_Sim
    getTransitTimeData() constOSC_Sim
    getVolume() constSimulation
    init(const Parameters_OPV &params, const int id)OSC_Sim
    Simulation::init(const Parameters_Simulation &params, const int id)Simulation
    isLoggingEnabled() constSimulation
    latticeSimulationprotected
    LogfileSimulationprotected
    moveObject(Object *object_ptr, const Coords &coords_dest)Simulationprotected
    init(const Parameters_OPV &params, const int id)OSC_Sim
    OSC_Sim()OSC_Sim
    outputStatus()OSC_Sim
    rand01()Simulation
    reassignSiteEnergies()OSC_Sim
    removeEvent(Event *event_ptr)Simulationprotected
    removeObject(Object *object_ptr)Simulationprotected
    setErrorMessage(const std::string &input_msg)Simulationprotected
    setGeneratorSeed(const int seed)Simulation
    setObjectEvent(const Object *object_ptr, Event *event_ptr)Simulationprotected
    setTime(const double input_time)Simulationprotected
    Simulation()Simulation
    reassignSiteEnergies()OSC_Sim
    ~OSC_Sim()OSC_Simvirtual
    ~Simulation()Simulationvirtual
    diff --git a/docs/class_o_s_c___sim.html b/docs/class_o_s_c___sim.html index d98ba98..05ad942 100644 --- a/docs/class_o_s_c___sim.html +++ b/docs/class_o_s_c___sim.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -88,6 +88,7 @@
    @@ -102,7 +103,6 @@
    -Simulation
    @@ -114,34 +114,28 @@ - - - - - - + + + + + + - - - - - - - - - - + + - + + + + + + - - - @@ -166,6 +160,14 @@ + + + + + + + + @@ -224,99 +226,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    bool init (const Parameters_OPV &params, const int id)
     
    double calculateDiffusionLength_avg () const
     
    double calculateDiffusionLength_stdev () const
     
    std::vector< std::pair< double, double > > calculateDOSCorrelation (const double cutoff_radius)
     
    void calculateAllEvents ()
     
    void calculateDOSCorrelation ()
     
    void calculateDOSCorrelation (const double cutoff_radius)
     
    std::vector< double > calculateTransitTimeDist (const std::vector< double > &data, const int counts) const
     
    double calculateTransitTime_avg () const
     
    double calculateTransitTime_stdev () const
     
    std::vector< double > calculateMobilities (const std::vector< double > &transit_times) const
     
    double calculateMobility_avg () const
     
    double calculateMobility_stdev () const
     
    std::vector< double > calculateMobilityData (const std::vector< double > &transit_times) const
     
    bool checkFinished () const
     Checks whether or not the simulation has finished. More...
     
    bool checkParameters (const Parameters_OPV &params) const
     
    void createExciton (const Coords &coords, const bool spin)
     
    void createElectron (const Coords &coords)
     
    void createHole (const Coords &coords)
     
    bool executeNextEvent ()
     Executes the next event in the simulation. More...
     
    std::vector< double > getDiffusionData () const
     
    std::vector< std::pair< double, double > > getDOSCorrelationData () const
     
    std::vector< double > getDynamicsExcitonEnergies () const
     
    std::vector< double > getDynamicsHoleMSDV () const
     
    std::vector< Event > getEvents () const
     
    std::vector< double > getExcitonDiffusionData () const
     
    std::vector< int > getExcitonHopLengthData () const
     
    std::vector< double > getExcitonLifetimeData () const
     
    double getInternalField () const
     
    std::vector< double > getSiteEnergies (const short site_type) const
     
    void reassignSiteEnergies ()
     
    - Public Member Functions inherited from Simulation
    virtual ~Simulation ()
     Default virtual destructor needed by the base class. More...
     
     Simulation ()
     Default constructor that creates an empty Simulation object. More...
     
    void init (const Parameters_Simulation &params, const int id)
     Initializes the Simulation object using the provided Parameters_Simulation struct containing the input parameters. More...
     
    std::string getErrorMessage () const
     Gets the saved error message. More...
     
    int getN_events () const
     Gets the number of events that are currently in the event list. More...
     
    long int getN_events_executed () const
     Gets the number of events that have been executed in the simulation. More...
     
    int getId () const
     Gets the processor ID number for the processor that is running the simulation. More...
     
    int getTemp () const
     Gets the value of the temperature parameter. More...
     
    double getTime () const
     Get the current simulation time in units of seconds. More...
     
    double getVolume () const
     Get the simulation box volume in cm^-3. More...
     
    bool isLoggingEnabled () const
     Checks whether or not logging is enabled. More...
     
    double rand01 ()
     Generates a uniform random number from 0 to 1, not including 0. More...
     
    void setGeneratorSeed (const int seed)
     Sets the random number generator seed. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Additional Inherited Members

    - Protected Member Functions inherited from Simulation
    std::list< Event * >::const_iterator addEvent (Event *event_ptr)
     Adds a pointer to an Event object to the event list and returns the iterator to its position in the list. More...
     
    void addObject (Object *object_ptr)
     Adds a pointer to an Object object to the object list. More...
     
    std::list< Event * >::const_iterator chooseNextEvent ()
     Searches the event list and determines which event will be executed next. More...
     
    std::vector< Object * > findRecalcObjects (const Coords &coords_start, const Coords &coords_dest) const
     Constructs and returns a vector of pointers to all Object objects that are to have their events recalculated/. More...
     
    std::vector< Object * > getAllObjectPtrs () const
     Returns a vector of pointers to all Object objects in the simulation. More...
     
    void moveObject (Object *object_ptr, const Coords &coords_dest)
     Moves the designated object to the designated destination coordinates. More...
     
    void removeEvent (Event *event_ptr)
     Removes an Event pointer from the event list. More...
     
    void removeObject (Object *object_ptr)
     Removes the Object pointer from the base simulation class. More...
     
    void setErrorMessage (const std::string &input_msg)
     Sets the error_msg member variable to the input string. More...
     
    void setObjectEvent (const Object *object_ptr, Event *event_ptr)
     Overwrites the Event pointer in the event list associated with the indicated Object to the input Event pointer. More...
     
    void setTime (const double input_time)
     Updates the simulation time with the input time. More...
     
    - Protected Attributes inherited from Simulation
    std::mt19937 generator
     Mersenne Twister random number generator. More...
     
    std::ofstream * Logfile
     Pointer to an output file stream that is used to print log messages to a logfile when logging is enabled. More...
     
    Lattice lattice
     The Lattice object represents a three-dimensional lattice, its boundary conditions, and its occupancy. More...
     
    bool Error_found = false
     The Error_found flag indicates whether or not there has been an error during one of the simulation operations. More...
     
    std::string error_msg
     The error_msg string holds a message with information about the error that has occured or is empty otherwise. More...
     

    Constructor & Destructor Documentation

    @@ -362,48 +271,48 @@

    Member Function Documentation

    - -

    ◆ calculateDiffusionLength_avg()

    + +

    ◆ calculateAllEvents()

    - + - +
    double OSC_Sim::calculateDiffusionLength_avg void OSC_Sim::calculateAllEvents ( ) const
    - -

    ◆ calculateDiffusionLength_stdev()

    + +

    ◆ calculateDOSCorrelation() [1/2]

    - + - +
    double OSC_Sim::calculateDiffusionLength_stdev void OSC_Sim::calculateDOSCorrelation ( ) const
    - -

    ◆ calculateDOSCorrelation()

    + +

    ◆ calculateDOSCorrelation() [2/2]

    - + @@ -414,14 +323,14 @@

    -

    ◆ calculateMobilities()

    + +

    ◆ calculateMobilityData()

    vector< pair< double, double > > OSC_Sim::calculateDOSCorrelation void OSC_Sim::calculateDOSCorrelation ( const double  cutoff_radius)
    - + @@ -432,31 +341,42 @@

    -

    ◆ calculateMobility_avg()

    + +

    ◆ calculateTransitTimeDist()

    vector< double > OSC_Sim::calculateMobilities vector< double > OSC_Sim::calculateMobilityData ( const std::vector< double > &  transit_times)
    - + - - + + + + + + + + + + + + +
    double OSC_Sim::calculateMobility_avg vector< double > OSC_Sim::calculateTransitTimeDist () constconst std::vector< double > & data,
    const int counts 
    ) const
    - -

    ◆ calculateMobility_stdev()

    + +

    ◆ checkFinished()

    - + @@ -466,16 +386,17 @@

    -

    ◆ calculateTransitTime_avg()

    + +

    ◆ checkParameters()

    double OSC_Sim::calculateMobility_stdev bool OSC_Sim::checkFinished ( ) const
    - + - + +
    double OSC_Sim::calculateTransitTime_avg bool OSC_Sim::checkParameters ()const Parameters_OPVparams) const
    @@ -483,95 +404,64 @@

    -

    ◆ calculateTransitTime_stdev()

    + +

    ◆ createElectron()

    - + - - + + +
    double OSC_Sim::calculateTransitTime_stdev void OSC_Sim::createElectron () constconst Coords & coords)
    - -

    ◆ calculateTransitTimeDist()

    + +

    ◆ createExciton()

    - + - - + + - - + + - - -
    vector< double > OSC_Sim::calculateTransitTimeDist void OSC_Sim::createExciton (const std::vector< double > & data, const Coords & coords,
    const int counts const bool spin 
    ) const
    -
    - -
    -
    - -

    ◆ checkFinished()

    - -
    -
    - - - - - -
    - - - - - - +
    bool OSC_Sim::checkFinished () const
    -
    -virtual
    -

    Checks whether or not the simulation has finished.

    -

    This is a pure virtual function in the base class that must be defined by any derived class.

    Returns
    true if the simulation is finished.
    -
    -false if the simulation is not finished.
    - -

    Implements Simulation.

    -
    - -

    ◆ checkParameters()

    + +

    ◆ createHole()

    - + - - - + + +
    bool OSC_Sim::checkParameters void OSC_Sim::createHole (const Parameters_OPVparams) constconst Coords & coords)
    @@ -583,9 +473,6 @@

    - - - @@ -94,24 +94,10 @@

    This is the complete list of members for Polaron, including all inherited members.

    @@ -594,20 +481,8 @@

    -virtual -

    -
    bool OSC_Sim::executeNextEvent
    @@ -626,23 +501,6 @@

    - - - -

    ◆ getDiffusionData()

    - -
    -
    - - - - - - - -
    vector< double > OSC_Sim::getDiffusionData () const
    -
    -
    @@ -847,6 +705,74 @@

    + + + +

    ◆ getEvents()

    + +
    +
    + + + + + + + +
    std::vector< Event > OSC_Sim::getEvents () const
    +
    + +
    +
    + +

    ◆ getExcitonDiffusionData()

    + +
    +
    + + + + + + + +
    vector< double > OSC_Sim::getExcitonDiffusionData () const
    +
    + +
    +
    + +

    ◆ getExcitonHopLengthData()

    + +
    +
    + + + + + + + +
    vector< int > OSC_Sim::getExcitonHopLengthData () const
    +
    + +
    +
    + +

    ◆ getExcitonLifetimeData()

    + +
    +
    + + + + + + + +
    vector< double > OSC_Sim::getExcitonLifetimeData () const
    +
    +
    @@ -1356,8 +1282,8 @@

    OSC_Sim.h -
  • OSC_Sim.cpp
  • +
  • src/OSC_Sim.h
  • +
  • src/OSC_Sim.cpp
  • diff --git a/docs/class_o_s_c___sim.js b/docs/class_o_s_c___sim.js index ef298c9..4867cac 100644 --- a/docs/class_o_s_c___sim.js +++ b/docs/class_o_s_c___sim.js @@ -2,20 +2,18 @@ var class_o_s_c___sim = [ [ "OSC_Sim", "class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e", null ], [ "~OSC_Sim", "class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112", null ], - [ "calculateDiffusionLength_avg", "class_o_s_c___sim.html#a62aa25ac6740cea4efab1dcc7f88c5d5", null ], - [ "calculateDiffusionLength_stdev", "class_o_s_c___sim.html#a858300b2a76f1a1b24747d11869a1f4a", null ], - [ "calculateDOSCorrelation", "class_o_s_c___sim.html#afdd01fa07d004b0c37ce86ee171a60b8", null ], - [ "calculateMobilities", "class_o_s_c___sim.html#a8cbaab921f75c2b1ccc85b42ed698c58", null ], - [ "calculateMobility_avg", "class_o_s_c___sim.html#aef139f85af869c000b362b2a17e46cff", null ], - [ "calculateMobility_stdev", "class_o_s_c___sim.html#a7cbca947933286e632d3d76dfed403bf", null ], - [ "calculateTransitTime_avg", "class_o_s_c___sim.html#a99e37cc427f843a92d58c6fa9b13fffe", null ], - [ "calculateTransitTime_stdev", "class_o_s_c___sim.html#a7e7da89362449d58373a31c255a27d8f", null ], + [ "calculateAllEvents", "class_o_s_c___sim.html#adf6e66636e1d5e7b73859dc04cbe8eda", null ], + [ "calculateDOSCorrelation", "class_o_s_c___sim.html#ae391cd48aaa3a27b38f6724f8fea90f3", null ], + [ "calculateDOSCorrelation", "class_o_s_c___sim.html#a2dfba6465819c4f779e5b7fe07483775", null ], + [ "calculateMobilityData", "class_o_s_c___sim.html#a3495c8da3f2f4bcc015d83ad482ce3c1", null ], [ "calculateTransitTimeDist", "class_o_s_c___sim.html#a176ab132e314dfd509e8feb89687f163", null ], [ "checkFinished", "class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115", null ], [ "checkParameters", "class_o_s_c___sim.html#a92f8e2ae6bcd3e0755feb2419849c8e9", null ], + [ "createElectron", "class_o_s_c___sim.html#ad88929fd506f3cd68540d18fc10e8f91", null ], + [ "createExciton", "class_o_s_c___sim.html#a173d8899d6fac79effdc4f89dbe64910", null ], + [ "createHole", "class_o_s_c___sim.html#afd42539a4764cdcad24a8aade399e2a1", null ], [ "executeNextEvent", "class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869", null ], [ "getChargeExtractionMap", "class_o_s_c___sim.html#a6ce1e72c2a7d1161f844ebd46231c961", null ], - [ "getDiffusionData", "class_o_s_c___sim.html#a97f04719b91c90ac64dd8186476aa5f5", null ], [ "getDOSCorrelationData", "class_o_s_c___sim.html#a804f8facf0f5ee86d0234662a0719571", null ], [ "getDynamicsElectronEnergies", "class_o_s_c___sim.html#a37e177cadae01e8a2ec753cdae165297", null ], [ "getDynamicsElectronMSDV", "class_o_s_c___sim.html#afbca0a6245adc11d0d7f38e01366556b", null ], @@ -28,6 +26,10 @@ var class_o_s_c___sim = [ "getDynamicsTransientSinglets", "class_o_s_c___sim.html#af13f7b1b8f6df5a45c0111d11c0057db", null ], [ "getDynamicsTransientTimes", "class_o_s_c___sim.html#acde6068549f59f813d2faed73f6fedc9", null ], [ "getDynamicsTransientTriplets", "class_o_s_c___sim.html#a91d2dad10391f727348d96b0b21c8304", null ], + [ "getEvents", "class_o_s_c___sim.html#af28e344999ddebba9753941d9fdf7680", null ], + [ "getExcitonDiffusionData", "class_o_s_c___sim.html#a9e3597fee2330eaa06d5030a15ecb716", null ], + [ "getExcitonHopLengthData", "class_o_s_c___sim.html#adfd8dca7bdcca75cb4a39e1f07d919f6", null ], + [ "getExcitonLifetimeData", "class_o_s_c___sim.html#a40a44c612cc51a766b7310341aede5c5", null ], [ "getInternalField", "class_o_s_c___sim.html#aa8ee0a55f34be1da2f78be2931584723", null ], [ "getN_bimolecular_recombinations", "class_o_s_c___sim.html#afa814164790477d643fe04fca021483d", null ], [ "getN_electrons_collected", "class_o_s_c___sim.html#abb8a9aefba0cb189fbaeba0f9bdff180", null ], diff --git a/docs/class_o_s_c___sim.png b/docs/class_o_s_c___sim.png index 20ad1c9..4f55e40 100644 Binary files a/docs/class_o_s_c___sim.png and b/docs/class_o_s_c___sim.png differ diff --git a/docs/class_object-members.html b/docs/class_object-members.html deleted file mode 100644 index 945c34b..0000000 --- a/docs/class_object-members.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    Object Member List
    -
    -
    - -

    This is the complete list of members for Object, including all inherited members.

    - - - - - - - - - - - - - - - - -
    calculateDisplacement() constObject
    getCoords() constObject
    getCreationTime() constObject
    getEventIt() constObject
    getObjectType() constObjectvirtual
    getTag() constObject
    incrementDX(const int num)Object
    incrementDY(const int num)Object
    incrementDZ(const int num)Object
    Object()Object
    Object(const double time, const int tag_num, const Coords &start_coords)Object
    resetInitialCoords(const Coords &input_coords)Object
    setCoords(const Coords &input_coords)Object
    setEventIt(const std::list< Event *>::iterator input_it)Object
    ~Object()Objectvirtual
    -
    - - - - diff --git a/docs/class_object.html b/docs/class_object.html deleted file mode 100644 index c047483..0000000 --- a/docs/class_object.html +++ /dev/null @@ -1,560 +0,0 @@ - - - - - - - -Excimontec: Object Class Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    Object Class Reference
    -
    -
    - -

    This base class contains the basic properties of a KMC simulation object and the functions needed to interact with it. - More...

    - -

    #include <Object.h>

    -
    -Inheritance diagram for Object:
    -
    -
    - - -Exciton -Polaron - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    virtual ~Object ()
     Default virtual destructor needed by the base class. More...
     
     Object ()
     Default constructor that creates an empty Object object. More...
     
     Object (const double time, const int tag_num, const Coords &start_coords)
     Constructor that creates and initializes a usable Object object. More...
     
    double calculateDisplacement () const
     Calculates the displacement of the object from its starting coordinates in lattice units. More...
     
    Coords getCoords () const
     Gets the current coordinates of the Object. More...
     
    double getCreationTime () const
     Gets the simulation creation time of the Object. More...
     
    std::list< Event * >::iterator getEventIt () const
     Gets the event list iterator for the event that is associated with the object. More...
     
    virtual std::string getObjectType () const
     Gets the name of the Object class. More...
     
    int getTag () const
     Gets the tag id number of the Object. More...
     
    void incrementDX (const int num)
     Increments the dx parameter, which is to be used when the Object crosses an x-direction periodic boundary. More...
     
    void incrementDY (const int num)
     Increments the dy parameter, which is to be used when the Object crosses a y-direction periodic boundary. More...
     
    void incrementDZ (const int num)
     Increments the dz parameter, which is to be used when the Object crosses a z-direction periodic boundary. More...
     
    void resetInitialCoords (const Coords &input_coords)
     Resets the initial coordinates of the Object. More...
     
    void setCoords (const Coords &input_coords)
     Sets the coordinates of the Object. More...
     
    void setEventIt (const std::list< Event *>::iterator input_it)
     Sets the iterator that points to a specific entry in the events list within the Simulation class. More...
     
    -

    Detailed Description

    -

    This base class contains the basic properties of a KMC simulation object and the functions needed to interact with it.

    -

    This base class is designed to work with the Simulation class to construct a KMC simulation. This base class is intended to be extended to create classes that represent specific types of objects.

    -
    Author
    Michael C. Heiber
    -
    Date
    2018
    -

    Constructor & Destructor Documentation

    - -

    ◆ ~Object()

    - -
    -
    - - - - - -
    - - - - - - - -
    Object::~Object ()
    -
    -virtual
    -
    - -

    Default virtual destructor needed by the base class.

    - -
    -
    - -

    ◆ Object() [1/2]

    - -
    -
    - - - - - - - -
    Object::Object ()
    -
    - -

    Default constructor that creates an empty Object object.

    - -
    -
    - -

    ◆ Object() [2/2]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    Object::Object (const double time,
    const int tag_num,
    const Coordsstart_coords 
    )
    -
    - -

    Constructor that creates and initializes a usable Object object.

    -
    Parameters
    - - - - -
    timeis the current simulation time.
    tag_numis the specified tag ID number that will be used to label the Object.
    start_coordsis the Coords struct that defines the starting coordinates of the Object.
    -
    -
    - -
    -
    -

    Member Function Documentation

    - -

    ◆ calculateDisplacement()

    - -
    -
    - - - - - - - -
    double Object::calculateDisplacement () const
    -
    - -

    Calculates the displacement of the object from its starting coordinates in lattice units.

    -

    The function accounts for when periodic boundaries are crossed to determine the real displacement distance.

    - -
    -
    - -

    ◆ getCoords()

    - -
    -
    - - - - - - - -
    Coords Object::getCoords () const
    -
    - -

    Gets the current coordinates of the Object.

    -
    Returns
    a Coords struct that represents the coordinates of the object.
    - -
    -
    - -

    ◆ getCreationTime()

    - -
    -
    - - - - - - - -
    double Object::getCreationTime () const
    -
    - -

    Gets the simulation creation time of the Object.

    -
    Returns
    The simulation time value at which the object was created in units of seconds.
    - -
    -
    - -

    ◆ getEventIt()

    - -
    -
    - - - - - - - -
    list< Event * >::iterator Object::getEventIt () const
    -
    - -

    Gets the event list iterator for the event that is associated with the object.

    -

    The event list iterator points to an Event pointer in the events list within the Simulation class, and the Event pointer points to a specific derived Event class stored in the derived Simulation class.

    - -
    -
    - -

    ◆ getObjectType()

    - -
    -
    - - - - - -
    - - - - - - - -
    string Object::getObjectType () const
    -
    -virtual
    -
    - -

    Gets the name of the Object class.

    -
    Returns
    "Object" when called on the base class.
    - -

    Reimplemented in Exciton, and Polaron.

    - -
    -
    - -

    ◆ getTag()

    - -
    -
    - - - - - - - -
    int Object::getTag () const
    -
    - -

    Gets the tag id number of the Object.

    -
    Warning
    This tag id number may not be unique between objects that are of different derived object classes.
    - -
    -
    - -

    ◆ incrementDX()

    - -
    -
    - - - - - - - - -
    void Object::incrementDX (const int num)
    -
    - -

    Increments the dx parameter, which is to be used when the Object crosses an x-direction periodic boundary.

    -
    Parameters
    - - -
    numis the input increment amount.
    -
    -
    - -
    -
    - -

    ◆ incrementDY()

    - -
    -
    - - - - - - - - -
    void Object::incrementDY (const int num)
    -
    - -

    Increments the dy parameter, which is to be used when the Object crosses a y-direction periodic boundary.

    -
    Parameters
    - - -
    numis the input increment amount.
    -
    -
    - -
    -
    - -

    ◆ incrementDZ()

    - -
    -
    - - - - - - - - -
    void Object::incrementDZ (const int num)
    -
    - -

    Increments the dz parameter, which is to be used when the Object crosses a z-direction periodic boundary.

    -
    Parameters
    - - -
    numis the input increment amount.
    -
    -
    - -
    -
    - -

    ◆ resetInitialCoords()

    - -
    -
    - - - - - - - - -
    void Object::resetInitialCoords (const Coordsinput_coords)
    -
    - -

    Resets the initial coordinates of the Object.

    -

    The dx, dy, and dz member variables that keep track of adjustments for crossing periodic boundaries are also reset to zero.

    Parameters
    - - -
    input_coordsis the Coords struct that designates the input coordinates and will be copied to the coords_initial member variable.
    -
    -
    - -
    -
    - -

    ◆ setCoords()

    - -
    -
    - - - - - - - - -
    void Object::setCoords (const Coordsinput_coords)
    -
    - -

    Sets the coordinates of the Object.

    -
    Parameters
    - - -
    input_coordsis the Coords struct that designates the input coordinates that will be copied to the coords_current member variable.
    -
    -
    - -
    -
    - -

    ◆ setEventIt()

    - -
    -
    - - - - - - - - -
    void Object::setEventIt (const std::list< Event *>::iterator input_it)
    -
    - -

    Sets the iterator that points to a specific entry in the events list within the Simulation class.

    -
    Parameters
    - - -
    input_itis the input event list iterator.
    -
    -
    - -
    -
    -
    The documentation for this class was generated from the following files: -
    -
    - - - - diff --git a/docs/class_object.js b/docs/class_object.js deleted file mode 100644 index c84af43..0000000 --- a/docs/class_object.js +++ /dev/null @@ -1,18 +0,0 @@ -var class_object = -[ - [ "~Object", "class_object.html#ae8f5483f459e46687bd01e6f9977afd3", null ], - [ "Object", "class_object.html#a40860402e64d8008fb42329df7097cdb", null ], - [ "Object", "class_object.html#aff050a622272cc7667251c7315f09fd7", null ], - [ "calculateDisplacement", "class_object.html#a02643ea0804dec3e43f60c788855c03b", null ], - [ "getCoords", "class_object.html#a08df08943dc634609fa69b356a37d73f", null ], - [ "getCreationTime", "class_object.html#a6f91c3f8b61cb9c9a8db662ac07d92e9", null ], - [ "getEventIt", "class_object.html#aa7c58e0319b7715c8d36f38ca7acf03e", null ], - [ "getObjectType", "class_object.html#a79449834c55900dd1d96fb7c530e4515", null ], - [ "getTag", "class_object.html#aa9653577e8d0ac4b7b86d23d12f8b31b", null ], - [ "incrementDX", "class_object.html#a3d7c877f4aa179d9a56050c5faddc18d", null ], - [ "incrementDY", "class_object.html#a9df010818be72d15bad7985bf8a89ba0", null ], - [ "incrementDZ", "class_object.html#a440b267c478f5d63db1954bdbd543408", null ], - [ "resetInitialCoords", "class_object.html#a1d1115b941cc6965dddf5510cf49bbee", null ], - [ "setCoords", "class_object.html#a34a164e4709e5daaba7a38c3d61ae617", null ], - [ "setEventIt", "class_object.html#ad5025bd84ae91d6426f458f32e582293", null ] -]; \ No newline at end of file diff --git a/docs/class_object.png b/docs/class_object.png deleted file mode 100644 index c3b68cc..0000000 Binary files a/docs/class_object.png and /dev/null differ diff --git a/docs/class_polaron-members.html b/docs/class_polaron-members.html index c2a4034..3f44034 100644 --- a/docs/class_polaron-members.html +++ b/docs/class_polaron-members.html @@ -30,9 +30,9 @@

    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    - - - - - - - - - - - - + + - - - -
    calculateDisplacement() constObject
    getCharge() constPolaroninline
    getCoords() constObject
    getCreationTime() constObject
    getEventIt() constObject
    getObjectType() constPolaroninlinevirtual
    getTag() constObject
    incrementDX(const int num)Object
    incrementDY(const int num)Object
    incrementDZ(const int num)Object
    Object()Object
    Object(const double time, const int tag_num, const Coords &start_coords)Object
    getCharge() constPolaroninline
    getObjectType() constPolaroninline
    object_typePolaronstatic
    Polaron(const double time, const int tag_num, const Coords &start_coords, const bool polaron_charge)Polaroninline
    resetInitialCoords(const Coords &input_coords)Object
    setCoords(const Coords &input_coords)Object
    setEventIt(const std::list< Event *>::iterator input_it)Object
    ~Object()Objectvirtual

    diff --git a/docs/class_polaron.html b/docs/class_polaron.html index 3aa59dd..e386d5c 100644 --- a/docs/class_polaron.html +++ b/docs/class_polaron.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -103,62 +103,17 @@
    -Object
    - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Public Member Functions

     Polaron (const double time, const int tag_num, const Coords &start_coords, const bool polaron_charge)
     Polaron (const double time, const int tag_num, const Coords &start_coords, const bool polaron_charge)
     
    bool getCharge () const
     
    std::string getObjectType () const
     Gets the name of the Object class. More...
     
    - Public Member Functions inherited from Object
    virtual ~Object ()
     Default virtual destructor needed by the base class. More...
     
     Object ()
     Default constructor that creates an empty Object object. More...
     
     Object (const double time, const int tag_num, const Coords &start_coords)
     Constructor that creates and initializes a usable Object object. More...
     
    double calculateDisplacement () const
     Calculates the displacement of the object from its starting coordinates in lattice units. More...
     
    Coords getCoords () const
     Gets the current coordinates of the Object. More...
     
    double getCreationTime () const
     Gets the simulation creation time of the Object. More...
     
    std::list< Event * >::iterator getEventIt () const
     Gets the event list iterator for the event that is associated with the object. More...
     
    int getTag () const
     Gets the tag id number of the Object. More...
     
    void incrementDX (const int num)
     Increments the dx parameter, which is to be used when the Object crosses an x-direction periodic boundary. More...
     
    void incrementDY (const int num)
     Increments the dy parameter, which is to be used when the Object crosses a y-direction periodic boundary. More...
     
    void incrementDZ (const int num)
     Increments the dz parameter, which is to be used when the Object crosses a z-direction periodic boundary. More...
     
    void resetInitialCoords (const Coords &input_coords)
     Resets the initial coordinates of the Object. More...
     
    void setCoords (const Coords &input_coords)
     Sets the coordinates of the Object. More...
     
    void setEventIt (const std::list< Event *>::iterator input_it)
     Sets the iterator that points to a specific entry in the events list within the Simulation class. More...
     
    @@ -190,7 +145,7 @@

    - + @@ -258,16 +213,11 @@

    -inlinevirtual +inline

    Static Public Attributes

    const Coordsconst Coords &  start_coords,

    -

    Gets the name of the Object class.

    -
    Returns
    "Object" when called on the base class.
    - -

    Reimplemented from Object.

    -

    Member Data Documentation

    @@ -294,8 +244,8 @@

    Polaron.h -
  • Polaron.cpp
  • +
  • src/Polaron.h
  • +
  • src/Polaron.cpp
  • diff --git a/docs/class_polaron.png b/docs/class_polaron.png index 2549647..76842b9 100644 Binary files a/docs/class_polaron.png and b/docs/class_polaron.png differ diff --git a/docs/class_polaron___extraction-members.html b/docs/class_polaron___extraction-members.html index 6c4d128..9150ae9 100644 --- a/docs/class_polaron___extraction-members.html +++ b/docs/class_polaron___extraction-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -95,23 +95,10 @@

    This is the complete list of members for Polaron_Extraction, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)Polaron_Extractioninline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typePolaron_Extractionstatic
    getDestCoords() constEvent
    getEventType() constPolaron_Extractioninlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    Polaron_Extraction()Polaron_Extractioninline
    Polaron_Extraction(Simulation *simulation_ptr)Polaron_Extractioninline
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typePolaron_Extractionstatic
    getEventType() constPolaron_Extractioninline
    Polaron_Extraction()Polaron_Extractioninline
    Polaron_Extraction(Simulation *simulation_ptr)Polaron_Extractioninline
    diff --git a/docs/class_polaron___extraction.html b/docs/class_polaron___extraction.html index 3e36740..5602524 100644 --- a/docs/class_polaron___extraction.html +++ b/docs/class_polaron___extraction.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -103,7 +103,6 @@
    -Event
    @@ -111,61 +110,17 @@ Public Member Functions - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Polaron_Extraction ()
     
     Polaron_Extraction (Simulation *simulation_ptr)
     Polaron_Extraction (Simulation *simulation_ptr)
     
    void calculateExecutionTime (const double prefactor, const double localization, const double distance, const double E_delta)
     
    std::string getEventType () const
     Gets the name of event class. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Polaron Extraction"
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Constructor & Destructor Documentation

    @@ -205,7 +160,7 @@

    Polaron_Extraction::Polaron_Extraction ( - Simulation *  + Simulation *  simulation_ptr) @@ -286,16 +241,11 @@

    -inlinevirtual +inline

    Member Data Documentation

    @@ -322,8 +272,8 @@

    Polaron.h -
  • Polaron.cpp
  • +
  • src/Polaron.h
  • +
  • src/Polaron.cpp
  • diff --git a/docs/class_polaron___extraction.png b/docs/class_polaron___extraction.png index 4969a3a..5c84b43 100644 Binary files a/docs/class_polaron___extraction.png and b/docs/class_polaron___extraction.png differ diff --git a/docs/class_polaron___hop-members.html b/docs/class_polaron___hop-members.html index 13bf231..2c8c944 100644 --- a/docs/class_polaron___hop-members.html +++ b/docs/class_polaron___hop-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,23 +96,10 @@ - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)Polaron_Hopinline
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)Polaron_Hopinline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typePolaron_Hopstatic
    getDestCoords() constEvent
    getEventType() constPolaron_Hopinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    Polaron_Hop()Polaron_Hopinline
    Polaron_Hop(Simulation *simulation_ptr)Polaron_Hopinline
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typePolaron_Hopstatic
    getEventType() constPolaron_Hopinline
    Polaron_Hop()Polaron_Hopinline
    Polaron_Hop(Simulation *simulation_ptr)Polaron_Hopinline
    diff --git a/docs/class_polaron___hop.html b/docs/class_polaron___hop.html index 8300dd7..3e345df 100644 --- a/docs/class_polaron___hop.html +++ b/docs/class_polaron___hop.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -103,7 +103,6 @@
    -Event
    @@ -111,63 +110,19 @@ Public Member Functions - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Polaron_Hop ()
     
     Polaron_Hop (Simulation *simulation_ptr)
     Polaron_Hop (Simulation *simulation_ptr)
     
    void calculateExecutionTime (const double prefactor, const double localization, const double distance, const double E_delta)
     
    void calculateExecutionTime (const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)
     
    std::string getEventType () const
     Gets the name of event class. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Polaron Hop"
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Constructor & Destructor Documentation

    @@ -207,7 +162,7 @@

    Polaron_Hop::Polaron_Hop ( - Simulation *  + Simulation *  simulation_ptr) @@ -342,16 +297,11 @@

    -inlinevirtual +inline

    Member Data Documentation

    @@ -378,8 +328,8 @@

    Polaron.h -
  • Polaron.cpp
  • +
  • src/Polaron.h
  • +
  • src/Polaron.cpp
  • diff --git a/docs/class_polaron___hop.png b/docs/class_polaron___hop.png index 393d265..c90806b 100644 Binary files a/docs/class_polaron___hop.png and b/docs/class_polaron___hop.png differ diff --git a/docs/class_polaron___recombination-members.html b/docs/class_polaron___recombination-members.html index fbc3ae0..12730b9 100644 --- a/docs/class_polaron___recombination-members.html +++ b/docs/class_polaron___recombination-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -96,23 +96,10 @@ - - - - - - - - - - - - - - - - - + + + +
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)Polaron_Recombinationinline
    calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)Polaron_Recombinationinline
    Event::calculateExecutionTime(const double rate)Event
    Event()Event
    Event(Simulation *sim_ptr)Event
    event_typePolaron_Recombinationstatic
    getDestCoords() constEvent
    getEventType() constPolaron_Recombinationinlinevirtual
    getExecutionTime() constEvent
    getObjectPtr() constEvent
    getObjectTargetPtr() constEvent
    Polaron_Recombination()Polaron_Recombinationinline
    Polaron_Recombination(Simulation *simulation_ptr)Polaron_Recombinationinline
    setDestCoords(const Coords &coords)Event
    setExecutionTime(const double time)Event
    setObjectPtr(Object *input_ptr)Event
    setObjectTargetPtr(Object *input_ptr)Event
    sim_ptrEventprotected
    ~Event()Eventvirtual
    event_typePolaron_Recombinationstatic
    getEventType() constPolaron_Recombinationinline
    Polaron_Recombination()Polaron_Recombinationinline
    Polaron_Recombination(Simulation *simulation_ptr)Polaron_Recombinationinline
    diff --git a/docs/class_polaron___recombination.html b/docs/class_polaron___recombination.html index 856bc6d..19896cd 100644 --- a/docs/class_polaron___recombination.html +++ b/docs/class_polaron___recombination.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -103,7 +103,6 @@
    -Event
    @@ -111,63 +110,19 @@ Public Member Functions - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Polaron_Recombination ()
     
     Polaron_Recombination (Simulation *simulation_ptr)
     Polaron_Recombination (Simulation *simulation_ptr)
     
    void calculateExecutionTime (const double prefactor, const double localization, const double distance, const double E_delta)
     
    void calculateExecutionTime (const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)
     
    std::string getEventType () const
     Gets the name of event class. More...
     
    - Public Member Functions inherited from Event
    virtual ~Event ()
     Default virtual destructor needed by the base class. More...
     
     Event ()
     The default constructor that creates an empty Event object. More...
     
     Event (Simulation *sim_ptr)
     
    void calculateExecutionTime (const double rate)
     Calculates and sets the execution time of the event. More...
     
    Coords getDestCoords () const
     Gets the coordinates of the event destination site. More...
     
    ObjectgetObjectPtr () const
     Gets a pointer to the Object object that is designated as the subject of the event. More...
     
    ObjectgetObjectTargetPtr () const
     Gets a pointer to the Object object that is designated as the target of the event. More...
     
    double getExecutionTime () const
     Gets the currently planned execution time of the event. More...
     
    void setDestCoords (const Coords &coords)
     Sets the desination coordinates of the event. More...
     
    bool setExecutionTime (const double time)
     Sets the execution time of the event. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the subject of the event. More...
     
    void setObjectTargetPtr (Object *input_ptr)
     Sets the pointer to the Object object that is designated as the target of the event. More...
     
    -

    Static Public Attributes

    static const std::string event_type = "Polaron Recombination"
     
    - - - - -

    -Additional Inherited Members

    - Protected Attributes inherited from Event
    Simulationsim_ptr = nullptr
     The sim_ptr member variable provides a point to the Simulation object that the Event is asociated with. More...
     

    Constructor & Destructor Documentation

    @@ -207,7 +162,7 @@

    Polaron_Recombination::Polaron_Recombination ( - Simulation *  + Simulation *  simulation_ptr) @@ -342,16 +297,11 @@

    -inlinevirtual +inline

    Member Data Documentation

    @@ -378,8 +328,8 @@

    Polaron.h -
  • Polaron.cpp
  • +
  • src/Polaron.h
  • +
  • src/Polaron.cpp
  • diff --git a/docs/class_polaron___recombination.png b/docs/class_polaron___recombination.png index 7f16b67..2d44424 100644 Binary files a/docs/class_polaron___recombination.png and b/docs/class_polaron___recombination.png differ diff --git a/docs/class_simulation-members.html b/docs/class_simulation-members.html deleted file mode 100644 index dba3d51..0000000 --- a/docs/class_simulation-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    Simulation Member List
    -
    -
    - -

    This is the complete list of members for Simulation, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    addEvent(Event *event_ptr)Simulationprotected
    addObject(Object *object_ptr)Simulationprotected
    checkFinished() const =0Simulationpure virtual
    chooseNextEvent()Simulationprotected
    Error_foundSimulationprotected
    error_msgSimulationprotected
    executeNextEvent()=0Simulationpure virtual
    findRecalcObjects(const Coords &coords_start, const Coords &coords_dest) constSimulationprotected
    generatorSimulationprotected
    getAllObjectPtrs() constSimulationprotected
    getErrorMessage() constSimulation
    getId() constSimulation
    getN_events() constSimulation
    getN_events_executed() constSimulation
    getTemp() constSimulation
    getTime() constSimulation
    getVolume() constSimulation
    init(const Parameters_Simulation &params, const int id)Simulation
    isLoggingEnabled() constSimulation
    latticeSimulationprotected
    LogfileSimulationprotected
    moveObject(Object *object_ptr, const Coords &coords_dest)Simulationprotected
    rand01()Simulation
    removeEvent(Event *event_ptr)Simulationprotected
    removeObject(Object *object_ptr)Simulationprotected
    setErrorMessage(const std::string &input_msg)Simulationprotected
    setGeneratorSeed(const int seed)Simulation
    setObjectEvent(const Object *object_ptr, Event *event_ptr)Simulationprotected
    setTime(const double input_time)Simulationprotected
    Simulation()Simulation
    ~Simulation()Simulationvirtual
    -
    - - - - diff --git a/docs/class_simulation.html b/docs/class_simulation.html deleted file mode 100644 index 146360d..0000000 --- a/docs/class_simulation.html +++ /dev/null @@ -1,1102 +0,0 @@ - - - - - - - -Excimontec: Simulation Class Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - - -
    - -

    This abstract base class contains the basic properties of a KMC simulation and the functions needed to interact with it. - More...

    - -

    #include <Simulation.h>

    -
    -Inheritance diagram for Simulation:
    -
    -
    - - -OSC_Sim - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    virtual ~Simulation ()
     Default virtual destructor needed by the base class. More...
     
     Simulation ()
     Default constructor that creates an empty Simulation object. More...
     
    void init (const Parameters_Simulation &params, const int id)
     Initializes the Simulation object using the provided Parameters_Simulation struct containing the input parameters. More...
     
    virtual bool checkFinished () const =0
     Checks whether or not the simulation has finished. More...
     
    virtual bool executeNextEvent ()=0
     Executes the next event in the simulation. More...
     
    std::string getErrorMessage () const
     Gets the saved error message. More...
     
    int getN_events () const
     Gets the number of events that are currently in the event list. More...
     
    long int getN_events_executed () const
     Gets the number of events that have been executed in the simulation. More...
     
    int getId () const
     Gets the processor ID number for the processor that is running the simulation. More...
     
    int getTemp () const
     Gets the value of the temperature parameter. More...
     
    double getTime () const
     Get the current simulation time in units of seconds. More...
     
    double getVolume () const
     Get the simulation box volume in cm^-3. More...
     
    bool isLoggingEnabled () const
     Checks whether or not logging is enabled. More...
     
    double rand01 ()
     Generates a uniform random number from 0 to 1, not including 0. More...
     
    void setGeneratorSeed (const int seed)
     Sets the random number generator seed. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Protected Member Functions

    std::list< Event * >::const_iterator addEvent (Event *event_ptr)
     Adds a pointer to an Event object to the event list and returns the iterator to its position in the list. More...
     
    void addObject (Object *object_ptr)
     Adds a pointer to an Object object to the object list. More...
     
    std::list< Event * >::const_iterator chooseNextEvent ()
     Searches the event list and determines which event will be executed next. More...
     
    std::vector< Object * > findRecalcObjects (const Coords &coords_start, const Coords &coords_dest) const
     Constructs and returns a vector of pointers to all Object objects that are to have their events recalculated/. More...
     
    std::vector< Object * > getAllObjectPtrs () const
     Returns a vector of pointers to all Object objects in the simulation. More...
     
    void moveObject (Object *object_ptr, const Coords &coords_dest)
     Moves the designated object to the designated destination coordinates. More...
     
    void removeEvent (Event *event_ptr)
     Removes an Event pointer from the event list. More...
     
    void removeObject (Object *object_ptr)
     Removes the Object pointer from the base simulation class. More...
     
    void setErrorMessage (const std::string &input_msg)
     Sets the error_msg member variable to the input string. More...
     
    void setObjectEvent (const Object *object_ptr, Event *event_ptr)
     Overwrites the Event pointer in the event list associated with the indicated Object to the input Event pointer. More...
     
    void setTime (const double input_time)
     Updates the simulation time with the input time. More...
     
    - - - - - - - - - - - - - - - - -

    -Protected Attributes

    std::mt19937 generator
     Mersenne Twister random number generator. More...
     
    std::ofstream * Logfile
     Pointer to an output file stream that is used to print log messages to a logfile when logging is enabled. More...
     
    Lattice lattice
     The Lattice object represents a three-dimensional lattice, its boundary conditions, and its occupancy. More...
     
    bool Error_found = false
     The Error_found flag indicates whether or not there has been an error during one of the simulation operations. More...
     
    std::string error_msg
     The error_msg string holds a message with information about the error that has occured or is empty otherwise. More...
     
    -

    Detailed Description

    -

    This abstract base class contains the basic properties of a KMC simulation and the functions needed to interact with it.

    -

    This abstract base class must be extended using a derived simulation class.

    -
    Author
    Michael C. Heiber
    -
    Date
    2018
    -

    Constructor & Destructor Documentation

    - -

    ◆ ~Simulation()

    - -
    -
    - - - - - -
    - - - - - - - -
    Simulation::~Simulation ()
    -
    -virtual
    -
    - -

    Default virtual destructor needed by the base class.

    - -
    -
    - -

    ◆ Simulation()

    - -
    -
    - - - - - - - -
    Simulation::Simulation ()
    -
    - -

    Default constructor that creates an empty Simulation object.

    -
    Warning
    An empty Simulation object should not be used until the init function has been called.
    - -
    -
    -

    Member Function Documentation

    - -

    ◆ addEvent()

    - -
    -
    - - - - - -
    - - - - - - - - -
    list< Event * >::const_iterator Simulation::addEvent (Eventevent_ptr)
    -
    -protected
    -
    - -

    Adds a pointer to an Event object to the event list and returns the iterator to its position in the list.

    -
    Parameters
    - - -
    event_ptris the input Event pointer.
    -
    -
    -
    Returns
    A list iterator that indicates where in the event list the newly added Event pointer is located.
    - -
    -
    - -

    ◆ addObject()

    - -
    -
    - - - - - -
    - - - - - - - - -
    void Simulation::addObject (Objectobject_ptr)
    -
    -protected
    -
    - -

    Adds a pointer to an Object object to the object list.

    -
    Parameters
    - - -
    object_ptris the input Object pointer.
    -
    -
    - -
    -
    - -

    ◆ checkFinished()

    - -
    -
    - - - - - -
    - - - - - - - -
    virtual bool Simulation::checkFinished () const
    -
    -pure virtual
    -
    - -

    Checks whether or not the simulation has finished.

    -

    This is a pure virtual function in the base class that must be defined by any derived class.

    Returns
    true if the simulation is finished.
    -
    -false if the simulation is not finished.
    - -

    Implemented in OSC_Sim.

    - -
    -
    - -

    ◆ chooseNextEvent()

    - -
    -
    - - - - - -
    - - - - - - - -
    list< Event * >::const_iterator Simulation::chooseNextEvent ()
    -
    -protected
    -
    - -

    Searches the event list and determines which event will be executed next.

    -

    Chooses the event that has the smallest execution time.

    Returns
    A list iterator points to an Event pointer in event list that has been selected to be executed next.
    - -
    -
    - -

    ◆ executeNextEvent()

    - -
    -
    - - - - - -
    - - - - - - - -
    virtual bool Simulation::executeNextEvent ()
    -
    -pure virtual
    -
    - -

    Executes the next event in the simulation.

    -

    This is a pure virtual function in the base class that must be defined by any derived class.

    Returns
    true if the next event is succesfully executed.
    -
    -false if execution of the next event is unsuccessful.
    - -

    Implemented in OSC_Sim.

    - -
    -
    - -

    ◆ findRecalcObjects()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    vector< Object * > Simulation::findRecalcObjects (const Coordscoords_start,
    const Coordscoords_dest 
    ) const
    -
    -protected
    -
    - -

    Constructs and returns a vector of pointers to all Object objects that are to have their events recalculated/.

    -
    Parameters
    - - - -
    coords_startis the Coords struct that designates the starting coordinates of an event.
    coords_destis the Coords struct that designates the destination coordinates of an event.
    -
    -
    -
    Returns
    a vector of Object pointers.
    - -
    -
    - -

    ◆ getAllObjectPtrs()

    - -
    -
    - - - - - -
    - - - - - - - -
    vector< Object * > Simulation::getAllObjectPtrs () const
    -
    -protected
    -
    - -

    Returns a vector of pointers to all Object objects in the simulation.

    - -
    -
    - -

    ◆ getErrorMessage()

    - -
    -
    - - - - - - - -
    string Simulation::getErrorMessage () const
    -
    - -

    Gets the saved error message.

    -
    Returns
    the error_msg string member variable.
    - -
    -
    - -

    ◆ getId()

    - -
    -
    - - - - - - - -
    int Simulation::getId () const
    -
    - -

    Gets the processor ID number for the processor that is running the simulation.

    -

    This is primarly used with MPI to differentiate between different simualtions running on different cores.

    - -
    -
    - -

    ◆ getN_events()

    - -
    -
    - - - - - - - -
    int Simulation::getN_events () const
    -
    - -

    Gets the number of events that are currently in the event list.

    -
    Returns
    the size of the events list
    - -
    -
    - -

    ◆ getN_events_executed()

    - -
    -
    - - - - - - - -
    long int Simulation::getN_events_executed () const
    -
    - -

    Gets the number of events that have been executed in the simulation.

    - -
    -
    - -

    ◆ getTemp()

    - -
    -
    - - - - - - - -
    int Simulation::getTemp () const
    -
    - -

    Gets the value of the temperature parameter.

    - -
    -
    - -

    ◆ getTime()

    - -
    -
    - - - - - - - -
    double Simulation::getTime () const
    -
    - -

    Get the current simulation time in units of seconds.

    - -
    -
    - -

    ◆ getVolume()

    - -
    -
    - - - - - - - -
    double Simulation::getVolume () const
    -
    - -

    Get the simulation box volume in cm^-3.

    - -
    -
    - -

    ◆ init()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void Simulation::init (const Parameters_Simulationparams,
    const int id 
    )
    -
    - -

    Initializes the Simulation object using the provided Parameters_Simulation struct containing the input parameters.

    -
    Parameters
    - - - -
    paramsis a Parameters_Simulation struct that contains all of the required parameters to initialize the Simulation object.
    idis the processor ID number for the processor that is running the simulation.
    -
    -
    - -
    -
    - -

    ◆ isLoggingEnabled()

    - -
    -
    - - - - - - - -
    bool Simulation::isLoggingEnabled () const
    -
    - -

    Checks whether or not logging is enabled.

    -

    This is primarily used for debugging purposes.

    Returns
    true if logging is enabled.
    -
    -false if logging is disabled.
    - -
    -
    - -

    ◆ moveObject()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    void Simulation::moveObject (Objectobject_ptr,
    const Coordscoords_dest 
    )
    -
    -protected
    -
    - -

    Moves the designated object to the designated destination coordinates.

    -
    Parameters
    - - - -
    object_ptris an Object pointer to the object that is to be moved.
    coords_destis the Coords struct that designates the coordinates where the object is to be moved.
    -
    -
    - -
    -
    - -

    ◆ rand01()

    - -
    -
    - - - - - - - -
    double Simulation::rand01 ()
    -
    - -

    Generates a uniform random number from 0 to 1, not including 0.

    - -
    -
    - -

    ◆ removeEvent()

    - -
    -
    - - - - - -
    - - - - - - - - -
    void Simulation::removeEvent (Eventevent_ptr)
    -
    -protected
    -
    - -

    Removes an Event pointer from the event list.

    -

    The Event objects are allocated and maintained by the derived Simulation class and only the Event pointers are stored in the base class. Removing the Event pointer does not delete the Event from the derived class, it only prevents the event from being executed in future simulation iterations.

    Parameters
    - - -
    event_ptris the Event pointer to be removed from the simulation.
    -
    -
    - -
    -
    - -

    ◆ removeObject()

    - -
    -
    - - - - - -
    - - - - - - - - -
    void Simulation::removeObject (Objectobject_ptr)
    -
    -protected
    -
    - -

    Removes the Object pointer from the base simulation class.

    -

    The Object objects are allocated and maintained by the derived Simulation class and only the Object pointers are stored in the base class. Removing the Object pointer does not delete the Object from the derived class. This function also calls the removeEvent function to remove the Event pointer associated with the Object and also communites with the Lattice object to clear the occupancy of the Site where the Object was located.

    Parameters
    - - -
    object_ptris the Object pointer to be removed from the simulation.
    -
    -
    - -
    -
    - -

    ◆ setErrorMessage()

    - -
    -
    - - - - - -
    - - - - - - - - -
    void Simulation::setErrorMessage (const std::string & input_msg)
    -
    -protected
    -
    - -

    Sets the error_msg member variable to the input string.

    -
    Parameters
    - - -
    input_msgis the string variable that will be saved in the error_msg member variable.
    -
    -
    - -
    -
    - -

    ◆ setGeneratorSeed()

    - -
    -
    - - - - - - - - -
    void Simulation::setGeneratorSeed (const int seed)
    -
    - -

    Sets the random number generator seed.

    -

    This is primarily used for testing with a set starting seed.

    - -
    -
    - -

    ◆ setObjectEvent()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    void Simulation::setObjectEvent (const Objectobject_ptr,
    Eventevent_ptr 
    )
    -
    -protected
    -
    - -

    Overwrites the Event pointer in the event list associated with the indicated Object to the input Event pointer.

    -

    This is used to update the Event associated with a particular object.

    Parameters
    - - - -
    object_ptris the pointer the designated Object whose Event pointer is to be overwritten.
    event_ptris the input Event pointer.
    -
    -
    - -
    -
    - -

    ◆ setTime()

    - -
    -
    - - - - - -
    - - - - - - - - -
    void Simulation::setTime (const double input_time)
    -
    -protected
    -
    - -

    Updates the simulation time with the input time.

    -
    Parameters
    - - -
    input_timeis the input time that will become the new current simulation time.
    -
    -
    - -
    -
    -

    Member Data Documentation

    - -

    ◆ Error_found

    - -
    -
    - - - - - -
    - - - - -
    bool Simulation::Error_found = false
    -
    -protected
    -
    - -

    The Error_found flag indicates whether or not there has been an error during one of the simulation operations.

    - -
    -
    - -

    ◆ error_msg

    - -
    -
    - - - - - -
    - - - - -
    std::string Simulation::error_msg
    -
    -protected
    -
    - -

    The error_msg string holds a message with information about the error that has occured or is empty otherwise.

    - -
    -
    - -

    ◆ generator

    - -
    -
    - - - - - -
    - - - - -
    std::mt19937 Simulation::generator
    -
    -protected
    -
    - -

    Mersenne Twister random number generator.

    - -
    -
    - -

    ◆ lattice

    - -
    -
    - - - - - -
    - - - - -
    Lattice Simulation::lattice
    -
    -protected
    -
    - -

    The Lattice object represents a three-dimensional lattice, its boundary conditions, and its occupancy.

    - -
    -
    - -

    ◆ Logfile

    - -
    -
    - - - - - -
    - - - - -
    std::ofstream* Simulation::Logfile
    -
    -protected
    -
    - -

    Pointer to an output file stream that is used to print log messages to a logfile when logging is enabled.

    - -
    -
    -
    The documentation for this class was generated from the following files: -
    -
    - - - - diff --git a/docs/class_simulation.js b/docs/class_simulation.js deleted file mode 100644 index 5d19a72..0000000 --- a/docs/class_simulation.js +++ /dev/null @@ -1,34 +0,0 @@ -var class_simulation = -[ - [ "~Simulation", "class_simulation.html#a80fad3f57dfaf195a36f7bc49bc88279", null ], - [ "Simulation", "class_simulation.html#a5b224cc5b36bcc8eb29689aff223de41", null ], - [ "addEvent", "class_simulation.html#a33a57b5640b0d33c816dc6e57604162e", null ], - [ "addObject", "class_simulation.html#a1e0f43c4e11eda5486054c250f4de08f", null ], - [ "checkFinished", "class_simulation.html#af69bb46977a3a0084214a194c888e16c", null ], - [ "chooseNextEvent", "class_simulation.html#af8cf2e5c24531582599423df2d70dc5b", null ], - [ "executeNextEvent", "class_simulation.html#a48e9e82f9dac1acec5d063a9f6f6115e", null ], - [ "findRecalcObjects", "class_simulation.html#a662702acf2d446dbdef0e1c87bf21038", null ], - [ "getAllObjectPtrs", "class_simulation.html#a620684b9ac1fb07344c4c2237ed9f352", null ], - [ "getErrorMessage", "class_simulation.html#a03d249f04c0921c938d68337dfc65f56", null ], - [ "getId", "class_simulation.html#aff40f268758bd9a0f390a649fc45c05e", null ], - [ "getN_events", "class_simulation.html#a7d88f18a1ba988d7e77b8be8de5b10d1", null ], - [ "getN_events_executed", "class_simulation.html#a52cb5564151421cbefaca56357738de7", null ], - [ "getTemp", "class_simulation.html#ac00bce7c792fb67a75395c46c03efe0a", null ], - [ "getTime", "class_simulation.html#a391ac262089c8bda8e76ce930b1db88b", null ], - [ "getVolume", "class_simulation.html#a623c3fbc431ab74c2d2b2374a3b5a3a7", null ], - [ "init", "class_simulation.html#af88e5e0634b373ba28f1dd87670725a6", null ], - [ "isLoggingEnabled", "class_simulation.html#ac7c8a49a4cc506b850891480e0aae512", null ], - [ "moveObject", "class_simulation.html#a59666ceba048bec35557cb8b691d24d9", null ], - [ "rand01", "class_simulation.html#a938de951b2766c6fb2b00cf9714caffa", null ], - [ "removeEvent", "class_simulation.html#a3a4808231d4760f0ab30ea39b6a67e8c", null ], - [ "removeObject", "class_simulation.html#a39da17feb9b487c05c9a834def44972f", null ], - [ "setErrorMessage", "class_simulation.html#a0f06c75c9dd6be20a3911781b48fd467", null ], - [ "setGeneratorSeed", "class_simulation.html#a1a825b9da67da43104137662694655bd", null ], - [ "setObjectEvent", "class_simulation.html#a43ca861e2514feb7f93bf18ea3b73385", null ], - [ "setTime", "class_simulation.html#aae315f0881f0b385c566f96beb01d3f6", null ], - [ "Error_found", "class_simulation.html#a7f4615a7898fb83d09be5e7fad92bb47", null ], - [ "error_msg", "class_simulation.html#a954f41f4332dabda0fecea5d72151988", null ], - [ "generator", "class_simulation.html#a4c1d9071749e0fd93e70380cafb28417", null ], - [ "lattice", "class_simulation.html#afb2cf4feeb4d8292eeba8f9ef393c6a4", null ], - [ "Logfile", "class_simulation.html#a741321a0bbc89d51b969abda469e6f96", null ] -]; \ No newline at end of file diff --git a/docs/class_simulation.png b/docs/class_simulation.png deleted file mode 100644 index 6c08d5a..0000000 Binary files a/docs/class_simulation.png and /dev/null differ diff --git a/docs/class_site-members.html b/docs/class_site-members.html deleted file mode 100644 index be48d5c..0000000 --- a/docs/class_site-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    Site Member List
    -
    -
    - -

    This is the complete list of members for Site, including all inherited members.

    - - - - - - - - -
    clearOccupancy()Site
    getObjectPtr() constSite
    isOccupied() constSite
    setObjectPtr(Object *input_ptr)Site
    setOccupied()Site
    Site()Site
    ~Site()Sitevirtual
    -
    - - - - diff --git a/docs/class_site.html b/docs/class_site.html deleted file mode 100644 index 8316f8e..0000000 --- a/docs/class_site.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - -Excimontec: Site Class Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.3 -
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    Site Class Reference
    -
    -
    - -

    This base class contains the basic properties of a lattice site and the functions needed to interact with it. - More...

    - -

    #include <Site.h>

    -
    -Inheritance diagram for Site:
    -
    -
    - - -Site_OSC - -
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    virtual ~Site ()
     Default virtual destructor needed by the base class. More...
     
     Site ()
     Default constructor that creates an empty Object object. More...
     
    void clearOccupancy ()
     Clears the occupancy of the site. More...
     
    ObjectgetObjectPtr () const
     Gets the pointer to the Object object that occupies the site. More...
     
    bool isOccupied () const
     Checks whether the site is occupied or not. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the occupying Object. More...
     
    void setOccupied ()
     Sets the site to an occupied state. More...
     
    -

    Detailed Description

    -

    This base class contains the basic properties of a lattice site and the functions needed to interact with it.

    -

    This base class is designed to be used by the Lattice class to construct a lattice that will be used by a KMC simulation. This class is designed to for sites to have single occupancy, but multiple occupancy could potentially be implemented in a derived class.

    -
    Author
    Michael C. Heiber
    -
    Date
    2018
    -

    Constructor & Destructor Documentation

    - -

    ◆ ~Site()

    - -
    -
    - - - - - -
    - - - - - - - -
    Site::~Site ()
    -
    -virtual
    -
    - -

    Default virtual destructor needed by the base class.

    - -
    -
    - -

    ◆ Site()

    - -
    -
    - - - - - - - -
    Site::Site ()
    -
    - -

    Default constructor that creates an empty Object object.

    - -
    -
    -

    Member Function Documentation

    - -

    ◆ clearOccupancy()

    - -
    -
    - - - - - - - -
    void Site::clearOccupancy ()
    -
    - -

    Clears the occupancy of the site.

    -

    This function also sets the Object pointer to nullptr.

    - -
    -
    - -

    ◆ getObjectPtr()

    - -
    -
    - - - - - - - -
    Object * Site::getObjectPtr () const
    -
    - -

    Gets the pointer to the Object object that occupies the site.

    - -
    -
    - -

    ◆ isOccupied()

    - -
    -
    - - - - - - - -
    bool Site::isOccupied () const
    -
    - -

    Checks whether the site is occupied or not.

    -
    Returns
    true if the site occupied.
    -
    -false if the site is unoccupied.
    - -
    -
    - -

    ◆ setObjectPtr()

    - -
    -
    - - - - - - - - -
    void Site::setObjectPtr (Objectinput_ptr)
    -
    - -

    Sets the pointer to the occupying Object.

    -

    Also sets the site to an occupied state.

    - -
    -
    - -

    ◆ setOccupied()

    - -
    -
    - - - - - - - -
    void Site::setOccupied ()
    -
    - -

    Sets the site to an occupied state.

    - -
    -
    -
    The documentation for this class was generated from the following files: -
    -
    - - - - diff --git a/docs/class_site.js b/docs/class_site.js deleted file mode 100644 index c716f39..0000000 --- a/docs/class_site.js +++ /dev/null @@ -1,10 +0,0 @@ -var class_site = -[ - [ "~Site", "class_site.html#a81f7ae39aaa7a981a6871c4816ee5562", null ], - [ "Site", "class_site.html#a4119f95c45d57d6edf419169dea993f4", null ], - [ "clearOccupancy", "class_site.html#a46ff077954e39046b493ee1ea57a9c93", null ], - [ "getObjectPtr", "class_site.html#aecb14e440914b4d3d4aa7294419791e2", null ], - [ "isOccupied", "class_site.html#a30991b768ded0bb441c5bb54a789160a", null ], - [ "setObjectPtr", "class_site.html#a9a0d305451d7732dbb193e7fd2f502ca", null ], - [ "setOccupied", "class_site.html#ab85bec20c3a6067a7dca659221d57d25", null ] -]; \ No newline at end of file diff --git a/docs/class_site.png b/docs/class_site.png deleted file mode 100644 index 1fd4866..0000000 Binary files a/docs/class_site.png and /dev/null differ diff --git a/docs/class_site___o_s_c-members.html b/docs/class_site___o_s_c-members.html index 91ae414..54cf4a2 100644 --- a/docs/class_site___o_s_c-members.html +++ b/docs/class_site___o_s_c-members.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -94,18 +94,11 @@

    This is the complete list of members for Site_OSC, including all inherited members.

    - - - + - - - - - - - - + + +
    clearOccupancy()Site
    getEnergy() constSite_OSCinline
    getObjectPtr() constSite
    getEnergy() constSite_OSCinline
    getType() constSite_OSCinline
    isOccupied() constSite
    setEnergy(const double energy)Site_OSCinline
    setEnergyIt(const std::vector< double >::iterator it)Site_OSCinline
    setObjectPtr(Object *input_ptr)Site
    setOccupied()Site
    setType(const short site_type)Site_OSCinline
    Site()Site
    ~Site()Sitevirtual
    setEnergy(const double energy)Site_OSCinline
    setEnergyIt(const std::vector< double >::iterator it)Site_OSCinline
    setType(const short site_type)Site_OSCinline
    diff --git a/docs/class_site___o_s_c.html b/docs/class_site___o_s_c.html index 5beacb4..1d42a5c 100644 --- a/docs/class_site___o_s_c.html +++ b/docs/class_site___o_s_c.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -102,7 +102,6 @@
    -Site
    @@ -118,28 +117,6 @@ - - - - - - - - - - - - - - - - - - - - - -
     
    void setType (const short site_type)
     
    - Public Member Functions inherited from Site
    virtual ~Site ()
     Default virtual destructor needed by the base class. More...
     
     Site ()
     Default constructor that creates an empty Object object. More...
     
    void clearOccupancy ()
     Clears the occupancy of the site. More...
     
    ObjectgetObjectPtr () const
     Gets the pointer to the Object object that occupies the site. More...
     
    bool isOccupied () const
     Checks whether the site is occupied or not. More...
     
    void setObjectPtr (Object *input_ptr)
     Sets the pointer to the occupying Object. More...
     
    void setOccupied ()
     Sets the site to an occupied state. More...
     

    Member Function Documentation

    @@ -271,7 +248,7 @@

    OSC_Sim.h +
  • src/OSC_Sim.h
  • diff --git a/docs/class_site___o_s_c.png b/docs/class_site___o_s_c.png index 32846cf..1d31060 100644 Binary files a/docs/class_site___o_s_c.png and b/docs/class_site___o_s_c.png differ diff --git a/docs/classes.html b/docs/classes.html index 3163aac..1cee88c 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -91,26 +91,21 @@
    Class Index
    -
    c | e | l | o | p | s
    +
    e | o | p | s
    - - - - + + + - - - - + +
      c  
    -
    Exciton_Dissociation   
      o  
    -
    Parameters_OPV   Site   
    Exciton_Exciton_Annihilation   Parameters_Simulation   Site_OSC   
    Coords   Exciton_Hop   Object   Polaron   
      e  
    -
    Exciton_Intersystem_Crossing   OSC_Sim   Polaron_Extraction   
    Exciton_Polaron_Annihilation   
      p  
    +
    Exciton_Exciton_Annihilation   
      o  
    +
    Parameters_OPV   
      s  
    +
    Exciton_Hop   Polaron   
    Exciton   Exciton_Intersystem_Crossing   OSC_Sim   Polaron_Extraction   Site_OSC   
    Exciton_Creation   Exciton_Polaron_Annihilation   
      p  
    Polaron_Hop   
    Event   Exciton_Recombination   Polaron_Recombination   
    Exciton   
      l  
    -
    Parameters_Lattice   
      s  
    -
    Exciton_Creation   Parameters_main   
    Lattice   Simulation   
    Exciton_Dissociation   Exciton_Recombination   Polaron_Recombination   
    Parameters_main   
    -
    c | e | l | o | p | s
    +
    e | o | p | s
    diff --git a/docs/_lattice_8h.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html similarity index 61% rename from docs/_lattice_8h.html rename to docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 0750de0..e321849 100644 --- a/docs/_lattice_8h.html +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -5,7 +5,7 @@ -Excimontec: KMC_Lattice/Lattice.h File Reference +Excimontec: src Directory Reference @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -68,7 +68,7 @@
    @@ -87,26 +87,26 @@
    -
    -
    Lattice.h File Reference
    +
    src Directory Reference
    -
    #include "Utils.h"
    -#include "Site.h"
    -#include <functional>
    -#include <stdexcept>
    -
    -

    Go to the source code of this file.

    - - - + + + + + + + + + + + + - - +

    -Classes

    struct  Parameters_Lattice
     This struct contains all of the main input parameters needed by the Lattice class. More...

    +Files

    file  Exciton.cpp
     
    file  Exciton.h [code]
     
    file  main.cpp
     
    file  OSC_Sim.cpp
     
    file  OSC_Sim.h [code]
     
    file  Polaron.cpp
     
    class  Lattice
     This class contains the properties of a three-dimensional lattice and the functions needed to interact with it. More...
    file  Polaron.h [code]
     
    @@ -114,7 +114,7 @@ diff --git a/docs/functions_0x7e.html b/docs/functions_0x7e.html index 990a6e3..632097f 100644 --- a/docs/functions_0x7e.html +++ b/docs/functions_0x7e.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -90,21 +90,9 @@
    Here is a list of all class members with links to the classes they belong to:

    - ~ -

    diff --git a/docs/functions_b.html b/docs/functions_b.html deleted file mode 100644 index f1bd4d2..0000000 --- a/docs/functions_b.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -Excimontec: Class Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Excimontec -  v1.0-beta.1 -
    -
    An open-source lattice KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all class members with links to the classes they belong to:
    - -

    - b -

    -
    -
    - - - - diff --git a/docs/functions_c.html b/docs/functions_c.html index 9b5aed8..25b005f 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -90,82 +90,46 @@
    Here is a list of all class members with links to the classes they belong to:

    - c -

    diff --git a/docs/functions_d.html b/docs/functions_d.html index 8cf14b0..c43ea2c 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    diff --git a/docs/functions_dup.js b/docs/functions_dup.js index 754c214..a2c2354 100644 --- a/docs/functions_dup.js +++ b/docs/functions_dup.js @@ -16,10 +16,5 @@ var functions_dup = [ "r", "functions_r.html", null ], [ "s", "functions_s.html", null ], [ "t", "functions_t.html", null ], - [ "u", "functions_u.html", null ], - [ "w", "functions_w.html", null ], - [ "x", "functions_x.html", null ], - [ "y", "functions_y.html", null ], - [ "z", "functions_z.html", null ], [ "~", "functions_0x7e.html", null ] ]; \ No newline at end of file diff --git a/docs/functions_e.html b/docs/functions_e.html index c10886b..8c137a2 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -30,9 +30,9 @@
    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
    -
    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
    +
    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
    @@ -126,12 +126,6 @@

    - e -

    • Enable_FRET_triplet_annihilation : Parameters_OPV
    • -
    • Enable_FRM -: Parameters_Simulation -
    • -
    • Enable_full_recalc -: Parameters_Simulation -
    • Enable_gaussian_dos : Parameters_OPV
    • @@ -153,9 +147,6 @@

      - e -

      • Enable_IQE_test : Parameters_OPV
      • -
      • Enable_logging -: Parameters_Simulation -
      • Enable_marcus : Parameters_OPV
      • @@ -165,18 +156,6 @@

        - e -

        • Enable_neat : Parameters_OPV
        • -
        • Enable_periodic_x -: Parameters_Lattice -, Parameters_Simulation -
        • -
        • Enable_periodic_y -: Parameters_Lattice -, Parameters_Simulation -
        • -
        • Enable_periodic_z -: Parameters_Lattice -, Parameters_Simulation -
        • Enable_phase_restriction : Parameters_OPV
        • @@ -186,8 +165,11 @@

          - e -

          • Enable_random_blend : Parameters_OPV
          • -
          • Enable_selective_recalc -: Parameters_Simulation +
          • Enable_ToF_energy_placement +: Parameters_OPV +
          • +
          • Enable_ToF_random_placement +: Parameters_OPV
          • Enable_ToF_test : Parameters_OPV @@ -204,15 +186,6 @@

            - e -

            • Energy_urbach_donor : Parameters_OPV
            • -
            • Error_found -: Simulation -
            • -
            • error_msg -: Simulation -
            • -
            • Event() -: Event -
            • event_type : Exciton_Creation , Exciton_Dissociation @@ -232,7 +205,7 @@

              - e -

                : Exciton_Creation
              • Exciton_Dissociation() -: Exciton_Dissociation +: Exciton_Dissociation
              • Exciton_dissociation_cutoff : Parameters_OPV @@ -253,14 +226,13 @@

                - e -

                diff --git a/docs/functions_f.html b/docs/functions_f.html index 1c0d6a7..1d179e1 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -30,9 +30,9 @@
                Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                -
                An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                +
                An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                @@ -90,9 +90,6 @@
                Here is a list of all class members with links to the classes they belong to:

                - f -

                  -
                • findRecalcObjects() -: Simulation -
                • flipSpin() : Exciton
                • diff --git a/docs/functions_func.html b/docs/functions_func.html index d85ca9c..258344b 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -30,9 +30,9 @@
                  Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  +
                  An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                  @@ -89,12 +89,302 @@
                    -

                  - a -

                  diff --git a/docs/functions_func.js b/docs/functions_func.js deleted file mode 100644 index 4d576bf..0000000 --- a/docs/functions_func.js +++ /dev/null @@ -1,16 +0,0 @@ -var functions_func = -[ - [ "a", "functions_func.html", null ], - [ "c", "functions_func_c.html", null ], - [ "e", "functions_func_e.html", null ], - [ "f", "functions_func_f.html", null ], - [ "g", "functions_func_g.html", null ], - [ "i", "functions_func_i.html", null ], - [ "l", "functions_func_l.html", null ], - [ "m", "functions_func_m.html", null ], - [ "o", "functions_func_o.html", null ], - [ "p", "functions_func_p.html", null ], - [ "r", "functions_func_r.html", null ], - [ "s", "functions_func_s.html", null ], - [ "~", "functions_func_0x7e.html", null ] -]; \ No newline at end of file diff --git a/docs/functions_func_0x7e.html b/docs/functions_func_0x7e.html deleted file mode 100644 index 018391e..0000000 --- a/docs/functions_func_0x7e.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - ~ -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html deleted file mode 100644 index 364474e..0000000 --- a/docs/functions_func_c.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - c -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html deleted file mode 100644 index 6bdf81b..0000000 --- a/docs/functions_func_e.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - e -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html deleted file mode 100644 index d014f18..0000000 --- a/docs/functions_func_f.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - f -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html deleted file mode 100644 index f4ef0de..0000000 --- a/docs/functions_func_g.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - g -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html deleted file mode 100644 index e94c945..0000000 --- a/docs/functions_func_i.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - i -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html deleted file mode 100644 index e278032..0000000 --- a/docs/functions_func_l.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - l -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html deleted file mode 100644 index c66704e..0000000 --- a/docs/functions_func_m.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - m -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html deleted file mode 100644 index 3340f73..0000000 --- a/docs/functions_func_o.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - o -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html deleted file mode 100644 index ae73ac7..0000000 --- a/docs/functions_func_p.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - p -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html deleted file mode 100644 index 66f94ce..0000000 --- a/docs/functions_func_r.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - r -

                  -
                  -
                  - - - - diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html deleted file mode 100644 index 9387b58..0000000 --- a/docs/functions_func_s.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -Excimontec: Class Members - Functions - - - - - - - - - - - - - - -
                  -
                  - - - - - - -
                  -
                  Excimontec -  v1.0-beta.3 -
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  -
                  -
                  - - - - - - - -
                  -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - - -
                  - -
                  - -
                  -  - -

                  - s -

                  -
                  -
                  - - - - diff --git a/docs/functions_g.html b/docs/functions_g.html index ee056b5..a40e211 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -30,9 +30,9 @@
                  Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                  -
                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                  +
                  An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                  @@ -90,42 +90,12 @@
                  Here is a list of all class members with links to the classes they belong to:

                  - g -

                    -
                  • generateRandomCoords() -: Lattice -
                  • -
                  • generateRandomX() -: Lattice -
                  • -
                  • generateRandomY() -: Lattice -
                  • -
                  • generateRandomZ() -: Lattice -
                  • -
                  • generator -: Simulation -
                  • -
                  • getAllObjectPtrs() -: Simulation -
                  • getCharge() : Polaron
                  • getChargeExtractionMap() : OSC_Sim
                  • -
                  • getCoords() -: Object -
                  • -
                  • getCreationTime() -: Object -
                  • -
                  • getDestCoords() -: Event -
                  • -
                  • getDiffusionData() -: OSC_Sim -
                  • getDOSCorrelationData() : OSC_Sim
                  • @@ -165,15 +135,11 @@

                    - g -

                    • getEnergy() : Site_OSC
                    • -
                    • getErrorMessage() -: Simulation -
                    • -
                    • getEventIt() -: Object +
                    • getEvents() +: OSC_Sim
                    • getEventType() -: Event -, Exciton_Creation +: Exciton_Creation , Exciton_Dissociation , Exciton_Exciton_Annihilation , Exciton_Hop @@ -184,21 +150,18 @@

                      - g -

                        , Polaron_Hop , Polaron_Recombination -
                      • getExecutionTime() -: Event +
                      • getExcitonDiffusionData() +: OSC_Sim
                      • -
                      • getHeight() -: Lattice +
                      • getExcitonHopLengthData() +: OSC_Sim
                      • -
                      • getId() -: Simulation +
                      • getExcitonLifetimeData() +: OSC_Sim
                      • getInternalField() : OSC_Sim
                      • -
                      • getLength() -: Lattice -
                      • getN_bimolecular_recombinations() : OSC_Sim
                      • @@ -211,12 +174,6 @@

                        - g -

                        • getN_electrons_recombined() : OSC_Sim
                        • -
                        • getN_events() -: Simulation -
                        • -
                        • getN_events_executed() -: Simulation -
                        • getN_excitons_created() : OSC_Sim
                        • @@ -259,45 +216,16 @@

                          - g -

                          • getN_triplet_triplet_annihilations() : OSC_Sim
                          • -
                          • getNumSites() -: Lattice -
                          • -
                          • getObjectPtr() -: Event -, Site -
                          • -
                          • getObjectTargetPtr() -: Event -
                          • getObjectType() : Exciton -, Object , Polaron
                          • -
                          • getSiteCoords() -: Lattice -
                          • getSiteEnergies() : OSC_Sim
                          • -
                          • getSiteIndex() -: Lattice -
                          • -
                          • getSiteIt() -: Lattice -
                          • getSpin() : Exciton
                          • -
                          • getTag() -: Object -
                          • -
                          • getTemp() -: Simulation -
                          • -
                          • getTime() -: Simulation -
                          • getToFTransientCounts() : OSC_Sim
                          • @@ -316,16 +244,6 @@

                            - g -

                            diff --git a/docs/functions_h.html b/docs/functions_h.html index 44ef7f0..795ffe0 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -30,9 +30,9 @@
                            Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                            -
                            An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                            +
                            An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                            @@ -90,10 +90,6 @@
                            Here is a list of all class members with links to the classes they belong to:

                            - h -

                              -
                            • Height -: Parameters_Lattice -, Parameters_Simulation -
                            • Homo_acceptor : Parameters_OPV
                            • diff --git a/docs/functions_i.html b/docs/functions_i.html index f94ac21..401c6fd 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -30,9 +30,9 @@
                              Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                              -
                              An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                              +
                              An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                              @@ -90,19 +90,8 @@
                              Here is a list of all class members with links to the classes they belong to:

                              - i -

                                -
                              • incrementDX() -: Object -
                              • -
                              • incrementDY() -: Object -
                              • -
                              • incrementDZ() -: Object -
                              • init() -: Lattice -, OSC_Sim -, Simulation +: OSC_Sim
                              • Internal_potential : Parameters_OPV @@ -110,22 +99,6 @@

                                - i -

                                diff --git a/docs/functions_l.html b/docs/functions_l.html index 816e2c5..a0e1244 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -30,9 +30,9 @@
                                Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                -
                                An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                +
                                An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                @@ -90,20 +90,6 @@
                                Here is a list of all class members with links to the classes they belong to:

                                - l -

                                  -
                                • Lattice() -: Lattice -
                                • -
                                • lattice -: Simulation -
                                • -
                                • Length -: Parameters_Lattice -, Parameters_Simulation -
                                • -
                                • Logfile -: Parameters_Simulation -, Simulation -
                                • Lumo_acceptor : Parameters_OPV
                                • diff --git a/docs/functions_m.html b/docs/functions_m.html index daf423d..ebd443e 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -30,9 +30,9 @@
                                  Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                  -
                                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                  +
                                  An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                  @@ -99,9 +99,6 @@

                                  - m -

                                  diff --git a/docs/functions_n.html b/docs/functions_n.html index f95ac2f..9fe63c2 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -30,9 +30,9 @@
                                  Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                  -
                                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                  +
                                  An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                  diff --git a/docs/functions_o.html b/docs/functions_o.html index 6183f75..00b4e51 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -30,9 +30,9 @@
                                  Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                  -
                                  An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                  +
                                  An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                  @@ -90,25 +90,13 @@
                                  Here is a list of all class members with links to the classes they belong to:

                                  - o -

                                    -
                                  • Object() -: Object -
                                  • object_type : Exciton , Polaron
                                  • -
                                  • operator!=() -: Coords -
                                  • -
                                  • operator==() -: Coords -
                                  • OSC_Sim() : OSC_Sim
                                  • -
                                  • outputLatticeOccupancy() -: Lattice -
                                  • outputStatus() : OSC_Sim
                                  • diff --git a/docs/functions_p.html b/docs/functions_p.html index 9a6ff53..4155898 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -30,9 +30,9 @@
                                    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                    -
                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                    +
                                    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                    diff --git a/docs/functions_r.html b/docs/functions_r.html index e072624..db245f7 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -30,9 +30,9 @@
                                    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                    -
                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                    +
                                    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                    @@ -141,30 +141,15 @@

                                    - r -

                                    diff --git a/docs/functions_s.html b/docs/functions_s.html index 2510505..9513faa 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -30,9 +30,9 @@
                                    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                    -
                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                    +
                                    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                    @@ -90,65 +90,18 @@
                                    Here is a list of all class members with links to the classes they belong to:

                                    - s -

                                      -
                                    • setCoords() -: Object -
                                    • -
                                    • setDestCoords() -: Event -
                                    • setEnergy() : Site_OSC
                                    • setEnergyIt() : Site_OSC
                                    • -
                                    • setErrorMessage() -: Simulation -
                                    • -
                                    • setEventIt() -: Object -
                                    • -
                                    • setExecutionTime() -: Event -
                                    • -
                                    • setGeneratorSeed() -: Simulation -
                                    • -
                                    • setObjectEvent() -: Simulation -
                                    • -
                                    • setObjectPtr() -: Event -, Site -
                                    • -
                                    • setObjectTargetPtr() -: Event -
                                    • -
                                    • setOccupied() -: Lattice -, Site -
                                    • -
                                    • setSitePointers() -: Lattice -
                                    • setSpin() : Exciton
                                    • -
                                    • setTime() -: Simulation -
                                    • setType() : Site_OSC
                                    • -
                                    • setXYZ() -: Coords -
                                    • -
                                    • sim_ptr -: Event -
                                    • -
                                    • Simulation() -: Simulation -
                                    • Singlet_lifetime_acceptor : Parameters_OPV
                                    • @@ -161,9 +114,6 @@

                                      - s -

                                      diff --git a/docs/functions_t.html b/docs/functions_t.html index 3d7c5a5..762c126 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -30,9 +30,9 @@
                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                      -
                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                      +
                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                      @@ -90,9 +90,6 @@
                                      Here is a list of all class members with links to the classes they belong to:

                                      - t -

                                        -
                                      • Temperature -: Parameters_Simulation -
                                      • Thickness_acceptor : Parameters_OPV
                                      • @@ -102,6 +99,9 @@

                                        - t -

                                        • ToF_initial_polarons : Parameters_OPV
                                        • +
                                        • ToF_placement_energy +: Parameters_OPV +
                                        • ToF_pnts_per_decade : Parameters_OPV
                                        • diff --git a/docs/functions_u.html b/docs/functions_u.html deleted file mode 100644 index add218e..0000000 --- a/docs/functions_u.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -Excimontec: Class Members - - - - - - - - - - - - - - -
                                          -
                                          - - - - - - -
                                          -
                                          Excimontec -  v1.0-beta.3 -
                                          -
                                          An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                          -
                                          -
                                          - - - - - - - -
                                          -
                                          - -
                                          -
                                          -
                                          - -
                                          - -
                                          -
                                          - - -
                                          - -
                                          - -
                                          -
                                          Here is a list of all class members with links to the classes they belong to:
                                          - -

                                          - u -

                                          -
                                          -
                                          - - - - diff --git a/docs/functions_vars.html b/docs/functions_vars.html index f094e48..2e96019 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -30,9 +30,9 @@
                                          Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                          -
                                          An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                          +
                                          An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                          @@ -165,12 +165,6 @@

                                          - e -

                                          • Enable_FRET_triplet_annihilation : Parameters_OPV
                                          • -
                                          • Enable_FRM -: Parameters_Simulation -
                                          • -
                                          • Enable_full_recalc -: Parameters_Simulation -
                                          • Enable_gaussian_dos : Parameters_OPV
                                          • @@ -192,9 +186,6 @@

                                            - e -

                                            • Enable_IQE_test : Parameters_OPV
                                            • -
                                            • Enable_logging -: Parameters_Simulation -
                                            • Enable_marcus : Parameters_OPV
                                            • @@ -204,18 +195,6 @@

                                              - e -

                                              • Enable_neat : Parameters_OPV
                                              • -
                                              • Enable_periodic_x -: Parameters_Lattice -, Parameters_Simulation -
                                              • -
                                              • Enable_periodic_y -: Parameters_Lattice -, Parameters_Simulation -
                                              • -
                                              • Enable_periodic_z -: Parameters_Lattice -, Parameters_Simulation -
                                              • Enable_phase_restriction : Parameters_OPV
                                              • @@ -225,8 +204,11 @@

                                                - e -

                                                • Enable_random_blend : Parameters_OPV
                                                • -
                                                • Enable_selective_recalc -: Parameters_Simulation +
                                                • Enable_ToF_energy_placement +: Parameters_OPV +
                                                • +
                                                • Enable_ToF_random_placement +: Parameters_OPV
                                                • Enable_ToF_test : Parameters_OPV @@ -243,12 +225,6 @@

                                                  - e -

                                                  • Energy_urbach_donor : Parameters_OPV
                                                  • -
                                                  • Error_found -: Simulation -
                                                  • -
                                                  • error_msg -: Simulation -
                                                  • event_type : Exciton_Creation , Exciton_Dissociation @@ -280,18 +256,7 @@

                                                    - f -

                                                    -

                                                    - g -

                                                    - -

                                                    - h -

                                                      -
                                                    • Height -: Parameters_Lattice -, Parameters_Simulation -
                                                    • Homo_acceptor : Parameters_OPV
                                                    • @@ -312,17 +277,6 @@

                                                      - i -

                                                        - l -

                                                          -
                                                        • lattice -: Simulation -
                                                        • -
                                                        • Length -: Parameters_Lattice -, Parameters_Simulation -
                                                        • -
                                                        • Logfile -: Parameters_Simulation -, Simulation -
                                                        • Lumo_acceptor : Parameters_OPV
                                                        • @@ -437,9 +391,6 @@

                                                          - r -

                                                          • R_triplet_hopping_donor : Parameters_OPV
                                                          • -
                                                          • Recalc_cutoff -: Parameters_Simulation -
                                                          • Reorganization_acceptor : Parameters_OPV
                                                          • @@ -450,9 +401,6 @@

                                                            - r -

                                                              - s -

                                                                -
                                                              • sim_ptr -: Event -
                                                              • Singlet_lifetime_acceptor : Parameters_OPV
                                                              • @@ -469,9 +417,6 @@

                                                                - s -

                                                                  - t -

                                                                    -
                                                                  • Temperature -: Parameters_Simulation -
                                                                  • Thickness_acceptor : Parameters_OPV
                                                                  • @@ -481,6 +426,9 @@

                                                                    - t -

                                                                    • ToF_initial_polarons : Parameters_OPV
                                                                    • +
                                                                    • ToF_placement_energy +: Parameters_OPV +
                                                                    • ToF_pnts_per_decade : Parameters_OPV
                                                                    • @@ -506,43 +454,6 @@

                                                                      - t -

                                                                      - - -

                                                                      - u -

                                                                      - - -

                                                                      - w -

                                                                      - - -

                                                                      - x -

                                                                      - - -

                                                                      - y -

                                                                      - - -

                                                                      - z -

                                                                      diff --git a/docs/functions_w.html b/docs/functions_w.html deleted file mode 100644 index 785daff..0000000 --- a/docs/functions_w.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -Excimontec: Class Members - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Here is a list of all class members with links to the classes they belong to:
                                                                      - -

                                                                      - w -

                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/functions_x.html b/docs/functions_x.html deleted file mode 100644 index b5e6433..0000000 --- a/docs/functions_x.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Excimontec: Class Members - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Here is a list of all class members with links to the classes they belong to:
                                                                      - -

                                                                      - x -

                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/functions_y.html b/docs/functions_y.html deleted file mode 100644 index c3dc23a..0000000 --- a/docs/functions_y.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Excimontec: Class Members - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Here is a list of all class members with links to the classes they belong to:
                                                                      - -

                                                                      - y -

                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/functions_z.html b/docs/functions_z.html deleted file mode 100644 index 3b79dc9..0000000 --- a/docs/functions_z.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Excimontec: Class Members - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Here is a list of all class members with links to the classes they belong to:
                                                                      - -

                                                                      - z -

                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/globals.html b/docs/globals.html index 097f1dc..3eaa773 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      diff --git a/docs/globals_func.html b/docs/globals_func.html index 454f5dd..052a7c4 100644 --- a/docs/globals_func.html +++ b/docs/globals_func.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 45d2b35..48d06ae 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      @@ -93,30 +93,27 @@
                                                                      This inheritance list is sorted roughly, but not completely, alphabetically:
                                                                      [detail level 12]
                                                                      - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
                                                                       CCoordsThis simple struct contains Cartesian coordinates specified by integers x,y,z
                                                                       CEventThis base class contains the basic properties of a KMC simulation event and the functions needed to interact with it
                                                                       CExciton_CreationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_DissociationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_Exciton_AnnihilationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_HopThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_Intersystem_CrossingThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_Polaron_AnnihilationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_RecombinationThis class extends the Event class to create an specific type of exciton event
                                                                       CPolaron_Extraction
                                                                       CPolaron_Hop
                                                                       CPolaron_Recombination
                                                                       CLatticeThis class contains the properties of a three-dimensional lattice and the functions needed to interact with it
                                                                       CObjectThis base class contains the basic properties of a KMC simulation object and the functions needed to interact with it
                                                                       CExcitonThis class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor
                                                                       CPolaron
                                                                       CParameters_LatticeThis struct contains all of the main input parameters needed by the Lattice class
                                                                       CParameters_main
                                                                       CParameters_SimulationThis struct contains all of the main input parameters needed by the Simulation class
                                                                       CParameters_OPV
                                                                       CSimulationThis abstract base class contains the basic properties of a KMC simulation and the functions needed to interact with it
                                                                       COSC_Sim
                                                                       CSiteThis base class contains the basic properties of a lattice site and the functions needed to interact with it
                                                                       CSite_OSC
                                                                       CEvent
                                                                       CExciton_CreationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_DissociationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_Exciton_AnnihilationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_HopThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_Intersystem_CrossingThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_Polaron_AnnihilationThis class extends the Event class to create an specific type of exciton event
                                                                       CExciton_RecombinationThis class extends the Event class to create an specific type of exciton event
                                                                       CPolaron_Extraction
                                                                       CPolaron_Hop
                                                                       CPolaron_Recombination
                                                                       CObject
                                                                       CExcitonThis class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor
                                                                       CPolaron
                                                                       CParameters_main
                                                                       CParameters_Simulation
                                                                       CParameters_OPV
                                                                       CSimulation
                                                                       COSC_Sim
                                                                       CSite
                                                                       CSite_OSC
                                                                      diff --git a/docs/hierarchy.js b/docs/hierarchy.js index af05062..ab78869 100644 --- a/docs/hierarchy.js +++ b/docs/hierarchy.js @@ -1,7 +1,6 @@ var hierarchy = [ - [ "Coords", "struct_coords.html", null ], - [ "Event", "class_event.html", [ + [ "Event", null, [ [ "Exciton_Creation", "class_exciton___creation.html", null ], [ "Exciton_Dissociation", "class_exciton___dissociation.html", null ], [ "Exciton_Exciton_Annihilation", "class_exciton___exciton___annihilation.html", null ], @@ -13,20 +12,18 @@ var hierarchy = [ "Polaron_Hop", "class_polaron___hop.html", null ], [ "Polaron_Recombination", "class_polaron___recombination.html", null ] ] ], - [ "Lattice", "class_lattice.html", null ], - [ "Object", "class_object.html", [ + [ "Object", null, [ [ "Exciton", "class_exciton.html", null ], [ "Polaron", "class_polaron.html", null ] ] ], - [ "Parameters_Lattice", "struct_parameters___lattice.html", null ], [ "Parameters_main", "struct_parameters__main.html", null ], - [ "Parameters_Simulation", "struct_parameters___simulation.html", [ + [ "Parameters_Simulation", null, [ [ "Parameters_OPV", "struct_parameters___o_p_v.html", null ] ] ], - [ "Simulation", "class_simulation.html", [ + [ "Simulation", null, [ [ "OSC_Sim", "class_o_s_c___sim.html", null ] ] ], - [ "Site", "class_site.html", [ + [ "Site", null, [ [ "Site_OSC", "class_site___o_s_c.html", null ] ] ] ]; \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 4b2f831..4e7d51d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      @@ -91,12 +91,13 @@
                                                                      Excimontec
                                                                      -

                                                                      The goal of this project is to develop an open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more. The software is being developed in modern C++ and is optimized for efficient execution on high performance computing clusters using MPI. This software package uses object-oriented design and extends the KMC_Lattice framework.

                                                                      +

                                                                      Kinetic Monte Carlo simulations are a powerful computational tool that have been used in concert with experiments and more detailed theoretical methods to understand and optimize organic semiconductor materials and devices. However, despite over 30 years of applying KMC tools to organic semiconductors, no widespread or standardized software tools have taken hold in the community. Instead, many research groups around the world have maintained private codebases of varying complexity, efficiency, and reliability. As a result, there have been large barriers to entry for new researchers and a lot of repeated effort throughout the community that would be much better off applied to pushing the capabilities of the technique and further refining the physical models.

                                                                      +

                                                                      Excimontec represents an honest effort to bring the community together around a well-tested, optimized, reliable, and accessible open-source tool for performing KMC simulations of organic electronic devices. The software is being developed in modern C++ and is optimized for efficient execution on high performance computing clusters using MPI. This software package uses object-oriented design and extends the KMC_Lattice framework.

                                                                      Major Features:

                                                                      • Adjustable periodic boundary conditions in all three directions allow users to perform 1D, 2D, or 3D simulations.
                                                                      • Choose between several film architectures, including a neat film, bilayer film, or random blend film.
                                                                      • -
                                                                      • Import bulk heterojunction morphologies generated by Ising_OPV v3.2 and v4.
                                                                      • +
                                                                      • Import bulk heterojunction morphologies generated by Ising_OPV v3.2 and v4.
                                                                      • Donor and acceptor materials can take on an uncorrelated Gaussian DOS, a correlated Gaussian DOS with different correlation functions, or an uncorrelated exponential DOS model.
                                                                      • Dynamics test simulations can be performed to generate exciton and charge carrier density transients that can be used to model exciton dissociation, charge carrier separation, and charge carrier recombination kinetics.
                                                                      • Time-of-flight charge transport simulations of electrons or holes can be performed on neat, random blend, or bulk heterojunction blend films.
                                                                      • @@ -108,23 +109,44 @@

                                                                        Major Features:

                                                                      • Choose between several KMC algorithms (first reaction method, selective recalculation method, or full recalculation method).

                                                                      Current Status

                                                                      -

                                                                      The current version (Excimontec v1.0-beta.3) is built with KMC_Lattice v2.0-beta.3 and allows the user to perform several simulation tests relevant for OPV and OLED devices. All major planned features that are to be included in v1.0 are now implemented and have undergone preliminary testing. However, this software tool is still under development, and as such, there may still be bugs that need to be squashed. Please report any bugs or submit feature requests in the Issues section.

                                                                      -

                                                                      Work Together

                                                                      -

                                                                      If you would like to contribute to the development of this project or would like some help in using the tool for your research, please contact me to discuss a collaboration. You can check out my KMC research and other work on Researchgate.

                                                                      +

                                                                      The current release, Excimontec , is built with KMC_Lattice and allows the user to perform several simulation tests relevant for OPV and OLED devices. All major planned features that are to be included in v1.0 are now implemented and have undergone preliminary testing. However, this software tool is still under development, and as such, there may still be bugs that need to be squashed. Please report any bugs or submit feature requests in the Issues section.

                                                                      +

                                                                      Major releases and other significant developments will be announced on the Excimontec: General News mailing list. If you are interested in keeping up to date with the development and application of this tool, please subscribe at the following link: Subscribe Here

                                                                      +

                                                                      Continuous Integration and Testing Status:

                                                                      +

                                                                      Excimontec is currently being tested on Ubuntu v14.04 with the GCC compiler (versions 4.7, 4.8, 4.9, 5, 6, 7, and 8) and on both Open MPI v1.6.5 and MPICH v3.04 using Travis CI.

                                                                      + + + + + + + +
                                                                      Branch Status
                                                                      Master
                                                                      Development
                                                                      +

                                                                      Code is being tested using googletest with test coverage assessment by Coveralls.

                                                                      + + + + + + + +
                                                                      Branch Status
                                                                      Master
                                                                      Development
                                                                      +

                                                                      Contact

                                                                      +

                                                                      If you would like to contribute to the development of this project or would like some help in using the tool for your research, please contact me (heibe.nosp@m.r@ma.nosp@m.ilaps.nosp@m..org) to discuss a collaboration. You can check out my KMC research and other work on Researchgate.

                                                                      +

                                                                      Have a quick question or want to chat about Excimontec? Join the discussion on Gitter:

                                                                      How to try Excimontec?

                                                                      -

                                                                      Building an Executable

                                                                      -

                                                                      This software tool uses Message Passing Interface (MPI) to utilize parallel computing power. As a result, using Excimontec requires that an MPI library is pre-installed on your system, and the final Excitmontec executable must be built on your specific system. We cannot provide pre-built binaries for your system. Contact your HPC admin to determine the protocols for building MPI applications on your HPC system. In many cases, the HPC system will already be configured for you, and the package comes with a default makefile that can be used with the gcc compiler.

                                                                      +

                                                                      Building and Testing the Executable

                                                                      +

                                                                      This software tool uses Message Passing Interface (MPI) to utilize parallel computing power. As a result, using Excimontec requires that an MPI library is pre-installed on your system, and the final Excitmontec executable must be built on your specific system. We cannot provide pre-built binaries for your system. Contact your HPC admin to determine the protocols for building MPI applications on your HPC system. In many cases, the HPC system will already be configured for you, and the package comes with a default makefile that can be used with the GCC compiler or the PGI compiler.

                                                                      If you wish, you can also install MPI on your own personal workstation and then build Excimontec there as well. For development and preliminary simulation tests, sometimes it is more efficient to run on your own workstation instead of an HPC system. More information about common MPI packages can be found here:

                                                                      +

                                                                      Once you have an MPI library installed, to build Excimontec, copy the Excimontec directory to your machine, set it as your working directory, and run make. Compilation flags have been set for GCC and PGI compilers. If you are using another compiler, you will need to edit the makefile and define your own compiler options. Once the normal build is successful, you should test Excimontec on your own hardware using the unit and system tests provided before you use the tool. Build the testing executable by running make test. Once the test build is complete, navigate to the testing directory, and run ./Excimontec_tests.exe. Please report any build or testing errors in the Issues section.

                                                                      Usage

                                                                      -

                                                                      In most cases, your HPC system will use a job scheduler to manage the computing workload. For performing Excimontec simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation. An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh). Similar batch scripts can also be written for TORQUE or other job schedulers.

                                                                      +

                                                                      In most cases, your HPC system will use a job scheduler to manage the computing workload. For performing Excimontec simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation. An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh). Similar batch scripts can also be written for other job schedulers.

                                                                      Regardless of the job scheduler, the program execution command is essentially the same. Excimontec.exe takes one required input argument, which is the filename of the input parameter file. An example parameter file is provided with this package (parameters_default.txt).

                                                                      -

                                                                      For example, within the batch script, to create a simulation that runs on 10 processors, an the execution command is:

                                                                      -

                                                                      mpiexec -n 10 Excimontec.exe parameters_default.txt

                                                                      -
                                                                      +

                                                                      For example, within the batch script, to create a simulation that runs on 10 processors, an the execution command is:

                                                                      +

                                                                      mpiexec -n 10 Excimontec.exe parameters_default.txt

                                                                      In this example, the parameters_default.txt file that is located in the current working directory is loaded into the Excimontec program to determine what simulation to run.

                                                                      Output

                                                                      Excimontec will create a number of different output files depending which test is chosen in the parameter file:

                                                                        @@ -135,9 +157,10 @@

                                                                        Output

                                                                      • ToF_transit_time_dist.txt – When performing a time-of-flight charge transport test, the resulting polaron transit time probability distribution will be output to this file.
                                                                      • ToF_results.txt – When performing a time-of-flight charge transport test, the resulting quantitative results are put into this parsable delimited results file.
                                                                      • Charge_extraction_map#.txt – When performing a time-of-flight or IQE test, the x-y locations where charges are extracted from the lattice are saving into this map file.
                                                                      • +
                                                                      • DOS_correlation_data#.txt – When a correlated density of states model is enabled, data showing the statistical correlation of site energies vs. distance is output into this file.

                                                                      Data Analysis

                                                                      -

                                                                      For Igor Pro users, I am developing an open-source procedures package for loading, analyzing, and plotting data from Excitmontec simulations called Excimontec_Analysis. This is a good starting point for managing the data generated by Excimontec, and the Igor Pro scripting environment provides a nice playground where users can perform more advanced data analysis as needed.

                                                                      +

                                                                      For Igor Pro users, I am developing an open-source procedures package for loading, analyzing, and plotting data from Excimontec simulations called Excimontec_Analysis. This is a good starting point for managing the data generated by Excimontec, and the Igor Pro scripting environment provides a nice playground where users can perform more advanced data analysis as needed.

                                                                      For Software Developers

                                                                      Public API documentation for the Excimontec package is still under development and can be viewed here.

                                                                      diff --git a/docs/main_8cpp.html b/docs/main_8cpp.html index 193a212..3c6437d 100644 --- a/docs/main_8cpp.html +++ b/docs/main_8cpp.html @@ -5,7 +5,7 @@ -Excimontec: main.cpp File Reference +Excimontec: src/main.cpp File Reference @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      @@ -183,7 +183,7 @@

                                                                        - + diff --git a/docs/md__k_m_c__lattice__r_e_a_d_m_e.html b/docs/md__k_m_c__lattice__r_e_a_d_m_e.html deleted file mode 100644 index 9948569..0000000 --- a/docs/md__k_m_c__lattice__r_e_a_d_m_e.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -Excimontec: KMC_Lattice - - - - - - - - - - - - - - -
                                                                        -
                                                                        - - - - - - -
                                                                        -
                                                                        Excimontec -  v1.0-beta.3 -
                                                                        -
                                                                        An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                        -
                                                                        -
                                                                        - - - - - - - -
                                                                        -
                                                                        - -
                                                                        -
                                                                        -
                                                                        - -
                                                                        - -
                                                                        -
                                                                        - - -
                                                                        - -
                                                                        - -
                                                                        -
                                                                        -
                                                                        KMC_Lattice
                                                                        -
                                                                        -
                                                                        -

                                                                        General Information

                                                                        -

                                                                        This object-oriented C++ software package contains a general framework for lattice kinetic Monte Carlo (KMC) simulations. This framework consists of a number of utility functions and base classes that must be extended to create a fully operational KMC simulation. The goal of this package is to be robust and flexible so that users can easily develop KMC simulations for a wide variety of different scientific problems without the need to start from scratch.

                                                                        -

                                                                        This KMC_Lattice package implements several event recalculation options for creating computationally efficient simulations. The package is designed to be usable on a personal computer and on high performance computing clusters. A simple example implementation of this general KMC framework can be found in the KMC_Lattice_example package. To see a more complete implementation for simulating a complex system, check out the Excimontec software package that is used for simulating organic semiconductor materials and devices.

                                                                        -

                                                                        For further reading about kinetic Monte Carlo simulations, a nice overview of the theory and algorithm can be found here:

                                                                        -

                                                                        Introduction to the Kinetic Monte Carlo Method by Arthur Voter, Los Alamos National Lab

                                                                        -

                                                                        Work Together

                                                                        -

                                                                        If you would like to contribute to the development of this project or would like some help in building an efficient KMC simulation tool for your specific scientific problem, please contact me to discuss a collaboration. You can check out my KMC research and other work on Researchgate.

                                                                        -

                                                                        Package Contents

                                                                        -

                                                                        Object class - This base class can be extended to represent any entity that one would like to simulate. It could represent an electron, atom, molecule, organism, etc. depending on the application. The Object class contains the fundamental properties and back-end operations that any given entity simulation would require.

                                                                        -

                                                                        Lattice class - This class implements a lattice, its boundary conditions, and keeps track of its occupancy.

                                                                        -

                                                                        Event class - This base class can be extended to represent any process/mechanism/transition that one would like to simulate. It could represent a hopping motion event, a reaction event, etc. depending on the application. Typically, derived events are associated with a particular derived object. The Event class contains the fundamental properties and back-end operations that any given state transition would require.

                                                                        -

                                                                        Site class - This base class can be extended to represent the lattice sites that make up the simulation medium/environment. Added site properties can be used to implement interactions between the simulation environment and the objects, which then affect the events. For example, site energies can be assigned to derived site classes to account for inhomogeneous systems.

                                                                        -

                                                                        Simulation class - This base class can be extended to manage all derived objects and their associated events. The Simulation class contains the fundamental properties and back-end operations that most simulations would require.

                                                                        -

                                                                        Utils - This file contain a number of useful utility functions, scientific constants, etc. that can then be used throughout the software package.

                                                                        -

                                                                        Detailed API documentation for these classes and the entire KMC_Lattice package can be viewed here.

                                                                        -
                                                                        -
                                                                        - - - - diff --git a/docs/md__r_e_a_d_m_e.html b/docs/md__r_e_a_d_m_e.html index 4b2f831..4e7d51d 100644 --- a/docs/md__r_e_a_d_m_e.html +++ b/docs/md__r_e_a_d_m_e.html @@ -30,9 +30,9 @@
                                                                        Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                        -
                                                                        An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                        +
                                                                        An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                        @@ -91,12 +91,13 @@
                                                                        Excimontec

                                                                      -

                                                                      The goal of this project is to develop an open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more. The software is being developed in modern C++ and is optimized for efficient execution on high performance computing clusters using MPI. This software package uses object-oriented design and extends the KMC_Lattice framework.

                                                                      +

                                                                      Kinetic Monte Carlo simulations are a powerful computational tool that have been used in concert with experiments and more detailed theoretical methods to understand and optimize organic semiconductor materials and devices. However, despite over 30 years of applying KMC tools to organic semiconductors, no widespread or standardized software tools have taken hold in the community. Instead, many research groups around the world have maintained private codebases of varying complexity, efficiency, and reliability. As a result, there have been large barriers to entry for new researchers and a lot of repeated effort throughout the community that would be much better off applied to pushing the capabilities of the technique and further refining the physical models.

                                                                      +

                                                                      Excimontec represents an honest effort to bring the community together around a well-tested, optimized, reliable, and accessible open-source tool for performing KMC simulations of organic electronic devices. The software is being developed in modern C++ and is optimized for efficient execution on high performance computing clusters using MPI. This software package uses object-oriented design and extends the KMC_Lattice framework.

                                                                      Major Features:

                                                                      • Adjustable periodic boundary conditions in all three directions allow users to perform 1D, 2D, or 3D simulations.
                                                                      • Choose between several film architectures, including a neat film, bilayer film, or random blend film.
                                                                      • -
                                                                      • Import bulk heterojunction morphologies generated by Ising_OPV v3.2 and v4.
                                                                      • +
                                                                      • Import bulk heterojunction morphologies generated by Ising_OPV v3.2 and v4.
                                                                      • Donor and acceptor materials can take on an uncorrelated Gaussian DOS, a correlated Gaussian DOS with different correlation functions, or an uncorrelated exponential DOS model.
                                                                      • Dynamics test simulations can be performed to generate exciton and charge carrier density transients that can be used to model exciton dissociation, charge carrier separation, and charge carrier recombination kinetics.
                                                                      • Time-of-flight charge transport simulations of electrons or holes can be performed on neat, random blend, or bulk heterojunction blend films.
                                                                      • @@ -108,23 +109,44 @@

                                                                        Major Features:

                                                                      • Choose between several KMC algorithms (first reaction method, selective recalculation method, or full recalculation method).

                                                                      Current Status

                                                                      -

                                                                      The current version (Excimontec v1.0-beta.3) is built with KMC_Lattice v2.0-beta.3 and allows the user to perform several simulation tests relevant for OPV and OLED devices. All major planned features that are to be included in v1.0 are now implemented and have undergone preliminary testing. However, this software tool is still under development, and as such, there may still be bugs that need to be squashed. Please report any bugs or submit feature requests in the Issues section.

                                                                      -

                                                                      Work Together

                                                                      -

                                                                      If you would like to contribute to the development of this project or would like some help in using the tool for your research, please contact me to discuss a collaboration. You can check out my KMC research and other work on Researchgate.

                                                                      +

                                                                      The current release, Excimontec , is built with KMC_Lattice and allows the user to perform several simulation tests relevant for OPV and OLED devices. All major planned features that are to be included in v1.0 are now implemented and have undergone preliminary testing. However, this software tool is still under development, and as such, there may still be bugs that need to be squashed. Please report any bugs or submit feature requests in the Issues section.

                                                                      +

                                                                      Major releases and other significant developments will be announced on the Excimontec: General News mailing list. If you are interested in keeping up to date with the development and application of this tool, please subscribe at the following link: Subscribe Here

                                                                      +

                                                                      Continuous Integration and Testing Status:

                                                                      +

                                                                      Excimontec is currently being tested on Ubuntu v14.04 with the GCC compiler (versions 4.7, 4.8, 4.9, 5, 6, 7, and 8) and on both Open MPI v1.6.5 and MPICH v3.04 using Travis CI.

                                                                      + + + + + + + +
                                                                      Branch Status
                                                                      Master
                                                                      Development
                                                                      +

                                                                      Code is being tested using googletest with test coverage assessment by Coveralls.

                                                                      + + + + + + + +
                                                                      Branch Status
                                                                      Master
                                                                      Development
                                                                      +

                                                                      Contact

                                                                      +

                                                                      If you would like to contribute to the development of this project or would like some help in using the tool for your research, please contact me (heibe.nosp@m.r@ma.nosp@m.ilaps.nosp@m..org) to discuss a collaboration. You can check out my KMC research and other work on Researchgate.

                                                                      +

                                                                      Have a quick question or want to chat about Excimontec? Join the discussion on Gitter:

                                                                      How to try Excimontec?

                                                                      -

                                                                      Building an Executable

                                                                      -

                                                                      This software tool uses Message Passing Interface (MPI) to utilize parallel computing power. As a result, using Excimontec requires that an MPI library is pre-installed on your system, and the final Excitmontec executable must be built on your specific system. We cannot provide pre-built binaries for your system. Contact your HPC admin to determine the protocols for building MPI applications on your HPC system. In many cases, the HPC system will already be configured for you, and the package comes with a default makefile that can be used with the gcc compiler.

                                                                      +

                                                                      Building and Testing the Executable

                                                                      +

                                                                      This software tool uses Message Passing Interface (MPI) to utilize parallel computing power. As a result, using Excimontec requires that an MPI library is pre-installed on your system, and the final Excitmontec executable must be built on your specific system. We cannot provide pre-built binaries for your system. Contact your HPC admin to determine the protocols for building MPI applications on your HPC system. In many cases, the HPC system will already be configured for you, and the package comes with a default makefile that can be used with the GCC compiler or the PGI compiler.

                                                                      If you wish, you can also install MPI on your own personal workstation and then build Excimontec there as well. For development and preliminary simulation tests, sometimes it is more efficient to run on your own workstation instead of an HPC system. More information about common MPI packages can be found here:

                                                                      +

                                                                      Once you have an MPI library installed, to build Excimontec, copy the Excimontec directory to your machine, set it as your working directory, and run make. Compilation flags have been set for GCC and PGI compilers. If you are using another compiler, you will need to edit the makefile and define your own compiler options. Once the normal build is successful, you should test Excimontec on your own hardware using the unit and system tests provided before you use the tool. Build the testing executable by running make test. Once the test build is complete, navigate to the testing directory, and run ./Excimontec_tests.exe. Please report any build or testing errors in the Issues section.

                                                                      Usage

                                                                      -

                                                                      In most cases, your HPC system will use a job scheduler to manage the computing workload. For performing Excimontec simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation. An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh). Similar batch scripts can also be written for TORQUE or other job schedulers.

                                                                      +

                                                                      In most cases, your HPC system will use a job scheduler to manage the computing workload. For performing Excimontec simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation. An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh). Similar batch scripts can also be written for other job schedulers.

                                                                      Regardless of the job scheduler, the program execution command is essentially the same. Excimontec.exe takes one required input argument, which is the filename of the input parameter file. An example parameter file is provided with this package (parameters_default.txt).

                                                                      -

                                                                      For example, within the batch script, to create a simulation that runs on 10 processors, an the execution command is:

                                                                      -

                                                                      mpiexec -n 10 Excimontec.exe parameters_default.txt

                                                                      -
                                                                      +

                                                                      For example, within the batch script, to create a simulation that runs on 10 processors, an the execution command is:

                                                                      +

                                                                      mpiexec -n 10 Excimontec.exe parameters_default.txt

                                                                      In this example, the parameters_default.txt file that is located in the current working directory is loaded into the Excimontec program to determine what simulation to run.

                                                                      Output

                                                                      Excimontec will create a number of different output files depending which test is chosen in the parameter file:

                                                                        @@ -135,9 +157,10 @@

                                                                        Output

                                                                      • ToF_transit_time_dist.txt – When performing a time-of-flight charge transport test, the resulting polaron transit time probability distribution will be output to this file.
                                                                      • ToF_results.txt – When performing a time-of-flight charge transport test, the resulting quantitative results are put into this parsable delimited results file.
                                                                      • Charge_extraction_map#.txt – When performing a time-of-flight or IQE test, the x-y locations where charges are extracted from the lattice are saving into this map file.
                                                                      • +
                                                                      • DOS_correlation_data#.txt – When a correlated density of states model is enabled, data showing the statistical correlation of site energies vs. distance is output into this file.

                                                                      Data Analysis

                                                                      -

                                                                      For Igor Pro users, I am developing an open-source procedures package for loading, analyzing, and plotting data from Excitmontec simulations called Excimontec_Analysis. This is a good starting point for managing the data generated by Excimontec, and the Igor Pro scripting environment provides a nice playground where users can perform more advanced data analysis as needed.

                                                                      +

                                                                      For Igor Pro users, I am developing an open-source procedures package for loading, analyzing, and plotting data from Excimontec simulations called Excimontec_Analysis. This is a good starting point for managing the data generated by Excimontec, and the Igor Pro scripting environment provides a nice playground where users can perform more advanced data analysis as needed.

                                                                      For Software Developers

                                                                      Public API documentation for the Excimontec package is still under development and can be viewed here.

                                                                      diff --git a/docs/menudata.js b/docs/menudata.js index d5454ac..ddabd93 100644 --- a/docs/menudata.js +++ b/docs/menudata.js @@ -24,11 +24,6 @@ for the JavaScript code in this file var menudata={children:[ {text:"Main Page",url:"index.html"}, {text:"Related Pages",url:"pages.html"}, -{text:"Namespaces",url:"namespaces.html",children:[ -{text:"Namespace List",url:"namespaces.html"}, -{text:"Namespace Members",url:"namespacemembers.html",children:[ -{text:"All",url:"namespacemembers.html"}, -{text:"Functions",url:"namespacemembers_func.html"}]}]}, {text:"Classes",url:"annotated.html",children:[ {text:"Class List",url:"annotated.html"}, {text:"Class Index",url:"classes.html"}, @@ -51,33 +46,24 @@ var menudata={children:[ {text:"r",url:"functions_r.html#index_r"}, {text:"s",url:"functions_s.html#index_s"}, {text:"t",url:"functions_t.html#index_t"}, -{text:"u",url:"functions_u.html#index_u"}, -{text:"w",url:"functions_w.html#index_w"}, -{text:"x",url:"functions_x.html#index_x"}, -{text:"y",url:"functions_y.html#index_y"}, -{text:"z",url:"functions_z.html#index_z"}, {text:"~",url:"functions_0x7e.html#index_0x7e"}]}, {text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"c",url:"functions_func_c.html#index_c"}, -{text:"e",url:"functions_func_e.html#index_e"}, -{text:"f",url:"functions_func_f.html#index_f"}, -{text:"g",url:"functions_func_g.html#index_g"}, -{text:"i",url:"functions_func_i.html#index_i"}, -{text:"l",url:"functions_func_l.html#index_l"}, -{text:"m",url:"functions_func_m.html#index_m"}, -{text:"o",url:"functions_func_o.html#index_o"}, -{text:"p",url:"functions_func_p.html#index_p"}, -{text:"r",url:"functions_func_r.html#index_r"}, -{text:"s",url:"functions_func_s.html#index_s"}, -{text:"~",url:"functions_func_0x7e.html#index_0x7e"}]}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"~",url:"functions_func.html#index_0x7e"}]}, {text:"Variables",url:"functions_vars.html",children:[ {text:"a",url:"functions_vars.html#index_a"}, {text:"c",url:"functions_vars.html#index_c"}, {text:"d",url:"functions_vars.html#index_d"}, {text:"e",url:"functions_vars.html#index_e"}, {text:"f",url:"functions_vars.html#index_f"}, -{text:"g",url:"functions_vars.html#index_g"}, {text:"h",url:"functions_vars.html#index_h"}, {text:"i",url:"functions_vars.html#index_i"}, {text:"l",url:"functions_vars.html#index_l"}, @@ -87,12 +73,7 @@ var menudata={children:[ {text:"p",url:"functions_vars.html#index_p"}, {text:"r",url:"functions_vars.html#index_r"}, {text:"s",url:"functions_vars.html#index_s"}, -{text:"t",url:"functions_vars.html#index_t"}, -{text:"u",url:"functions_vars.html#index_u"}, -{text:"w",url:"functions_vars.html#index_w"}, -{text:"x",url:"functions_vars.html#index_x"}, -{text:"y",url:"functions_vars.html#index_y"}, -{text:"z",url:"functions_vars.html#index_z"}]}]}]}, +{text:"t",url:"functions_vars.html#index_t"}]}]}]}, {text:"Files",url:"files.html",children:[ {text:"File List",url:"files.html"}, {text:"File Members",url:"globals.html",children:[ diff --git a/docs/namespace_utils.html b/docs/namespace_utils.html deleted file mode 100644 index 5d67dd8..0000000 --- a/docs/namespace_utils.html +++ /dev/null @@ -1,951 +0,0 @@ - - - - - - - -Excimontec: Utils Namespace Reference - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Utils Namespace Reference
                                                                      -
                                                                      -
                                                                      - -

                                                                      This namespace provides useful constants and utility functions. -More...

                                                                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                      -Functions

                                                                      std::vector< std::pair< double, double > > calculateProbabilityHist (const std::vector< double > &data, int num_bins)
                                                                       Calculates the probability histogram for the input data vector using the input number of bins. More...
                                                                       
                                                                      std::vector< std::pair< double, double > > calculateProbabilityHist (const std::vector< double > &data, double bin_size)
                                                                       Calculates the probability histogram for the input data vector using the input bin size. More...
                                                                       
                                                                      std::vector< std::pair< double, double > > calculateProbabilityHist (const std::vector< double > &data, const double bin_size, const int num_bins)
                                                                       Calculates the probability histogram for the input data vector using the input bin size and input number of bins. More...
                                                                       
                                                                      void createExponentialDOSVector (std::vector< double > &data, const double mode, const double urbach_energy, std::mt19937 &gen)
                                                                       Creates a vector of doubles that has a custom asymmetric distribution with an exponential tail. More...
                                                                       
                                                                      void createGaussianDOSVector (std::vector< double > &data, const double mean, const double stdev, std::mt19937 &gen)
                                                                       Creates a vector of doubles that has a Gaussian distribution. More...
                                                                       
                                                                      bool importBooleanParam (const std::string &input, bool &error_status)
                                                                       Extracts a boolean value from a string containing "true" or "false". More...
                                                                       
                                                                      double integrateData (const std::vector< std::pair< double, double >> &data)
                                                                       Numerically integrates a vector of x-y data using the trapezoid rule. More...
                                                                       
                                                                      double interpolateData (const std::vector< std::pair< double, double >> &data, const double x_val)
                                                                       Linearly interpolates an x-y data set to determine the interpolated y-value corresponding to an input x-value. More...
                                                                       
                                                                      std::vector< double > MPI_calculateVectorAvg (const std::vector< double > &input_vector)
                                                                       Uses MPI to calculate the element-wise average vector from separate vectors coming from different processors. More...
                                                                       
                                                                      std::vector< double > MPI_calculateVectorSum (const std::vector< double > &input_vector)
                                                                       Uses MPI to calculate the element-wise sum vector from separate vectors coming from different processors. More...
                                                                       
                                                                      std::vector< int > MPI_calculateVectorSum (const std::vector< int > &input_vector)
                                                                       Uses MPI to calculate the element-wise sum vector from separate vectors coming from different processors. More...
                                                                       
                                                                      std::vector< double > MPI_gatherVectors (const std::vector< double > &input_vector)
                                                                       Uses MPI to gather vectors from separate processors to build one big vector containing all of the data. More...
                                                                       
                                                                      std::string removeWhitespace (const std::string &str)
                                                                       Removes leading and trailing spaces surrounding a string. More...
                                                                       
                                                                      template<typename T >
                                                                      double array_avg (const T data[], const int array_size)
                                                                       This template function calculates and returns the average value in double format when given an array of numerical datatypes. More...
                                                                       
                                                                      template<typename T >
                                                                      double array_stdev (const T data[], const int array_size)
                                                                       This template function calculates and returns the standard deviation in double format when given an array of numerical datatypes. More...
                                                                       
                                                                      template<typename base_type >
                                                                      base_type intpow (const base_type base, const int exponent)
                                                                       This template function calculates and returns the results of an integer power operation on a base numerical datatype. More...
                                                                       
                                                                      template<typename T >
                                                                      void outputVectorToFile (std::vector< T > &vec, std::string filename)
                                                                       This template function outputs the input data vector to a file with the specified filename. More...
                                                                       
                                                                      template<typename T >
                                                                      void outputVectorToFile (std::vector< std::pair< T, T >> &vec, std::string filename)
                                                                       This template function outputs the input data pair vector to a file with the specified filename. More...
                                                                       
                                                                      template<typename T >
                                                                      void removeDuplicates (std::vector< T > &vec)
                                                                       This template function efficienctly removes the duplicate entries from an input vector. More...
                                                                       
                                                                      template<typename T , typename A >
                                                                      double vector_avg (const std::vector< T, A > &data)
                                                                       This template function calculates and returns the average value in double format when given a vector of numerical datatypes. More...
                                                                       
                                                                      template<typename T , typename A >
                                                                      double vector_stdev (const std::vector< T, A > &data)
                                                                       This template function calculates and returns the standard deviation in double format when given a vector of numerical datatypes. More...
                                                                       
                                                                      -

                                                                      Detailed Description

                                                                      -

                                                                      This namespace provides useful constants and utility functions.

                                                                      - -
                                                                      Author
                                                                      Michael C. Heiber
                                                                      -
                                                                      Date
                                                                      2018
                                                                      -

                                                                      Function Documentation

                                                                      - -

                                                                      ◆ array_avg()

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T >
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      double Utils::array_avg (const T data[],
                                                                      const int array_size 
                                                                      )
                                                                      -
                                                                      - -

                                                                      This template function calculates and returns the average value in double format when given an array of numerical datatypes.

                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      datais the array of numerical data.
                                                                      array_sizeis the size of the input data array.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      The average of the data set in double format.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ array_stdev()

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T >
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      double Utils::array_stdev (const T data[],
                                                                      const int array_size 
                                                                      )
                                                                      -
                                                                      - -

                                                                      This template function calculates and returns the standard deviation in double format when given an array of numerical datatypes.

                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      datais the array of numerical data.
                                                                      array_sizeis the size of the input data array.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      The standard deviation of the data set in double format.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ calculateProbabilityHist() [1/3]

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      std::vector< std::pair< double, double > > Utils::calculateProbabilityHist (const std::vector< double > & data,
                                                                      int num_bins 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Calculates the probability histogram for the input data vector using the input number of bins.

                                                                      -

                                                                      Linearly spaced bins are automatically created from the minimum value to the maximum value of the data set. The function outputs bin-centered x values and probability y values in a x-y pair vector.

                                                                      Parameters
                                                                      - - - -
                                                                      datais the input data vector.
                                                                      num_binsis the desired number of bins.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector of x-y pairs consisting of bin-centered x values and probability y values.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ calculateProbabilityHist() [2/3]

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      std::vector< std::pair< double, double > > Utils::calculateProbabilityHist (const std::vector< double > & data,
                                                                      double bin_size 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Calculates the probability histogram for the input data vector using the input bin size.

                                                                      -

                                                                      Linearly spaced bins are automatically created from the minimum value to the maximum value of the data set. with the specified bin spacing. The function outputs bin-centered x values and probability y values in a x-y pair vector.

                                                                      Parameters
                                                                      - - - -
                                                                      datais the input data vector.
                                                                      bin_sizeis the desired bin size.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector of x-y pairs consisting of bin-centered x values and probability y values.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ calculateProbabilityHist() [3/3]

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                      std::vector< std::pair< double, double > > Utils::calculateProbabilityHist (const std::vector< double > & data,
                                                                      const double bin_size,
                                                                      const int num_bins 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Calculates the probability histogram for the input data vector using the input bin size and input number of bins.

                                                                      -

                                                                      Linearly spaced bins are automatically created starting from the minimum value of the data set. The function outputs bin-centered x values and probability y values in a x-y pair vector.

                                                                      Parameters
                                                                      - - - - -
                                                                      datais the input data vector.
                                                                      num_binsis the number of bins that will be created.
                                                                      bin_sizeis the input bin size.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector of x-y pairs consisting of bin-centered x values and probability y values.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ createExponentialDOSVector()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                      void Utils::createExponentialDOSVector (std::vector< double > & data,
                                                                      const double mode,
                                                                      const double urbach_energy,
                                                                      std::mt19937 & gen 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Creates a vector of doubles that has a custom asymmetric distribution with an exponential tail.

                                                                      -

                                                                      The created distribution is Gaussian in the positive direction relative to the mode and exponential in the negative direction. On the Gaussian side, the standard deviation is calculated relative to the urbach energy chosen for the exponential side, so that the distribution function is continuous.

                                                                      Parameters
                                                                      - - - - - -
                                                                      datais the data vector where the random numbers will be placed, which must be preallocated to the desired size.
                                                                      modeis the value of the peak of the distribution.
                                                                      urbach_energyis the parameter that detemines the shape of the exponential tail side of the distribution.
                                                                      genis a Mersenne twister random number generator used to randomly draw numbers from the distribution.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ createGaussianDOSVector()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                      void Utils::createGaussianDOSVector (std::vector< double > & data,
                                                                      const double mean,
                                                                      const double stdev,
                                                                      std::mt19937 & gen 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Creates a vector of doubles that has a Gaussian distribution.

                                                                      -
                                                                      Parameters
                                                                      - - - - - -
                                                                      datais the data vector where the numbers will be placed, which must be preallocated to the desired size.
                                                                      meanis the position of the peak and center of the distribution.
                                                                      stdevis the standard deviation of the distribution, which defines the width of the peak.
                                                                      genis a Mersenne twister random number generator used to randomly draw numbers from the distribution.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ importBooleanParam()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      bool Utils::importBooleanParam (const std::string & input,
                                                                      bool & error_status 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Extracts a boolean value from a string containing "true" or "false".

                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      inputis the input string.
                                                                      error_statusis an input boolean that is used to indicate an error with the import process.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      true if the input string is "true".
                                                                      -
                                                                      -flase if the input string is "flase".
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ integrateData()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      double Utils::integrateData (const std::vector< std::pair< double, double >> & data)
                                                                      -
                                                                      - -

                                                                      Numerically integrates a vector of x-y data using the trapezoid rule.

                                                                      -
                                                                      Warning
                                                                      The function assumes that the data is sorted by the x values.
                                                                      -
                                                                      Parameters
                                                                      - - -
                                                                      datais the data vector containing x-y data pairs.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      the numerically calculated area.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ interpolateData()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      double Utils::interpolateData (const std::vector< std::pair< double, double >> & data,
                                                                      const double x_val 
                                                                      )
                                                                      -
                                                                      - -

                                                                      Linearly interpolates an x-y data set to determine the interpolated y-value corresponding to an input x-value.

                                                                      -
                                                                      Warning
                                                                      The function assumes that the data is sorted by the x values.
                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      datais the data vector containing x-y data pairs.
                                                                      x_valis the x-value that will be interpolated to.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      the interpolated y-value when the input x-value lies within the range of the input data.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ intpow()

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename base_type >
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      base_type Utils::intpow (const base_type base,
                                                                      const int exponent 
                                                                      )
                                                                      -
                                                                      - -

                                                                      This template function calculates and returns the results of an integer power operation on a base numerical datatype.

                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      baseis the base of the integer power operation and can be any numerical type.
                                                                      exponentis the integer exponent for the integer power operation.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      The result of the integer power operation in whichever datatype format was input with the base.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ MPI_calculateVectorAvg()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      std::vector< double > Utils::MPI_calculateVectorAvg (const std::vector< double > & input_vector)
                                                                      -
                                                                      - -

                                                                      Uses MPI to calculate the element-wise average vector from separate vectors coming from different processors.

                                                                      -

                                                                      Each processor calls this function and sends an input vector. Upon function return, processor 0 receives the average vector and all of the other processors receive an empty vector.

                                                                      Parameters
                                                                      - - -
                                                                      input_vectoris the input data from the processor calling the function.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector that is the element-wise average of all input vectors from each processor, when called on processor 0.
                                                                      -
                                                                      -An empty vector when called on other processors.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ MPI_calculateVectorSum() [1/2]

                                                                      - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      std::vector< double > Utils::MPI_calculateVectorSum (const std::vector< double > & input_vector)
                                                                      -
                                                                      - -

                                                                      Uses MPI to calculate the element-wise sum vector from separate vectors coming from different processors.

                                                                      -

                                                                      Each processor calls this function and sends an input vector. Upon function return, processor 0 receives the sum vector and all of the other processors receive an empty vector.

                                                                      Parameters
                                                                      - - -
                                                                      input_vectoris the input data from the processor calling the function.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector that is the element-wise sum of all input vectors from each processor, when called on processor 0.
                                                                      -
                                                                      -An empty vector when called on other processors.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ MPI_calculateVectorSum() [2/2]

                                                                      - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      std::vector< int > Utils::MPI_calculateVectorSum (const std::vector< int > & input_vector)
                                                                      -
                                                                      - -

                                                                      Uses MPI to calculate the element-wise sum vector from separate vectors coming from different processors.

                                                                      -

                                                                      Each processor calls this function and sends an input vector. Upon function return, processor 0 receives the sum vector and all of the other processors receive an empty vector.

                                                                      Parameters
                                                                      - - -
                                                                      input_vectoris the input data from the processor calling the function.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector that is the element-wise sum of all input vectors from each processor, when called on processor 0.
                                                                      -
                                                                      -An empty vector when called on other processors.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ MPI_gatherVectors()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      std::vector< double > Utils::MPI_gatherVectors (const std::vector< double > & input_vector)
                                                                      -
                                                                      - -

                                                                      Uses MPI to gather vectors from separate processors to build one big vector containing all of the data.

                                                                      -

                                                                      Each processor calls this function and sends an input vector. Upon function return, processor 0 receives the large data vector and all of the othe rprocessors receive an empty vector.

                                                                      Parameters
                                                                      - - -
                                                                      input_vectoris the input data from the processor calling the function.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      A vector that is a concatenation of all input vectors from each processor, when called on processor 0.
                                                                      -
                                                                      -An empty vector when called on other processors.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ outputVectorToFile() [1/2]

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T >
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      void Utils::outputVectorToFile (std::vector< T > & vec,
                                                                      std::string filename 
                                                                      )
                                                                      -
                                                                      - -

                                                                      This template function outputs the input data vector to a file with the specified filename.

                                                                      -
                                                                      Warning
                                                                      This function may overwrite existing files if not used carefully.
                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      vecis the input data vector.
                                                                      filenameis the input file name.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ outputVectorToFile() [2/2]

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T >
                                                                      - - - - - - - - - - - - - - - - - - -
                                                                      void Utils::outputVectorToFile (std::vector< std::pair< T, T >> & vec,
                                                                      std::string filename 
                                                                      )
                                                                      -
                                                                      - -

                                                                      This template function outputs the input data pair vector to a file with the specified filename.

                                                                      -
                                                                      Warning
                                                                      This function may overwrite existing files if not used carefully.
                                                                      -
                                                                      Parameters
                                                                      - - - -
                                                                      vecis the input data pair vector.
                                                                      filenameis the input file name.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ removeDuplicates()

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T >
                                                                      - - - - - - - - -
                                                                      void Utils::removeDuplicates (std::vector< T > & vec)
                                                                      -
                                                                      - -

                                                                      This template function efficienctly removes the duplicate entries from an input vector.

                                                                      -

                                                                      This algorithm allow efficient removal of duplicate vector objects when > or < comparison operators do not exist.

                                                                      Parameters
                                                                      - - -
                                                                      vecis the input vector to be operated on.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ removeWhitespace()

                                                                      - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      std::string Utils::removeWhitespace (const std::string & str)
                                                                      -
                                                                      - -

                                                                      Removes leading and trailing spaces surrounding a string.

                                                                      -
                                                                      Parameters
                                                                      - - -
                                                                      stris the input string
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      a new string that will have the surrounding spaces removed.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ vector_avg()

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T , typename A >
                                                                      - - - - - - - - -
                                                                      double Utils::vector_avg (const std::vector< T, A > & data)
                                                                      -
                                                                      - -

                                                                      This template function calculates and returns the average value in double format when given a vector of numerical datatypes.

                                                                      -
                                                                      Parameters
                                                                      - - -
                                                                      datais the vector of numerical data.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      The average of the data set in double format.
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ vector_stdev()

                                                                      - -
                                                                      -
                                                                      -
                                                                      -template<typename T , typename A >
                                                                      - - - - - - - - -
                                                                      double Utils::vector_stdev (const std::vector< T, A > & data)
                                                                      -
                                                                      - -

                                                                      This template function calculates and returns the standard deviation in double format when given a vector of numerical datatypes.

                                                                      -
                                                                      Parameters
                                                                      - - -
                                                                      datais the vector of numerical data.
                                                                      -
                                                                      -
                                                                      -
                                                                      Returns
                                                                      The standard deviation of the data set in double format.
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html deleted file mode 100644 index 236d68e..0000000 --- a/docs/namespacemembers.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -Excimontec: Namespace Members - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Here is a list of all namespace members with links to the namespace documentation for each member:
                                                                        -
                                                                      • array_avg() -: Utils -
                                                                      • -
                                                                      • array_stdev() -: Utils -
                                                                      • -
                                                                      • calculateProbabilityHist() -: Utils -
                                                                      • -
                                                                      • createExponentialDOSVector() -: Utils -
                                                                      • -
                                                                      • createGaussianDOSVector() -: Utils -
                                                                      • -
                                                                      • importBooleanParam() -: Utils -
                                                                      • -
                                                                      • integrateData() -: Utils -
                                                                      • -
                                                                      • interpolateData() -: Utils -
                                                                      • -
                                                                      • intpow() -: Utils -
                                                                      • -
                                                                      • MPI_calculateVectorAvg() -: Utils -
                                                                      • -
                                                                      • MPI_calculateVectorSum() -: Utils -
                                                                      • -
                                                                      • MPI_gatherVectors() -: Utils -
                                                                      • -
                                                                      • outputVectorToFile() -: Utils -
                                                                      • -
                                                                      • removeDuplicates() -: Utils -
                                                                      • -
                                                                      • removeWhitespace() -: Utils -
                                                                      • -
                                                                      • vector_avg() -: Utils -
                                                                      • -
                                                                      • vector_stdev() -: Utils -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html deleted file mode 100644 index 4430fcb..0000000 --- a/docs/namespacemembers_func.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -Excimontec: Namespace Members - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                        -
                                                                      • array_avg() -: Utils -
                                                                      • -
                                                                      • array_stdev() -: Utils -
                                                                      • -
                                                                      • calculateProbabilityHist() -: Utils -
                                                                      • -
                                                                      • createExponentialDOSVector() -: Utils -
                                                                      • -
                                                                      • createGaussianDOSVector() -: Utils -
                                                                      • -
                                                                      • importBooleanParam() -: Utils -
                                                                      • -
                                                                      • integrateData() -: Utils -
                                                                      • -
                                                                      • interpolateData() -: Utils -
                                                                      • -
                                                                      • intpow() -: Utils -
                                                                      • -
                                                                      • MPI_calculateVectorAvg() -: Utils -
                                                                      • -
                                                                      • MPI_calculateVectorSum() -: Utils -
                                                                      • -
                                                                      • MPI_gatherVectors() -: Utils -
                                                                      • -
                                                                      • outputVectorToFile() -: Utils -
                                                                      • -
                                                                      • removeDuplicates() -: Utils -
                                                                      • -
                                                                      • removeWhitespace() -: Utils -
                                                                      • -
                                                                      • vector_avg() -: Utils -
                                                                      • -
                                                                      • vector_stdev() -: Utils -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/namespaces.html b/docs/namespaces.html deleted file mode 100644 index 28e0159..0000000 --- a/docs/namespaces.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -Excimontec: Namespace List - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      -
                                                                      Namespace List
                                                                      -
                                                                      -
                                                                      -
                                                                      Here is a list of all namespaces with brief descriptions:
                                                                      - - -
                                                                       NUtilsThis namespace provides useful constants and utility functions
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - - diff --git a/docs/namespaces.js b/docs/namespaces.js deleted file mode 100644 index b9eaa19..0000000 --- a/docs/namespaces.js +++ /dev/null @@ -1,4 +0,0 @@ -var namespaces = -[ - [ "Utils", "namespace_utils.html", null ] -]; \ No newline at end of file diff --git a/docs/namespaces_dup.js b/docs/namespaces_dup.js deleted file mode 100644 index 183b4df..0000000 --- a/docs/namespaces_dup.js +++ /dev/null @@ -1,4 +0,0 @@ -var namespaces_dup = -[ - [ "Utils", "namespace_utils.html", null ] -]; \ No newline at end of file diff --git a/docs/navtreedata.js b/docs/navtreedata.js index 068b62d..cd00527 100644 --- a/docs/navtreedata.js +++ b/docs/navtreedata.js @@ -24,22 +24,14 @@ for the JavaScript code in this file var NAVTREE = [ [ "Excimontec", "index.html", [ - [ "KMC_Lattice", "md__k_m_c__lattice__r_e_a_d_m_e.html", null ], [ "Excimontec", "md__r_e_a_d_m_e.html", null ], - [ "Namespaces", "namespaces.html", [ - [ "Namespace List", "namespaces.html", "namespaces_dup" ], - [ "Namespace Members", "namespacemembers.html", [ - [ "All", "namespacemembers.html", null ], - [ "Functions", "namespacemembers_func.html", null ] - ] ] - ] ], [ "Classes", "annotated.html", [ [ "Class List", "annotated.html", "annotated_dup" ], [ "Class Index", "classes.html", null ], [ "Class Hierarchy", "hierarchy.html", "hierarchy" ], [ "Class Members", "functions.html", [ [ "All", "functions.html", "functions_dup" ], - [ "Functions", "functions_func.html", "functions_func" ], + [ "Functions", "functions_func.html", null ], [ "Variables", "functions_vars.html", null ] ] ] ] ], @@ -55,8 +47,8 @@ var NAVTREE = var NAVTREEINDEX = [ -"_event_8cpp.html", -"class_simulation.html#a0f06c75c9dd6be20a3911781b48fd467" +"_exciton_8cpp.html", +"struct_parameters___o_p_v.html#ad61e54053c0644fca200f803197a4550" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js index 8bcfbab..f7290c5 100644 --- a/docs/navtreeindex0.js +++ b/docs/navtreeindex0.js @@ -1,253 +1,253 @@ var NAVTREEINDEX0 = { -"_event_8cpp.html":[4,0,0,0], -"_event_8h.html":[4,0,0,1], -"_event_8h_source.html":[4,0,0,1], -"_exciton_8cpp.html":[4,0,1], -"_exciton_8h.html":[4,0,2], -"_exciton_8h_source.html":[4,0,2], -"_lattice_8cpp.html":[4,0,0,2], -"_lattice_8h.html":[4,0,0,3], -"_lattice_8h_source.html":[4,0,0,3], -"_o_s_c___sim_8cpp.html":[4,0,4], -"_o_s_c___sim_8h.html":[4,0,5], -"_o_s_c___sim_8h_source.html":[4,0,5], -"_object_8cpp.html":[4,0,0,4], -"_object_8h.html":[4,0,0,5], -"_object_8h_source.html":[4,0,0,5], -"_polaron_8cpp.html":[4,0,6], -"_polaron_8h.html":[4,0,7], -"_polaron_8h_source.html":[4,0,7], -"_simulation_8cpp.html":[4,0,0,6], -"_simulation_8h.html":[4,0,0,7], -"_simulation_8h_source.html":[4,0,0,7], -"_site_8cpp.html":[4,0,0,8], -"_site_8h.html":[4,0,0,9], -"_site_8h_source.html":[4,0,0,9], -"_utils_8cpp.html":[4,0,0,10], -"_utils_8cpp.html#a0818230f8ad279ef7ca217f3cba81f76":[4,0,0,10,1], -"_utils_8cpp.html#a08553f36886a36456e8111585029e467":[4,0,0,10,2], -"_utils_8cpp.html#a0a17d0ad939418dc745bcfd194ce2bc1":[4,0,0,10,9], -"_utils_8cpp.html#a2ce45ade7d6d4f2995b595da3ebbaaec":[4,0,0,10,4], -"_utils_8cpp.html#a49411c9d4c7a065dbcf237aa27a84023":[4,0,0,10,6], -"_utils_8cpp.html#a71eeb04d74f890da3d27128c37fcff78":[4,0,0,10,8], -"_utils_8cpp.html#a98a0cc670327fc21e272a07cbf5025ec":[4,0,0,10,5], -"_utils_8cpp.html#ad7b634b14633046c6da126945d688aaf":[4,0,0,10,10], -"_utils_8cpp.html#adcb2e98774b12bc12264034913547a2c":[4,0,0,10,0], -"_utils_8cpp.html#aee439dad386e2477d34968311b166c85":[4,0,0,10,11], -"_utils_8cpp.html#af296d2aa8f889f67fe515fc641c5f5fe":[4,0,0,10,3], -"_utils_8cpp.html#af68995497777ee14d812c65991a4046f":[4,0,0,10,7], -"_utils_8cpp.html#af9ceee3373ffe317f07d177cf0dfe056":[4,0,0,10,12], -"_utils_8h.html":[4,0,0,11], -"_utils_8h.html#a0818230f8ad279ef7ca217f3cba81f76":[4,0,0,11,4], -"_utils_8h.html#a08553f36886a36456e8111585029e467":[4,0,0,11,5], -"_utils_8h.html#a0a17d0ad939418dc745bcfd194ce2bc1":[4,0,0,11,13], -"_utils_8h.html#a25d09c704b5ae03f01cf76b6de10aa19":[4,0,0,11,2], -"_utils_8h.html#a2ce45ade7d6d4f2995b595da3ebbaaec":[4,0,0,11,7], -"_utils_8h.html#a49411c9d4c7a065dbcf237aa27a84023":[4,0,0,11,9], -"_utils_8h.html#a5f64d00eec0b50ac5bd119652c99d01b":[4,0,0,11,18], -"_utils_8h.html#a652ab00e72bce852c2b9798ff3e1a60b":[4,0,0,11,17], -"_utils_8h.html#a6bfa9b066d7c0967807d588024c15d4e":[4,0,0,11,21], -"_utils_8h.html#a71eeb04d74f890da3d27128c37fcff78":[4,0,0,11,12], -"_utils_8h.html#a98a0cc670327fc21e272a07cbf5025ec":[4,0,0,11,8], -"_utils_8h.html#aa76a204af4dd4c3eb151691825de2eb2":[4,0,0,11,1], -"_utils_8h.html#ab76081fb0fa0e9e1633b1b2255db4164":[4,0,0,11,16], -"_utils_8h.html#acbc030ce708229ea393215fe13e6377b":[4,0,0,11,20], -"_utils_8h.html#ad7b634b14633046c6da126945d688aaf":[4,0,0,11,14], -"_utils_8h.html#adcb2e98774b12bc12264034913547a2c":[4,0,0,11,3], -"_utils_8h.html#aee439dad386e2477d34968311b166c85":[4,0,0,11,15], -"_utils_8h.html#af296d2aa8f889f67fe515fc641c5f5fe":[4,0,0,11,6], -"_utils_8h.html#af68995497777ee14d812c65991a4046f":[4,0,0,11,10], -"_utils_8h.html#af9ceee3373ffe317f07d177cf0dfe056":[4,0,0,11,19], -"_utils_8h.html#affd19edaa58a3f8425e1f7b4c9233f8a":[4,0,0,11,11], -"_utils_8h_source.html":[4,0,0,11], -"annotated.html":[3,0], -"class_event.html":[3,0,1], -"class_event.html#a078cadde679fc042486ef065a097c7af":[3,0,1,11], -"class_event.html#a166ae40f2bf26c1e08097697ca76c884":[3,0,1,9], -"class_event.html#a2e868dc951b6fec86703dcd7776680e0":[3,0,1,12], -"class_event.html#a5317d42bb07d0e75bec0c13bd9bf6de8":[3,0,1,7], -"class_event.html#a5a40dd4708297f7031e29b39e039ae10":[3,0,1,1], -"class_event.html#a65550d982cdf85d993658cd7070c960c":[3,0,1,6], -"class_event.html#a6b4287971afaca8211f91f361ef55997":[3,0,1,4], -"class_event.html#a6fa01d0eba9aa1bbea18ee94aa8c02fe":[3,0,1,3], -"class_event.html#a7704ec01ce91e673885792054214b3d2":[3,0,1,0], -"class_event.html#a77ff5602b20c468b3b72e9924038ac94":[3,0,1,5], -"class_event.html#aa372e6b2345c96b3c0ce21e9603280fb":[3,0,1,13], -"class_event.html#ab86f724c3c894faa1d6ccca78c357d24":[3,0,1,8], -"class_event.html#adbadc626c37dc77443f6f8c9abec589f":[3,0,1,2], -"class_event.html#af4282af20bd5b3940ba75c23e6032f18":[3,0,1,10], -"class_exciton.html":[3,0,2], -"class_exciton.html#a1d78a570cc48f62886033465219dd04c":[3,0,2,2], -"class_exciton.html#a43da382ee3ab29d032ab60a8e97ebaf6":[3,0,2,4], -"class_exciton.html#a480ef78405291593519ac372b7712029":[3,0,2,0], -"class_exciton.html#a85a7b8561f6e294593679e53dd3b91a9":[3,0,2,1], -"class_exciton.html#a91cb4c59b7e7a7fb756aae4c4109dba3":[3,0,2,3], -"class_exciton___creation.html":[3,0,3], -"class_exciton___creation.html#a01d52761482e31bd4f98dcab2b7f09d5":[3,0,3,1], -"class_exciton___creation.html#a21e9217cb8c671066c6a9b8d417a13ec":[3,0,3,0], -"class_exciton___creation.html#a8dab95eb7d8c0a2cfddb8bf130d3b805":[3,0,3,2], -"class_exciton___dissociation.html":[3,0,4], -"class_exciton___dissociation.html#a4d87633f611d03842854f803de1298e9":[3,0,4,3], -"class_exciton___dissociation.html#a91ed94e4fa9b465a35aad05a303d0fd0":[3,0,4,1], -"class_exciton___dissociation.html#a97807fc4d23400cdbf10203f648d5625":[3,0,4,4], -"class_exciton___dissociation.html#a9fe9c9206ca43eaef0f56b6e3249cf8d":[3,0,4,2], -"class_exciton___dissociation.html#ad127a7325c308e35d52b53668ae52353":[3,0,4,0], -"class_exciton___exciton___annihilation.html":[3,0,5], -"class_exciton___exciton___annihilation.html#a15838db1eb32ea23c0442f36b3f6236e":[3,0,5,1], -"class_exciton___exciton___annihilation.html#a4f09a860f2aab323580d334d854512a3":[3,0,5,2], -"class_exciton___exciton___annihilation.html#a562b2fe42b2a17aae2aa1d48cd4d3e9b":[3,0,5,4], -"class_exciton___exciton___annihilation.html#a62c62f119f2ddd3a3f024f0b33312a7a":[3,0,5,0], -"class_exciton___exciton___annihilation.html#ae873426c8ae373e70bd707cf3c18d3f9":[3,0,5,3], -"class_exciton___hop.html":[3,0,6], -"class_exciton___hop.html#a39bf8618302f619aecf060cb89d1b9f2":[3,0,6,3], -"class_exciton___hop.html#a61b21f627b744af47c2f0acfd71b9363":[3,0,6,2], -"class_exciton___hop.html#a847c59afce26a032008a80bde25e369f":[3,0,6,0], -"class_exciton___hop.html#aae3f49afb42e61d5a54e9bff7b640561":[3,0,6,1], -"class_exciton___hop.html#ae79c31ef3452d2df87c35cc4cea79dde":[3,0,6,4], -"class_exciton___intersystem___crossing.html":[3,0,7], -"class_exciton___intersystem___crossing.html#a4619ac8b4573e23234f3d77de626f0c9":[3,0,7,1], -"class_exciton___intersystem___crossing.html#a71c1bddcd80eab242213437da1f04bcc":[3,0,7,3], -"class_exciton___intersystem___crossing.html#aa76ac22b9a54abae614fb9eeadd4e308":[3,0,7,0], -"class_exciton___intersystem___crossing.html#abc0c82ee35e973302626958becbfb3e3":[3,0,7,2], -"class_exciton___polaron___annihilation.html":[3,0,8], -"class_exciton___polaron___annihilation.html#a22feff4bffef7622722bf376681ba99c":[3,0,8,1], -"class_exciton___polaron___annihilation.html#a4b8426358eaa2bcf19993fd1fb032327":[3,0,8,0], -"class_exciton___polaron___annihilation.html#a68c74dfaf56cb8dd6b5e26369f143f39":[3,0,8,2], -"class_exciton___polaron___annihilation.html#a92a9236dd1cfed941c36c56084a1a86a":[3,0,8,3], -"class_exciton___polaron___annihilation.html#adc5151dc5f846383581878240ddecef2":[3,0,8,4], -"class_exciton___recombination.html":[3,0,9], -"class_exciton___recombination.html#a350762cfaad5f5dcae1dad4a346647dd":[3,0,9,2], -"class_exciton___recombination.html#a4fa8e592dd0d73062c4dd4d9b7294606":[3,0,9,1], -"class_exciton___recombination.html#a6f5df6eae4a5c8cf6f3c9442bc242ebd":[3,0,9,0], -"class_lattice.html":[3,0,10], -"class_lattice.html#a08adb2f412af409d3ec241e60e687c1a":[3,0,10,2], -"class_lattice.html#a180a9d79a40b1a0a092c8ab489569700":[3,0,10,13], -"class_lattice.html#a2b0a88048fae662aa71386a3a123a260":[3,0,10,24], -"class_lattice.html#a3f51b0b41cf0e43e0469320310494a1e":[3,0,10,8], -"class_lattice.html#a46f7d12855d24e1bdd02814621b0a178":[3,0,10,20], -"class_lattice.html#a46f9cec33419459b64ff0efdf47a38b9":[3,0,10,22], -"class_lattice.html#a4b43b67a36fcd3dfe62c9eeaffa561d2":[3,0,10,16], -"class_lattice.html#a4be17e9123f7737387991a9d1a8b87b3":[3,0,10,17], -"class_lattice.html#a4d37afb6ad4c67f4f6462c2f6d5c337d":[3,0,10,25], -"class_lattice.html#a4e8b3577701ec0cefce595f6956b22e3":[3,0,10,5], -"class_lattice.html#a515b8bc548ef4a87c3495a7352a60399":[3,0,10,30], -"class_lattice.html#a584ff9c528ebe46a6aea6ed652d107f4":[3,0,10,6], -"class_lattice.html#a59546ec4301871897ba5adfda1126741":[3,0,10,31], -"class_lattice.html#a60431f6504a253d47acb0b02f524571c":[3,0,10,19], -"class_lattice.html#a70a5cebc3c0c5a0f609be0592e7cc117":[3,0,10,0], -"class_lattice.html#a74a170b841ad1b74dad43519d37e9eaf":[3,0,10,18], -"class_lattice.html#a76b38079e102e17c79b13a3398a404a0":[3,0,10,7], -"class_lattice.html#a96006397a6ab389fb1eee87fde6e2165":[3,0,10,14], -"class_lattice.html#a97a1b4f24cd40b81ed63aa2d7713b63b":[3,0,10,10], -"class_lattice.html#a9fbb3c8bc23999ff685b6837beb62606":[3,0,10,11], -"class_lattice.html#aa1f65735ecbd750ec04b6413b4d47316":[3,0,10,29], -"class_lattice.html#aa6b80d6264bfc23ae5fea39abd2557d5":[3,0,10,1], -"class_lattice.html#aaa0cba3ab33ac620d9b9f9508c56d1ac":[3,0,10,15], -"class_lattice.html#ab78435e50e3bf9f376c04fc305785bb4":[3,0,10,12], -"class_lattice.html#ac3192acefb019c5258143a6c758b3e48":[3,0,10,27], -"class_lattice.html#ac6963a6b2b4b8d96d3417f6e9c2a509d":[3,0,10,21], -"class_lattice.html#accf3b995e0d0cb422907728a29b1b523":[3,0,10,26], -"class_lattice.html#acdeca889f7df11fe299f8b7941198c83":[3,0,10,4], -"class_lattice.html#ad0592298c4b92e9e84a768b95cd6d0f0":[3,0,10,9], -"class_lattice.html#ad7dd1b12a253e506aba5cedb57bf86ea":[3,0,10,28], -"class_lattice.html#ad89c5473dd37339ede9fb3d0c3db4300":[3,0,10,3], -"class_lattice.html#aeb60d2b8bfb02d9da8bef463f0d41428":[3,0,10,23], -"class_o_s_c___sim.html":[3,0,12], -"class_o_s_c___sim.html#a01a190017bc7a7e04c6af824fa47dbce":[3,0,12,51], -"class_o_s_c___sim.html#a03028810d8edc276ed7ab0a8228feaaa":[3,0,12,50], -"class_o_s_c___sim.html#a0b14455856a684c59ba7d496782b0941":[3,0,12,44], -"class_o_s_c___sim.html#a152520ae80b5f879578c01c25b9b4a7f":[3,0,12,36], -"class_o_s_c___sim.html#a15a47ed6657c8301eac0c938f8887324":[3,0,12,52], -"class_o_s_c___sim.html#a15b6b1af56c4285252c6102b3672481c":[3,0,12,32], -"class_o_s_c___sim.html#a176ab132e314dfd509e8feb89687f163":[3,0,12,10], -"class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112":[3,0,12,1], -"class_o_s_c___sim.html#a3159c7445f114390c7fb52fa73d559ef":[3,0,12,34], -"class_o_s_c___sim.html#a37e177cadae01e8a2ec753cdae165297":[3,0,12,17], -"class_o_s_c___sim.html#a3e70becfb20c8eaa420fd64d12492881":[3,0,12,47], -"class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869":[3,0,12,13], -"class_o_s_c___sim.html#a53be32d48cc8319af6143fe858b3840f":[3,0,12,23], -"class_o_s_c___sim.html#a54ad519acee6dbd67c19d5baa3bc4919":[3,0,12,46], -"class_o_s_c___sim.html#a62aa25ac6740cea4efab1dcc7f88c5d5":[3,0,12,2], -"class_o_s_c___sim.html#a6362a3edee0a1a4f63bdc82a7a0275c5":[3,0,12,40], -"class_o_s_c___sim.html#a6809c1bc0b9fd7852621a86eb49457e0":[3,0,12,37], -"class_o_s_c___sim.html#a6ce1e72c2a7d1161f844ebd46231c961":[3,0,12,14], -"class_o_s_c___sim.html#a75f8094106ced73efaec99cc302f2aa9":[3,0,12,56], -"class_o_s_c___sim.html#a77e6cd447d0dcab5d4bb99643c43d3a4":[3,0,12,20], -"class_o_s_c___sim.html#a78aa9badec9d28169b7b71b29e90c265":[3,0,12,55], -"class_o_s_c___sim.html#a7c6cce40287a60c271509c1f3d8eef9a":[3,0,12,54], -"class_o_s_c___sim.html#a7cbca947933286e632d3d76dfed403bf":[3,0,12,7], -"class_o_s_c___sim.html#a7e7da89362449d58373a31c255a27d8f":[3,0,12,9], -"class_o_s_c___sim.html#a804f8facf0f5ee86d0234662a0719571":[3,0,12,16], -"class_o_s_c___sim.html#a858300b2a76f1a1b24747d11869a1f4a":[3,0,12,3], -"class_o_s_c___sim.html#a87440b491cad2d1ece7b5745bda5d42a":[3,0,12,19], -"class_o_s_c___sim.html#a8cbaab921f75c2b1ccc85b42ed698c58":[3,0,12,5], -"class_o_s_c___sim.html#a8d295ea6ed8c006f9770af4e33758725":[3,0,12,43], -"class_o_s_c___sim.html#a91d2dad10391f727348d96b0b21c8304":[3,0,12,27], -"class_o_s_c___sim.html#a92f8e2ae6bcd3e0755feb2419849c8e9":[3,0,12,12], -"class_o_s_c___sim.html#a97f04719b91c90ac64dd8186476aa5f5":[3,0,12,15], -"class_o_s_c___sim.html#a99e37cc427f843a92d58c6fa9b13fffe":[3,0,12,8], -"class_o_s_c___sim.html#aa057ee46e104e6fcb21b7724bfd2c1a9":[3,0,12,42], -"class_o_s_c___sim.html#aa3e0342b2a8c7dc5a62211dd6161027f":[3,0,12,49], -"class_o_s_c___sim.html#aa6a8cfccbe629cba8ed137e3c205affe":[3,0,12,39], -"class_o_s_c___sim.html#aa8ee0a55f34be1da2f78be2931584723":[3,0,12,28], -"class_o_s_c___sim.html#aadb3c72821bac6153f0f848ce1a87c2b":[3,0,12,31], -"class_o_s_c___sim.html#aae233390486c4db28a72936dd7d398f1":[3,0,12,48], -"class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115":[3,0,12,11], -"class_o_s_c___sim.html#abb8a9aefba0cb189fbaeba0f9bdff180":[3,0,12,30], -"class_o_s_c___sim.html#ac5a6b2ae37d49b9114fe032f533e41c6":[3,0,12,53], -"class_o_s_c___sim.html#acde6068549f59f813d2faed73f6fedc9":[3,0,12,26], -"class_o_s_c___sim.html#ad24aaff4c9a327bb978180d47dd67036":[3,0,12,45], -"class_o_s_c___sim.html#ad38ee5ecfdd65fe4d162763842a2a4b6":[3,0,12,33], -"class_o_s_c___sim.html#ad4e1d01074aa99ab83a86caf102ed1f0":[3,0,12,35], -"class_o_s_c___sim.html#ad6bffe074bd5e2c5b2f08561fa8bf117":[3,0,12,24], -"class_o_s_c___sim.html#adbc98ace600bbb3e78bced45d3aaf7b0":[3,0,12,41], -"class_o_s_c___sim.html#ae42c945062f1c9efd5e83a58633d6d7a":[3,0,12,21], -"class_o_s_c___sim.html#ae6bc3f06e216d922075039c6e3f900c9":[3,0,12,38], -"class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e":[3,0,12,0], -"class_o_s_c___sim.html#aef139f85af869c000b362b2a17e46cff":[3,0,12,6], -"class_o_s_c___sim.html#af13f7b1b8f6df5a45c0111d11c0057db":[3,0,12,25], -"class_o_s_c___sim.html#afa814164790477d643fe04fca021483d":[3,0,12,29], -"class_o_s_c___sim.html#afbca0a6245adc11d0d7f38e01366556b":[3,0,12,18], -"class_o_s_c___sim.html#afd5da99934f079631f1192e0caba1ad4":[3,0,12,22], -"class_o_s_c___sim.html#afdd01fa07d004b0c37ce86ee171a60b8":[3,0,12,4], -"class_object.html":[3,0,11], -"class_object.html#a02643ea0804dec3e43f60c788855c03b":[3,0,11,3], -"class_object.html#a08df08943dc634609fa69b356a37d73f":[3,0,11,4], -"class_object.html#a1d1115b941cc6965dddf5510cf49bbee":[3,0,11,12], -"class_object.html#a34a164e4709e5daaba7a38c3d61ae617":[3,0,11,13], -"class_object.html#a3d7c877f4aa179d9a56050c5faddc18d":[3,0,11,9], -"class_object.html#a40860402e64d8008fb42329df7097cdb":[3,0,11,1], -"class_object.html#a440b267c478f5d63db1954bdbd543408":[3,0,11,11], -"class_object.html#a6f91c3f8b61cb9c9a8db662ac07d92e9":[3,0,11,5], -"class_object.html#a79449834c55900dd1d96fb7c530e4515":[3,0,11,7], -"class_object.html#a9df010818be72d15bad7985bf8a89ba0":[3,0,11,10], -"class_object.html#aa7c58e0319b7715c8d36f38ca7acf03e":[3,0,11,6], -"class_object.html#aa9653577e8d0ac4b7b86d23d12f8b31b":[3,0,11,8], -"class_object.html#ad5025bd84ae91d6426f458f32e582293":[3,0,11,14], -"class_object.html#ae8f5483f459e46687bd01e6f9977afd3":[3,0,11,0], -"class_object.html#aff050a622272cc7667251c7315f09fd7":[3,0,11,2], -"class_polaron.html":[3,0,17], -"class_polaron.html#a41c1a9b0b23a35e6ff765c8168a9fb6f":[3,0,17,1], -"class_polaron.html#a7392b742eec8c5bf4438198901c570a9":[3,0,17,0], -"class_polaron.html#a95feb449d2164870d7ba4b85f6e7dba9":[3,0,17,2], -"class_polaron___extraction.html":[3,0,18], -"class_polaron___extraction.html#a1a67c4f94b3ec9f0d36687931c080a6d":[3,0,18,2], -"class_polaron___extraction.html#a2ac84785d2265bc1ee0e23a7fbcee03f":[3,0,18,0], -"class_polaron___extraction.html#a321feea52f3bed67e566e52682208f45":[3,0,18,3], -"class_polaron___extraction.html#ad3fd4585a4caf22be10c8730540b23db":[3,0,18,1], -"class_polaron___hop.html":[3,0,19], -"class_polaron___hop.html#a5e1d2ab6c7175be027c43b66494408df":[3,0,19,3], -"class_polaron___hop.html#abaedc081f619b8e63363fac7f036b09f":[3,0,19,1], -"class_polaron___hop.html#abf5fa9620dc51aa613eabb0b7e7cad57":[3,0,19,4], -"class_polaron___hop.html#ae0362f61b6edbc66a04cfe38ea87bf0b":[3,0,19,2], -"class_polaron___hop.html#ae8da015929a00a85dc56bc694cd62fa4":[3,0,19,0], -"class_polaron___recombination.html":[3,0,20], -"class_polaron___recombination.html#a0e51793302ecdb9dcc6585acaf9a0287":[3,0,20,3], -"class_polaron___recombination.html#a653484a1c11e4bc0a744875184fdaf98":[3,0,20,0], -"class_polaron___recombination.html#abdb1e837d36802564eaaa6053ccb697c":[3,0,20,1], -"class_polaron___recombination.html#acee53d16091a8f3922421b92389d5dc0":[3,0,20,4], -"class_polaron___recombination.html#aedf0185861c8ffb9112d9ee421047da4":[3,0,20,2], -"class_simulation.html":[3,0,21], -"class_simulation.html#a03d249f04c0921c938d68337dfc65f56":[3,0,21,9] +"_exciton_8cpp.html":[2,0,0,0], +"_exciton_8h.html":[2,0,0,1], +"_exciton_8h_source.html":[2,0,0,1], +"_o_s_c___sim_8cpp.html":[2,0,0,3], +"_o_s_c___sim_8h.html":[2,0,0,4], +"_o_s_c___sim_8h_source.html":[2,0,0,4], +"_polaron_8cpp.html":[2,0,0,5], +"_polaron_8h.html":[2,0,0,6], +"_polaron_8h_source.html":[2,0,0,6], +"annotated.html":[1,0], +"class_exciton.html":[1,0,0], +"class_exciton.html#a1d78a570cc48f62886033465219dd04c":[1,0,0,2], +"class_exciton.html#a43da382ee3ab29d032ab60a8e97ebaf6":[1,0,0,4], +"class_exciton.html#a480ef78405291593519ac372b7712029":[1,0,0,0], +"class_exciton.html#a85a7b8561f6e294593679e53dd3b91a9":[1,0,0,1], +"class_exciton.html#a91cb4c59b7e7a7fb756aae4c4109dba3":[1,0,0,3], +"class_exciton___creation.html":[1,0,1], +"class_exciton___creation.html#a01d52761482e31bd4f98dcab2b7f09d5":[1,0,1,1], +"class_exciton___creation.html#a21e9217cb8c671066c6a9b8d417a13ec":[1,0,1,0], +"class_exciton___creation.html#a8dab95eb7d8c0a2cfddb8bf130d3b805":[1,0,1,2], +"class_exciton___dissociation.html":[1,0,2], +"class_exciton___dissociation.html#a4d87633f611d03842854f803de1298e9":[1,0,2,3], +"class_exciton___dissociation.html#a91ed94e4fa9b465a35aad05a303d0fd0":[1,0,2,1], +"class_exciton___dissociation.html#a97807fc4d23400cdbf10203f648d5625":[1,0,2,4], +"class_exciton___dissociation.html#a9fe9c9206ca43eaef0f56b6e3249cf8d":[1,0,2,2], +"class_exciton___dissociation.html#ad127a7325c308e35d52b53668ae52353":[1,0,2,0], +"class_exciton___exciton___annihilation.html":[1,0,3], +"class_exciton___exciton___annihilation.html#a15838db1eb32ea23c0442f36b3f6236e":[1,0,3,1], +"class_exciton___exciton___annihilation.html#a4f09a860f2aab323580d334d854512a3":[1,0,3,2], +"class_exciton___exciton___annihilation.html#a562b2fe42b2a17aae2aa1d48cd4d3e9b":[1,0,3,4], +"class_exciton___exciton___annihilation.html#a62c62f119f2ddd3a3f024f0b33312a7a":[1,0,3,0], +"class_exciton___exciton___annihilation.html#ae873426c8ae373e70bd707cf3c18d3f9":[1,0,3,3], +"class_exciton___hop.html":[1,0,4], +"class_exciton___hop.html#a39bf8618302f619aecf060cb89d1b9f2":[1,0,4,3], +"class_exciton___hop.html#a61b21f627b744af47c2f0acfd71b9363":[1,0,4,2], +"class_exciton___hop.html#a847c59afce26a032008a80bde25e369f":[1,0,4,0], +"class_exciton___hop.html#aae3f49afb42e61d5a54e9bff7b640561":[1,0,4,1], +"class_exciton___hop.html#ae79c31ef3452d2df87c35cc4cea79dde":[1,0,4,4], +"class_exciton___intersystem___crossing.html":[1,0,5], +"class_exciton___intersystem___crossing.html#a4619ac8b4573e23234f3d77de626f0c9":[1,0,5,1], +"class_exciton___intersystem___crossing.html#a71c1bddcd80eab242213437da1f04bcc":[1,0,5,3], +"class_exciton___intersystem___crossing.html#aa76ac22b9a54abae614fb9eeadd4e308":[1,0,5,0], +"class_exciton___intersystem___crossing.html#abc0c82ee35e973302626958becbfb3e3":[1,0,5,2], +"class_exciton___polaron___annihilation.html":[1,0,6], +"class_exciton___polaron___annihilation.html#a22feff4bffef7622722bf376681ba99c":[1,0,6,1], +"class_exciton___polaron___annihilation.html#a4b8426358eaa2bcf19993fd1fb032327":[1,0,6,0], +"class_exciton___polaron___annihilation.html#a68c74dfaf56cb8dd6b5e26369f143f39":[1,0,6,2], +"class_exciton___polaron___annihilation.html#a92a9236dd1cfed941c36c56084a1a86a":[1,0,6,3], +"class_exciton___polaron___annihilation.html#adc5151dc5f846383581878240ddecef2":[1,0,6,4], +"class_exciton___recombination.html":[1,0,7], +"class_exciton___recombination.html#a350762cfaad5f5dcae1dad4a346647dd":[1,0,7,2], +"class_exciton___recombination.html#a4fa8e592dd0d73062c4dd4d9b7294606":[1,0,7,1], +"class_exciton___recombination.html#a6f5df6eae4a5c8cf6f3c9442bc242ebd":[1,0,7,0], +"class_o_s_c___sim.html":[1,0,8], +"class_o_s_c___sim.html#a01a190017bc7a7e04c6af824fa47dbce":[1,0,8,53], +"class_o_s_c___sim.html#a03028810d8edc276ed7ab0a8228feaaa":[1,0,8,52], +"class_o_s_c___sim.html#a0b14455856a684c59ba7d496782b0941":[1,0,8,46], +"class_o_s_c___sim.html#a152520ae80b5f879578c01c25b9b4a7f":[1,0,8,38], +"class_o_s_c___sim.html#a15a47ed6657c8301eac0c938f8887324":[1,0,8,54], +"class_o_s_c___sim.html#a15b6b1af56c4285252c6102b3672481c":[1,0,8,34], +"class_o_s_c___sim.html#a173d8899d6fac79effdc4f89dbe64910":[1,0,8,10], +"class_o_s_c___sim.html#a176ab132e314dfd509e8feb89687f163":[1,0,8,6], +"class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112":[1,0,8,1], +"class_o_s_c___sim.html#a2dfba6465819c4f779e5b7fe07483775":[1,0,8,4], +"class_o_s_c___sim.html#a3159c7445f114390c7fb52fa73d559ef":[1,0,8,36], +"class_o_s_c___sim.html#a3495c8da3f2f4bcc015d83ad482ce3c1":[1,0,8,5], +"class_o_s_c___sim.html#a37e177cadae01e8a2ec753cdae165297":[1,0,8,15], +"class_o_s_c___sim.html#a3e70becfb20c8eaa420fd64d12492881":[1,0,8,49], +"class_o_s_c___sim.html#a40a44c612cc51a766b7310341aede5c5":[1,0,8,29], +"class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869":[1,0,8,12], +"class_o_s_c___sim.html#a53be32d48cc8319af6143fe858b3840f":[1,0,8,21], +"class_o_s_c___sim.html#a54ad519acee6dbd67c19d5baa3bc4919":[1,0,8,48], +"class_o_s_c___sim.html#a6362a3edee0a1a4f63bdc82a7a0275c5":[1,0,8,42], +"class_o_s_c___sim.html#a6809c1bc0b9fd7852621a86eb49457e0":[1,0,8,39], +"class_o_s_c___sim.html#a6ce1e72c2a7d1161f844ebd46231c961":[1,0,8,13], +"class_o_s_c___sim.html#a75f8094106ced73efaec99cc302f2aa9":[1,0,8,58], +"class_o_s_c___sim.html#a77e6cd447d0dcab5d4bb99643c43d3a4":[1,0,8,18], +"class_o_s_c___sim.html#a78aa9badec9d28169b7b71b29e90c265":[1,0,8,57], +"class_o_s_c___sim.html#a7c6cce40287a60c271509c1f3d8eef9a":[1,0,8,56], +"class_o_s_c___sim.html#a804f8facf0f5ee86d0234662a0719571":[1,0,8,14], +"class_o_s_c___sim.html#a87440b491cad2d1ece7b5745bda5d42a":[1,0,8,17], +"class_o_s_c___sim.html#a8d295ea6ed8c006f9770af4e33758725":[1,0,8,45], +"class_o_s_c___sim.html#a91d2dad10391f727348d96b0b21c8304":[1,0,8,25], +"class_o_s_c___sim.html#a92f8e2ae6bcd3e0755feb2419849c8e9":[1,0,8,8], +"class_o_s_c___sim.html#a9e3597fee2330eaa06d5030a15ecb716":[1,0,8,27], +"class_o_s_c___sim.html#aa057ee46e104e6fcb21b7724bfd2c1a9":[1,0,8,44], +"class_o_s_c___sim.html#aa3e0342b2a8c7dc5a62211dd6161027f":[1,0,8,51], +"class_o_s_c___sim.html#aa6a8cfccbe629cba8ed137e3c205affe":[1,0,8,41], +"class_o_s_c___sim.html#aa8ee0a55f34be1da2f78be2931584723":[1,0,8,30], +"class_o_s_c___sim.html#aadb3c72821bac6153f0f848ce1a87c2b":[1,0,8,33], +"class_o_s_c___sim.html#aae233390486c4db28a72936dd7d398f1":[1,0,8,50], +"class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115":[1,0,8,7], +"class_o_s_c___sim.html#abb8a9aefba0cb189fbaeba0f9bdff180":[1,0,8,32], +"class_o_s_c___sim.html#ac5a6b2ae37d49b9114fe032f533e41c6":[1,0,8,55], +"class_o_s_c___sim.html#acde6068549f59f813d2faed73f6fedc9":[1,0,8,24], +"class_o_s_c___sim.html#ad24aaff4c9a327bb978180d47dd67036":[1,0,8,47], +"class_o_s_c___sim.html#ad38ee5ecfdd65fe4d162763842a2a4b6":[1,0,8,35], +"class_o_s_c___sim.html#ad4e1d01074aa99ab83a86caf102ed1f0":[1,0,8,37], +"class_o_s_c___sim.html#ad6bffe074bd5e2c5b2f08561fa8bf117":[1,0,8,22], +"class_o_s_c___sim.html#ad88929fd506f3cd68540d18fc10e8f91":[1,0,8,9], +"class_o_s_c___sim.html#adbc98ace600bbb3e78bced45d3aaf7b0":[1,0,8,43], +"class_o_s_c___sim.html#adf6e66636e1d5e7b73859dc04cbe8eda":[1,0,8,2], +"class_o_s_c___sim.html#adfd8dca7bdcca75cb4a39e1f07d919f6":[1,0,8,28], +"class_o_s_c___sim.html#ae391cd48aaa3a27b38f6724f8fea90f3":[1,0,8,3], +"class_o_s_c___sim.html#ae42c945062f1c9efd5e83a58633d6d7a":[1,0,8,19], +"class_o_s_c___sim.html#ae6bc3f06e216d922075039c6e3f900c9":[1,0,8,40], +"class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e":[1,0,8,0], +"class_o_s_c___sim.html#af13f7b1b8f6df5a45c0111d11c0057db":[1,0,8,23], +"class_o_s_c___sim.html#af28e344999ddebba9753941d9fdf7680":[1,0,8,26], +"class_o_s_c___sim.html#afa814164790477d643fe04fca021483d":[1,0,8,31], +"class_o_s_c___sim.html#afbca0a6245adc11d0d7f38e01366556b":[1,0,8,16], +"class_o_s_c___sim.html#afd42539a4764cdcad24a8aade399e2a1":[1,0,8,11], +"class_o_s_c___sim.html#afd5da99934f079631f1192e0caba1ad4":[1,0,8,20], +"class_polaron.html":[1,0,11], +"class_polaron.html#a41c1a9b0b23a35e6ff765c8168a9fb6f":[1,0,11,1], +"class_polaron.html#a7392b742eec8c5bf4438198901c570a9":[1,0,11,0], +"class_polaron.html#a95feb449d2164870d7ba4b85f6e7dba9":[1,0,11,2], +"class_polaron___extraction.html":[1,0,12], +"class_polaron___extraction.html#a1a67c4f94b3ec9f0d36687931c080a6d":[1,0,12,2], +"class_polaron___extraction.html#a2ac84785d2265bc1ee0e23a7fbcee03f":[1,0,12,0], +"class_polaron___extraction.html#a321feea52f3bed67e566e52682208f45":[1,0,12,3], +"class_polaron___extraction.html#ad3fd4585a4caf22be10c8730540b23db":[1,0,12,1], +"class_polaron___hop.html":[1,0,13], +"class_polaron___hop.html#a5e1d2ab6c7175be027c43b66494408df":[1,0,13,3], +"class_polaron___hop.html#abaedc081f619b8e63363fac7f036b09f":[1,0,13,1], +"class_polaron___hop.html#abf5fa9620dc51aa613eabb0b7e7cad57":[1,0,13,4], +"class_polaron___hop.html#ae0362f61b6edbc66a04cfe38ea87bf0b":[1,0,13,2], +"class_polaron___hop.html#ae8da015929a00a85dc56bc694cd62fa4":[1,0,13,0], +"class_polaron___recombination.html":[1,0,14], +"class_polaron___recombination.html#a0e51793302ecdb9dcc6585acaf9a0287":[1,0,14,3], +"class_polaron___recombination.html#a653484a1c11e4bc0a744875184fdaf98":[1,0,14,0], +"class_polaron___recombination.html#abdb1e837d36802564eaaa6053ccb697c":[1,0,14,1], +"class_polaron___recombination.html#acee53d16091a8f3922421b92389d5dc0":[1,0,14,4], +"class_polaron___recombination.html#aedf0185861c8ffb9112d9ee421047da4":[1,0,14,2], +"class_site___o_s_c.html":[1,0,15], +"class_site___o_s_c.html#a22e8a3f697fa69d6a382e91c78a181b3":[1,0,15,3], +"class_site___o_s_c.html#a47f7ed4c7e916e01bd5cfc37599babb6":[1,0,15,4], +"class_site___o_s_c.html#a59db8200675439b98f42d3c35310fe68":[1,0,15,0], +"class_site___o_s_c.html#a704a0a9fe1bab69db8343f5225d5888e":[1,0,15,1], +"class_site___o_s_c.html#ac7751de2f821aa8562793f8636027313":[1,0,15,2], +"classes.html":[1,1], +"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[2,0,0], +"files.html":[2,0], +"functions.html":[1,3,0], +"functions.html":[1,3,0,0], +"functions_0x7e.html":[1,3,0,16], +"functions_c.html":[1,3,0,1], +"functions_d.html":[1,3,0,2], +"functions_e.html":[1,3,0,3], +"functions_f.html":[1,3,0,4], +"functions_func.html":[1,3,1], +"functions_g.html":[1,3,0,5], +"functions_h.html":[1,3,0,6], +"functions_i.html":[1,3,0,7], +"functions_l.html":[1,3,0,8], +"functions_m.html":[1,3,0,9], +"functions_n.html":[1,3,0,10], +"functions_o.html":[1,3,0,11], +"functions_p.html":[1,3,0,12], +"functions_r.html":[1,3,0,13], +"functions_s.html":[1,3,0,14], +"functions_t.html":[1,3,0,15], +"functions_vars.html":[1,3,2], +"globals.html":[2,1,0], +"globals_func.html":[2,1,1], +"hierarchy.html":[1,2], +"index.html":[], +"main_8cpp.html":[2,0,0,2], +"main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97":[2,0,0,2,2], +"main_8cpp.html#a5022bbed737fe6cd84ab11f8d0b3e1a2":[2,0,0,2,1], +"md__r_e_a_d_m_e.html":[0], +"pages.html":[], +"struct_parameters___o_p_v.html":[1,0,10], +"struct_parameters___o_p_v.html#a01b94b4373991c4fc0fd66a7bcdb1e20":[1,0,10,29], +"struct_parameters___o_p_v.html#a03f47eeffc8a2984c03208ca2f84717d":[1,0,10,45], +"struct_parameters___o_p_v.html#a05158466d7973c098d8b6b5b4b43143c":[1,0,10,73], +"struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165":[1,0,10,83], +"struct_parameters___o_p_v.html#a0c61716c4f210645b188a55d89645d04":[1,0,10,3], +"struct_parameters___o_p_v.html#a0e55f779bf42b42e399c86914c759140":[1,0,10,67], +"struct_parameters___o_p_v.html#a1087de977ebab3341104535fb7c43a88":[1,0,10,14], +"struct_parameters___o_p_v.html#a12fc2fc3f18679ec9c9705085f89365a":[1,0,10,17], +"struct_parameters___o_p_v.html#a14211060789d372a2c86e0bd859ca785":[1,0,10,15], +"struct_parameters___o_p_v.html#a20bbec19017e73934b1cf68909c9171c":[1,0,10,47], +"struct_parameters___o_p_v.html#a21c46734660f2b2a55dbac798f6ea74b":[1,0,10,0], +"struct_parameters___o_p_v.html#a23e65440f36e8f28070c2392b01dd6b6":[1,0,10,5], +"struct_parameters___o_p_v.html#a24ccb55ce844f78e86285b10f0b1ec3a":[1,0,10,20], +"struct_parameters___o_p_v.html#a2506d3838ff71aac4853d7708f3ef74c":[1,0,10,6], +"struct_parameters___o_p_v.html#a28998663eb890458a662eefc8f9ea0c9":[1,0,10,9], +"struct_parameters___o_p_v.html#a292a5caeb412ff44bb829d06f22eebac":[1,0,10,69], +"struct_parameters___o_p_v.html#a2d31dc44f632afe90ee6218ac3509a5d":[1,0,10,19], +"struct_parameters___o_p_v.html#a323fbbb8b40716209cedf5b7c5c3a3e5":[1,0,10,33], +"struct_parameters___o_p_v.html#a33f99679368b91dcc39f305a658d793b":[1,0,10,39], +"struct_parameters___o_p_v.html#a388e0f507abb6742efa33b1ca765ee13":[1,0,10,48], +"struct_parameters___o_p_v.html#a3b4cef2f21e25714c83300b942f7daee":[1,0,10,25], +"struct_parameters___o_p_v.html#a3eb760b9191be8648c7a45998be875a4":[1,0,10,35], +"struct_parameters___o_p_v.html#a4149a095d01c62295865a9064fccb637":[1,0,10,86], +"struct_parameters___o_p_v.html#a424ec76e06337bddcdd68550e448792f":[1,0,10,60], +"struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3":[1,0,10,79], +"struct_parameters___o_p_v.html#a4ceac22ea3ecbe7a6edab19e80d0783c":[1,0,10,40], +"struct_parameters___o_p_v.html#a4d772923d973c80fbd4b8fe18fec9f16":[1,0,10,75], +"struct_parameters___o_p_v.html#a502f1711127656c15e78c7f1db168e0f":[1,0,10,49], +"struct_parameters___o_p_v.html#a5863aeb083dd3856ed971e0203530cb1":[1,0,10,36], +"struct_parameters___o_p_v.html#a5955354f2f5aa71d3e2fc6380b508c88":[1,0,10,51], +"struct_parameters___o_p_v.html#a5b7e58b86bfd90243849862f074ebf51":[1,0,10,89], +"struct_parameters___o_p_v.html#a5fc92d26c86f41eb905da56629d483ef":[1,0,10,41], +"struct_parameters___o_p_v.html#a6388c89e616d7a9b46cb2b6434d78d64":[1,0,10,21], +"struct_parameters___o_p_v.html#a66580234d20375c017a3e9bad303062d":[1,0,10,58], +"struct_parameters___o_p_v.html#a6731133a6dfb067c11a2073a2d6d748b":[1,0,10,11], +"struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1":[1,0,10,84], +"struct_parameters___o_p_v.html#a6e99571da45591efb83182cd95b72884":[1,0,10,70], +"struct_parameters___o_p_v.html#a6fb516e12ab3e48294e13fdde4fb006c":[1,0,10,46], +"struct_parameters___o_p_v.html#a73a3db08abc5bc8b3b6e478cc4373769":[1,0,10,2], +"struct_parameters___o_p_v.html#a794d79e512c2c161ab6242f5d372faef":[1,0,10,52], +"struct_parameters___o_p_v.html#a7964f93d211ecaa30c0b6b3e7397003d":[1,0,10,7], +"struct_parameters___o_p_v.html#a79f3ca42bb1073fac803ff8e74faabc0":[1,0,10,13], +"struct_parameters___o_p_v.html#a7cbc42f3e445821afb335f249b9dd680":[1,0,10,8], +"struct_parameters___o_p_v.html#a7d9cc030e67893f064dfb45b674f1d0e":[1,0,10,30], +"struct_parameters___o_p_v.html#a7f64bb8c308383c43240bd1e874239f8":[1,0,10,12], +"struct_parameters___o_p_v.html#a837c9091cc25ab63dccc75e79e286f9e":[1,0,10,50], +"struct_parameters___o_p_v.html#a8938dab01474122541123c605a25c56b":[1,0,10,66], +"struct_parameters___o_p_v.html#a8c027a9085d8bc5bd0a4e8385acd83ce":[1,0,10,77], +"struct_parameters___o_p_v.html#a8ce8b281ba79d02867f60e22142cf7c8":[1,0,10,61], +"struct_parameters___o_p_v.html#a8de2d7b5eac87daa32ece5ff4ec81917":[1,0,10,71], +"struct_parameters___o_p_v.html#a94746d884494104c15bc1d5f39b20b2b":[1,0,10,31], +"struct_parameters___o_p_v.html#a9692bc03df03c19811fb493cc3fe29b4":[1,0,10,18], +"struct_parameters___o_p_v.html#a9ebd4980c4aa28e62f725e39f93fbc3b":[1,0,10,59], +"struct_parameters___o_p_v.html#a9ffdced0457945542964e8af3f70007d":[1,0,10,4], +"struct_parameters___o_p_v.html#aa52d0a4c9795976b4516e214104dd815":[1,0,10,55], +"struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa":[1,0,10,80], +"struct_parameters___o_p_v.html#aac11d663f53039160f936a5c670151ed":[1,0,10,88], +"struct_parameters___o_p_v.html#ab0a52db3d6358562603083f6839cf8ad":[1,0,10,72], +"struct_parameters___o_p_v.html#ab0c38a77995655ced34190093ac1143c":[1,0,10,42], +"struct_parameters___o_p_v.html#ab8ebcc4989f4b0fd5bfcd0ae59fb3ee6":[1,0,10,74], +"struct_parameters___o_p_v.html#ab935c4ae52bebea687d925e997fc8218":[1,0,10,27], +"struct_parameters___o_p_v.html#abcda83235617668783cbe31d5b66221d":[1,0,10,32], +"struct_parameters___o_p_v.html#abd57d59ec0099983c1f288fb0e4a20b1":[1,0,10,76], +"struct_parameters___o_p_v.html#ac43d697cf3102e9da550b62d7dc5c84c":[1,0,10,28], +"struct_parameters___o_p_v.html#ac5388c27ae33a5c648404cfce065a873":[1,0,10,1], +"struct_parameters___o_p_v.html#ac9f152101e3970f62d321eb02d211020":[1,0,10,53], +"struct_parameters___o_p_v.html#acb3f6fce76263baa95b6a20c7aeb5c4b":[1,0,10,87], +"struct_parameters___o_p_v.html#ace6d9ab02c79ca3483988089e4c1b9a3":[1,0,10,64], +"struct_parameters___o_p_v.html#ad021801a526f21ae43037f3e573d50e7":[1,0,10,56], +"struct_parameters___o_p_v.html#ad23850399d27e4d8c6c3c803243e2712":[1,0,10,10], +"struct_parameters___o_p_v.html#ad39e7b00fa98521b41ced155411c04cc":[1,0,10,22], +"struct_parameters___o_p_v.html#ad3bc54415641c1f4c376fd3a4f30fdb4":[1,0,10,24], +"struct_parameters___o_p_v.html#ad46868a18b99d4bcd71dd1d69a51663d":[1,0,10,43], +"struct_parameters___o_p_v.html#ad4aaf3f56fe842bc998b3608c5b5b40b":[1,0,10,38], +"struct_parameters___o_p_v.html#ad4e469469b09cf493dc46a4ca1f60705":[1,0,10,62], +"struct_parameters___o_p_v.html#ad6159c82da14b1d66e1afd03d6e4bc00":[1,0,10,57], +"struct_parameters___o_p_v.html#ad6198eb075e56b1e69880d8323d7bf65":[1,0,10,63] }; diff --git a/docs/navtreeindex1.js b/docs/navtreeindex1.js index f6e11b5..82e35f1 100644 --- a/docs/navtreeindex1.js +++ b/docs/navtreeindex1.js @@ -1,228 +1,24 @@ var NAVTREEINDEX1 = { -"class_simulation.html#a0f06c75c9dd6be20a3911781b48fd467":[3,0,21,22], -"class_simulation.html#a1a825b9da67da43104137662694655bd":[3,0,21,23], -"class_simulation.html#a1e0f43c4e11eda5486054c250f4de08f":[3,0,21,3], -"class_simulation.html#a33a57b5640b0d33c816dc6e57604162e":[3,0,21,2], -"class_simulation.html#a391ac262089c8bda8e76ce930b1db88b":[3,0,21,14], -"class_simulation.html#a39da17feb9b487c05c9a834def44972f":[3,0,21,21], -"class_simulation.html#a3a4808231d4760f0ab30ea39b6a67e8c":[3,0,21,20], -"class_simulation.html#a43ca861e2514feb7f93bf18ea3b73385":[3,0,21,24], -"class_simulation.html#a48e9e82f9dac1acec5d063a9f6f6115e":[3,0,21,6], -"class_simulation.html#a4c1d9071749e0fd93e70380cafb28417":[3,0,21,28], -"class_simulation.html#a52cb5564151421cbefaca56357738de7":[3,0,21,12], -"class_simulation.html#a59666ceba048bec35557cb8b691d24d9":[3,0,21,18], -"class_simulation.html#a5b224cc5b36bcc8eb29689aff223de41":[3,0,21,1], -"class_simulation.html#a620684b9ac1fb07344c4c2237ed9f352":[3,0,21,8], -"class_simulation.html#a623c3fbc431ab74c2d2b2374a3b5a3a7":[3,0,21,15], -"class_simulation.html#a662702acf2d446dbdef0e1c87bf21038":[3,0,21,7], -"class_simulation.html#a741321a0bbc89d51b969abda469e6f96":[3,0,21,30], -"class_simulation.html#a7d88f18a1ba988d7e77b8be8de5b10d1":[3,0,21,11], -"class_simulation.html#a7f4615a7898fb83d09be5e7fad92bb47":[3,0,21,26], -"class_simulation.html#a80fad3f57dfaf195a36f7bc49bc88279":[3,0,21,0], -"class_simulation.html#a938de951b2766c6fb2b00cf9714caffa":[3,0,21,19], -"class_simulation.html#a954f41f4332dabda0fecea5d72151988":[3,0,21,27], -"class_simulation.html#aae315f0881f0b385c566f96beb01d3f6":[3,0,21,25], -"class_simulation.html#ac00bce7c792fb67a75395c46c03efe0a":[3,0,21,13], -"class_simulation.html#ac7c8a49a4cc506b850891480e0aae512":[3,0,21,17], -"class_simulation.html#af69bb46977a3a0084214a194c888e16c":[3,0,21,4], -"class_simulation.html#af88e5e0634b373ba28f1dd87670725a6":[3,0,21,16], -"class_simulation.html#af8cf2e5c24531582599423df2d70dc5b":[3,0,21,5], -"class_simulation.html#afb2cf4feeb4d8292eeba8f9ef393c6a4":[3,0,21,29], -"class_simulation.html#aff40f268758bd9a0f390a649fc45c05e":[3,0,21,10], -"class_site.html":[3,0,22], -"class_site.html#a30991b768ded0bb441c5bb54a789160a":[3,0,22,4], -"class_site.html#a4119f95c45d57d6edf419169dea993f4":[3,0,22,1], -"class_site.html#a46ff077954e39046b493ee1ea57a9c93":[3,0,22,2], -"class_site.html#a81f7ae39aaa7a981a6871c4816ee5562":[3,0,22,0], -"class_site.html#a9a0d305451d7732dbb193e7fd2f502ca":[3,0,22,5], -"class_site.html#ab85bec20c3a6067a7dca659221d57d25":[3,0,22,6], -"class_site.html#aecb14e440914b4d3d4aa7294419791e2":[3,0,22,3], -"class_site___o_s_c.html":[3,0,23], -"class_site___o_s_c.html#a22e8a3f697fa69d6a382e91c78a181b3":[3,0,23,3], -"class_site___o_s_c.html#a47f7ed4c7e916e01bd5cfc37599babb6":[3,0,23,4], -"class_site___o_s_c.html#a59db8200675439b98f42d3c35310fe68":[3,0,23,0], -"class_site___o_s_c.html#a704a0a9fe1bab69db8343f5225d5888e":[3,0,23,1], -"class_site___o_s_c.html#ac7751de2f821aa8562793f8636027313":[3,0,23,2], -"classes.html":[3,1], -"dir_6f62b451fe0710dc1584a1c9c5fb6ce0.html":[4,0,0], -"files.html":[4,0], -"functions.html":[3,3,0], -"functions.html":[3,3,0,0], -"functions_0x7e.html":[3,3,0,21], -"functions_c.html":[3,3,0,1], -"functions_d.html":[3,3,0,2], -"functions_e.html":[3,3,0,3], -"functions_f.html":[3,3,0,4], -"functions_func.html":[3,3,1], -"functions_func.html":[3,3,1,0], -"functions_func_0x7e.html":[3,3,1,12], -"functions_func_c.html":[3,3,1,1], -"functions_func_e.html":[3,3,1,2], -"functions_func_f.html":[3,3,1,3], -"functions_func_g.html":[3,3,1,4], -"functions_func_i.html":[3,3,1,5], -"functions_func_l.html":[3,3,1,6], -"functions_func_m.html":[3,3,1,7], -"functions_func_o.html":[3,3,1,8], -"functions_func_p.html":[3,3,1,9], -"functions_func_r.html":[3,3,1,10], -"functions_func_s.html":[3,3,1,11], -"functions_g.html":[3,3,0,5], -"functions_h.html":[3,3,0,6], -"functions_i.html":[3,3,0,7], -"functions_l.html":[3,3,0,8], -"functions_m.html":[3,3,0,9], -"functions_n.html":[3,3,0,10], -"functions_o.html":[3,3,0,11], -"functions_p.html":[3,3,0,12], -"functions_r.html":[3,3,0,13], -"functions_s.html":[3,3,0,14], -"functions_t.html":[3,3,0,15], -"functions_u.html":[3,3,0,16], -"functions_vars.html":[3,3,2], -"functions_w.html":[3,3,0,17], -"functions_x.html":[3,3,0,18], -"functions_y.html":[3,3,0,19], -"functions_z.html":[3,3,0,20], -"globals.html":[4,1,0], -"globals_func.html":[4,1,1], -"hierarchy.html":[3,2], -"index.html":[], -"main_8cpp.html":[4,0,3], -"main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97":[4,0,3,2], -"main_8cpp.html#a5022bbed737fe6cd84ab11f8d0b3e1a2":[4,0,3,1], -"md__k_m_c__lattice__r_e_a_d_m_e.html":[0], -"md__r_e_a_d_m_e.html":[1], -"namespace_utils.html":[2,0,0], -"namespacemembers.html":[2,1,0], -"namespacemembers_func.html":[2,1,1], -"namespaces.html":[2,0], -"pages.html":[], -"struct_coords.html":[3,0,0], -"struct_coords.html#a59992d986e76375f31828d32c05cd15d":[3,0,0,3], -"struct_coords.html#a7ed64d02fb7550f1506a93fcfab7f16f":[3,0,0,4], -"struct_coords.html#a88de3a6ee710766eb9c9444cee45a9f3":[3,0,0,2], -"struct_coords.html#a96d176173dbd5d97e7af63e1b5c0f7e1":[3,0,0,5], -"struct_coords.html#aaea2c566feec4e4bf56b27a34568be76":[3,0,0,0], -"struct_coords.html#ad3347f6568814df1a2b98b3cd0b78632":[3,0,0,1], -"struct_parameters___lattice.html":[3,0,13], -"struct_parameters___lattice.html#a1b59e1a307ad945fb86f44b68354f605":[3,0,13,3], -"struct_parameters___lattice.html#a40f8633b47d204f471d041a0d8216e5b":[3,0,13,6], -"struct_parameters___lattice.html#a5f9628b968ba4206a7650c774827b1f0":[3,0,13,5], -"struct_parameters___lattice.html#a922f7e39f7debc0bd06ec1f0f1ca8257":[3,0,13,0], -"struct_parameters___lattice.html#a99c7d553111bb660032bb7ca6f592da6":[3,0,13,4], -"struct_parameters___lattice.html#a9ee9c54330f7cd0bc32fd80e27ee87ff":[3,0,13,1], -"struct_parameters___lattice.html#aff375c434a37560067d9cc677cff8052":[3,0,13,2], -"struct_parameters___o_p_v.html":[3,0,15], -"struct_parameters___o_p_v.html#a01b94b4373991c4fc0fd66a7bcdb1e20":[3,0,15,29], -"struct_parameters___o_p_v.html#a03f47eeffc8a2984c03208ca2f84717d":[3,0,15,43], -"struct_parameters___o_p_v.html#a05158466d7973c098d8b6b5b4b43143c":[3,0,15,71], -"struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165":[3,0,15,80], -"struct_parameters___o_p_v.html#a0c61716c4f210645b188a55d89645d04":[3,0,15,3], -"struct_parameters___o_p_v.html#a0e55f779bf42b42e399c86914c759140":[3,0,15,65], -"struct_parameters___o_p_v.html#a1087de977ebab3341104535fb7c43a88":[3,0,15,14], -"struct_parameters___o_p_v.html#a12fc2fc3f18679ec9c9705085f89365a":[3,0,15,17], -"struct_parameters___o_p_v.html#a14211060789d372a2c86e0bd859ca785":[3,0,15,15], -"struct_parameters___o_p_v.html#a20bbec19017e73934b1cf68909c9171c":[3,0,15,45], -"struct_parameters___o_p_v.html#a21c46734660f2b2a55dbac798f6ea74b":[3,0,15,0], -"struct_parameters___o_p_v.html#a23e65440f36e8f28070c2392b01dd6b6":[3,0,15,5], -"struct_parameters___o_p_v.html#a24ccb55ce844f78e86285b10f0b1ec3a":[3,0,15,20], -"struct_parameters___o_p_v.html#a2506d3838ff71aac4853d7708f3ef74c":[3,0,15,6], -"struct_parameters___o_p_v.html#a28998663eb890458a662eefc8f9ea0c9":[3,0,15,9], -"struct_parameters___o_p_v.html#a292a5caeb412ff44bb829d06f22eebac":[3,0,15,67], -"struct_parameters___o_p_v.html#a2d31dc44f632afe90ee6218ac3509a5d":[3,0,15,19], -"struct_parameters___o_p_v.html#a323fbbb8b40716209cedf5b7c5c3a3e5":[3,0,15,31], -"struct_parameters___o_p_v.html#a33f99679368b91dcc39f305a658d793b":[3,0,15,37], -"struct_parameters___o_p_v.html#a388e0f507abb6742efa33b1ca765ee13":[3,0,15,46], -"struct_parameters___o_p_v.html#a3b4cef2f21e25714c83300b942f7daee":[3,0,15,25], -"struct_parameters___o_p_v.html#a3eb760b9191be8648c7a45998be875a4":[3,0,15,33], -"struct_parameters___o_p_v.html#a4149a095d01c62295865a9064fccb637":[3,0,15,83], -"struct_parameters___o_p_v.html#a424ec76e06337bddcdd68550e448792f":[3,0,15,58], -"struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3":[3,0,15,77], -"struct_parameters___o_p_v.html#a4ceac22ea3ecbe7a6edab19e80d0783c":[3,0,15,38], -"struct_parameters___o_p_v.html#a4d772923d973c80fbd4b8fe18fec9f16":[3,0,15,73], -"struct_parameters___o_p_v.html#a502f1711127656c15e78c7f1db168e0f":[3,0,15,47], -"struct_parameters___o_p_v.html#a5863aeb083dd3856ed971e0203530cb1":[3,0,15,34], -"struct_parameters___o_p_v.html#a5955354f2f5aa71d3e2fc6380b508c88":[3,0,15,49], -"struct_parameters___o_p_v.html#a5b7e58b86bfd90243849862f074ebf51":[3,0,15,86], -"struct_parameters___o_p_v.html#a5fc92d26c86f41eb905da56629d483ef":[3,0,15,39], -"struct_parameters___o_p_v.html#a6388c89e616d7a9b46cb2b6434d78d64":[3,0,15,21], -"struct_parameters___o_p_v.html#a66580234d20375c017a3e9bad303062d":[3,0,15,56], -"struct_parameters___o_p_v.html#a6731133a6dfb067c11a2073a2d6d748b":[3,0,15,11], -"struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1":[3,0,15,81], -"struct_parameters___o_p_v.html#a6e99571da45591efb83182cd95b72884":[3,0,15,68], -"struct_parameters___o_p_v.html#a6fb516e12ab3e48294e13fdde4fb006c":[3,0,15,44], -"struct_parameters___o_p_v.html#a73a3db08abc5bc8b3b6e478cc4373769":[3,0,15,2], -"struct_parameters___o_p_v.html#a794d79e512c2c161ab6242f5d372faef":[3,0,15,50], -"struct_parameters___o_p_v.html#a7964f93d211ecaa30c0b6b3e7397003d":[3,0,15,7], -"struct_parameters___o_p_v.html#a79f3ca42bb1073fac803ff8e74faabc0":[3,0,15,13], -"struct_parameters___o_p_v.html#a7cbc42f3e445821afb335f249b9dd680":[3,0,15,8], -"struct_parameters___o_p_v.html#a7d9cc030e67893f064dfb45b674f1d0e":[3,0,15,30], -"struct_parameters___o_p_v.html#a7f64bb8c308383c43240bd1e874239f8":[3,0,15,12], -"struct_parameters___o_p_v.html#a837c9091cc25ab63dccc75e79e286f9e":[3,0,15,48], -"struct_parameters___o_p_v.html#a8938dab01474122541123c605a25c56b":[3,0,15,64], -"struct_parameters___o_p_v.html#a8c027a9085d8bc5bd0a4e8385acd83ce":[3,0,15,75], -"struct_parameters___o_p_v.html#a8ce8b281ba79d02867f60e22142cf7c8":[3,0,15,59], -"struct_parameters___o_p_v.html#a8de2d7b5eac87daa32ece5ff4ec81917":[3,0,15,69], -"struct_parameters___o_p_v.html#a9692bc03df03c19811fb493cc3fe29b4":[3,0,15,18], -"struct_parameters___o_p_v.html#a9ebd4980c4aa28e62f725e39f93fbc3b":[3,0,15,57], -"struct_parameters___o_p_v.html#a9ffdced0457945542964e8af3f70007d":[3,0,15,4], -"struct_parameters___o_p_v.html#aa52d0a4c9795976b4516e214104dd815":[3,0,15,53], -"struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa":[3,0,15,78], -"struct_parameters___o_p_v.html#aac11d663f53039160f936a5c670151ed":[3,0,15,85], -"struct_parameters___o_p_v.html#ab0a52db3d6358562603083f6839cf8ad":[3,0,15,70], -"struct_parameters___o_p_v.html#ab0c38a77995655ced34190093ac1143c":[3,0,15,40], -"struct_parameters___o_p_v.html#ab8ebcc4989f4b0fd5bfcd0ae59fb3ee6":[3,0,15,72], -"struct_parameters___o_p_v.html#ab935c4ae52bebea687d925e997fc8218":[3,0,15,27], -"struct_parameters___o_p_v.html#abd57d59ec0099983c1f288fb0e4a20b1":[3,0,15,74], -"struct_parameters___o_p_v.html#ac43d697cf3102e9da550b62d7dc5c84c":[3,0,15,28], -"struct_parameters___o_p_v.html#ac5388c27ae33a5c648404cfce065a873":[3,0,15,1], -"struct_parameters___o_p_v.html#ac9f152101e3970f62d321eb02d211020":[3,0,15,51], -"struct_parameters___o_p_v.html#acb3f6fce76263baa95b6a20c7aeb5c4b":[3,0,15,84], -"struct_parameters___o_p_v.html#ace6d9ab02c79ca3483988089e4c1b9a3":[3,0,15,62], -"struct_parameters___o_p_v.html#ad021801a526f21ae43037f3e573d50e7":[3,0,15,54], -"struct_parameters___o_p_v.html#ad23850399d27e4d8c6c3c803243e2712":[3,0,15,10], -"struct_parameters___o_p_v.html#ad39e7b00fa98521b41ced155411c04cc":[3,0,15,22], -"struct_parameters___o_p_v.html#ad3bc54415641c1f4c376fd3a4f30fdb4":[3,0,15,24], -"struct_parameters___o_p_v.html#ad46868a18b99d4bcd71dd1d69a51663d":[3,0,15,41], -"struct_parameters___o_p_v.html#ad4aaf3f56fe842bc998b3608c5b5b40b":[3,0,15,36], -"struct_parameters___o_p_v.html#ad4e469469b09cf493dc46a4ca1f60705":[3,0,15,60], -"struct_parameters___o_p_v.html#ad6159c82da14b1d66e1afd03d6e4bc00":[3,0,15,55], -"struct_parameters___o_p_v.html#ad6198eb075e56b1e69880d8323d7bf65":[3,0,15,61], -"struct_parameters___o_p_v.html#ad61e54053c0644fca200f803197a4550":[3,0,15,32], -"struct_parameters___o_p_v.html#ad634f90dda7176c038d14a81d07e272c":[3,0,15,16], -"struct_parameters___o_p_v.html#ad84bb0a0fe56bb1f5157304f63d1503c":[3,0,15,63], -"struct_parameters___o_p_v.html#adbae25d923c165c2dbc0785c68fccf92":[3,0,15,52], -"struct_parameters___o_p_v.html#addf89db7c365dc9c1c0ed5ac405c6e79":[3,0,15,66], -"struct_parameters___o_p_v.html#ae102e54304cbdcb804e2c78a60093c6e":[3,0,15,42], -"struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7":[3,0,15,79], -"struct_parameters___o_p_v.html#ae8e499e0d565d7ac48fa7be42494af4f":[3,0,15,35], -"struct_parameters___o_p_v.html#aec3dc43adde4450252b30c2c705544cd":[3,0,15,23], -"struct_parameters___o_p_v.html#af5e99b212ed3ece698fb032dd347af63":[3,0,15,82], -"struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a":[3,0,15,76], -"struct_parameters___o_p_v.html#afeee51274483a1167c3dc3ca35c4de52":[3,0,15,26], -"struct_parameters___simulation.html":[3,0,16], -"struct_parameters___simulation.html#a038f418e1b2e4fec3fc6a8336f8b23de":[3,0,16,8], -"struct_parameters___simulation.html#a0d318f1a9eb75fa909b4ae8266696be1":[3,0,16,5], -"struct_parameters___simulation.html#a1c3d79a4dcf194f884e8a3d346c2261a":[3,0,16,4], -"struct_parameters___simulation.html#a38edd7e56d80c80258d0563f602d09ea":[3,0,16,0], -"struct_parameters___simulation.html#a41834e14865ffe273bfb5824193371b9":[3,0,16,6], -"struct_parameters___simulation.html#a5624782454dd99271ad94923f53866b4":[3,0,16,3], -"struct_parameters___simulation.html#aa1ffb86ac22065dbbb58196db95b3199":[3,0,16,7], -"struct_parameters___simulation.html#aa491c1f8ca5045b4cc9c8bbfcb930024":[3,0,16,9], -"struct_parameters___simulation.html#aab42f7eb6b5ec1916475d9022ed5165f":[3,0,16,13], -"struct_parameters___simulation.html#aad5bdf64239620d1b214c49532dba743":[3,0,16,11], -"struct_parameters___simulation.html#ab5dda6868bc9359d97a614f027734349":[3,0,16,12], -"struct_parameters___simulation.html#adc993369a04d510926341a72e4e54aad":[3,0,16,1], -"struct_parameters___simulation.html#af55371ca9e7027e799f5be46e40eacc1":[3,0,16,10], -"struct_parameters___simulation.html#afde5aaac6f3cd226249cb9646a4c8a4b":[3,0,16,2], -"struct_parameters__main.html":[3,0,14], -"struct_parameters__main.html#a079360f17cc2e2384453eed92bdf8c79":[3,0,14,0], -"struct_parameters__main.html#a14e42c0e58188c19f860de2046cf796b":[3,0,14,6], -"struct_parameters__main.html#a433c8fa80ee6c02fe5613d4eb2075546":[3,0,14,2], -"struct_parameters__main.html#a60ee2e45a155f2bef0681753e877bc5f":[3,0,14,5], -"struct_parameters__main.html#a8aa74759fabf23d020278b8b98a2d155":[3,0,14,1], -"struct_parameters__main.html#afa70eb9e8a4c918f678a26fa202650b1":[3,0,14,3], -"struct_parameters__main.html#afecfab3c5afbb2bc04ef3d5e8064c4a5":[3,0,14,4] +"struct_parameters___o_p_v.html#ad61e54053c0644fca200f803197a4550":[1,0,10,34], +"struct_parameters___o_p_v.html#ad634f90dda7176c038d14a81d07e272c":[1,0,10,16], +"struct_parameters___o_p_v.html#ad84bb0a0fe56bb1f5157304f63d1503c":[1,0,10,65], +"struct_parameters___o_p_v.html#adbae25d923c165c2dbc0785c68fccf92":[1,0,10,54], +"struct_parameters___o_p_v.html#addf89db7c365dc9c1c0ed5ac405c6e79":[1,0,10,68], +"struct_parameters___o_p_v.html#ae102e54304cbdcb804e2c78a60093c6e":[1,0,10,44], +"struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7":[1,0,10,82], +"struct_parameters___o_p_v.html#ae8e499e0d565d7ac48fa7be42494af4f":[1,0,10,37], +"struct_parameters___o_p_v.html#aec3dc43adde4450252b30c2c705544cd":[1,0,10,23], +"struct_parameters___o_p_v.html#af5e99b212ed3ece698fb032dd347af63":[1,0,10,85], +"struct_parameters___o_p_v.html#af6e728c4d1efe0ba5b6b4e28c67a0378":[1,0,10,81], +"struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a":[1,0,10,78], +"struct_parameters___o_p_v.html#afeee51274483a1167c3dc3ca35c4de52":[1,0,10,26], +"struct_parameters__main.html":[1,0,9], +"struct_parameters__main.html#a079360f17cc2e2384453eed92bdf8c79":[1,0,9,0], +"struct_parameters__main.html#a14e42c0e58188c19f860de2046cf796b":[1,0,9,6], +"struct_parameters__main.html#a433c8fa80ee6c02fe5613d4eb2075546":[1,0,9,2], +"struct_parameters__main.html#a60ee2e45a155f2bef0681753e877bc5f":[1,0,9,5], +"struct_parameters__main.html#a8aa74759fabf23d020278b8b98a2d155":[1,0,9,1], +"struct_parameters__main.html#afa70eb9e8a4c918f678a26fa202650b1":[1,0,9,3], +"struct_parameters__main.html#afecfab3c5afbb2bc04ef3d5e8064c4a5":[1,0,9,4] }; diff --git a/docs/pages.html b/docs/pages.html index da47e69..46f9a81 100644 --- a/docs/pages.html +++ b/docs/pages.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      @@ -93,8 +93,7 @@
                                                                      Here is a list of all related documentation pages:
                                                                      diff --git a/docs/search/Thumbs.db b/docs/search/Thumbs.db index b72f200..0d54bd6 100644 Binary files a/docs/search/Thumbs.db and b/docs/search/Thumbs.db differ diff --git a/docs/search/all_0.js b/docs/search/all_0.js index 516401a..6856456 100644 --- a/docs/search/all_0.js +++ b/docs/search/all_0.js @@ -1,8 +1,4 @@ var searchData= [ - ['acceptor_5fconc',['Acceptor_conc',['../struct_parameters___o_p_v.html#a21c46734660f2b2a55dbac798f6ea74b',1,'Parameters_OPV']]], - ['addevent',['addEvent',['../class_simulation.html#a33a57b5640b0d33c816dc6e57604162e',1,'Simulation']]], - ['addobject',['addObject',['../class_simulation.html#a1e0f43c4e11eda5486054c250f4de08f',1,'Simulation']]], - ['array_5favg',['array_avg',['../namespace_utils.html#aa76a204af4dd4c3eb151691825de2eb2',1,'Utils']]], - ['array_5fstdev',['array_stdev',['../namespace_utils.html#a25d09c704b5ae03f01cf76b6de10aa19',1,'Utils']]] + ['acceptor_5fconc',['Acceptor_conc',['../struct_parameters___o_p_v.html#a21c46734660f2b2a55dbac798f6ea74b',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_1.js b/docs/search/all_1.js index 71fe385..bfff47e 100644 --- a/docs/search/all_1.js +++ b/docs/search/all_1.js @@ -1,29 +1,14 @@ var searchData= [ - ['calculatedestinationcoords',['calculateDestinationCoords',['../class_lattice.html#aa6b80d6264bfc23ae5fea39abd2557d5',1,'Lattice']]], - ['calculatediffusionlength_5favg',['calculateDiffusionLength_avg',['../class_o_s_c___sim.html#a62aa25ac6740cea4efab1dcc7f88c5d5',1,'OSC_Sim']]], - ['calculatediffusionlength_5fstdev',['calculateDiffusionLength_stdev',['../class_o_s_c___sim.html#a858300b2a76f1a1b24747d11869a1f4a',1,'OSC_Sim']]], - ['calculatedisplacement',['calculateDisplacement',['../class_object.html#a02643ea0804dec3e43f60c788855c03b',1,'Object']]], - ['calculatedoscorrelation',['calculateDOSCorrelation',['../class_o_s_c___sim.html#afdd01fa07d004b0c37ce86ee171a60b8',1,'OSC_Sim']]], - ['calculatedx',['calculateDX',['../class_lattice.html#a08adb2f412af409d3ec241e60e687c1a',1,'Lattice::calculateDX(const int x, const int i) const'],['../class_lattice.html#ad89c5473dd37339ede9fb3d0c3db4300',1,'Lattice::calculateDX(const Coords &coords_initial, const Coords &coords_dest) const']]], - ['calculatedy',['calculateDY',['../class_lattice.html#acdeca889f7df11fe299f8b7941198c83',1,'Lattice::calculateDY(const int y, const int j) const'],['../class_lattice.html#a4e8b3577701ec0cefce595f6956b22e3',1,'Lattice::calculateDY(const Coords &coords_initial, const Coords &coords_dest) const']]], - ['calculatedz',['calculateDZ',['../class_lattice.html#a584ff9c528ebe46a6aea6ed652d107f4',1,'Lattice::calculateDZ(const int z, const int k) const'],['../class_lattice.html#a76b38079e102e17c79b13a3398a404a0',1,'Lattice::calculateDZ(const Coords &coords_initial, const Coords &coords_dest) const']]], - ['calculateexecutiontime',['calculateExecutionTime',['../class_exciton___hop.html#a61b21f627b744af47c2f0acfd71b9363',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double distance, const double E_delta)'],['../class_exciton___hop.html#a39bf8618302f619aecf060cb89d1b9f2',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a9fe9c9206ca43eaef0f56b6e3249cf8d',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a4d87633f611d03842854f803de1298e9',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_exciton___intersystem___crossing.html#abc0c82ee35e973302626958becbfb3e3',1,'Exciton_Intersystem_Crossing::calculateExecutionTime()'],['../class_exciton___exciton___annihilation.html#a4f09a860f2aab323580d334d854512a3',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___exciton___annihilation.html#ae873426c8ae373e70bd707cf3c18d3f9',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_exciton___polaron___annihilation.html#a68c74dfaf56cb8dd6b5e26369f143f39',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___polaron___annihilation.html#a92a9236dd1cfed941c36c56084a1a86a',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_event.html#a6fa01d0eba9aa1bbea18ee94aa8c02fe',1,'Event::calculateExecutionTime()'],['../class_polaron___hop.html#ae0362f61b6edbc66a04cfe38ea87bf0b',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___hop.html#a5e1d2ab6c7175be027c43b66494408df',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___recombination.html#aedf0185861c8ffb9112d9ee421047da4',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___recombination.html#a0e51793302ecdb9dcc6585acaf9a0287',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___extraction.html#a1a67c4f94b3ec9f0d36687931c080a6d',1,'Polaron_Extraction::calculateExecutionTime()']]], - ['calculatelatticedistancesquared',['calculateLatticeDistanceSquared',['../class_lattice.html#a3f51b0b41cf0e43e0469320310494a1e',1,'Lattice']]], - ['calculatemobilities',['calculateMobilities',['../class_o_s_c___sim.html#a8cbaab921f75c2b1ccc85b42ed698c58',1,'OSC_Sim']]], - ['calculatemobility_5favg',['calculateMobility_avg',['../class_o_s_c___sim.html#aef139f85af869c000b362b2a17e46cff',1,'OSC_Sim']]], - ['calculatemobility_5fstdev',['calculateMobility_stdev',['../class_o_s_c___sim.html#a7cbca947933286e632d3d76dfed403bf',1,'OSC_Sim']]], - ['calculateprobabilityhist',['calculateProbabilityHist',['../namespace_utils.html#adcb2e98774b12bc12264034913547a2c',1,'Utils::calculateProbabilityHist(const std::vector< double > &data, int num_bins)'],['../namespace_utils.html#a0818230f8ad279ef7ca217f3cba81f76',1,'Utils::calculateProbabilityHist(const std::vector< double > &data, double bin_size)'],['../namespace_utils.html#a08553f36886a36456e8111585029e467',1,'Utils::calculateProbabilityHist(const std::vector< double > &data, const double bin_size, const int num_bins)']]], - ['calculatetransittime_5favg',['calculateTransitTime_avg',['../class_o_s_c___sim.html#a99e37cc427f843a92d58c6fa9b13fffe',1,'OSC_Sim']]], - ['calculatetransittime_5fstdev',['calculateTransitTime_stdev',['../class_o_s_c___sim.html#a7e7da89362449d58373a31c255a27d8f',1,'OSC_Sim']]], + ['calculateallevents',['calculateAllEvents',['../class_o_s_c___sim.html#adf6e66636e1d5e7b73859dc04cbe8eda',1,'OSC_Sim']]], + ['calculatedoscorrelation',['calculateDOSCorrelation',['../class_o_s_c___sim.html#ae391cd48aaa3a27b38f6724f8fea90f3',1,'OSC_Sim::calculateDOSCorrelation()'],['../class_o_s_c___sim.html#a2dfba6465819c4f779e5b7fe07483775',1,'OSC_Sim::calculateDOSCorrelation(const double cutoff_radius)']]], + ['calculateexecutiontime',['calculateExecutionTime',['../class_exciton___hop.html#a61b21f627b744af47c2f0acfd71b9363',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double distance, const double E_delta)'],['../class_exciton___hop.html#a39bf8618302f619aecf060cb89d1b9f2',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a9fe9c9206ca43eaef0f56b6e3249cf8d',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a4d87633f611d03842854f803de1298e9',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_exciton___intersystem___crossing.html#abc0c82ee35e973302626958becbfb3e3',1,'Exciton_Intersystem_Crossing::calculateExecutionTime()'],['../class_exciton___exciton___annihilation.html#a4f09a860f2aab323580d334d854512a3',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___exciton___annihilation.html#ae873426c8ae373e70bd707cf3c18d3f9',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_exciton___polaron___annihilation.html#a68c74dfaf56cb8dd6b5e26369f143f39',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___polaron___annihilation.html#a92a9236dd1cfed941c36c56084a1a86a',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_polaron___hop.html#ae0362f61b6edbc66a04cfe38ea87bf0b',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___hop.html#a5e1d2ab6c7175be027c43b66494408df',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___recombination.html#aedf0185861c8ffb9112d9ee421047da4',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___recombination.html#a0e51793302ecdb9dcc6585acaf9a0287',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___extraction.html#a1a67c4f94b3ec9f0d36687931c080a6d',1,'Polaron_Extraction::calculateExecutionTime()']]], + ['calculatemobilitydata',['calculateMobilityData',['../class_o_s_c___sim.html#a3495c8da3f2f4bcc015d83ad482ce3c1',1,'OSC_Sim']]], ['calculatetransittimedist',['calculateTransitTimeDist',['../class_o_s_c___sim.html#a176ab132e314dfd509e8feb89687f163',1,'OSC_Sim']]], - ['checkfinished',['checkFinished',['../class_simulation.html#af69bb46977a3a0084214a194c888e16c',1,'Simulation::checkFinished()'],['../class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115',1,'OSC_Sim::checkFinished()']]], - ['checkmovevalidity',['checkMoveValidity',['../class_lattice.html#ad0592298c4b92e9e84a768b95cd6d0f0',1,'Lattice']]], + ['checkfinished',['checkFinished',['../class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115',1,'OSC_Sim']]], ['checkparameters',['checkParameters',['../class_o_s_c___sim.html#a92f8e2ae6bcd3e0755feb2419849c8e9',1,'OSC_Sim']]], - ['choosenextevent',['chooseNextEvent',['../class_simulation.html#af8cf2e5c24531582599423df2d70dc5b',1,'Simulation']]], - ['clearoccupancy',['clearOccupancy',['../class_lattice.html#a97a1b4f24cd40b81ed63aa2d7713b63b',1,'Lattice::clearOccupancy()'],['../class_site.html#a46ff077954e39046b493ee1ea57a9c93',1,'Site::clearOccupancy()']]], - ['coords',['Coords',['../struct_coords.html',1,'']]], ['coulomb_5fcutoff',['Coulomb_cutoff',['../struct_parameters___o_p_v.html#ac5388c27ae33a5c648404cfce065a873',1,'Parameters_OPV']]], - ['createexponentialdosvector',['createExponentialDOSVector',['../namespace_utils.html#af296d2aa8f889f67fe515fc641c5f5fe',1,'Utils']]], - ['creategaussiandosvector',['createGaussianDOSVector',['../namespace_utils.html#a2ce45ade7d6d4f2995b595da3ebbaaec',1,'Utils']]] + ['createelectron',['createElectron',['../class_o_s_c___sim.html#ad88929fd506f3cd68540d18fc10e8f91',1,'OSC_Sim']]], + ['createexciton',['createExciton',['../class_o_s_c___sim.html#a173d8899d6fac79effdc4f89dbe64910',1,'OSC_Sim']]], + ['createhole',['createHole',['../class_o_s_c___sim.html#afd42539a4764cdcad24a8aade399e2a1',1,'OSC_Sim']]] ]; diff --git a/docs/search/all_10.js b/docs/search/all_10.js index 62084ef..da7b332 100644 --- a/docs/search/all_10.js +++ b/docs/search/all_10.js @@ -1,15 +1,4 @@ var searchData= [ - ['temperature',['Temperature',['../struct_parameters___simulation.html#aad5bdf64239620d1b214c49532dba743',1,'Parameters_Simulation']]], - ['thickness_5facceptor',['Thickness_acceptor',['../struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a',1,'Parameters_OPV']]], - ['thickness_5fdonor',['Thickness_donor',['../struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3',1,'Parameters_OPV']]], - ['tof_5finitial_5fpolarons',['ToF_initial_polarons',['../struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa',1,'Parameters_OPV']]], - ['tof_5fpnts_5fper_5fdecade',['ToF_pnts_per_decade',['../struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7',1,'Parameters_OPV']]], - ['tof_5fpolaron_5ftype',['ToF_polaron_type',['../struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165',1,'Parameters_OPV']]], - ['tof_5ftransient_5fend',['ToF_transient_end',['../struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1',1,'Parameters_OPV']]], - ['tof_5ftransient_5fstart',['ToF_transient_start',['../struct_parameters___o_p_v.html#af5e99b212ed3ece698fb032dd347af63',1,'Parameters_OPV']]], - ['triplet_5flifetime_5facceptor',['Triplet_lifetime_acceptor',['../struct_parameters___o_p_v.html#a4149a095d01c62295865a9064fccb637',1,'Parameters_OPV']]], - ['triplet_5flifetime_5fdonor',['Triplet_lifetime_donor',['../struct_parameters___o_p_v.html#acb3f6fce76263baa95b6a20c7aeb5c4b',1,'Parameters_OPV']]], - ['triplet_5flocalization_5facceptor',['Triplet_localization_acceptor',['../struct_parameters___o_p_v.html#aac11d663f53039160f936a5c670151ed',1,'Parameters_OPV']]], - ['triplet_5flocalization_5fdonor',['Triplet_localization_donor',['../struct_parameters___o_p_v.html#a5b7e58b86bfd90243849862f074ebf51',1,'Parameters_OPV']]] + ['_7eosc_5fsim',['~OSC_Sim',['../class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112',1,'OSC_Sim']]] ]; diff --git a/docs/search/all_11.html b/docs/search/all_11.html deleted file mode 100644 index b35c8bf..0000000 --- a/docs/search/all_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_11.js b/docs/search/all_11.js deleted file mode 100644 index b6f039b..0000000 --- a/docs/search/all_11.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['unit_5fsize',['Unit_size',['../struct_parameters___lattice.html#a5f9628b968ba4206a7650c774827b1f0',1,'Parameters_Lattice::Unit_size()'],['../struct_parameters___simulation.html#ab5dda6868bc9359d97a614f027734349',1,'Parameters_Simulation::Unit_size()']]], - ['utils',['Utils',['../namespace_utils.html',1,'']]], - ['utils_2ecpp',['Utils.cpp',['../_utils_8cpp.html',1,'']]], - ['utils_2eh',['Utils.h',['../_utils_8h.html',1,'']]] -]; diff --git a/docs/search/all_12.html b/docs/search/all_12.html deleted file mode 100644 index fd26524..0000000 --- a/docs/search/all_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_12.js b/docs/search/all_12.js deleted file mode 100644 index 380798b..0000000 --- a/docs/search/all_12.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['vector_5favg',['vector_avg',['../namespace_utils.html#acbc030ce708229ea393215fe13e6377b',1,'Utils']]], - ['vector_5fstdev',['vector_stdev',['../namespace_utils.html#a6bfa9b066d7c0967807d588024c15d4e',1,'Utils']]] -]; diff --git a/docs/search/all_13.html b/docs/search/all_13.html deleted file mode 100644 index 04f66e2..0000000 --- a/docs/search/all_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_13.js b/docs/search/all_13.js deleted file mode 100644 index c342d99..0000000 --- a/docs/search/all_13.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['width',['Width',['../struct_parameters___lattice.html#a40f8633b47d204f471d041a0d8216e5b',1,'Parameters_Lattice::Width()'],['../struct_parameters___simulation.html#aab42f7eb6b5ec1916475d9022ed5165f',1,'Parameters_Simulation::Width()']]] -]; diff --git a/docs/search/all_14.html b/docs/search/all_14.html deleted file mode 100644 index 285f34b..0000000 --- a/docs/search/all_14.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_14.js b/docs/search/all_14.js deleted file mode 100644 index 4c991c6..0000000 --- a/docs/search/all_14.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['x',['x',['../struct_coords.html#a59992d986e76375f31828d32c05cd15d',1,'Coords']]] -]; diff --git a/docs/search/all_15.html b/docs/search/all_15.html deleted file mode 100644 index 0ed74e0..0000000 --- a/docs/search/all_15.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_15.js b/docs/search/all_15.js deleted file mode 100644 index f709ab4..0000000 --- a/docs/search/all_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['y',['y',['../struct_coords.html#a7ed64d02fb7550f1506a93fcfab7f16f',1,'Coords']]] -]; diff --git a/docs/search/all_16.html b/docs/search/all_16.html deleted file mode 100644 index 696f025..0000000 --- a/docs/search/all_16.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_16.js b/docs/search/all_16.js deleted file mode 100644 index 7335166..0000000 --- a/docs/search/all_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['z',['z',['../struct_coords.html#a96d176173dbd5d97e7af63e1b5c0f7e1',1,'Coords']]] -]; diff --git a/docs/search/all_17.html b/docs/search/all_17.html deleted file mode 100644 index f1e14b6..0000000 --- a/docs/search/all_17.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_17.js b/docs/search/all_17.js deleted file mode 100644 index d464c22..0000000 --- a/docs/search/all_17.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['_7eevent',['~Event',['../class_event.html#a7704ec01ce91e673885792054214b3d2',1,'Event']]], - ['_7eobject',['~Object',['../class_object.html#ae8f5483f459e46687bd01e6f9977afd3',1,'Object']]], - ['_7eosc_5fsim',['~OSC_Sim',['../class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112',1,'OSC_Sim']]], - ['_7esimulation',['~Simulation',['../class_simulation.html#a80fad3f57dfaf195a36f7bc49bc88279',1,'Simulation']]], - ['_7esite',['~Site',['../class_site.html#a81f7ae39aaa7a981a6871c4816ee5562',1,'Site']]] -]; diff --git a/docs/search/all_18.html b/docs/search/all_18.html deleted file mode 100644 index 069edeb..0000000 --- a/docs/search/all_18.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/all_18.js b/docs/search/all_18.js deleted file mode 100644 index d464c22..0000000 --- a/docs/search/all_18.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['_7eevent',['~Event',['../class_event.html#a7704ec01ce91e673885792054214b3d2',1,'Event']]], - ['_7eobject',['~Object',['../class_object.html#ae8f5483f459e46687bd01e6f9977afd3',1,'Object']]], - ['_7eosc_5fsim',['~OSC_Sim',['../class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112',1,'OSC_Sim']]], - ['_7esimulation',['~Simulation',['../class_simulation.html#a80fad3f57dfaf195a36f7bc49bc88279',1,'Simulation']]], - ['_7esite',['~Site',['../class_site.html#a81f7ae39aaa7a981a6871c4816ee5562',1,'Site']]] -]; diff --git a/docs/search/all_3.js b/docs/search/all_3.js index dec9cfb..f772025 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -12,8 +12,6 @@ var searchData= ['enable_5fexponential_5fdos',['Enable_exponential_dos',['../struct_parameters___o_p_v.html#a9692bc03df03c19811fb493cc3fe29b4',1,'Parameters_OPV']]], ['enable_5fextraction_5fmap_5foutput',['Enable_extraction_map_output',['../struct_parameters__main.html#a079360f17cc2e2384453eed92bdf8c79',1,'Parameters_main']]], ['enable_5ffret_5ftriplet_5fannihilation',['Enable_FRET_triplet_annihilation',['../struct_parameters___o_p_v.html#a2d31dc44f632afe90ee6218ac3509a5d',1,'Parameters_OPV']]], - ['enable_5ffrm',['Enable_FRM',['../struct_parameters___simulation.html#a38edd7e56d80c80258d0563f602d09ea',1,'Parameters_Simulation']]], - ['enable_5ffull_5frecalc',['Enable_full_recalc',['../struct_parameters___simulation.html#adc993369a04d510926341a72e4e54aad',1,'Parameters_Simulation']]], ['enable_5fgaussian_5fdos',['Enable_gaussian_dos',['../struct_parameters___o_p_v.html#a24ccb55ce844f78e86285b10f0b1ec3a',1,'Parameters_OPV']]], ['enable_5fgaussian_5fkernel',['Enable_gaussian_kernel',['../struct_parameters___o_p_v.html#a6388c89e616d7a9b46cb2b6434d78d64',1,'Parameters_OPV']]], ['enable_5fgaussian_5fpolaron_5fdelocalization',['Enable_gaussian_polaron_delocalization',['../struct_parameters___o_p_v.html#ad39e7b00fa98521b41ced155411c04cc',1,'Parameters_OPV']]], @@ -21,27 +19,19 @@ var searchData= ['enable_5fimport_5fmorphology_5fset',['Enable_import_morphology_set',['../struct_parameters__main.html#a8aa74759fabf23d020278b8b98a2d155',1,'Parameters_main']]], ['enable_5fimport_5fmorphology_5fsingle',['Enable_import_morphology_single',['../struct_parameters__main.html#a433c8fa80ee6c02fe5613d4eb2075546',1,'Parameters_main']]], ['enable_5fiqe_5ftest',['Enable_IQE_test',['../struct_parameters___o_p_v.html#ad3bc54415641c1f4c376fd3a4f30fdb4',1,'Parameters_OPV']]], - ['enable_5flogging',['Enable_logging',['../struct_parameters___simulation.html#afde5aaac6f3cd226249cb9646a4c8a4b',1,'Parameters_Simulation']]], ['enable_5fmarcus',['Enable_marcus',['../struct_parameters___o_p_v.html#a3b4cef2f21e25714c83300b942f7daee',1,'Parameters_OPV']]], ['enable_5fmiller_5fabrahams',['Enable_miller_abrahams',['../struct_parameters___o_p_v.html#afeee51274483a1167c3dc3ca35c4de52',1,'Parameters_OPV']]], ['enable_5fneat',['Enable_neat',['../struct_parameters___o_p_v.html#ab935c4ae52bebea687d925e997fc8218',1,'Parameters_OPV']]], - ['enable_5fperiodic_5fx',['Enable_periodic_x',['../struct_parameters___lattice.html#a922f7e39f7debc0bd06ec1f0f1ca8257',1,'Parameters_Lattice::Enable_periodic_x()'],['../struct_parameters___simulation.html#a5624782454dd99271ad94923f53866b4',1,'Parameters_Simulation::Enable_periodic_x()']]], - ['enable_5fperiodic_5fy',['Enable_periodic_y',['../struct_parameters___lattice.html#a9ee9c54330f7cd0bc32fd80e27ee87ff',1,'Parameters_Lattice::Enable_periodic_y()'],['../struct_parameters___simulation.html#a1c3d79a4dcf194f884e8a3d346c2261a',1,'Parameters_Simulation::Enable_periodic_y()']]], - ['enable_5fperiodic_5fz',['Enable_periodic_z',['../struct_parameters___lattice.html#aff375c434a37560067d9cc677cff8052',1,'Parameters_Lattice::Enable_periodic_z()'],['../struct_parameters___simulation.html#a0d318f1a9eb75fa909b4ae8266696be1',1,'Parameters_Simulation::Enable_periodic_z()']]], ['enable_5fphase_5frestriction',['Enable_phase_restriction',['../struct_parameters___o_p_v.html#ac43d697cf3102e9da550b62d7dc5c84c',1,'Parameters_OPV']]], ['enable_5fpower_5fkernel',['Enable_power_kernel',['../struct_parameters___o_p_v.html#a01b94b4373991c4fc0fd66a7bcdb1e20',1,'Parameters_OPV']]], ['enable_5frandom_5fblend',['Enable_random_blend',['../struct_parameters___o_p_v.html#a7d9cc030e67893f064dfb45b674f1d0e',1,'Parameters_OPV']]], - ['enable_5fselective_5frecalc',['Enable_selective_recalc',['../struct_parameters___simulation.html#a41834e14865ffe273bfb5824193371b9',1,'Parameters_Simulation']]], + ['enable_5ftof_5fenergy_5fplacement',['Enable_ToF_energy_placement',['../struct_parameters___o_p_v.html#a94746d884494104c15bc1d5f39b20b2b',1,'Parameters_OPV']]], + ['enable_5ftof_5frandom_5fplacement',['Enable_ToF_random_placement',['../struct_parameters___o_p_v.html#abcda83235617668783cbe31d5b66221d',1,'Parameters_OPV']]], ['enable_5ftof_5ftest',['Enable_ToF_test',['../struct_parameters___o_p_v.html#a323fbbb8b40716209cedf5b7c5c3a3e5',1,'Parameters_OPV']]], ['energy_5fstdev_5facceptor',['Energy_stdev_acceptor',['../struct_parameters___o_p_v.html#ad61e54053c0644fca200f803197a4550',1,'Parameters_OPV']]], ['energy_5fstdev_5fdonor',['Energy_stdev_donor',['../struct_parameters___o_p_v.html#a3eb760b9191be8648c7a45998be875a4',1,'Parameters_OPV']]], ['energy_5furbach_5facceptor',['Energy_urbach_acceptor',['../struct_parameters___o_p_v.html#a5863aeb083dd3856ed971e0203530cb1',1,'Parameters_OPV']]], ['energy_5furbach_5fdonor',['Energy_urbach_donor',['../struct_parameters___o_p_v.html#ae8e499e0d565d7ac48fa7be42494af4f',1,'Parameters_OPV']]], - ['error_5ffound',['Error_found',['../class_simulation.html#a7f4615a7898fb83d09be5e7fad92bb47',1,'Simulation']]], - ['error_5fmsg',['error_msg',['../class_simulation.html#a954f41f4332dabda0fecea5d72151988',1,'Simulation']]], - ['event',['Event',['../class_event.html',1,'Event'],['../class_event.html#a5a40dd4708297f7031e29b39e039ae10',1,'Event::Event()'],['../class_event.html#adbadc626c37dc77443f6f8c9abec589f',1,'Event::Event(Simulation *sim_ptr)']]], - ['event_2ecpp',['Event.cpp',['../_event_8cpp.html',1,'']]], - ['event_2eh',['Event.h',['../_event_8h.html',1,'']]], ['event_5ftype',['event_type',['../class_exciton___creation.html#a5330b61389f7f7077591e6103305ef8b',1,'Exciton_Creation::event_type()'],['../class_exciton___hop.html#a26793057d5626f5468c963fcfdcf12e7',1,'Exciton_Hop::event_type()'],['../class_exciton___recombination.html#ab8f4e745d18d7ca4116391ad6bcdad06',1,'Exciton_Recombination::event_type()'],['../class_exciton___dissociation.html#a009d4b2010325d0d6d99ac622fb807c2',1,'Exciton_Dissociation::event_type()'],['../class_exciton___intersystem___crossing.html#ae5c1e0d54e2c0c35a804d8bc1784b991',1,'Exciton_Intersystem_Crossing::event_type()'],['../class_exciton___exciton___annihilation.html#a49c819bed5c04d1cf9593d38101cbf4e',1,'Exciton_Exciton_Annihilation::event_type()'],['../class_exciton___polaron___annihilation.html#a7b5ecb43b118ae000d13c54f29beef3c',1,'Exciton_Polaron_Annihilation::event_type()'],['../class_polaron___hop.html#a81cb99b47abaa48ff6ef5eb489d8461b',1,'Polaron_Hop::event_type()'],['../class_polaron___recombination.html#a8ca56257989c90fa565d7b208f686a3a',1,'Polaron_Recombination::event_type()'],['../class_polaron___extraction.html#a9f6cdc1f0cf053c85c2ec9ed8e4a636b',1,'Polaron_Extraction::event_type()']]], ['exciton',['Exciton',['../class_exciton.html',1,'Exciton'],['../class_exciton.html#a480ef78405291593519ac372b7712029',1,'Exciton::Exciton()']]], ['exciton_2ecpp',['Exciton.cpp',['../_exciton_8cpp.html',1,'']]], @@ -56,6 +46,6 @@ var searchData= ['exciton_5fintersystem_5fcrossing',['Exciton_Intersystem_Crossing',['../class_exciton___intersystem___crossing.html',1,'Exciton_Intersystem_Crossing'],['../class_exciton___intersystem___crossing.html#aa76ac22b9a54abae614fb9eeadd4e308',1,'Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing()'],['../class_exciton___intersystem___crossing.html#a4619ac8b4573e23234f3d77de626f0c9',1,'Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing(Simulation *simulation_ptr)']]], ['exciton_5fpolaron_5fannihilation',['Exciton_Polaron_Annihilation',['../class_exciton___polaron___annihilation.html',1,'Exciton_Polaron_Annihilation'],['../class_exciton___polaron___annihilation.html#a4b8426358eaa2bcf19993fd1fb032327',1,'Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation()'],['../class_exciton___polaron___annihilation.html#a22feff4bffef7622722bf376681ba99c',1,'Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation(Simulation *simulation_ptr)']]], ['exciton_5frecombination',['Exciton_Recombination',['../class_exciton___recombination.html',1,'Exciton_Recombination'],['../class_exciton___recombination.html#a6f5df6eae4a5c8cf6f3c9442bc242ebd',1,'Exciton_Recombination::Exciton_Recombination()'],['../class_exciton___recombination.html#a4fa8e592dd0d73062c4dd4d9b7294606',1,'Exciton_Recombination::Exciton_Recombination(Simulation *simulation_ptr)']]], - ['executenextevent',['executeNextEvent',['../class_simulation.html#a48e9e82f9dac1acec5d063a9f6f6115e',1,'Simulation::executeNextEvent()'],['../class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869',1,'OSC_Sim::executeNextEvent()']]], + ['executenextevent',['executeNextEvent',['../class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869',1,'OSC_Sim']]], ['excimontec',['Excimontec',['../md__r_e_a_d_m_e.html',1,'']]] ]; diff --git a/docs/search/all_4.js b/docs/search/all_4.js index 7baf1b4..ee3e06d 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -1,6 +1,5 @@ var searchData= [ - ['findrecalcobjects',['findRecalcObjects',['../class_simulation.html#a662702acf2d446dbdef0e1c87bf21038',1,'Simulation']]], ['flipspin',['flipSpin',['../class_exciton.html#a85a7b8561f6e294593679e53dd3b91a9',1,'Exciton']]], ['fret_5fcutoff',['FRET_cutoff',['../struct_parameters___o_p_v.html#a5fc92d26c86f41eb905da56629d483ef',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_5.js b/docs/search/all_5.js index e614cbe..5c2c30f 100644 --- a/docs/search/all_5.js +++ b/docs/search/all_5.js @@ -1,17 +1,7 @@ var searchData= [ - ['generaterandomcoords',['generateRandomCoords',['../class_lattice.html#a9fbb3c8bc23999ff685b6837beb62606',1,'Lattice']]], - ['generaterandomx',['generateRandomX',['../class_lattice.html#ab78435e50e3bf9f376c04fc305785bb4',1,'Lattice']]], - ['generaterandomy',['generateRandomY',['../class_lattice.html#a180a9d79a40b1a0a092c8ab489569700',1,'Lattice']]], - ['generaterandomz',['generateRandomZ',['../class_lattice.html#a96006397a6ab389fb1eee87fde6e2165',1,'Lattice']]], - ['generator',['generator',['../class_simulation.html#a4c1d9071749e0fd93e70380cafb28417',1,'Simulation']]], - ['getallobjectptrs',['getAllObjectPtrs',['../class_simulation.html#a620684b9ac1fb07344c4c2237ed9f352',1,'Simulation']]], ['getcharge',['getCharge',['../class_polaron.html#a41c1a9b0b23a35e6ff765c8168a9fb6f',1,'Polaron']]], ['getchargeextractionmap',['getChargeExtractionMap',['../class_o_s_c___sim.html#a6ce1e72c2a7d1161f844ebd46231c961',1,'OSC_Sim']]], - ['getcoords',['getCoords',['../class_object.html#a08df08943dc634609fa69b356a37d73f',1,'Object']]], - ['getcreationtime',['getCreationTime',['../class_object.html#a6f91c3f8b61cb9c9a8db662ac07d92e9',1,'Object']]], - ['getdestcoords',['getDestCoords',['../class_event.html#a6b4287971afaca8211f91f361ef55997',1,'Event']]], - ['getdiffusiondata',['getDiffusionData',['../class_o_s_c___sim.html#a97f04719b91c90ac64dd8186476aa5f5',1,'OSC_Sim']]], ['getdoscorrelationdata',['getDOSCorrelationData',['../class_o_s_c___sim.html#a804f8facf0f5ee86d0234662a0719571',1,'OSC_Sim']]], ['getdynamicselectronenergies',['getDynamicsElectronEnergies',['../class_o_s_c___sim.html#a37e177cadae01e8a2ec753cdae165297',1,'OSC_Sim']]], ['getdynamicselectronmsdv',['getDynamicsElectronMSDV',['../class_o_s_c___sim.html#afbca0a6245adc11d0d7f38e01366556b',1,'OSC_Sim']]], @@ -25,20 +15,16 @@ var searchData= ['getdynamicstransienttimes',['getDynamicsTransientTimes',['../class_o_s_c___sim.html#acde6068549f59f813d2faed73f6fedc9',1,'OSC_Sim']]], ['getdynamicstransienttriplets',['getDynamicsTransientTriplets',['../class_o_s_c___sim.html#a91d2dad10391f727348d96b0b21c8304',1,'OSC_Sim']]], ['getenergy',['getEnergy',['../class_site___o_s_c.html#a59db8200675439b98f42d3c35310fe68',1,'Site_OSC']]], - ['geterrormessage',['getErrorMessage',['../class_simulation.html#a03d249f04c0921c938d68337dfc65f56',1,'Simulation']]], - ['geteventit',['getEventIt',['../class_object.html#aa7c58e0319b7715c8d36f38ca7acf03e',1,'Object']]], - ['geteventtype',['getEventType',['../class_exciton___creation.html#a8dab95eb7d8c0a2cfddb8bf130d3b805',1,'Exciton_Creation::getEventType()'],['../class_exciton___hop.html#ae79c31ef3452d2df87c35cc4cea79dde',1,'Exciton_Hop::getEventType()'],['../class_exciton___recombination.html#a350762cfaad5f5dcae1dad4a346647dd',1,'Exciton_Recombination::getEventType()'],['../class_exciton___dissociation.html#a97807fc4d23400cdbf10203f648d5625',1,'Exciton_Dissociation::getEventType()'],['../class_exciton___intersystem___crossing.html#a71c1bddcd80eab242213437da1f04bcc',1,'Exciton_Intersystem_Crossing::getEventType()'],['../class_exciton___exciton___annihilation.html#a562b2fe42b2a17aae2aa1d48cd4d3e9b',1,'Exciton_Exciton_Annihilation::getEventType()'],['../class_exciton___polaron___annihilation.html#adc5151dc5f846383581878240ddecef2',1,'Exciton_Polaron_Annihilation::getEventType()'],['../class_event.html#a77ff5602b20c468b3b72e9924038ac94',1,'Event::getEventType()'],['../class_polaron___hop.html#abf5fa9620dc51aa613eabb0b7e7cad57',1,'Polaron_Hop::getEventType()'],['../class_polaron___recombination.html#acee53d16091a8f3922421b92389d5dc0',1,'Polaron_Recombination::getEventType()'],['../class_polaron___extraction.html#a321feea52f3bed67e566e52682208f45',1,'Polaron_Extraction::getEventType()']]], - ['getexecutiontime',['getExecutionTime',['../class_event.html#a65550d982cdf85d993658cd7070c960c',1,'Event']]], - ['getheight',['getHeight',['../class_lattice.html#aaa0cba3ab33ac620d9b9f9508c56d1ac',1,'Lattice']]], - ['getid',['getId',['../class_simulation.html#aff40f268758bd9a0f390a649fc45c05e',1,'Simulation']]], + ['getevents',['getEvents',['../class_o_s_c___sim.html#af28e344999ddebba9753941d9fdf7680',1,'OSC_Sim']]], + ['geteventtype',['getEventType',['../class_exciton___creation.html#a8dab95eb7d8c0a2cfddb8bf130d3b805',1,'Exciton_Creation::getEventType()'],['../class_exciton___hop.html#ae79c31ef3452d2df87c35cc4cea79dde',1,'Exciton_Hop::getEventType()'],['../class_exciton___recombination.html#a350762cfaad5f5dcae1dad4a346647dd',1,'Exciton_Recombination::getEventType()'],['../class_exciton___dissociation.html#a97807fc4d23400cdbf10203f648d5625',1,'Exciton_Dissociation::getEventType()'],['../class_exciton___intersystem___crossing.html#a71c1bddcd80eab242213437da1f04bcc',1,'Exciton_Intersystem_Crossing::getEventType()'],['../class_exciton___exciton___annihilation.html#a562b2fe42b2a17aae2aa1d48cd4d3e9b',1,'Exciton_Exciton_Annihilation::getEventType()'],['../class_exciton___polaron___annihilation.html#adc5151dc5f846383581878240ddecef2',1,'Exciton_Polaron_Annihilation::getEventType()'],['../class_polaron___hop.html#abf5fa9620dc51aa613eabb0b7e7cad57',1,'Polaron_Hop::getEventType()'],['../class_polaron___recombination.html#acee53d16091a8f3922421b92389d5dc0',1,'Polaron_Recombination::getEventType()'],['../class_polaron___extraction.html#a321feea52f3bed67e566e52682208f45',1,'Polaron_Extraction::getEventType()']]], + ['getexcitondiffusiondata',['getExcitonDiffusionData',['../class_o_s_c___sim.html#a9e3597fee2330eaa06d5030a15ecb716',1,'OSC_Sim']]], + ['getexcitonhoplengthdata',['getExcitonHopLengthData',['../class_o_s_c___sim.html#adfd8dca7bdcca75cb4a39e1f07d919f6',1,'OSC_Sim']]], + ['getexcitonlifetimedata',['getExcitonLifetimeData',['../class_o_s_c___sim.html#a40a44c612cc51a766b7310341aede5c5',1,'OSC_Sim']]], ['getinternalfield',['getInternalField',['../class_o_s_c___sim.html#aa8ee0a55f34be1da2f78be2931584723',1,'OSC_Sim']]], - ['getlength',['getLength',['../class_lattice.html#a4b43b67a36fcd3dfe62c9eeaffa561d2',1,'Lattice']]], ['getn_5fbimolecular_5frecombinations',['getN_bimolecular_recombinations',['../class_o_s_c___sim.html#afa814164790477d643fe04fca021483d',1,'OSC_Sim']]], ['getn_5felectrons_5fcollected',['getN_electrons_collected',['../class_o_s_c___sim.html#abb8a9aefba0cb189fbaeba0f9bdff180',1,'OSC_Sim']]], ['getn_5felectrons_5fcreated',['getN_electrons_created',['../class_o_s_c___sim.html#aadb3c72821bac6153f0f848ce1a87c2b',1,'OSC_Sim']]], ['getn_5felectrons_5frecombined',['getN_electrons_recombined',['../class_o_s_c___sim.html#a15b6b1af56c4285252c6102b3672481c',1,'OSC_Sim']]], - ['getn_5fevents',['getN_events',['../class_simulation.html#a7d88f18a1ba988d7e77b8be8de5b10d1',1,'Simulation']]], - ['getn_5fevents_5fexecuted',['getN_events_executed',['../class_simulation.html#a52cb5564151421cbefaca56357738de7',1,'Simulation']]], ['getn_5fexcitons_5fcreated',['getN_excitons_created',['../class_o_s_c___sim.html#ad38ee5ecfdd65fe4d162763842a2a4b6',1,'OSC_Sim::getN_excitons_created() const'],['../class_o_s_c___sim.html#a3159c7445f114390c7fb52fa73d559ef',1,'OSC_Sim::getN_excitons_created(const short site_type) const']]], ['getn_5fexcitons_5fdissociated',['getN_excitons_dissociated',['../class_o_s_c___sim.html#ad4e1d01074aa99ab83a86caf102ed1f0',1,'OSC_Sim']]], ['getn_5fgeminate_5frecombinations',['getN_geminate_recombinations',['../class_o_s_c___sim.html#a152520ae80b5f879578c01c25b9b4a7f',1,'OSC_Sim']]], @@ -53,25 +39,13 @@ var searchData= ['getn_5ftriplet_5fexcitons_5frecombined',['getN_triplet_excitons_recombined',['../class_o_s_c___sim.html#ad24aaff4c9a327bb978180d47dd67036',1,'OSC_Sim']]], ['getn_5ftriplet_5fpolaron_5fannihilations',['getN_triplet_polaron_annihilations',['../class_o_s_c___sim.html#a54ad519acee6dbd67c19d5baa3bc4919',1,'OSC_Sim']]], ['getn_5ftriplet_5ftriplet_5fannihilations',['getN_triplet_triplet_annihilations',['../class_o_s_c___sim.html#a3e70becfb20c8eaa420fd64d12492881',1,'OSC_Sim']]], - ['getnumsites',['getNumSites',['../class_lattice.html#a4be17e9123f7737387991a9d1a8b87b3',1,'Lattice']]], - ['getobjectptr',['getObjectPtr',['../class_event.html#a5317d42bb07d0e75bec0c13bd9bf6de8',1,'Event::getObjectPtr()'],['../class_site.html#aecb14e440914b4d3d4aa7294419791e2',1,'Site::getObjectPtr()']]], - ['getobjecttargetptr',['getObjectTargetPtr',['../class_event.html#ab86f724c3c894faa1d6ccca78c357d24',1,'Event']]], - ['getobjecttype',['getObjectType',['../class_exciton.html#a1d78a570cc48f62886033465219dd04c',1,'Exciton::getObjectType()'],['../class_object.html#a79449834c55900dd1d96fb7c530e4515',1,'Object::getObjectType()'],['../class_polaron.html#a95feb449d2164870d7ba4b85f6e7dba9',1,'Polaron::getObjectType()']]], - ['getsitecoords',['getSiteCoords',['../class_lattice.html#a74a170b841ad1b74dad43519d37e9eaf',1,'Lattice']]], + ['getobjecttype',['getObjectType',['../class_exciton.html#a1d78a570cc48f62886033465219dd04c',1,'Exciton::getObjectType()'],['../class_polaron.html#a95feb449d2164870d7ba4b85f6e7dba9',1,'Polaron::getObjectType()']]], ['getsiteenergies',['getSiteEnergies',['../class_o_s_c___sim.html#aae233390486c4db28a72936dd7d398f1',1,'OSC_Sim']]], - ['getsiteindex',['getSiteIndex',['../class_lattice.html#a60431f6504a253d47acb0b02f524571c',1,'Lattice']]], - ['getsiteit',['getSiteIt',['../class_lattice.html#a46f7d12855d24e1bdd02814621b0a178',1,'Lattice']]], ['getspin',['getSpin',['../class_exciton.html#a91cb4c59b7e7a7fb756aae4c4109dba3',1,'Exciton']]], - ['gettag',['getTag',['../class_object.html#aa9653577e8d0ac4b7b86d23d12f8b31b',1,'Object']]], - ['gettemp',['getTemp',['../class_simulation.html#ac00bce7c792fb67a75395c46c03efe0a',1,'Simulation']]], - ['gettime',['getTime',['../class_simulation.html#a391ac262089c8bda8e76ce930b1db88b',1,'Simulation']]], ['gettoftransientcounts',['getToFTransientCounts',['../class_o_s_c___sim.html#aa3e0342b2a8c7dc5a62211dd6161027f',1,'OSC_Sim']]], ['gettoftransientenergies',['getToFTransientEnergies',['../class_o_s_c___sim.html#a03028810d8edc276ed7ab0a8228feaaa',1,'OSC_Sim']]], ['gettoftransienttimes',['getToFTransientTimes',['../class_o_s_c___sim.html#a01a190017bc7a7e04c6af824fa47dbce',1,'OSC_Sim']]], ['gettoftransientvelocities',['getToFTransientVelocities',['../class_o_s_c___sim.html#a15a47ed6657c8301eac0c938f8887324',1,'OSC_Sim']]], ['gettransittimedata',['getTransitTimeData',['../class_o_s_c___sim.html#ac5a6b2ae37d49b9114fe032f533e41c6',1,'OSC_Sim']]], - ['gettype',['getType',['../class_site___o_s_c.html#a704a0a9fe1bab69db8343f5225d5888e',1,'Site_OSC']]], - ['getunitsize',['getUnitSize',['../class_lattice.html#ac6963a6b2b4b8d96d3417f6e9c2a509d',1,'Lattice']]], - ['getvolume',['getVolume',['../class_lattice.html#a46f9cec33419459b64ff0efdf47a38b9',1,'Lattice::getVolume()'],['../class_simulation.html#a623c3fbc431ab74c2d2b2374a3b5a3a7',1,'Simulation::getVolume()']]], - ['getwidth',['getWidth',['../class_lattice.html#aeb60d2b8bfb02d9da8bef463f0d41428',1,'Lattice']]] + ['gettype',['getType',['../class_site___o_s_c.html#a704a0a9fe1bab69db8343f5225d5888e',1,'Site_OSC']]] ]; diff --git a/docs/search/all_6.js b/docs/search/all_6.js index d5db468..46793a0 100644 --- a/docs/search/all_6.js +++ b/docs/search/all_6.js @@ -1,6 +1,5 @@ var searchData= [ - ['height',['Height',['../struct_parameters___lattice.html#a1b59e1a307ad945fb86f44b68354f605',1,'Parameters_Lattice::Height()'],['../struct_parameters___simulation.html#aa1ffb86ac22065dbbb58196db95b3199',1,'Parameters_Simulation::Height()']]], ['homo_5facceptor',['Homo_acceptor',['../struct_parameters___o_p_v.html#ab0c38a77995655ced34190093ac1143c',1,'Parameters_OPV']]], ['homo_5fdonor',['Homo_donor',['../struct_parameters___o_p_v.html#ad46868a18b99d4bcd71dd1d69a51663d',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_7.js b/docs/search/all_7.js index f0a35b9..264ac40 100644 --- a/docs/search/all_7.js +++ b/docs/search/all_7.js @@ -1,19 +1,7 @@ var searchData= [ - ['importbooleanparam',['importBooleanParam',['../namespace_utils.html#a98a0cc670327fc21e272a07cbf5025ec',1,'Utils']]], ['importparameters',['importParameters',['../main_8cpp.html#a5022bbed737fe6cd84ab11f8d0b3e1a2',1,'main.cpp']]], - ['incrementdx',['incrementDX',['../class_object.html#a3d7c877f4aa179d9a56050c5faddc18d',1,'Object']]], - ['incrementdy',['incrementDY',['../class_object.html#a9df010818be72d15bad7985bf8a89ba0',1,'Object']]], - ['incrementdz',['incrementDZ',['../class_object.html#a440b267c478f5d63db1954bdbd543408',1,'Object']]], - ['init',['init',['../class_lattice.html#a2b0a88048fae662aa71386a3a123a260',1,'Lattice::init()'],['../class_simulation.html#af88e5e0634b373ba28f1dd87670725a6',1,'Simulation::init()'],['../class_o_s_c___sim.html#a7c6cce40287a60c271509c1f3d8eef9a',1,'OSC_Sim::init()']]], - ['integratedata',['integrateData',['../namespace_utils.html#a49411c9d4c7a065dbcf237aa27a84023',1,'Utils']]], + ['init',['init',['../class_o_s_c___sim.html#a7c6cce40287a60c271509c1f3d8eef9a',1,'OSC_Sim']]], ['internal_5fpotential',['Internal_potential',['../struct_parameters___o_p_v.html#ae102e54304cbdcb804e2c78a60093c6e',1,'Parameters_OPV']]], - ['interpolatedata',['interpolateData',['../namespace_utils.html#af68995497777ee14d812c65991a4046f',1,'Utils']]], - ['intpow',['intpow',['../namespace_utils.html#affd19edaa58a3f8425e1f7b4c9233f8a',1,'Utils']]], - ['iqe_5ftime_5fcutoff',['IQE_time_cutoff',['../struct_parameters___o_p_v.html#a03f47eeffc8a2984c03208ca2f84717d',1,'Parameters_OPV']]], - ['isloggingenabled',['isLoggingEnabled',['../class_simulation.html#ac7c8a49a4cc506b850891480e0aae512',1,'Simulation']]], - ['isoccupied',['isOccupied',['../class_lattice.html#a4d37afb6ad4c67f4f6462c2f6d5c337d',1,'Lattice::isOccupied()'],['../class_site.html#a30991b768ded0bb441c5bb54a789160a',1,'Site::isOccupied()']]], - ['isxperiodic',['isXPeriodic',['../class_lattice.html#accf3b995e0d0cb422907728a29b1b523',1,'Lattice']]], - ['isyperiodic',['isYPeriodic',['../class_lattice.html#ac3192acefb019c5258143a6c758b3e48',1,'Lattice']]], - ['iszperiodic',['isZPeriodic',['../class_lattice.html#ad7dd1b12a253e506aba5cedb57bf86ea',1,'Lattice']]] + ['iqe_5ftime_5fcutoff',['IQE_time_cutoff',['../struct_parameters___o_p_v.html#a03f47eeffc8a2984c03208ca2f84717d',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_8.js b/docs/search/all_8.js index 9b87c36..91db8cc 100644 --- a/docs/search/all_8.js +++ b/docs/search/all_8.js @@ -1,4 +1,5 @@ var searchData= [ - ['kmc_5flattice',['KMC_Lattice',['../md__k_m_c__lattice__r_e_a_d_m_e.html',1,'']]] + ['lumo_5facceptor',['Lumo_acceptor',['../struct_parameters___o_p_v.html#a6fb516e12ab3e48294e13fdde4fb006c',1,'Parameters_OPV']]], + ['lumo_5fdonor',['Lumo_donor',['../struct_parameters___o_p_v.html#a20bbec19017e73934b1cf68909c9171c',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_9.js b/docs/search/all_9.js index 0861250..309aa3e 100644 --- a/docs/search/all_9.js +++ b/docs/search/all_9.js @@ -1,10 +1,8 @@ var searchData= [ - ['lattice',['Lattice',['../class_lattice.html',1,'Lattice'],['../class_lattice.html#a70a5cebc3c0c5a0f609be0592e7cc117',1,'Lattice::Lattice()'],['../class_simulation.html#afb2cf4feeb4d8292eeba8f9ef393c6a4',1,'Simulation::lattice()']]], - ['lattice_2ecpp',['Lattice.cpp',['../_lattice_8cpp.html',1,'']]], - ['lattice_2eh',['Lattice.h',['../_lattice_8h.html',1,'']]], - ['length',['Length',['../struct_parameters___lattice.html#a99c7d553111bb660032bb7ca6f592da6',1,'Parameters_Lattice::Length()'],['../struct_parameters___simulation.html#a038f418e1b2e4fec3fc6a8336f8b23de',1,'Parameters_Simulation::Length()']]], - ['logfile',['Logfile',['../struct_parameters___simulation.html#aa491c1f8ca5045b4cc9c8bbfcb930024',1,'Parameters_Simulation::Logfile()'],['../class_simulation.html#a741321a0bbc89d51b969abda469e6f96',1,'Simulation::Logfile()']]], - ['lumo_5facceptor',['Lumo_acceptor',['../struct_parameters___o_p_v.html#a6fb516e12ab3e48294e13fdde4fb006c',1,'Parameters_OPV']]], - ['lumo_5fdonor',['Lumo_donor',['../struct_parameters___o_p_v.html#a20bbec19017e73934b1cf68909c9171c',1,'Parameters_OPV']]] + ['main',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]], + ['morphology_5ffile',['Morphology_file',['../struct_parameters___o_p_v.html#a388e0f507abb6742efa33b1ca765ee13',1,'Parameters_OPV']]], + ['morphology_5ffilename',['Morphology_filename',['../struct_parameters__main.html#afa70eb9e8a4c918f678a26fa202650b1',1,'Parameters_main']]], + ['morphology_5fset_5fformat',['Morphology_set_format',['../struct_parameters__main.html#afecfab3c5afbb2bc04ef3d5e8064c4a5',1,'Parameters_main']]] ]; diff --git a/docs/search/all_a.js b/docs/search/all_a.js index 163430c..11263b4 100644 --- a/docs/search/all_a.js +++ b/docs/search/all_a.js @@ -1,12 +1,6 @@ var searchData= [ - ['main',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], - ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]], - ['morphology_5ffile',['Morphology_file',['../struct_parameters___o_p_v.html#a388e0f507abb6742efa33b1ca765ee13',1,'Parameters_OPV']]], - ['morphology_5ffilename',['Morphology_filename',['../struct_parameters__main.html#afa70eb9e8a4c918f678a26fa202650b1',1,'Parameters_main']]], - ['morphology_5fset_5fformat',['Morphology_set_format',['../struct_parameters__main.html#afecfab3c5afbb2bc04ef3d5e8064c4a5',1,'Parameters_main']]], - ['moveobject',['moveObject',['../class_simulation.html#a59666ceba048bec35557cb8b691d24d9',1,'Simulation']]], - ['mpi_5fcalculatevectoravg',['MPI_calculateVectorAvg',['../namespace_utils.html#a71eeb04d74f890da3d27128c37fcff78',1,'Utils']]], - ['mpi_5fcalculatevectorsum',['MPI_calculateVectorSum',['../namespace_utils.html#a0a17d0ad939418dc745bcfd194ce2bc1',1,'Utils::MPI_calculateVectorSum(const std::vector< double > &input_vector)'],['../namespace_utils.html#ad7b634b14633046c6da126945d688aaf',1,'Utils::MPI_calculateVectorSum(const std::vector< int > &input_vector)']]], - ['mpi_5fgathervectors',['MPI_gatherVectors',['../namespace_utils.html#aee439dad386e2477d34968311b166c85',1,'Utils']]] + ['n_5fmorphology_5fset_5fsize',['N_morphology_set_size',['../struct_parameters__main.html#a60ee2e45a155f2bef0681753e877bc5f',1,'Parameters_main']]], + ['n_5ftest_5fmorphologies',['N_test_morphologies',['../struct_parameters__main.html#a14e42c0e58188c19f860de2046cf796b',1,'Parameters_main']]], + ['n_5ftests',['N_tests',['../struct_parameters___o_p_v.html#a502f1711127656c15e78c7f1db168e0f',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_b.js b/docs/search/all_b.js index 11263b4..5b07137 100644 --- a/docs/search/all_b.js +++ b/docs/search/all_b.js @@ -1,6 +1,8 @@ var searchData= [ - ['n_5fmorphology_5fset_5fsize',['N_morphology_set_size',['../struct_parameters__main.html#a60ee2e45a155f2bef0681753e877bc5f',1,'Parameters_main']]], - ['n_5ftest_5fmorphologies',['N_test_morphologies',['../struct_parameters__main.html#a14e42c0e58188c19f860de2046cf796b',1,'Parameters_main']]], - ['n_5ftests',['N_tests',['../struct_parameters___o_p_v.html#a502f1711127656c15e78c7f1db168e0f',1,'Parameters_OPV']]] + ['object_5ftype',['object_type',['../class_exciton.html#a3fa1eccff8270355ff24d27f687cb205',1,'Exciton::object_type()'],['../class_polaron.html#a44f333ff29e50353d82f04ca0c070e79',1,'Polaron::object_type()']]], + ['osc_5fsim',['OSC_Sim',['../class_o_s_c___sim.html',1,'OSC_Sim'],['../class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e',1,'OSC_Sim::OSC_Sim()']]], + ['osc_5fsim_2ecpp',['OSC_Sim.cpp',['../_o_s_c___sim_8cpp.html',1,'']]], + ['osc_5fsim_2eh',['OSC_Sim.h',['../_o_s_c___sim_8h.html',1,'']]], + ['outputstatus',['outputStatus',['../class_o_s_c___sim.html#a78aa9badec9d28169b7b71b29e90c265',1,'OSC_Sim']]] ]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js index 178b6c3..e652878 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -1,15 +1,16 @@ var searchData= [ - ['object',['Object',['../class_object.html',1,'Object'],['../class_object.html#a40860402e64d8008fb42329df7097cdb',1,'Object::Object()'],['../class_object.html#aff050a622272cc7667251c7315f09fd7',1,'Object::Object(const double time, const int tag_num, const Coords &start_coords)']]], - ['object_2ecpp',['Object.cpp',['../_object_8cpp.html',1,'']]], - ['object_2eh',['Object.h',['../_object_8h.html',1,'']]], - ['object_5ftype',['object_type',['../class_exciton.html#a3fa1eccff8270355ff24d27f687cb205',1,'Exciton::object_type()'],['../class_polaron.html#a44f333ff29e50353d82f04ca0c070e79',1,'Polaron::object_type()']]], - ['operator_21_3d',['operator!=',['../struct_coords.html#aaea2c566feec4e4bf56b27a34568be76',1,'Coords']]], - ['operator_3d_3d',['operator==',['../struct_coords.html#ad3347f6568814df1a2b98b3cd0b78632',1,'Coords']]], - ['osc_5fsim',['OSC_Sim',['../class_o_s_c___sim.html',1,'OSC_Sim'],['../class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e',1,'OSC_Sim::OSC_Sim()']]], - ['osc_5fsim_2ecpp',['OSC_Sim.cpp',['../_o_s_c___sim_8cpp.html',1,'']]], - ['osc_5fsim_2eh',['OSC_Sim.h',['../_o_s_c___sim_8h.html',1,'']]], - ['outputlatticeoccupancy',['outputLatticeOccupancy',['../class_lattice.html#aa1f65735ecbd750ec04b6413b4d47316',1,'Lattice']]], - ['outputstatus',['outputStatus',['../class_o_s_c___sim.html#a78aa9badec9d28169b7b71b29e90c265',1,'OSC_Sim']]], - ['outputvectortofile',['outputVectorToFile',['../namespace_utils.html#ab76081fb0fa0e9e1633b1b2255db4164',1,'Utils::outputVectorToFile(std::vector< T > &vec, std::string filename)'],['../namespace_utils.html#a652ab00e72bce852c2b9798ff3e1a60b',1,'Utils::outputVectorToFile(std::vector< std::pair< T, T >> &vec, std::string filename)']]] + ['parameters_5fmain',['Parameters_main',['../struct_parameters__main.html',1,'']]], + ['parameters_5fopv',['Parameters_OPV',['../struct_parameters___o_p_v.html',1,'']]], + ['polaron',['Polaron',['../class_polaron.html',1,'Polaron'],['../class_polaron.html#a7392b742eec8c5bf4438198901c570a9',1,'Polaron::Polaron()']]], + ['polaron_2ecpp',['Polaron.cpp',['../_polaron_8cpp.html',1,'']]], + ['polaron_2eh',['Polaron.h',['../_polaron_8h.html',1,'']]], + ['polaron_5fdelocalization_5flength',['Polaron_delocalization_length',['../struct_parameters___o_p_v.html#a837c9091cc25ab63dccc75e79e286f9e',1,'Parameters_OPV']]], + ['polaron_5fextraction',['Polaron_Extraction',['../class_polaron___extraction.html',1,'Polaron_Extraction'],['../class_polaron___extraction.html#a2ac84785d2265bc1ee0e23a7fbcee03f',1,'Polaron_Extraction::Polaron_Extraction()'],['../class_polaron___extraction.html#ad3fd4585a4caf22be10c8730540b23db',1,'Polaron_Extraction::Polaron_Extraction(Simulation *simulation_ptr)']]], + ['polaron_5fhop',['Polaron_Hop',['../class_polaron___hop.html',1,'Polaron_Hop'],['../class_polaron___hop.html#ae8da015929a00a85dc56bc694cd62fa4',1,'Polaron_Hop::Polaron_Hop()'],['../class_polaron___hop.html#abaedc081f619b8e63363fac7f036b09f',1,'Polaron_Hop::Polaron_Hop(Simulation *simulation_ptr)']]], + ['polaron_5fhopping_5fcutoff',['Polaron_hopping_cutoff',['../struct_parameters___o_p_v.html#a5955354f2f5aa71d3e2fc6380b508c88',1,'Parameters_OPV']]], + ['polaron_5flocalization_5facceptor',['Polaron_localization_acceptor',['../struct_parameters___o_p_v.html#a794d79e512c2c161ab6242f5d372faef',1,'Parameters_OPV']]], + ['polaron_5flocalization_5fdonor',['Polaron_localization_donor',['../struct_parameters___o_p_v.html#ac9f152101e3970f62d321eb02d211020',1,'Parameters_OPV']]], + ['polaron_5frecombination',['Polaron_Recombination',['../class_polaron___recombination.html',1,'Polaron_Recombination'],['../class_polaron___recombination.html#a653484a1c11e4bc0a744875184fdaf98',1,'Polaron_Recombination::Polaron_Recombination()'],['../class_polaron___recombination.html#abdb1e837d36802564eaaa6053ccb697c',1,'Polaron_Recombination::Polaron_Recombination(Simulation *simulation_ptr)']]], + ['power_5fkernel_5fexponent',['Power_kernel_exponent',['../struct_parameters___o_p_v.html#adbae25d923c165c2dbc0785c68fccf92',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_d.js b/docs/search/all_d.js index fbd9895..4b15265 100644 --- a/docs/search/all_d.js +++ b/docs/search/all_d.js @@ -1,18 +1,24 @@ var searchData= [ - ['parameters_5flattice',['Parameters_Lattice',['../struct_parameters___lattice.html',1,'']]], - ['parameters_5fmain',['Parameters_main',['../struct_parameters__main.html',1,'']]], - ['parameters_5fopv',['Parameters_OPV',['../struct_parameters___o_p_v.html',1,'']]], - ['parameters_5fsimulation',['Parameters_Simulation',['../struct_parameters___simulation.html',1,'']]], - ['polaron',['Polaron',['../class_polaron.html',1,'Polaron'],['../class_polaron.html#a7392b742eec8c5bf4438198901c570a9',1,'Polaron::Polaron()']]], - ['polaron_2ecpp',['Polaron.cpp',['../_polaron_8cpp.html',1,'']]], - ['polaron_2eh',['Polaron.h',['../_polaron_8h.html',1,'']]], - ['polaron_5fdelocalization_5flength',['Polaron_delocalization_length',['../struct_parameters___o_p_v.html#a837c9091cc25ab63dccc75e79e286f9e',1,'Parameters_OPV']]], - ['polaron_5fextraction',['Polaron_Extraction',['../class_polaron___extraction.html',1,'Polaron_Extraction'],['../class_polaron___extraction.html#a2ac84785d2265bc1ee0e23a7fbcee03f',1,'Polaron_Extraction::Polaron_Extraction()'],['../class_polaron___extraction.html#ad3fd4585a4caf22be10c8730540b23db',1,'Polaron_Extraction::Polaron_Extraction(Simulation *simulation_ptr)']]], - ['polaron_5fhop',['Polaron_Hop',['../class_polaron___hop.html',1,'Polaron_Hop'],['../class_polaron___hop.html#ae8da015929a00a85dc56bc694cd62fa4',1,'Polaron_Hop::Polaron_Hop()'],['../class_polaron___hop.html#abaedc081f619b8e63363fac7f036b09f',1,'Polaron_Hop::Polaron_Hop(Simulation *simulation_ptr)']]], - ['polaron_5fhopping_5fcutoff',['Polaron_hopping_cutoff',['../struct_parameters___o_p_v.html#a5955354f2f5aa71d3e2fc6380b508c88',1,'Parameters_OPV']]], - ['polaron_5flocalization_5facceptor',['Polaron_localization_acceptor',['../struct_parameters___o_p_v.html#a794d79e512c2c161ab6242f5d372faef',1,'Parameters_OPV']]], - ['polaron_5flocalization_5fdonor',['Polaron_localization_donor',['../struct_parameters___o_p_v.html#ac9f152101e3970f62d321eb02d211020',1,'Parameters_OPV']]], - ['polaron_5frecombination',['Polaron_Recombination',['../class_polaron___recombination.html',1,'Polaron_Recombination'],['../class_polaron___recombination.html#a653484a1c11e4bc0a744875184fdaf98',1,'Polaron_Recombination::Polaron_Recombination()'],['../class_polaron___recombination.html#abdb1e837d36802564eaaa6053ccb697c',1,'Polaron_Recombination::Polaron_Recombination(Simulation *simulation_ptr)']]], - ['power_5fkernel_5fexponent',['Power_kernel_exponent',['../struct_parameters___o_p_v.html#adbae25d923c165c2dbc0785c68fccf92',1,'Parameters_OPV']]] + ['r_5fexciton_5fdissociation_5facceptor',['R_exciton_dissociation_acceptor',['../struct_parameters___o_p_v.html#aa52d0a4c9795976b4516e214104dd815',1,'Parameters_OPV']]], + ['r_5fexciton_5fdissociation_5fdonor',['R_exciton_dissociation_donor',['../struct_parameters___o_p_v.html#ad021801a526f21ae43037f3e573d50e7',1,'Parameters_OPV']]], + ['r_5fexciton_5fexciton_5fannihilation_5facceptor',['R_exciton_exciton_annihilation_acceptor',['../struct_parameters___o_p_v.html#ad6159c82da14b1d66e1afd03d6e4bc00',1,'Parameters_OPV']]], + ['r_5fexciton_5fexciton_5fannihilation_5fdonor',['R_exciton_exciton_annihilation_donor',['../struct_parameters___o_p_v.html#a66580234d20375c017a3e9bad303062d',1,'Parameters_OPV']]], + ['r_5fexciton_5fisc_5facceptor',['R_exciton_isc_acceptor',['../struct_parameters___o_p_v.html#a9ebd4980c4aa28e62f725e39f93fbc3b',1,'Parameters_OPV']]], + ['r_5fexciton_5fisc_5fdonor',['R_exciton_isc_donor',['../struct_parameters___o_p_v.html#a424ec76e06337bddcdd68550e448792f',1,'Parameters_OPV']]], + ['r_5fexciton_5fpolaron_5fannihilation_5facceptor',['R_exciton_polaron_annihilation_acceptor',['../struct_parameters___o_p_v.html#a8ce8b281ba79d02867f60e22142cf7c8',1,'Parameters_OPV']]], + ['r_5fexciton_5fpolaron_5fannihilation_5fdonor',['R_exciton_polaron_annihilation_donor',['../struct_parameters___o_p_v.html#ad4e469469b09cf493dc46a4ca1f60705',1,'Parameters_OPV']]], + ['r_5fexciton_5frisc_5facceptor',['R_exciton_risc_acceptor',['../struct_parameters___o_p_v.html#ad6198eb075e56b1e69880d8323d7bf65',1,'Parameters_OPV']]], + ['r_5fexciton_5frisc_5fdonor',['R_exciton_risc_donor',['../struct_parameters___o_p_v.html#ace6d9ab02c79ca3483988089e4c1b9a3',1,'Parameters_OPV']]], + ['r_5fpolaron_5fhopping_5facceptor',['R_polaron_hopping_acceptor',['../struct_parameters___o_p_v.html#ad84bb0a0fe56bb1f5157304f63d1503c',1,'Parameters_OPV']]], + ['r_5fpolaron_5fhopping_5fdonor',['R_polaron_hopping_donor',['../struct_parameters___o_p_v.html#a8938dab01474122541123c605a25c56b',1,'Parameters_OPV']]], + ['r_5fpolaron_5frecombination',['R_polaron_recombination',['../struct_parameters___o_p_v.html#a0e55f779bf42b42e399c86914c759140',1,'Parameters_OPV']]], + ['r_5fsinglet_5fhopping_5facceptor',['R_singlet_hopping_acceptor',['../struct_parameters___o_p_v.html#addf89db7c365dc9c1c0ed5ac405c6e79',1,'Parameters_OPV']]], + ['r_5fsinglet_5fhopping_5fdonor',['R_singlet_hopping_donor',['../struct_parameters___o_p_v.html#a292a5caeb412ff44bb829d06f22eebac',1,'Parameters_OPV']]], + ['r_5ftriplet_5fhopping_5facceptor',['R_triplet_hopping_acceptor',['../struct_parameters___o_p_v.html#a6e99571da45591efb83182cd95b72884',1,'Parameters_OPV']]], + ['r_5ftriplet_5fhopping_5fdonor',['R_triplet_hopping_donor',['../struct_parameters___o_p_v.html#a8de2d7b5eac87daa32ece5ff4ec81917',1,'Parameters_OPV']]], + ['readme_2emd',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['reassignsiteenergies',['reassignSiteEnergies',['../class_o_s_c___sim.html#a75f8094106ced73efaec99cc302f2aa9',1,'OSC_Sim']]], + ['reorganization_5facceptor',['Reorganization_acceptor',['../struct_parameters___o_p_v.html#ab0a52db3d6358562603083f6839cf8ad',1,'Parameters_OPV']]], + ['reorganization_5fdonor',['Reorganization_donor',['../struct_parameters___o_p_v.html#a05158466d7973c098d8b6b5b4b43143c',1,'Parameters_OPV']]] ]; diff --git a/docs/search/all_e.js b/docs/search/all_e.js index d2a1cff..af522fe 100644 --- a/docs/search/all_e.js +++ b/docs/search/all_e.js @@ -1,31 +1,12 @@ var searchData= [ - ['r_5fexciton_5fdissociation_5facceptor',['R_exciton_dissociation_acceptor',['../struct_parameters___o_p_v.html#aa52d0a4c9795976b4516e214104dd815',1,'Parameters_OPV']]], - ['r_5fexciton_5fdissociation_5fdonor',['R_exciton_dissociation_donor',['../struct_parameters___o_p_v.html#ad021801a526f21ae43037f3e573d50e7',1,'Parameters_OPV']]], - ['r_5fexciton_5fexciton_5fannihilation_5facceptor',['R_exciton_exciton_annihilation_acceptor',['../struct_parameters___o_p_v.html#ad6159c82da14b1d66e1afd03d6e4bc00',1,'Parameters_OPV']]], - ['r_5fexciton_5fexciton_5fannihilation_5fdonor',['R_exciton_exciton_annihilation_donor',['../struct_parameters___o_p_v.html#a66580234d20375c017a3e9bad303062d',1,'Parameters_OPV']]], - ['r_5fexciton_5fisc_5facceptor',['R_exciton_isc_acceptor',['../struct_parameters___o_p_v.html#a9ebd4980c4aa28e62f725e39f93fbc3b',1,'Parameters_OPV']]], - ['r_5fexciton_5fisc_5fdonor',['R_exciton_isc_donor',['../struct_parameters___o_p_v.html#a424ec76e06337bddcdd68550e448792f',1,'Parameters_OPV']]], - ['r_5fexciton_5fpolaron_5fannihilation_5facceptor',['R_exciton_polaron_annihilation_acceptor',['../struct_parameters___o_p_v.html#a8ce8b281ba79d02867f60e22142cf7c8',1,'Parameters_OPV']]], - ['r_5fexciton_5fpolaron_5fannihilation_5fdonor',['R_exciton_polaron_annihilation_donor',['../struct_parameters___o_p_v.html#ad4e469469b09cf493dc46a4ca1f60705',1,'Parameters_OPV']]], - ['r_5fexciton_5frisc_5facceptor',['R_exciton_risc_acceptor',['../struct_parameters___o_p_v.html#ad6198eb075e56b1e69880d8323d7bf65',1,'Parameters_OPV']]], - ['r_5fexciton_5frisc_5fdonor',['R_exciton_risc_donor',['../struct_parameters___o_p_v.html#ace6d9ab02c79ca3483988089e4c1b9a3',1,'Parameters_OPV']]], - ['r_5fpolaron_5fhopping_5facceptor',['R_polaron_hopping_acceptor',['../struct_parameters___o_p_v.html#ad84bb0a0fe56bb1f5157304f63d1503c',1,'Parameters_OPV']]], - ['r_5fpolaron_5fhopping_5fdonor',['R_polaron_hopping_donor',['../struct_parameters___o_p_v.html#a8938dab01474122541123c605a25c56b',1,'Parameters_OPV']]], - ['r_5fpolaron_5frecombination',['R_polaron_recombination',['../struct_parameters___o_p_v.html#a0e55f779bf42b42e399c86914c759140',1,'Parameters_OPV']]], - ['r_5fsinglet_5fhopping_5facceptor',['R_singlet_hopping_acceptor',['../struct_parameters___o_p_v.html#addf89db7c365dc9c1c0ed5ac405c6e79',1,'Parameters_OPV']]], - ['r_5fsinglet_5fhopping_5fdonor',['R_singlet_hopping_donor',['../struct_parameters___o_p_v.html#a292a5caeb412ff44bb829d06f22eebac',1,'Parameters_OPV']]], - ['r_5ftriplet_5fhopping_5facceptor',['R_triplet_hopping_acceptor',['../struct_parameters___o_p_v.html#a6e99571da45591efb83182cd95b72884',1,'Parameters_OPV']]], - ['r_5ftriplet_5fhopping_5fdonor',['R_triplet_hopping_donor',['../struct_parameters___o_p_v.html#a8de2d7b5eac87daa32ece5ff4ec81917',1,'Parameters_OPV']]], - ['rand01',['rand01',['../class_simulation.html#a938de951b2766c6fb2b00cf9714caffa',1,'Simulation']]], - ['readme_2emd',['README.md',['../_k_m_c___lattice_2_r_e_a_d_m_e_8md.html',1,'(Global Namespace)'],['../_r_e_a_d_m_e_8md.html',1,'(Global Namespace)']]], - ['reassignsiteenergies',['reassignSiteEnergies',['../class_o_s_c___sim.html#a75f8094106ced73efaec99cc302f2aa9',1,'OSC_Sim']]], - ['recalc_5fcutoff',['Recalc_cutoff',['../struct_parameters___simulation.html#af55371ca9e7027e799f5be46e40eacc1',1,'Parameters_Simulation']]], - ['removeduplicates',['removeDuplicates',['../namespace_utils.html#a5f64d00eec0b50ac5bd119652c99d01b',1,'Utils']]], - ['removeevent',['removeEvent',['../class_simulation.html#a3a4808231d4760f0ab30ea39b6a67e8c',1,'Simulation']]], - ['removeobject',['removeObject',['../class_simulation.html#a39da17feb9b487c05c9a834def44972f',1,'Simulation']]], - ['removewhitespace',['removeWhitespace',['../namespace_utils.html#af9ceee3373ffe317f07d177cf0dfe056',1,'Utils']]], - ['reorganization_5facceptor',['Reorganization_acceptor',['../struct_parameters___o_p_v.html#ab0a52db3d6358562603083f6839cf8ad',1,'Parameters_OPV']]], - ['reorganization_5fdonor',['Reorganization_donor',['../struct_parameters___o_p_v.html#a05158466d7973c098d8b6b5b4b43143c',1,'Parameters_OPV']]], - ['resetinitialcoords',['resetInitialCoords',['../class_object.html#a1d1115b941cc6965dddf5510cf49bbee',1,'Object']]] + ['setenergy',['setEnergy',['../class_site___o_s_c.html#ac7751de2f821aa8562793f8636027313',1,'Site_OSC']]], + ['setenergyit',['setEnergyIt',['../class_site___o_s_c.html#a22e8a3f697fa69d6a382e91c78a181b3',1,'Site_OSC']]], + ['setspin',['setSpin',['../class_exciton.html#a43da382ee3ab29d032ab60a8e97ebaf6',1,'Exciton']]], + ['settype',['setType',['../class_site___o_s_c.html#a47f7ed4c7e916e01bd5cfc37599babb6',1,'Site_OSC']]], + ['singlet_5flifetime_5facceptor',['Singlet_lifetime_acceptor',['../struct_parameters___o_p_v.html#ab8ebcc4989f4b0fd5bfcd0ae59fb3ee6',1,'Parameters_OPV']]], + ['singlet_5flifetime_5fdonor',['Singlet_lifetime_donor',['../struct_parameters___o_p_v.html#a4d772923d973c80fbd4b8fe18fec9f16',1,'Parameters_OPV']]], + ['singlet_5flocalization_5facceptor',['Singlet_localization_acceptor',['../struct_parameters___o_p_v.html#abd57d59ec0099983c1f288fb0e4a20b1',1,'Parameters_OPV']]], + ['singlet_5flocalization_5fdonor',['Singlet_localization_donor',['../struct_parameters___o_p_v.html#a8c027a9085d8bc5bd0a4e8385acd83ce',1,'Parameters_OPV']]], + ['site_5fosc',['Site_OSC',['../class_site___o_s_c.html',1,'']]] ]; diff --git a/docs/search/all_f.js b/docs/search/all_f.js index 752f5fc..8e0e67b 100644 --- a/docs/search/all_f.js +++ b/docs/search/all_f.js @@ -1,32 +1,15 @@ var searchData= [ - ['setcoords',['setCoords',['../class_object.html#a34a164e4709e5daaba7a38c3d61ae617',1,'Object']]], - ['setdestcoords',['setDestCoords',['../class_event.html#a166ae40f2bf26c1e08097697ca76c884',1,'Event']]], - ['setenergy',['setEnergy',['../class_site___o_s_c.html#ac7751de2f821aa8562793f8636027313',1,'Site_OSC']]], - ['setenergyit',['setEnergyIt',['../class_site___o_s_c.html#a22e8a3f697fa69d6a382e91c78a181b3',1,'Site_OSC']]], - ['seterrormessage',['setErrorMessage',['../class_simulation.html#a0f06c75c9dd6be20a3911781b48fd467',1,'Simulation']]], - ['seteventit',['setEventIt',['../class_object.html#ad5025bd84ae91d6426f458f32e582293',1,'Object']]], - ['setexecutiontime',['setExecutionTime',['../class_event.html#af4282af20bd5b3940ba75c23e6032f18',1,'Event']]], - ['setgeneratorseed',['setGeneratorSeed',['../class_simulation.html#a1a825b9da67da43104137662694655bd',1,'Simulation']]], - ['setobjectevent',['setObjectEvent',['../class_simulation.html#a43ca861e2514feb7f93bf18ea3b73385',1,'Simulation']]], - ['setobjectptr',['setObjectPtr',['../class_event.html#a078cadde679fc042486ef065a097c7af',1,'Event::setObjectPtr()'],['../class_site.html#a9a0d305451d7732dbb193e7fd2f502ca',1,'Site::setObjectPtr()']]], - ['setobjecttargetptr',['setObjectTargetPtr',['../class_event.html#a2e868dc951b6fec86703dcd7776680e0',1,'Event']]], - ['setoccupied',['setOccupied',['../class_lattice.html#a515b8bc548ef4a87c3495a7352a60399',1,'Lattice::setOccupied()'],['../class_site.html#ab85bec20c3a6067a7dca659221d57d25',1,'Site::setOccupied()']]], - ['setsitepointers',['setSitePointers',['../class_lattice.html#a59546ec4301871897ba5adfda1126741',1,'Lattice']]], - ['setspin',['setSpin',['../class_exciton.html#a43da382ee3ab29d032ab60a8e97ebaf6',1,'Exciton']]], - ['settime',['setTime',['../class_simulation.html#aae315f0881f0b385c566f96beb01d3f6',1,'Simulation']]], - ['settype',['setType',['../class_site___o_s_c.html#a47f7ed4c7e916e01bd5cfc37599babb6',1,'Site_OSC']]], - ['setxyz',['setXYZ',['../struct_coords.html#a88de3a6ee710766eb9c9444cee45a9f3',1,'Coords']]], - ['sim_5fptr',['sim_ptr',['../class_event.html#aa372e6b2345c96b3c0ce21e9603280fb',1,'Event']]], - ['simulation',['Simulation',['../class_simulation.html',1,'Simulation'],['../class_simulation.html#a5b224cc5b36bcc8eb29689aff223de41',1,'Simulation::Simulation()']]], - ['simulation_2ecpp',['Simulation.cpp',['../_simulation_8cpp.html',1,'']]], - ['simulation_2eh',['Simulation.h',['../_simulation_8h.html',1,'']]], - ['singlet_5flifetime_5facceptor',['Singlet_lifetime_acceptor',['../struct_parameters___o_p_v.html#ab8ebcc4989f4b0fd5bfcd0ae59fb3ee6',1,'Parameters_OPV']]], - ['singlet_5flifetime_5fdonor',['Singlet_lifetime_donor',['../struct_parameters___o_p_v.html#a4d772923d973c80fbd4b8fe18fec9f16',1,'Parameters_OPV']]], - ['singlet_5flocalization_5facceptor',['Singlet_localization_acceptor',['../struct_parameters___o_p_v.html#abd57d59ec0099983c1f288fb0e4a20b1',1,'Parameters_OPV']]], - ['singlet_5flocalization_5fdonor',['Singlet_localization_donor',['../struct_parameters___o_p_v.html#a8c027a9085d8bc5bd0a4e8385acd83ce',1,'Parameters_OPV']]], - ['site',['Site',['../class_site.html',1,'Site'],['../class_site.html#a4119f95c45d57d6edf419169dea993f4',1,'Site::Site()']]], - ['site_2ecpp',['Site.cpp',['../_site_8cpp.html',1,'']]], - ['site_2eh',['Site.h',['../_site_8h.html',1,'']]], - ['site_5fosc',['Site_OSC',['../class_site___o_s_c.html',1,'']]] + ['thickness_5facceptor',['Thickness_acceptor',['../struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a',1,'Parameters_OPV']]], + ['thickness_5fdonor',['Thickness_donor',['../struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3',1,'Parameters_OPV']]], + ['tof_5finitial_5fpolarons',['ToF_initial_polarons',['../struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa',1,'Parameters_OPV']]], + ['tof_5fplacement_5fenergy',['ToF_placement_energy',['../struct_parameters___o_p_v.html#af6e728c4d1efe0ba5b6b4e28c67a0378',1,'Parameters_OPV']]], + ['tof_5fpnts_5fper_5fdecade',['ToF_pnts_per_decade',['../struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7',1,'Parameters_OPV']]], + ['tof_5fpolaron_5ftype',['ToF_polaron_type',['../struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165',1,'Parameters_OPV']]], + ['tof_5ftransient_5fend',['ToF_transient_end',['../struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1',1,'Parameters_OPV']]], + ['tof_5ftransient_5fstart',['ToF_transient_start',['../struct_parameters___o_p_v.html#af5e99b212ed3ece698fb032dd347af63',1,'Parameters_OPV']]], + ['triplet_5flifetime_5facceptor',['Triplet_lifetime_acceptor',['../struct_parameters___o_p_v.html#a4149a095d01c62295865a9064fccb637',1,'Parameters_OPV']]], + ['triplet_5flifetime_5fdonor',['Triplet_lifetime_donor',['../struct_parameters___o_p_v.html#acb3f6fce76263baa95b6a20c7aeb5c4b',1,'Parameters_OPV']]], + ['triplet_5flocalization_5facceptor',['Triplet_localization_acceptor',['../struct_parameters___o_p_v.html#aac11d663f53039160f936a5c670151ed',1,'Parameters_OPV']]], + ['triplet_5flocalization_5fdonor',['Triplet_localization_donor',['../struct_parameters___o_p_v.html#a5b7e58b86bfd90243849862f074ebf51',1,'Parameters_OPV']]] ]; diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js index 5dbd6e6..1a9ba2d 100644 --- a/docs/search/classes_0.js +++ b/docs/search/classes_0.js @@ -1,4 +1,11 @@ var searchData= [ - ['coords',['Coords',['../struct_coords.html',1,'']]] + ['exciton',['Exciton',['../class_exciton.html',1,'']]], + ['exciton_5fcreation',['Exciton_Creation',['../class_exciton___creation.html',1,'']]], + ['exciton_5fdissociation',['Exciton_Dissociation',['../class_exciton___dissociation.html',1,'']]], + ['exciton_5fexciton_5fannihilation',['Exciton_Exciton_Annihilation',['../class_exciton___exciton___annihilation.html',1,'']]], + ['exciton_5fhop',['Exciton_Hop',['../class_exciton___hop.html',1,'']]], + ['exciton_5fintersystem_5fcrossing',['Exciton_Intersystem_Crossing',['../class_exciton___intersystem___crossing.html',1,'']]], + ['exciton_5fpolaron_5fannihilation',['Exciton_Polaron_Annihilation',['../class_exciton___polaron___annihilation.html',1,'']]], + ['exciton_5frecombination',['Exciton_Recombination',['../class_exciton___recombination.html',1,'']]] ]; diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js index 0c635c5..5fad1d6 100644 --- a/docs/search/classes_1.js +++ b/docs/search/classes_1.js @@ -1,12 +1,4 @@ var searchData= [ - ['event',['Event',['../class_event.html',1,'']]], - ['exciton',['Exciton',['../class_exciton.html',1,'']]], - ['exciton_5fcreation',['Exciton_Creation',['../class_exciton___creation.html',1,'']]], - ['exciton_5fdissociation',['Exciton_Dissociation',['../class_exciton___dissociation.html',1,'']]], - ['exciton_5fexciton_5fannihilation',['Exciton_Exciton_Annihilation',['../class_exciton___exciton___annihilation.html',1,'']]], - ['exciton_5fhop',['Exciton_Hop',['../class_exciton___hop.html',1,'']]], - ['exciton_5fintersystem_5fcrossing',['Exciton_Intersystem_Crossing',['../class_exciton___intersystem___crossing.html',1,'']]], - ['exciton_5fpolaron_5fannihilation',['Exciton_Polaron_Annihilation',['../class_exciton___polaron___annihilation.html',1,'']]], - ['exciton_5frecombination',['Exciton_Recombination',['../class_exciton___recombination.html',1,'']]] + ['osc_5fsim',['OSC_Sim',['../class_o_s_c___sim.html',1,'']]] ]; diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js index 1e629a9..998ccbb 100644 --- a/docs/search/classes_2.js +++ b/docs/search/classes_2.js @@ -1,4 +1,9 @@ var searchData= [ - ['lattice',['Lattice',['../class_lattice.html',1,'']]] + ['parameters_5fmain',['Parameters_main',['../struct_parameters__main.html',1,'']]], + ['parameters_5fopv',['Parameters_OPV',['../struct_parameters___o_p_v.html',1,'']]], + ['polaron',['Polaron',['../class_polaron.html',1,'']]], + ['polaron_5fextraction',['Polaron_Extraction',['../class_polaron___extraction.html',1,'']]], + ['polaron_5fhop',['Polaron_Hop',['../class_polaron___hop.html',1,'']]], + ['polaron_5frecombination',['Polaron_Recombination',['../class_polaron___recombination.html',1,'']]] ]; diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js index 473f17d..f0d0bde 100644 --- a/docs/search/classes_3.js +++ b/docs/search/classes_3.js @@ -1,5 +1,4 @@ var searchData= [ - ['object',['Object',['../class_object.html',1,'']]], - ['osc_5fsim',['OSC_Sim',['../class_o_s_c___sim.html',1,'']]] + ['site_5fosc',['Site_OSC',['../class_site___o_s_c.html',1,'']]] ]; diff --git a/docs/search/classes_4.html b/docs/search/classes_4.html deleted file mode 100644 index 8735214..0000000 --- a/docs/search/classes_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/classes_4.js b/docs/search/classes_4.js deleted file mode 100644 index 35106b9..0000000 --- a/docs/search/classes_4.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['parameters_5flattice',['Parameters_Lattice',['../struct_parameters___lattice.html',1,'']]], - ['parameters_5fmain',['Parameters_main',['../struct_parameters__main.html',1,'']]], - ['parameters_5fopv',['Parameters_OPV',['../struct_parameters___o_p_v.html',1,'']]], - ['parameters_5fsimulation',['Parameters_Simulation',['../struct_parameters___simulation.html',1,'']]], - ['polaron',['Polaron',['../class_polaron.html',1,'']]], - ['polaron_5fextraction',['Polaron_Extraction',['../class_polaron___extraction.html',1,'']]], - ['polaron_5fhop',['Polaron_Hop',['../class_polaron___hop.html',1,'']]], - ['polaron_5frecombination',['Polaron_Recombination',['../class_polaron___recombination.html',1,'']]] -]; diff --git a/docs/search/classes_5.html b/docs/search/classes_5.html deleted file mode 100644 index ba8b1c6..0000000 --- a/docs/search/classes_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js deleted file mode 100644 index bbc7ef3..0000000 --- a/docs/search/classes_5.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['simulation',['Simulation',['../class_simulation.html',1,'']]], - ['site',['Site',['../class_site.html',1,'']]], - ['site_5fosc',['Site_OSC',['../class_site___o_s_c.html',1,'']]] -]; diff --git a/docs/search/files_0.js b/docs/search/files_0.js index c0f1e5f..8f6be8d 100644 --- a/docs/search/files_0.js +++ b/docs/search/files_0.js @@ -1,7 +1,5 @@ var searchData= [ - ['event_2ecpp',['Event.cpp',['../_event_8cpp.html',1,'']]], - ['event_2eh',['Event.h',['../_event_8h.html',1,'']]], ['exciton_2ecpp',['Exciton.cpp',['../_exciton_8cpp.html',1,'']]], ['exciton_2eh',['Exciton.h',['../_exciton_8h.html',1,'']]] ]; diff --git a/docs/search/files_1.js b/docs/search/files_1.js index 04c0c90..c93faff 100644 --- a/docs/search/files_1.js +++ b/docs/search/files_1.js @@ -1,5 +1,4 @@ var searchData= [ - ['lattice_2ecpp',['Lattice.cpp',['../_lattice_8cpp.html',1,'']]], - ['lattice_2eh',['Lattice.h',['../_lattice_8h.html',1,'']]] + ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]] ]; diff --git a/docs/search/files_2.js b/docs/search/files_2.js index c93faff..5a0357f 100644 --- a/docs/search/files_2.js +++ b/docs/search/files_2.js @@ -1,4 +1,5 @@ var searchData= [ - ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]] + ['osc_5fsim_2ecpp',['OSC_Sim.cpp',['../_o_s_c___sim_8cpp.html',1,'']]], + ['osc_5fsim_2eh',['OSC_Sim.h',['../_o_s_c___sim_8h.html',1,'']]] ]; diff --git a/docs/search/files_3.js b/docs/search/files_3.js index a474649..fc3a917 100644 --- a/docs/search/files_3.js +++ b/docs/search/files_3.js @@ -1,7 +1,5 @@ var searchData= [ - ['object_2ecpp',['Object.cpp',['../_object_8cpp.html',1,'']]], - ['object_2eh',['Object.h',['../_object_8h.html',1,'']]], - ['osc_5fsim_2ecpp',['OSC_Sim.cpp',['../_o_s_c___sim_8cpp.html',1,'']]], - ['osc_5fsim_2eh',['OSC_Sim.h',['../_o_s_c___sim_8h.html',1,'']]] + ['polaron_2ecpp',['Polaron.cpp',['../_polaron_8cpp.html',1,'']]], + ['polaron_2eh',['Polaron.h',['../_polaron_8h.html',1,'']]] ]; diff --git a/docs/search/files_4.js b/docs/search/files_4.js index fc3a917..66a27ec 100644 --- a/docs/search/files_4.js +++ b/docs/search/files_4.js @@ -1,5 +1,4 @@ var searchData= [ - ['polaron_2ecpp',['Polaron.cpp',['../_polaron_8cpp.html',1,'']]], - ['polaron_2eh',['Polaron.h',['../_polaron_8h.html',1,'']]] + ['readme_2emd',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]] ]; diff --git a/docs/search/files_5.html b/docs/search/files_5.html deleted file mode 100644 index 268b7eb..0000000 --- a/docs/search/files_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/files_5.js b/docs/search/files_5.js deleted file mode 100644 index 69dfe2d..0000000 --- a/docs/search/files_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['readme_2emd',['README.md',['../_k_m_c___lattice_2_r_e_a_d_m_e_8md.html',1,'(Global Namespace)'],['../_r_e_a_d_m_e_8md.html',1,'(Global Namespace)']]] -]; diff --git a/docs/search/files_6.html b/docs/search/files_6.html deleted file mode 100644 index 98fc666..0000000 --- a/docs/search/files_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/files_6.js b/docs/search/files_6.js deleted file mode 100644 index b7b27a9..0000000 --- a/docs/search/files_6.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['simulation_2ecpp',['Simulation.cpp',['../_simulation_8cpp.html',1,'']]], - ['simulation_2eh',['Simulation.h',['../_simulation_8h.html',1,'']]], - ['site_2ecpp',['Site.cpp',['../_site_8cpp.html',1,'']]], - ['site_2eh',['Site.h',['../_site_8h.html',1,'']]] -]; diff --git a/docs/search/files_7.html b/docs/search/files_7.html deleted file mode 100644 index 49507de..0000000 --- a/docs/search/files_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/files_7.js b/docs/search/files_7.js deleted file mode 100644 index a9c0822..0000000 --- a/docs/search/files_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['utils_2ecpp',['Utils.cpp',['../_utils_8cpp.html',1,'']]], - ['utils_2eh',['Utils.h',['../_utils_8h.html',1,'']]] -]; diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js index 21501ae..95d52ce 100644 --- a/docs/search/functions_0.js +++ b/docs/search/functions_0.js @@ -1,7 +1,13 @@ var searchData= [ - ['addevent',['addEvent',['../class_simulation.html#a33a57b5640b0d33c816dc6e57604162e',1,'Simulation']]], - ['addobject',['addObject',['../class_simulation.html#a1e0f43c4e11eda5486054c250f4de08f',1,'Simulation']]], - ['array_5favg',['array_avg',['../namespace_utils.html#aa76a204af4dd4c3eb151691825de2eb2',1,'Utils']]], - ['array_5fstdev',['array_stdev',['../namespace_utils.html#a25d09c704b5ae03f01cf76b6de10aa19',1,'Utils']]] + ['calculateallevents',['calculateAllEvents',['../class_o_s_c___sim.html#adf6e66636e1d5e7b73859dc04cbe8eda',1,'OSC_Sim']]], + ['calculatedoscorrelation',['calculateDOSCorrelation',['../class_o_s_c___sim.html#ae391cd48aaa3a27b38f6724f8fea90f3',1,'OSC_Sim::calculateDOSCorrelation()'],['../class_o_s_c___sim.html#a2dfba6465819c4f779e5b7fe07483775',1,'OSC_Sim::calculateDOSCorrelation(const double cutoff_radius)']]], + ['calculateexecutiontime',['calculateExecutionTime',['../class_exciton___hop.html#a61b21f627b744af47c2f0acfd71b9363',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double distance, const double E_delta)'],['../class_exciton___hop.html#a39bf8618302f619aecf060cb89d1b9f2',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a9fe9c9206ca43eaef0f56b6e3249cf8d',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a4d87633f611d03842854f803de1298e9',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_exciton___intersystem___crossing.html#abc0c82ee35e973302626958becbfb3e3',1,'Exciton_Intersystem_Crossing::calculateExecutionTime()'],['../class_exciton___exciton___annihilation.html#a4f09a860f2aab323580d334d854512a3',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___exciton___annihilation.html#ae873426c8ae373e70bd707cf3c18d3f9',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_exciton___polaron___annihilation.html#a68c74dfaf56cb8dd6b5e26369f143f39',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___polaron___annihilation.html#a92a9236dd1cfed941c36c56084a1a86a',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_polaron___hop.html#ae0362f61b6edbc66a04cfe38ea87bf0b',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___hop.html#a5e1d2ab6c7175be027c43b66494408df',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___recombination.html#aedf0185861c8ffb9112d9ee421047da4',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___recombination.html#a0e51793302ecdb9dcc6585acaf9a0287',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___extraction.html#a1a67c4f94b3ec9f0d36687931c080a6d',1,'Polaron_Extraction::calculateExecutionTime()']]], + ['calculatemobilitydata',['calculateMobilityData',['../class_o_s_c___sim.html#a3495c8da3f2f4bcc015d83ad482ce3c1',1,'OSC_Sim']]], + ['calculatetransittimedist',['calculateTransitTimeDist',['../class_o_s_c___sim.html#a176ab132e314dfd509e8feb89687f163',1,'OSC_Sim']]], + ['checkfinished',['checkFinished',['../class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115',1,'OSC_Sim']]], + ['checkparameters',['checkParameters',['../class_o_s_c___sim.html#a92f8e2ae6bcd3e0755feb2419849c8e9',1,'OSC_Sim']]], + ['createelectron',['createElectron',['../class_o_s_c___sim.html#ad88929fd506f3cd68540d18fc10e8f91',1,'OSC_Sim']]], + ['createexciton',['createExciton',['../class_o_s_c___sim.html#a173d8899d6fac79effdc4f89dbe64910',1,'OSC_Sim']]], + ['createhole',['createHole',['../class_o_s_c___sim.html#afd42539a4764cdcad24a8aade399e2a1',1,'OSC_Sim']]] ]; diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js index 4f178e1..57adf45 100644 --- a/docs/search/functions_1.js +++ b/docs/search/functions_1.js @@ -1,27 +1,12 @@ var searchData= [ - ['calculatedestinationcoords',['calculateDestinationCoords',['../class_lattice.html#aa6b80d6264bfc23ae5fea39abd2557d5',1,'Lattice']]], - ['calculatediffusionlength_5favg',['calculateDiffusionLength_avg',['../class_o_s_c___sim.html#a62aa25ac6740cea4efab1dcc7f88c5d5',1,'OSC_Sim']]], - ['calculatediffusionlength_5fstdev',['calculateDiffusionLength_stdev',['../class_o_s_c___sim.html#a858300b2a76f1a1b24747d11869a1f4a',1,'OSC_Sim']]], - ['calculatedisplacement',['calculateDisplacement',['../class_object.html#a02643ea0804dec3e43f60c788855c03b',1,'Object']]], - ['calculatedoscorrelation',['calculateDOSCorrelation',['../class_o_s_c___sim.html#afdd01fa07d004b0c37ce86ee171a60b8',1,'OSC_Sim']]], - ['calculatedx',['calculateDX',['../class_lattice.html#a08adb2f412af409d3ec241e60e687c1a',1,'Lattice::calculateDX(const int x, const int i) const'],['../class_lattice.html#ad89c5473dd37339ede9fb3d0c3db4300',1,'Lattice::calculateDX(const Coords &coords_initial, const Coords &coords_dest) const']]], - ['calculatedy',['calculateDY',['../class_lattice.html#acdeca889f7df11fe299f8b7941198c83',1,'Lattice::calculateDY(const int y, const int j) const'],['../class_lattice.html#a4e8b3577701ec0cefce595f6956b22e3',1,'Lattice::calculateDY(const Coords &coords_initial, const Coords &coords_dest) const']]], - ['calculatedz',['calculateDZ',['../class_lattice.html#a584ff9c528ebe46a6aea6ed652d107f4',1,'Lattice::calculateDZ(const int z, const int k) const'],['../class_lattice.html#a76b38079e102e17c79b13a3398a404a0',1,'Lattice::calculateDZ(const Coords &coords_initial, const Coords &coords_dest) const']]], - ['calculateexecutiontime',['calculateExecutionTime',['../class_exciton___hop.html#a61b21f627b744af47c2f0acfd71b9363',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double distance, const double E_delta)'],['../class_exciton___hop.html#a39bf8618302f619aecf060cb89d1b9f2',1,'Exciton_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a9fe9c9206ca43eaef0f56b6e3249cf8d',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_exciton___dissociation.html#a4d87633f611d03842854f803de1298e9',1,'Exciton_Dissociation::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_exciton___intersystem___crossing.html#abc0c82ee35e973302626958becbfb3e3',1,'Exciton_Intersystem_Crossing::calculateExecutionTime()'],['../class_exciton___exciton___annihilation.html#a4f09a860f2aab323580d334d854512a3',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___exciton___annihilation.html#ae873426c8ae373e70bd707cf3c18d3f9',1,'Exciton_Exciton_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_exciton___polaron___annihilation.html#a68c74dfaf56cb8dd6b5e26369f143f39',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double distance)'],['../class_exciton___polaron___annihilation.html#a92a9236dd1cfed941c36c56084a1a86a',1,'Exciton_Polaron_Annihilation::calculateExecutionTime(const double prefactor, const double localization, const double distance)'],['../class_event.html#a6fa01d0eba9aa1bbea18ee94aa8c02fe',1,'Event::calculateExecutionTime()'],['../class_polaron___hop.html#ae0362f61b6edbc66a04cfe38ea87bf0b',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___hop.html#a5e1d2ab6c7175be027c43b66494408df',1,'Polaron_Hop::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___recombination.html#aedf0185861c8ffb9112d9ee421047da4',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta)'],['../class_polaron___recombination.html#a0e51793302ecdb9dcc6585acaf9a0287',1,'Polaron_Recombination::calculateExecutionTime(const double prefactor, const double localization, const double distance, const double E_delta, const double reorganization)'],['../class_polaron___extraction.html#a1a67c4f94b3ec9f0d36687931c080a6d',1,'Polaron_Extraction::calculateExecutionTime()']]], - ['calculatelatticedistancesquared',['calculateLatticeDistanceSquared',['../class_lattice.html#a3f51b0b41cf0e43e0469320310494a1e',1,'Lattice']]], - ['calculatemobilities',['calculateMobilities',['../class_o_s_c___sim.html#a8cbaab921f75c2b1ccc85b42ed698c58',1,'OSC_Sim']]], - ['calculatemobility_5favg',['calculateMobility_avg',['../class_o_s_c___sim.html#aef139f85af869c000b362b2a17e46cff',1,'OSC_Sim']]], - ['calculatemobility_5fstdev',['calculateMobility_stdev',['../class_o_s_c___sim.html#a7cbca947933286e632d3d76dfed403bf',1,'OSC_Sim']]], - ['calculateprobabilityhist',['calculateProbabilityHist',['../namespace_utils.html#adcb2e98774b12bc12264034913547a2c',1,'Utils::calculateProbabilityHist(const std::vector< double > &data, int num_bins)'],['../namespace_utils.html#a0818230f8ad279ef7ca217f3cba81f76',1,'Utils::calculateProbabilityHist(const std::vector< double > &data, double bin_size)'],['../namespace_utils.html#a08553f36886a36456e8111585029e467',1,'Utils::calculateProbabilityHist(const std::vector< double > &data, const double bin_size, const int num_bins)']]], - ['calculatetransittime_5favg',['calculateTransitTime_avg',['../class_o_s_c___sim.html#a99e37cc427f843a92d58c6fa9b13fffe',1,'OSC_Sim']]], - ['calculatetransittime_5fstdev',['calculateTransitTime_stdev',['../class_o_s_c___sim.html#a7e7da89362449d58373a31c255a27d8f',1,'OSC_Sim']]], - ['calculatetransittimedist',['calculateTransitTimeDist',['../class_o_s_c___sim.html#a176ab132e314dfd509e8feb89687f163',1,'OSC_Sim']]], - ['checkfinished',['checkFinished',['../class_simulation.html#af69bb46977a3a0084214a194c888e16c',1,'Simulation::checkFinished()'],['../class_o_s_c___sim.html#ab3e4258c850b48ec02e4d3a88b583115',1,'OSC_Sim::checkFinished()']]], - ['checkmovevalidity',['checkMoveValidity',['../class_lattice.html#ad0592298c4b92e9e84a768b95cd6d0f0',1,'Lattice']]], - ['checkparameters',['checkParameters',['../class_o_s_c___sim.html#a92f8e2ae6bcd3e0755feb2419849c8e9',1,'OSC_Sim']]], - ['choosenextevent',['chooseNextEvent',['../class_simulation.html#af8cf2e5c24531582599423df2d70dc5b',1,'Simulation']]], - ['clearoccupancy',['clearOccupancy',['../class_lattice.html#a97a1b4f24cd40b81ed63aa2d7713b63b',1,'Lattice::clearOccupancy()'],['../class_site.html#a46ff077954e39046b493ee1ea57a9c93',1,'Site::clearOccupancy()']]], - ['createexponentialdosvector',['createExponentialDOSVector',['../namespace_utils.html#af296d2aa8f889f67fe515fc641c5f5fe',1,'Utils']]], - ['creategaussiandosvector',['createGaussianDOSVector',['../namespace_utils.html#a2ce45ade7d6d4f2995b595da3ebbaaec',1,'Utils']]] + ['exciton',['Exciton',['../class_exciton.html#a480ef78405291593519ac372b7712029',1,'Exciton']]], + ['exciton_5fcreation',['Exciton_Creation',['../class_exciton___creation.html#a21e9217cb8c671066c6a9b8d417a13ec',1,'Exciton_Creation::Exciton_Creation()'],['../class_exciton___creation.html#a01d52761482e31bd4f98dcab2b7f09d5',1,'Exciton_Creation::Exciton_Creation(Simulation *simulation_ptr)']]], + ['exciton_5fdissociation',['Exciton_Dissociation',['../class_exciton___dissociation.html#ad127a7325c308e35d52b53668ae52353',1,'Exciton_Dissociation::Exciton_Dissociation()'],['../class_exciton___dissociation.html#a91ed94e4fa9b465a35aad05a303d0fd0',1,'Exciton_Dissociation::Exciton_Dissociation(Simulation *simulation_ptr)']]], + ['exciton_5fexciton_5fannihilation',['Exciton_Exciton_Annihilation',['../class_exciton___exciton___annihilation.html#a62c62f119f2ddd3a3f024f0b33312a7a',1,'Exciton_Exciton_Annihilation::Exciton_Exciton_Annihilation()'],['../class_exciton___exciton___annihilation.html#a15838db1eb32ea23c0442f36b3f6236e',1,'Exciton_Exciton_Annihilation::Exciton_Exciton_Annihilation(Simulation *simulation_ptr)']]], + ['exciton_5fhop',['Exciton_Hop',['../class_exciton___hop.html#a847c59afce26a032008a80bde25e369f',1,'Exciton_Hop::Exciton_Hop()'],['../class_exciton___hop.html#aae3f49afb42e61d5a54e9bff7b640561',1,'Exciton_Hop::Exciton_Hop(Simulation *simulation_ptr)']]], + ['exciton_5fintersystem_5fcrossing',['Exciton_Intersystem_Crossing',['../class_exciton___intersystem___crossing.html#aa76ac22b9a54abae614fb9eeadd4e308',1,'Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing()'],['../class_exciton___intersystem___crossing.html#a4619ac8b4573e23234f3d77de626f0c9',1,'Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing(Simulation *simulation_ptr)']]], + ['exciton_5fpolaron_5fannihilation',['Exciton_Polaron_Annihilation',['../class_exciton___polaron___annihilation.html#a4b8426358eaa2bcf19993fd1fb032327',1,'Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation()'],['../class_exciton___polaron___annihilation.html#a22feff4bffef7622722bf376681ba99c',1,'Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation(Simulation *simulation_ptr)']]], + ['exciton_5frecombination',['Exciton_Recombination',['../class_exciton___recombination.html#a6f5df6eae4a5c8cf6f3c9442bc242ebd',1,'Exciton_Recombination::Exciton_Recombination()'],['../class_exciton___recombination.html#a4fa8e592dd0d73062c4dd4d9b7294606',1,'Exciton_Recombination::Exciton_Recombination(Simulation *simulation_ptr)']]], + ['executenextevent',['executeNextEvent',['../class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869',1,'OSC_Sim']]] ]; diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js index 81e66c4..e13587a 100644 --- a/docs/search/functions_2.js +++ b/docs/search/functions_2.js @@ -1,13 +1,4 @@ var searchData= [ - ['event',['Event',['../class_event.html#a5a40dd4708297f7031e29b39e039ae10',1,'Event::Event()'],['../class_event.html#adbadc626c37dc77443f6f8c9abec589f',1,'Event::Event(Simulation *sim_ptr)']]], - ['exciton',['Exciton',['../class_exciton.html#a480ef78405291593519ac372b7712029',1,'Exciton']]], - ['exciton_5fcreation',['Exciton_Creation',['../class_exciton___creation.html#a21e9217cb8c671066c6a9b8d417a13ec',1,'Exciton_Creation::Exciton_Creation()'],['../class_exciton___creation.html#a01d52761482e31bd4f98dcab2b7f09d5',1,'Exciton_Creation::Exciton_Creation(Simulation *simulation_ptr)']]], - ['exciton_5fdissociation',['Exciton_Dissociation',['../class_exciton___dissociation.html#ad127a7325c308e35d52b53668ae52353',1,'Exciton_Dissociation::Exciton_Dissociation()'],['../class_exciton___dissociation.html#a91ed94e4fa9b465a35aad05a303d0fd0',1,'Exciton_Dissociation::Exciton_Dissociation(Simulation *simulation_ptr)']]], - ['exciton_5fexciton_5fannihilation',['Exciton_Exciton_Annihilation',['../class_exciton___exciton___annihilation.html#a62c62f119f2ddd3a3f024f0b33312a7a',1,'Exciton_Exciton_Annihilation::Exciton_Exciton_Annihilation()'],['../class_exciton___exciton___annihilation.html#a15838db1eb32ea23c0442f36b3f6236e',1,'Exciton_Exciton_Annihilation::Exciton_Exciton_Annihilation(Simulation *simulation_ptr)']]], - ['exciton_5fhop',['Exciton_Hop',['../class_exciton___hop.html#a847c59afce26a032008a80bde25e369f',1,'Exciton_Hop::Exciton_Hop()'],['../class_exciton___hop.html#aae3f49afb42e61d5a54e9bff7b640561',1,'Exciton_Hop::Exciton_Hop(Simulation *simulation_ptr)']]], - ['exciton_5fintersystem_5fcrossing',['Exciton_Intersystem_Crossing',['../class_exciton___intersystem___crossing.html#aa76ac22b9a54abae614fb9eeadd4e308',1,'Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing()'],['../class_exciton___intersystem___crossing.html#a4619ac8b4573e23234f3d77de626f0c9',1,'Exciton_Intersystem_Crossing::Exciton_Intersystem_Crossing(Simulation *simulation_ptr)']]], - ['exciton_5fpolaron_5fannihilation',['Exciton_Polaron_Annihilation',['../class_exciton___polaron___annihilation.html#a4b8426358eaa2bcf19993fd1fb032327',1,'Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation()'],['../class_exciton___polaron___annihilation.html#a22feff4bffef7622722bf376681ba99c',1,'Exciton_Polaron_Annihilation::Exciton_Polaron_Annihilation(Simulation *simulation_ptr)']]], - ['exciton_5frecombination',['Exciton_Recombination',['../class_exciton___recombination.html#a6f5df6eae4a5c8cf6f3c9442bc242ebd',1,'Exciton_Recombination::Exciton_Recombination()'],['../class_exciton___recombination.html#a4fa8e592dd0d73062c4dd4d9b7294606',1,'Exciton_Recombination::Exciton_Recombination(Simulation *simulation_ptr)']]], - ['executenextevent',['executeNextEvent',['../class_simulation.html#a48e9e82f9dac1acec5d063a9f6f6115e',1,'Simulation::executeNextEvent()'],['../class_o_s_c___sim.html#a41bdb6368c71e1a3cb0efdc2a55d7869',1,'OSC_Sim::executeNextEvent()']]] + ['flipspin',['flipSpin',['../class_exciton.html#a85a7b8561f6e294593679e53dd3b91a9',1,'Exciton']]] ]; diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js index 9e5a830..5c2c30f 100644 --- a/docs/search/functions_3.js +++ b/docs/search/functions_3.js @@ -1,5 +1,51 @@ var searchData= [ - ['findrecalcobjects',['findRecalcObjects',['../class_simulation.html#a662702acf2d446dbdef0e1c87bf21038',1,'Simulation']]], - ['flipspin',['flipSpin',['../class_exciton.html#a85a7b8561f6e294593679e53dd3b91a9',1,'Exciton']]] + ['getcharge',['getCharge',['../class_polaron.html#a41c1a9b0b23a35e6ff765c8168a9fb6f',1,'Polaron']]], + ['getchargeextractionmap',['getChargeExtractionMap',['../class_o_s_c___sim.html#a6ce1e72c2a7d1161f844ebd46231c961',1,'OSC_Sim']]], + ['getdoscorrelationdata',['getDOSCorrelationData',['../class_o_s_c___sim.html#a804f8facf0f5ee86d0234662a0719571',1,'OSC_Sim']]], + ['getdynamicselectronenergies',['getDynamicsElectronEnergies',['../class_o_s_c___sim.html#a37e177cadae01e8a2ec753cdae165297',1,'OSC_Sim']]], + ['getdynamicselectronmsdv',['getDynamicsElectronMSDV',['../class_o_s_c___sim.html#afbca0a6245adc11d0d7f38e01366556b',1,'OSC_Sim']]], + ['getdynamicsexcitonenergies',['getDynamicsExcitonEnergies',['../class_o_s_c___sim.html#a87440b491cad2d1ece7b5745bda5d42a',1,'OSC_Sim']]], + ['getdynamicsexcitonmsdv',['getDynamicsExcitonMSDV',['../class_o_s_c___sim.html#a77e6cd447d0dcab5d4bb99643c43d3a4',1,'OSC_Sim']]], + ['getdynamicsholeenergies',['getDynamicsHoleEnergies',['../class_o_s_c___sim.html#ae42c945062f1c9efd5e83a58633d6d7a',1,'OSC_Sim']]], + ['getdynamicsholemsdv',['getDynamicsHoleMSDV',['../class_o_s_c___sim.html#afd5da99934f079631f1192e0caba1ad4',1,'OSC_Sim']]], + ['getdynamicstransientelectrons',['getDynamicsTransientElectrons',['../class_o_s_c___sim.html#a53be32d48cc8319af6143fe858b3840f',1,'OSC_Sim']]], + ['getdynamicstransientholes',['getDynamicsTransientHoles',['../class_o_s_c___sim.html#ad6bffe074bd5e2c5b2f08561fa8bf117',1,'OSC_Sim']]], + ['getdynamicstransientsinglets',['getDynamicsTransientSinglets',['../class_o_s_c___sim.html#af13f7b1b8f6df5a45c0111d11c0057db',1,'OSC_Sim']]], + ['getdynamicstransienttimes',['getDynamicsTransientTimes',['../class_o_s_c___sim.html#acde6068549f59f813d2faed73f6fedc9',1,'OSC_Sim']]], + ['getdynamicstransienttriplets',['getDynamicsTransientTriplets',['../class_o_s_c___sim.html#a91d2dad10391f727348d96b0b21c8304',1,'OSC_Sim']]], + ['getenergy',['getEnergy',['../class_site___o_s_c.html#a59db8200675439b98f42d3c35310fe68',1,'Site_OSC']]], + ['getevents',['getEvents',['../class_o_s_c___sim.html#af28e344999ddebba9753941d9fdf7680',1,'OSC_Sim']]], + ['geteventtype',['getEventType',['../class_exciton___creation.html#a8dab95eb7d8c0a2cfddb8bf130d3b805',1,'Exciton_Creation::getEventType()'],['../class_exciton___hop.html#ae79c31ef3452d2df87c35cc4cea79dde',1,'Exciton_Hop::getEventType()'],['../class_exciton___recombination.html#a350762cfaad5f5dcae1dad4a346647dd',1,'Exciton_Recombination::getEventType()'],['../class_exciton___dissociation.html#a97807fc4d23400cdbf10203f648d5625',1,'Exciton_Dissociation::getEventType()'],['../class_exciton___intersystem___crossing.html#a71c1bddcd80eab242213437da1f04bcc',1,'Exciton_Intersystem_Crossing::getEventType()'],['../class_exciton___exciton___annihilation.html#a562b2fe42b2a17aae2aa1d48cd4d3e9b',1,'Exciton_Exciton_Annihilation::getEventType()'],['../class_exciton___polaron___annihilation.html#adc5151dc5f846383581878240ddecef2',1,'Exciton_Polaron_Annihilation::getEventType()'],['../class_polaron___hop.html#abf5fa9620dc51aa613eabb0b7e7cad57',1,'Polaron_Hop::getEventType()'],['../class_polaron___recombination.html#acee53d16091a8f3922421b92389d5dc0',1,'Polaron_Recombination::getEventType()'],['../class_polaron___extraction.html#a321feea52f3bed67e566e52682208f45',1,'Polaron_Extraction::getEventType()']]], + ['getexcitondiffusiondata',['getExcitonDiffusionData',['../class_o_s_c___sim.html#a9e3597fee2330eaa06d5030a15ecb716',1,'OSC_Sim']]], + ['getexcitonhoplengthdata',['getExcitonHopLengthData',['../class_o_s_c___sim.html#adfd8dca7bdcca75cb4a39e1f07d919f6',1,'OSC_Sim']]], + ['getexcitonlifetimedata',['getExcitonLifetimeData',['../class_o_s_c___sim.html#a40a44c612cc51a766b7310341aede5c5',1,'OSC_Sim']]], + ['getinternalfield',['getInternalField',['../class_o_s_c___sim.html#aa8ee0a55f34be1da2f78be2931584723',1,'OSC_Sim']]], + ['getn_5fbimolecular_5frecombinations',['getN_bimolecular_recombinations',['../class_o_s_c___sim.html#afa814164790477d643fe04fca021483d',1,'OSC_Sim']]], + ['getn_5felectrons_5fcollected',['getN_electrons_collected',['../class_o_s_c___sim.html#abb8a9aefba0cb189fbaeba0f9bdff180',1,'OSC_Sim']]], + ['getn_5felectrons_5fcreated',['getN_electrons_created',['../class_o_s_c___sim.html#aadb3c72821bac6153f0f848ce1a87c2b',1,'OSC_Sim']]], + ['getn_5felectrons_5frecombined',['getN_electrons_recombined',['../class_o_s_c___sim.html#a15b6b1af56c4285252c6102b3672481c',1,'OSC_Sim']]], + ['getn_5fexcitons_5fcreated',['getN_excitons_created',['../class_o_s_c___sim.html#ad38ee5ecfdd65fe4d162763842a2a4b6',1,'OSC_Sim::getN_excitons_created() const'],['../class_o_s_c___sim.html#a3159c7445f114390c7fb52fa73d559ef',1,'OSC_Sim::getN_excitons_created(const short site_type) const']]], + ['getn_5fexcitons_5fdissociated',['getN_excitons_dissociated',['../class_o_s_c___sim.html#ad4e1d01074aa99ab83a86caf102ed1f0',1,'OSC_Sim']]], + ['getn_5fgeminate_5frecombinations',['getN_geminate_recombinations',['../class_o_s_c___sim.html#a152520ae80b5f879578c01c25b9b4a7f',1,'OSC_Sim']]], + ['getn_5fholes_5fcollected',['getN_holes_collected',['../class_o_s_c___sim.html#a6809c1bc0b9fd7852621a86eb49457e0',1,'OSC_Sim']]], + ['getn_5fholes_5fcreated',['getN_holes_created',['../class_o_s_c___sim.html#ae6bc3f06e216d922075039c6e3f900c9',1,'OSC_Sim']]], + ['getn_5fholes_5frecombined',['getN_holes_recombined',['../class_o_s_c___sim.html#aa6a8cfccbe629cba8ed137e3c205affe',1,'OSC_Sim']]], + ['getn_5fsinglet_5fexcitons_5frecombined',['getN_singlet_excitons_recombined',['../class_o_s_c___sim.html#a6362a3edee0a1a4f63bdc82a7a0275c5',1,'OSC_Sim']]], + ['getn_5fsinglet_5fpolaron_5fannihilations',['getN_singlet_polaron_annihilations',['../class_o_s_c___sim.html#adbc98ace600bbb3e78bced45d3aaf7b0',1,'OSC_Sim']]], + ['getn_5fsinglet_5fsinglet_5fannihilations',['getN_singlet_singlet_annihilations',['../class_o_s_c___sim.html#aa057ee46e104e6fcb21b7724bfd2c1a9',1,'OSC_Sim']]], + ['getn_5fsinglet_5ftriplet_5fannihilations',['getN_singlet_triplet_annihilations',['../class_o_s_c___sim.html#a8d295ea6ed8c006f9770af4e33758725',1,'OSC_Sim']]], + ['getn_5ftransient_5fcycles',['getN_transient_cycles',['../class_o_s_c___sim.html#a0b14455856a684c59ba7d496782b0941',1,'OSC_Sim']]], + ['getn_5ftriplet_5fexcitons_5frecombined',['getN_triplet_excitons_recombined',['../class_o_s_c___sim.html#ad24aaff4c9a327bb978180d47dd67036',1,'OSC_Sim']]], + ['getn_5ftriplet_5fpolaron_5fannihilations',['getN_triplet_polaron_annihilations',['../class_o_s_c___sim.html#a54ad519acee6dbd67c19d5baa3bc4919',1,'OSC_Sim']]], + ['getn_5ftriplet_5ftriplet_5fannihilations',['getN_triplet_triplet_annihilations',['../class_o_s_c___sim.html#a3e70becfb20c8eaa420fd64d12492881',1,'OSC_Sim']]], + ['getobjecttype',['getObjectType',['../class_exciton.html#a1d78a570cc48f62886033465219dd04c',1,'Exciton::getObjectType()'],['../class_polaron.html#a95feb449d2164870d7ba4b85f6e7dba9',1,'Polaron::getObjectType()']]], + ['getsiteenergies',['getSiteEnergies',['../class_o_s_c___sim.html#aae233390486c4db28a72936dd7d398f1',1,'OSC_Sim']]], + ['getspin',['getSpin',['../class_exciton.html#a91cb4c59b7e7a7fb756aae4c4109dba3',1,'Exciton']]], + ['gettoftransientcounts',['getToFTransientCounts',['../class_o_s_c___sim.html#aa3e0342b2a8c7dc5a62211dd6161027f',1,'OSC_Sim']]], + ['gettoftransientenergies',['getToFTransientEnergies',['../class_o_s_c___sim.html#a03028810d8edc276ed7ab0a8228feaaa',1,'OSC_Sim']]], + ['gettoftransienttimes',['getToFTransientTimes',['../class_o_s_c___sim.html#a01a190017bc7a7e04c6af824fa47dbce',1,'OSC_Sim']]], + ['gettoftransientvelocities',['getToFTransientVelocities',['../class_o_s_c___sim.html#a15a47ed6657c8301eac0c938f8887324',1,'OSC_Sim']]], + ['gettransittimedata',['getTransitTimeData',['../class_o_s_c___sim.html#ac5a6b2ae37d49b9114fe032f533e41c6',1,'OSC_Sim']]], + ['gettype',['getType',['../class_site___o_s_c.html#a704a0a9fe1bab69db8343f5225d5888e',1,'Site_OSC']]] ]; diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js index fb4d631..ee885b0 100644 --- a/docs/search/functions_4.js +++ b/docs/search/functions_4.js @@ -1,76 +1,5 @@ var searchData= [ - ['generaterandomcoords',['generateRandomCoords',['../class_lattice.html#a9fbb3c8bc23999ff685b6837beb62606',1,'Lattice']]], - ['generaterandomx',['generateRandomX',['../class_lattice.html#ab78435e50e3bf9f376c04fc305785bb4',1,'Lattice']]], - ['generaterandomy',['generateRandomY',['../class_lattice.html#a180a9d79a40b1a0a092c8ab489569700',1,'Lattice']]], - ['generaterandomz',['generateRandomZ',['../class_lattice.html#a96006397a6ab389fb1eee87fde6e2165',1,'Lattice']]], - ['getallobjectptrs',['getAllObjectPtrs',['../class_simulation.html#a620684b9ac1fb07344c4c2237ed9f352',1,'Simulation']]], - ['getcharge',['getCharge',['../class_polaron.html#a41c1a9b0b23a35e6ff765c8168a9fb6f',1,'Polaron']]], - ['getchargeextractionmap',['getChargeExtractionMap',['../class_o_s_c___sim.html#a6ce1e72c2a7d1161f844ebd46231c961',1,'OSC_Sim']]], - ['getcoords',['getCoords',['../class_object.html#a08df08943dc634609fa69b356a37d73f',1,'Object']]], - ['getcreationtime',['getCreationTime',['../class_object.html#a6f91c3f8b61cb9c9a8db662ac07d92e9',1,'Object']]], - ['getdestcoords',['getDestCoords',['../class_event.html#a6b4287971afaca8211f91f361ef55997',1,'Event']]], - ['getdiffusiondata',['getDiffusionData',['../class_o_s_c___sim.html#a97f04719b91c90ac64dd8186476aa5f5',1,'OSC_Sim']]], - ['getdoscorrelationdata',['getDOSCorrelationData',['../class_o_s_c___sim.html#a804f8facf0f5ee86d0234662a0719571',1,'OSC_Sim']]], - ['getdynamicselectronenergies',['getDynamicsElectronEnergies',['../class_o_s_c___sim.html#a37e177cadae01e8a2ec753cdae165297',1,'OSC_Sim']]], - ['getdynamicselectronmsdv',['getDynamicsElectronMSDV',['../class_o_s_c___sim.html#afbca0a6245adc11d0d7f38e01366556b',1,'OSC_Sim']]], - ['getdynamicsexcitonenergies',['getDynamicsExcitonEnergies',['../class_o_s_c___sim.html#a87440b491cad2d1ece7b5745bda5d42a',1,'OSC_Sim']]], - ['getdynamicsexcitonmsdv',['getDynamicsExcitonMSDV',['../class_o_s_c___sim.html#a77e6cd447d0dcab5d4bb99643c43d3a4',1,'OSC_Sim']]], - ['getdynamicsholeenergies',['getDynamicsHoleEnergies',['../class_o_s_c___sim.html#ae42c945062f1c9efd5e83a58633d6d7a',1,'OSC_Sim']]], - ['getdynamicsholemsdv',['getDynamicsHoleMSDV',['../class_o_s_c___sim.html#afd5da99934f079631f1192e0caba1ad4',1,'OSC_Sim']]], - ['getdynamicstransientelectrons',['getDynamicsTransientElectrons',['../class_o_s_c___sim.html#a53be32d48cc8319af6143fe858b3840f',1,'OSC_Sim']]], - ['getdynamicstransientholes',['getDynamicsTransientHoles',['../class_o_s_c___sim.html#ad6bffe074bd5e2c5b2f08561fa8bf117',1,'OSC_Sim']]], - ['getdynamicstransientsinglets',['getDynamicsTransientSinglets',['../class_o_s_c___sim.html#af13f7b1b8f6df5a45c0111d11c0057db',1,'OSC_Sim']]], - ['getdynamicstransienttimes',['getDynamicsTransientTimes',['../class_o_s_c___sim.html#acde6068549f59f813d2faed73f6fedc9',1,'OSC_Sim']]], - ['getdynamicstransienttriplets',['getDynamicsTransientTriplets',['../class_o_s_c___sim.html#a91d2dad10391f727348d96b0b21c8304',1,'OSC_Sim']]], - ['getenergy',['getEnergy',['../class_site___o_s_c.html#a59db8200675439b98f42d3c35310fe68',1,'Site_OSC']]], - ['geterrormessage',['getErrorMessage',['../class_simulation.html#a03d249f04c0921c938d68337dfc65f56',1,'Simulation']]], - ['geteventit',['getEventIt',['../class_object.html#aa7c58e0319b7715c8d36f38ca7acf03e',1,'Object']]], - ['geteventtype',['getEventType',['../class_exciton___creation.html#a8dab95eb7d8c0a2cfddb8bf130d3b805',1,'Exciton_Creation::getEventType()'],['../class_exciton___hop.html#ae79c31ef3452d2df87c35cc4cea79dde',1,'Exciton_Hop::getEventType()'],['../class_exciton___recombination.html#a350762cfaad5f5dcae1dad4a346647dd',1,'Exciton_Recombination::getEventType()'],['../class_exciton___dissociation.html#a97807fc4d23400cdbf10203f648d5625',1,'Exciton_Dissociation::getEventType()'],['../class_exciton___intersystem___crossing.html#a71c1bddcd80eab242213437da1f04bcc',1,'Exciton_Intersystem_Crossing::getEventType()'],['../class_exciton___exciton___annihilation.html#a562b2fe42b2a17aae2aa1d48cd4d3e9b',1,'Exciton_Exciton_Annihilation::getEventType()'],['../class_exciton___polaron___annihilation.html#adc5151dc5f846383581878240ddecef2',1,'Exciton_Polaron_Annihilation::getEventType()'],['../class_event.html#a77ff5602b20c468b3b72e9924038ac94',1,'Event::getEventType()'],['../class_polaron___hop.html#abf5fa9620dc51aa613eabb0b7e7cad57',1,'Polaron_Hop::getEventType()'],['../class_polaron___recombination.html#acee53d16091a8f3922421b92389d5dc0',1,'Polaron_Recombination::getEventType()'],['../class_polaron___extraction.html#a321feea52f3bed67e566e52682208f45',1,'Polaron_Extraction::getEventType()']]], - ['getexecutiontime',['getExecutionTime',['../class_event.html#a65550d982cdf85d993658cd7070c960c',1,'Event']]], - ['getheight',['getHeight',['../class_lattice.html#aaa0cba3ab33ac620d9b9f9508c56d1ac',1,'Lattice']]], - ['getid',['getId',['../class_simulation.html#aff40f268758bd9a0f390a649fc45c05e',1,'Simulation']]], - ['getinternalfield',['getInternalField',['../class_o_s_c___sim.html#aa8ee0a55f34be1da2f78be2931584723',1,'OSC_Sim']]], - ['getlength',['getLength',['../class_lattice.html#a4b43b67a36fcd3dfe62c9eeaffa561d2',1,'Lattice']]], - ['getn_5fbimolecular_5frecombinations',['getN_bimolecular_recombinations',['../class_o_s_c___sim.html#afa814164790477d643fe04fca021483d',1,'OSC_Sim']]], - ['getn_5felectrons_5fcollected',['getN_electrons_collected',['../class_o_s_c___sim.html#abb8a9aefba0cb189fbaeba0f9bdff180',1,'OSC_Sim']]], - ['getn_5felectrons_5fcreated',['getN_electrons_created',['../class_o_s_c___sim.html#aadb3c72821bac6153f0f848ce1a87c2b',1,'OSC_Sim']]], - ['getn_5felectrons_5frecombined',['getN_electrons_recombined',['../class_o_s_c___sim.html#a15b6b1af56c4285252c6102b3672481c',1,'OSC_Sim']]], - ['getn_5fevents',['getN_events',['../class_simulation.html#a7d88f18a1ba988d7e77b8be8de5b10d1',1,'Simulation']]], - ['getn_5fevents_5fexecuted',['getN_events_executed',['../class_simulation.html#a52cb5564151421cbefaca56357738de7',1,'Simulation']]], - ['getn_5fexcitons_5fcreated',['getN_excitons_created',['../class_o_s_c___sim.html#ad38ee5ecfdd65fe4d162763842a2a4b6',1,'OSC_Sim::getN_excitons_created() const'],['../class_o_s_c___sim.html#a3159c7445f114390c7fb52fa73d559ef',1,'OSC_Sim::getN_excitons_created(const short site_type) const']]], - ['getn_5fexcitons_5fdissociated',['getN_excitons_dissociated',['../class_o_s_c___sim.html#ad4e1d01074aa99ab83a86caf102ed1f0',1,'OSC_Sim']]], - ['getn_5fgeminate_5frecombinations',['getN_geminate_recombinations',['../class_o_s_c___sim.html#a152520ae80b5f879578c01c25b9b4a7f',1,'OSC_Sim']]], - ['getn_5fholes_5fcollected',['getN_holes_collected',['../class_o_s_c___sim.html#a6809c1bc0b9fd7852621a86eb49457e0',1,'OSC_Sim']]], - ['getn_5fholes_5fcreated',['getN_holes_created',['../class_o_s_c___sim.html#ae6bc3f06e216d922075039c6e3f900c9',1,'OSC_Sim']]], - ['getn_5fholes_5frecombined',['getN_holes_recombined',['../class_o_s_c___sim.html#aa6a8cfccbe629cba8ed137e3c205affe',1,'OSC_Sim']]], - ['getn_5fsinglet_5fexcitons_5frecombined',['getN_singlet_excitons_recombined',['../class_o_s_c___sim.html#a6362a3edee0a1a4f63bdc82a7a0275c5',1,'OSC_Sim']]], - ['getn_5fsinglet_5fpolaron_5fannihilations',['getN_singlet_polaron_annihilations',['../class_o_s_c___sim.html#adbc98ace600bbb3e78bced45d3aaf7b0',1,'OSC_Sim']]], - ['getn_5fsinglet_5fsinglet_5fannihilations',['getN_singlet_singlet_annihilations',['../class_o_s_c___sim.html#aa057ee46e104e6fcb21b7724bfd2c1a9',1,'OSC_Sim']]], - ['getn_5fsinglet_5ftriplet_5fannihilations',['getN_singlet_triplet_annihilations',['../class_o_s_c___sim.html#a8d295ea6ed8c006f9770af4e33758725',1,'OSC_Sim']]], - ['getn_5ftransient_5fcycles',['getN_transient_cycles',['../class_o_s_c___sim.html#a0b14455856a684c59ba7d496782b0941',1,'OSC_Sim']]], - ['getn_5ftriplet_5fexcitons_5frecombined',['getN_triplet_excitons_recombined',['../class_o_s_c___sim.html#ad24aaff4c9a327bb978180d47dd67036',1,'OSC_Sim']]], - ['getn_5ftriplet_5fpolaron_5fannihilations',['getN_triplet_polaron_annihilations',['../class_o_s_c___sim.html#a54ad519acee6dbd67c19d5baa3bc4919',1,'OSC_Sim']]], - ['getn_5ftriplet_5ftriplet_5fannihilations',['getN_triplet_triplet_annihilations',['../class_o_s_c___sim.html#a3e70becfb20c8eaa420fd64d12492881',1,'OSC_Sim']]], - ['getnumsites',['getNumSites',['../class_lattice.html#a4be17e9123f7737387991a9d1a8b87b3',1,'Lattice']]], - ['getobjectptr',['getObjectPtr',['../class_event.html#a5317d42bb07d0e75bec0c13bd9bf6de8',1,'Event::getObjectPtr()'],['../class_site.html#aecb14e440914b4d3d4aa7294419791e2',1,'Site::getObjectPtr()']]], - ['getobjecttargetptr',['getObjectTargetPtr',['../class_event.html#ab86f724c3c894faa1d6ccca78c357d24',1,'Event']]], - ['getobjecttype',['getObjectType',['../class_exciton.html#a1d78a570cc48f62886033465219dd04c',1,'Exciton::getObjectType()'],['../class_object.html#a79449834c55900dd1d96fb7c530e4515',1,'Object::getObjectType()'],['../class_polaron.html#a95feb449d2164870d7ba4b85f6e7dba9',1,'Polaron::getObjectType()']]], - ['getsitecoords',['getSiteCoords',['../class_lattice.html#a74a170b841ad1b74dad43519d37e9eaf',1,'Lattice']]], - ['getsiteenergies',['getSiteEnergies',['../class_o_s_c___sim.html#aae233390486c4db28a72936dd7d398f1',1,'OSC_Sim']]], - ['getsiteindex',['getSiteIndex',['../class_lattice.html#a60431f6504a253d47acb0b02f524571c',1,'Lattice']]], - ['getsiteit',['getSiteIt',['../class_lattice.html#a46f7d12855d24e1bdd02814621b0a178',1,'Lattice']]], - ['getspin',['getSpin',['../class_exciton.html#a91cb4c59b7e7a7fb756aae4c4109dba3',1,'Exciton']]], - ['gettag',['getTag',['../class_object.html#aa9653577e8d0ac4b7b86d23d12f8b31b',1,'Object']]], - ['gettemp',['getTemp',['../class_simulation.html#ac00bce7c792fb67a75395c46c03efe0a',1,'Simulation']]], - ['gettime',['getTime',['../class_simulation.html#a391ac262089c8bda8e76ce930b1db88b',1,'Simulation']]], - ['gettoftransientcounts',['getToFTransientCounts',['../class_o_s_c___sim.html#aa3e0342b2a8c7dc5a62211dd6161027f',1,'OSC_Sim']]], - ['gettoftransientenergies',['getToFTransientEnergies',['../class_o_s_c___sim.html#a03028810d8edc276ed7ab0a8228feaaa',1,'OSC_Sim']]], - ['gettoftransienttimes',['getToFTransientTimes',['../class_o_s_c___sim.html#a01a190017bc7a7e04c6af824fa47dbce',1,'OSC_Sim']]], - ['gettoftransientvelocities',['getToFTransientVelocities',['../class_o_s_c___sim.html#a15a47ed6657c8301eac0c938f8887324',1,'OSC_Sim']]], - ['gettransittimedata',['getTransitTimeData',['../class_o_s_c___sim.html#ac5a6b2ae37d49b9114fe032f533e41c6',1,'OSC_Sim']]], - ['gettype',['getType',['../class_site___o_s_c.html#a704a0a9fe1bab69db8343f5225d5888e',1,'Site_OSC']]], - ['getunitsize',['getUnitSize',['../class_lattice.html#ac6963a6b2b4b8d96d3417f6e9c2a509d',1,'Lattice']]], - ['getvolume',['getVolume',['../class_lattice.html#a46f9cec33419459b64ff0efdf47a38b9',1,'Lattice::getVolume()'],['../class_simulation.html#a623c3fbc431ab74c2d2b2374a3b5a3a7',1,'Simulation::getVolume()']]], - ['getwidth',['getWidth',['../class_lattice.html#aeb60d2b8bfb02d9da8bef463f0d41428',1,'Lattice']]] + ['importparameters',['importParameters',['../main_8cpp.html#a5022bbed737fe6cd84ab11f8d0b3e1a2',1,'main.cpp']]], + ['init',['init',['../class_o_s_c___sim.html#a7c6cce40287a60c271509c1f3d8eef9a',1,'OSC_Sim']]] ]; diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js index 2a3d4fb..ef1415a 100644 --- a/docs/search/functions_5.js +++ b/docs/search/functions_5.js @@ -1,17 +1,4 @@ var searchData= [ - ['importbooleanparam',['importBooleanParam',['../namespace_utils.html#a98a0cc670327fc21e272a07cbf5025ec',1,'Utils']]], - ['importparameters',['importParameters',['../main_8cpp.html#a5022bbed737fe6cd84ab11f8d0b3e1a2',1,'main.cpp']]], - ['incrementdx',['incrementDX',['../class_object.html#a3d7c877f4aa179d9a56050c5faddc18d',1,'Object']]], - ['incrementdy',['incrementDY',['../class_object.html#a9df010818be72d15bad7985bf8a89ba0',1,'Object']]], - ['incrementdz',['incrementDZ',['../class_object.html#a440b267c478f5d63db1954bdbd543408',1,'Object']]], - ['init',['init',['../class_lattice.html#a2b0a88048fae662aa71386a3a123a260',1,'Lattice::init()'],['../class_simulation.html#af88e5e0634b373ba28f1dd87670725a6',1,'Simulation::init()'],['../class_o_s_c___sim.html#a7c6cce40287a60c271509c1f3d8eef9a',1,'OSC_Sim::init()']]], - ['integratedata',['integrateData',['../namespace_utils.html#a49411c9d4c7a065dbcf237aa27a84023',1,'Utils']]], - ['interpolatedata',['interpolateData',['../namespace_utils.html#af68995497777ee14d812c65991a4046f',1,'Utils']]], - ['intpow',['intpow',['../namespace_utils.html#affd19edaa58a3f8425e1f7b4c9233f8a',1,'Utils']]], - ['isloggingenabled',['isLoggingEnabled',['../class_simulation.html#ac7c8a49a4cc506b850891480e0aae512',1,'Simulation']]], - ['isoccupied',['isOccupied',['../class_lattice.html#a4d37afb6ad4c67f4f6462c2f6d5c337d',1,'Lattice::isOccupied()'],['../class_site.html#a30991b768ded0bb441c5bb54a789160a',1,'Site::isOccupied()']]], - ['isxperiodic',['isXPeriodic',['../class_lattice.html#accf3b995e0d0cb422907728a29b1b523',1,'Lattice']]], - ['isyperiodic',['isYPeriodic',['../class_lattice.html#ac3192acefb019c5258143a6c758b3e48',1,'Lattice']]], - ['iszperiodic',['isZPeriodic',['../class_lattice.html#ad7dd1b12a253e506aba5cedb57bf86ea',1,'Lattice']]] + ['main',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]] ]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js index b824531..271329f 100644 --- a/docs/search/functions_6.js +++ b/docs/search/functions_6.js @@ -1,4 +1,5 @@ var searchData= [ - ['lattice',['Lattice',['../class_lattice.html#a70a5cebc3c0c5a0f609be0592e7cc117',1,'Lattice']]] + ['osc_5fsim',['OSC_Sim',['../class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e',1,'OSC_Sim']]], + ['outputstatus',['outputStatus',['../class_o_s_c___sim.html#a78aa9badec9d28169b7b71b29e90c265',1,'OSC_Sim']]] ]; diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js index a2bd795..e128ae0 100644 --- a/docs/search/functions_7.js +++ b/docs/search/functions_7.js @@ -1,8 +1,7 @@ var searchData= [ - ['main',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], - ['moveobject',['moveObject',['../class_simulation.html#a59666ceba048bec35557cb8b691d24d9',1,'Simulation']]], - ['mpi_5fcalculatevectoravg',['MPI_calculateVectorAvg',['../namespace_utils.html#a71eeb04d74f890da3d27128c37fcff78',1,'Utils']]], - ['mpi_5fcalculatevectorsum',['MPI_calculateVectorSum',['../namespace_utils.html#a0a17d0ad939418dc745bcfd194ce2bc1',1,'Utils::MPI_calculateVectorSum(const std::vector< double > &input_vector)'],['../namespace_utils.html#ad7b634b14633046c6da126945d688aaf',1,'Utils::MPI_calculateVectorSum(const std::vector< int > &input_vector)']]], - ['mpi_5fgathervectors',['MPI_gatherVectors',['../namespace_utils.html#aee439dad386e2477d34968311b166c85',1,'Utils']]] + ['polaron',['Polaron',['../class_polaron.html#a7392b742eec8c5bf4438198901c570a9',1,'Polaron']]], + ['polaron_5fextraction',['Polaron_Extraction',['../class_polaron___extraction.html#a2ac84785d2265bc1ee0e23a7fbcee03f',1,'Polaron_Extraction::Polaron_Extraction()'],['../class_polaron___extraction.html#ad3fd4585a4caf22be10c8730540b23db',1,'Polaron_Extraction::Polaron_Extraction(Simulation *simulation_ptr)']]], + ['polaron_5fhop',['Polaron_Hop',['../class_polaron___hop.html#ae8da015929a00a85dc56bc694cd62fa4',1,'Polaron_Hop::Polaron_Hop()'],['../class_polaron___hop.html#abaedc081f619b8e63363fac7f036b09f',1,'Polaron_Hop::Polaron_Hop(Simulation *simulation_ptr)']]], + ['polaron_5frecombination',['Polaron_Recombination',['../class_polaron___recombination.html#a653484a1c11e4bc0a744875184fdaf98',1,'Polaron_Recombination::Polaron_Recombination()'],['../class_polaron___recombination.html#abdb1e837d36802564eaaa6053ccb697c',1,'Polaron_Recombination::Polaron_Recombination(Simulation *simulation_ptr)']]] ]; diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js index bbfb599..f6fa99b 100644 --- a/docs/search/functions_8.js +++ b/docs/search/functions_8.js @@ -1,10 +1,4 @@ var searchData= [ - ['object',['Object',['../class_object.html#a40860402e64d8008fb42329df7097cdb',1,'Object::Object()'],['../class_object.html#aff050a622272cc7667251c7315f09fd7',1,'Object::Object(const double time, const int tag_num, const Coords &start_coords)']]], - ['operator_21_3d',['operator!=',['../struct_coords.html#aaea2c566feec4e4bf56b27a34568be76',1,'Coords']]], - ['operator_3d_3d',['operator==',['../struct_coords.html#ad3347f6568814df1a2b98b3cd0b78632',1,'Coords']]], - ['osc_5fsim',['OSC_Sim',['../class_o_s_c___sim.html#aeb3e7abae4824a3a506156551e0c9c8e',1,'OSC_Sim']]], - ['outputlatticeoccupancy',['outputLatticeOccupancy',['../class_lattice.html#aa1f65735ecbd750ec04b6413b4d47316',1,'Lattice']]], - ['outputstatus',['outputStatus',['../class_o_s_c___sim.html#a78aa9badec9d28169b7b71b29e90c265',1,'OSC_Sim']]], - ['outputvectortofile',['outputVectorToFile',['../namespace_utils.html#ab76081fb0fa0e9e1633b1b2255db4164',1,'Utils::outputVectorToFile(std::vector< T > &vec, std::string filename)'],['../namespace_utils.html#a652ab00e72bce852c2b9798ff3e1a60b',1,'Utils::outputVectorToFile(std::vector< std::pair< T, T >> &vec, std::string filename)']]] + ['reassignsiteenergies',['reassignSiteEnergies',['../class_o_s_c___sim.html#a75f8094106ced73efaec99cc302f2aa9',1,'OSC_Sim']]] ]; diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js index e128ae0..32ad283 100644 --- a/docs/search/functions_9.js +++ b/docs/search/functions_9.js @@ -1,7 +1,7 @@ var searchData= [ - ['polaron',['Polaron',['../class_polaron.html#a7392b742eec8c5bf4438198901c570a9',1,'Polaron']]], - ['polaron_5fextraction',['Polaron_Extraction',['../class_polaron___extraction.html#a2ac84785d2265bc1ee0e23a7fbcee03f',1,'Polaron_Extraction::Polaron_Extraction()'],['../class_polaron___extraction.html#ad3fd4585a4caf22be10c8730540b23db',1,'Polaron_Extraction::Polaron_Extraction(Simulation *simulation_ptr)']]], - ['polaron_5fhop',['Polaron_Hop',['../class_polaron___hop.html#ae8da015929a00a85dc56bc694cd62fa4',1,'Polaron_Hop::Polaron_Hop()'],['../class_polaron___hop.html#abaedc081f619b8e63363fac7f036b09f',1,'Polaron_Hop::Polaron_Hop(Simulation *simulation_ptr)']]], - ['polaron_5frecombination',['Polaron_Recombination',['../class_polaron___recombination.html#a653484a1c11e4bc0a744875184fdaf98',1,'Polaron_Recombination::Polaron_Recombination()'],['../class_polaron___recombination.html#abdb1e837d36802564eaaa6053ccb697c',1,'Polaron_Recombination::Polaron_Recombination(Simulation *simulation_ptr)']]] + ['setenergy',['setEnergy',['../class_site___o_s_c.html#ac7751de2f821aa8562793f8636027313',1,'Site_OSC']]], + ['setenergyit',['setEnergyIt',['../class_site___o_s_c.html#a22e8a3f697fa69d6a382e91c78a181b3',1,'Site_OSC']]], + ['setspin',['setSpin',['../class_exciton.html#a43da382ee3ab29d032ab60a8e97ebaf6',1,'Exciton']]], + ['settype',['setType',['../class_site___o_s_c.html#a47f7ed4c7e916e01bd5cfc37599babb6',1,'Site_OSC']]] ]; diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js index b977b23..da7b332 100644 --- a/docs/search/functions_a.js +++ b/docs/search/functions_a.js @@ -1,10 +1,4 @@ var searchData= [ - ['rand01',['rand01',['../class_simulation.html#a938de951b2766c6fb2b00cf9714caffa',1,'Simulation']]], - ['reassignsiteenergies',['reassignSiteEnergies',['../class_o_s_c___sim.html#a75f8094106ced73efaec99cc302f2aa9',1,'OSC_Sim']]], - ['removeduplicates',['removeDuplicates',['../namespace_utils.html#a5f64d00eec0b50ac5bd119652c99d01b',1,'Utils']]], - ['removeevent',['removeEvent',['../class_simulation.html#a3a4808231d4760f0ab30ea39b6a67e8c',1,'Simulation']]], - ['removeobject',['removeObject',['../class_simulation.html#a39da17feb9b487c05c9a834def44972f',1,'Simulation']]], - ['removewhitespace',['removeWhitespace',['../namespace_utils.html#af9ceee3373ffe317f07d177cf0dfe056',1,'Utils']]], - ['resetinitialcoords',['resetInitialCoords',['../class_object.html#a1d1115b941cc6965dddf5510cf49bbee',1,'Object']]] + ['_7eosc_5fsim',['~OSC_Sim',['../class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112',1,'OSC_Sim']]] ]; diff --git a/docs/search/functions_b.html b/docs/search/functions_b.html deleted file mode 100644 index b99b702..0000000 --- a/docs/search/functions_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js deleted file mode 100644 index edc6746..0000000 --- a/docs/search/functions_b.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['setcoords',['setCoords',['../class_object.html#a34a164e4709e5daaba7a38c3d61ae617',1,'Object']]], - ['setdestcoords',['setDestCoords',['../class_event.html#a166ae40f2bf26c1e08097697ca76c884',1,'Event']]], - ['setenergy',['setEnergy',['../class_site___o_s_c.html#ac7751de2f821aa8562793f8636027313',1,'Site_OSC']]], - ['setenergyit',['setEnergyIt',['../class_site___o_s_c.html#a22e8a3f697fa69d6a382e91c78a181b3',1,'Site_OSC']]], - ['seterrormessage',['setErrorMessage',['../class_simulation.html#a0f06c75c9dd6be20a3911781b48fd467',1,'Simulation']]], - ['seteventit',['setEventIt',['../class_object.html#ad5025bd84ae91d6426f458f32e582293',1,'Object']]], - ['setexecutiontime',['setExecutionTime',['../class_event.html#af4282af20bd5b3940ba75c23e6032f18',1,'Event']]], - ['setgeneratorseed',['setGeneratorSeed',['../class_simulation.html#a1a825b9da67da43104137662694655bd',1,'Simulation']]], - ['setobjectevent',['setObjectEvent',['../class_simulation.html#a43ca861e2514feb7f93bf18ea3b73385',1,'Simulation']]], - ['setobjectptr',['setObjectPtr',['../class_event.html#a078cadde679fc042486ef065a097c7af',1,'Event::setObjectPtr()'],['../class_site.html#a9a0d305451d7732dbb193e7fd2f502ca',1,'Site::setObjectPtr()']]], - ['setobjecttargetptr',['setObjectTargetPtr',['../class_event.html#a2e868dc951b6fec86703dcd7776680e0',1,'Event']]], - ['setoccupied',['setOccupied',['../class_lattice.html#a515b8bc548ef4a87c3495a7352a60399',1,'Lattice::setOccupied()'],['../class_site.html#ab85bec20c3a6067a7dca659221d57d25',1,'Site::setOccupied()']]], - ['setsitepointers',['setSitePointers',['../class_lattice.html#a59546ec4301871897ba5adfda1126741',1,'Lattice']]], - ['setspin',['setSpin',['../class_exciton.html#a43da382ee3ab29d032ab60a8e97ebaf6',1,'Exciton']]], - ['settime',['setTime',['../class_simulation.html#aae315f0881f0b385c566f96beb01d3f6',1,'Simulation']]], - ['settype',['setType',['../class_site___o_s_c.html#a47f7ed4c7e916e01bd5cfc37599babb6',1,'Site_OSC']]], - ['setxyz',['setXYZ',['../struct_coords.html#a88de3a6ee710766eb9c9444cee45a9f3',1,'Coords']]], - ['simulation',['Simulation',['../class_simulation.html#a5b224cc5b36bcc8eb29689aff223de41',1,'Simulation']]], - ['site',['Site',['../class_site.html#a4119f95c45d57d6edf419169dea993f4',1,'Site']]] -]; diff --git a/docs/search/functions_c.html b/docs/search/functions_c.html deleted file mode 100644 index 3a33d87..0000000 --- a/docs/search/functions_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js deleted file mode 100644 index 380798b..0000000 --- a/docs/search/functions_c.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['vector_5favg',['vector_avg',['../namespace_utils.html#acbc030ce708229ea393215fe13e6377b',1,'Utils']]], - ['vector_5fstdev',['vector_stdev',['../namespace_utils.html#a6bfa9b066d7c0967807d588024c15d4e',1,'Utils']]] -]; diff --git a/docs/search/functions_d.html b/docs/search/functions_d.html deleted file mode 100644 index 31b75b8..0000000 --- a/docs/search/functions_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js deleted file mode 100644 index d464c22..0000000 --- a/docs/search/functions_d.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['_7eevent',['~Event',['../class_event.html#a7704ec01ce91e673885792054214b3d2',1,'Event']]], - ['_7eobject',['~Object',['../class_object.html#ae8f5483f459e46687bd01e6f9977afd3',1,'Object']]], - ['_7eosc_5fsim',['~OSC_Sim',['../class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112',1,'OSC_Sim']]], - ['_7esimulation',['~Simulation',['../class_simulation.html#a80fad3f57dfaf195a36f7bc49bc88279',1,'Simulation']]], - ['_7esite',['~Site',['../class_site.html#a81f7ae39aaa7a981a6871c4816ee5562',1,'Site']]] -]; diff --git a/docs/search/functions_e.html b/docs/search/functions_e.html deleted file mode 100644 index e256cb6..0000000 --- a/docs/search/functions_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js deleted file mode 100644 index d464c22..0000000 --- a/docs/search/functions_e.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['_7eevent',['~Event',['../class_event.html#a7704ec01ce91e673885792054214b3d2',1,'Event']]], - ['_7eobject',['~Object',['../class_object.html#ae8f5483f459e46687bd01e6f9977afd3',1,'Object']]], - ['_7eosc_5fsim',['~OSC_Sim',['../class_o_s_c___sim.html#a2085bcb7a9308a9544db674852947112',1,'OSC_Sim']]], - ['_7esimulation',['~Simulation',['../class_simulation.html#a80fad3f57dfaf195a36f7bc49bc88279',1,'Simulation']]], - ['_7esite',['~Site',['../class_site.html#a81f7ae39aaa7a981a6871c4816ee5562',1,'Site']]] -]; diff --git a/docs/search/namespaces_0.html b/docs/search/namespaces_0.html deleted file mode 100644 index f55ca63..0000000 --- a/docs/search/namespaces_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/namespaces_0.js b/docs/search/namespaces_0.js deleted file mode 100644 index eba1f84..0000000 --- a/docs/search/namespaces_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['utils',['Utils',['../namespace_utils.html',1,'']]] -]; diff --git a/docs/search/pages_1.html b/docs/search/pages_1.html deleted file mode 100644 index 924fb48..0000000 --- a/docs/search/pages_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/pages_1.js b/docs/search/pages_1.js deleted file mode 100644 index 9b87c36..0000000 --- a/docs/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['kmc_5flattice',['KMC_Lattice',['../md__k_m_c__lattice__r_e_a_d_m_e.html',1,'']]] -]; diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js index 809b7e1..76d8f8c 100644 --- a/docs/search/searchdata.js +++ b/docs/search/searchdata.js @@ -1,33 +1,30 @@ var indexSectionsWithContent = { - 0: "acdefghiklmnoprstuvwxyz~", - 1: "celops", - 2: "u", - 3: "elmoprsu", - 4: "acefgilmoprsv~", - 5: "acdefghilmnoprstuwxyz", - 6: "ek" + 0: "acdefghilmnoprst~", + 1: "eops", + 2: "emopr", + 3: "cefgimoprs~", + 4: "acdefhilmnoprst", + 5: "e" }; var indexSectionNames = { 0: "all", 1: "classes", - 2: "namespaces", - 3: "files", - 4: "functions", - 5: "variables", - 6: "pages" + 2: "files", + 3: "functions", + 4: "variables", + 5: "pages" }; var indexSectionLabels = { 0: "All", 1: "Classes", - 2: "Namespaces", - 3: "Files", - 4: "Functions", - 5: "Variables", - 6: "Pages" + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Pages" }; diff --git a/docs/search/variables_10.html b/docs/search/variables_10.html deleted file mode 100644 index b62b717..0000000 --- a/docs/search/variables_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/variables_10.js b/docs/search/variables_10.js deleted file mode 100644 index d523ba1..0000000 --- a/docs/search/variables_10.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['unit_5fsize',['Unit_size',['../struct_parameters___lattice.html#a5f9628b968ba4206a7650c774827b1f0',1,'Parameters_Lattice::Unit_size()'],['../struct_parameters___simulation.html#ab5dda6868bc9359d97a614f027734349',1,'Parameters_Simulation::Unit_size()']]] -]; diff --git a/docs/search/variables_11.html b/docs/search/variables_11.html deleted file mode 100644 index 2ce8561..0000000 --- a/docs/search/variables_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/variables_11.js b/docs/search/variables_11.js deleted file mode 100644 index c342d99..0000000 --- a/docs/search/variables_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['width',['Width',['../struct_parameters___lattice.html#a40f8633b47d204f471d041a0d8216e5b',1,'Parameters_Lattice::Width()'],['../struct_parameters___simulation.html#aab42f7eb6b5ec1916475d9022ed5165f',1,'Parameters_Simulation::Width()']]] -]; diff --git a/docs/search/variables_12.html b/docs/search/variables_12.html deleted file mode 100644 index bba5857..0000000 --- a/docs/search/variables_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/variables_12.js b/docs/search/variables_12.js deleted file mode 100644 index 4c991c6..0000000 --- a/docs/search/variables_12.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['x',['x',['../struct_coords.html#a59992d986e76375f31828d32c05cd15d',1,'Coords']]] -]; diff --git a/docs/search/variables_13.html b/docs/search/variables_13.html deleted file mode 100644 index c92cbcc..0000000 --- a/docs/search/variables_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/variables_13.js b/docs/search/variables_13.js deleted file mode 100644 index f709ab4..0000000 --- a/docs/search/variables_13.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['y',['y',['../struct_coords.html#a7ed64d02fb7550f1506a93fcfab7f16f',1,'Coords']]] -]; diff --git a/docs/search/variables_14.html b/docs/search/variables_14.html deleted file mode 100644 index 2c46204..0000000 --- a/docs/search/variables_14.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/variables_14.js b/docs/search/variables_14.js deleted file mode 100644 index 7335166..0000000 --- a/docs/search/variables_14.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['z',['z',['../struct_coords.html#a96d176173dbd5d97e7af63e1b5c0f7e1',1,'Coords']]] -]; diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js index 9083f2c..6c25b14 100644 --- a/docs/search/variables_3.js +++ b/docs/search/variables_3.js @@ -12,8 +12,6 @@ var searchData= ['enable_5fexponential_5fdos',['Enable_exponential_dos',['../struct_parameters___o_p_v.html#a9692bc03df03c19811fb493cc3fe29b4',1,'Parameters_OPV']]], ['enable_5fextraction_5fmap_5foutput',['Enable_extraction_map_output',['../struct_parameters__main.html#a079360f17cc2e2384453eed92bdf8c79',1,'Parameters_main']]], ['enable_5ffret_5ftriplet_5fannihilation',['Enable_FRET_triplet_annihilation',['../struct_parameters___o_p_v.html#a2d31dc44f632afe90ee6218ac3509a5d',1,'Parameters_OPV']]], - ['enable_5ffrm',['Enable_FRM',['../struct_parameters___simulation.html#a38edd7e56d80c80258d0563f602d09ea',1,'Parameters_Simulation']]], - ['enable_5ffull_5frecalc',['Enable_full_recalc',['../struct_parameters___simulation.html#adc993369a04d510926341a72e4e54aad',1,'Parameters_Simulation']]], ['enable_5fgaussian_5fdos',['Enable_gaussian_dos',['../struct_parameters___o_p_v.html#a24ccb55ce844f78e86285b10f0b1ec3a',1,'Parameters_OPV']]], ['enable_5fgaussian_5fkernel',['Enable_gaussian_kernel',['../struct_parameters___o_p_v.html#a6388c89e616d7a9b46cb2b6434d78d64',1,'Parameters_OPV']]], ['enable_5fgaussian_5fpolaron_5fdelocalization',['Enable_gaussian_polaron_delocalization',['../struct_parameters___o_p_v.html#ad39e7b00fa98521b41ced155411c04cc',1,'Parameters_OPV']]], @@ -21,24 +19,19 @@ var searchData= ['enable_5fimport_5fmorphology_5fset',['Enable_import_morphology_set',['../struct_parameters__main.html#a8aa74759fabf23d020278b8b98a2d155',1,'Parameters_main']]], ['enable_5fimport_5fmorphology_5fsingle',['Enable_import_morphology_single',['../struct_parameters__main.html#a433c8fa80ee6c02fe5613d4eb2075546',1,'Parameters_main']]], ['enable_5fiqe_5ftest',['Enable_IQE_test',['../struct_parameters___o_p_v.html#ad3bc54415641c1f4c376fd3a4f30fdb4',1,'Parameters_OPV']]], - ['enable_5flogging',['Enable_logging',['../struct_parameters___simulation.html#afde5aaac6f3cd226249cb9646a4c8a4b',1,'Parameters_Simulation']]], ['enable_5fmarcus',['Enable_marcus',['../struct_parameters___o_p_v.html#a3b4cef2f21e25714c83300b942f7daee',1,'Parameters_OPV']]], ['enable_5fmiller_5fabrahams',['Enable_miller_abrahams',['../struct_parameters___o_p_v.html#afeee51274483a1167c3dc3ca35c4de52',1,'Parameters_OPV']]], ['enable_5fneat',['Enable_neat',['../struct_parameters___o_p_v.html#ab935c4ae52bebea687d925e997fc8218',1,'Parameters_OPV']]], - ['enable_5fperiodic_5fx',['Enable_periodic_x',['../struct_parameters___lattice.html#a922f7e39f7debc0bd06ec1f0f1ca8257',1,'Parameters_Lattice::Enable_periodic_x()'],['../struct_parameters___simulation.html#a5624782454dd99271ad94923f53866b4',1,'Parameters_Simulation::Enable_periodic_x()']]], - ['enable_5fperiodic_5fy',['Enable_periodic_y',['../struct_parameters___lattice.html#a9ee9c54330f7cd0bc32fd80e27ee87ff',1,'Parameters_Lattice::Enable_periodic_y()'],['../struct_parameters___simulation.html#a1c3d79a4dcf194f884e8a3d346c2261a',1,'Parameters_Simulation::Enable_periodic_y()']]], - ['enable_5fperiodic_5fz',['Enable_periodic_z',['../struct_parameters___lattice.html#aff375c434a37560067d9cc677cff8052',1,'Parameters_Lattice::Enable_periodic_z()'],['../struct_parameters___simulation.html#a0d318f1a9eb75fa909b4ae8266696be1',1,'Parameters_Simulation::Enable_periodic_z()']]], ['enable_5fphase_5frestriction',['Enable_phase_restriction',['../struct_parameters___o_p_v.html#ac43d697cf3102e9da550b62d7dc5c84c',1,'Parameters_OPV']]], ['enable_5fpower_5fkernel',['Enable_power_kernel',['../struct_parameters___o_p_v.html#a01b94b4373991c4fc0fd66a7bcdb1e20',1,'Parameters_OPV']]], ['enable_5frandom_5fblend',['Enable_random_blend',['../struct_parameters___o_p_v.html#a7d9cc030e67893f064dfb45b674f1d0e',1,'Parameters_OPV']]], - ['enable_5fselective_5frecalc',['Enable_selective_recalc',['../struct_parameters___simulation.html#a41834e14865ffe273bfb5824193371b9',1,'Parameters_Simulation']]], + ['enable_5ftof_5fenergy_5fplacement',['Enable_ToF_energy_placement',['../struct_parameters___o_p_v.html#a94746d884494104c15bc1d5f39b20b2b',1,'Parameters_OPV']]], + ['enable_5ftof_5frandom_5fplacement',['Enable_ToF_random_placement',['../struct_parameters___o_p_v.html#abcda83235617668783cbe31d5b66221d',1,'Parameters_OPV']]], ['enable_5ftof_5ftest',['Enable_ToF_test',['../struct_parameters___o_p_v.html#a323fbbb8b40716209cedf5b7c5c3a3e5',1,'Parameters_OPV']]], ['energy_5fstdev_5facceptor',['Energy_stdev_acceptor',['../struct_parameters___o_p_v.html#ad61e54053c0644fca200f803197a4550',1,'Parameters_OPV']]], ['energy_5fstdev_5fdonor',['Energy_stdev_donor',['../struct_parameters___o_p_v.html#a3eb760b9191be8648c7a45998be875a4',1,'Parameters_OPV']]], ['energy_5furbach_5facceptor',['Energy_urbach_acceptor',['../struct_parameters___o_p_v.html#a5863aeb083dd3856ed971e0203530cb1',1,'Parameters_OPV']]], ['energy_5furbach_5fdonor',['Energy_urbach_donor',['../struct_parameters___o_p_v.html#ae8e499e0d565d7ac48fa7be42494af4f',1,'Parameters_OPV']]], - ['error_5ffound',['Error_found',['../class_simulation.html#a7f4615a7898fb83d09be5e7fad92bb47',1,'Simulation']]], - ['error_5fmsg',['error_msg',['../class_simulation.html#a954f41f4332dabda0fecea5d72151988',1,'Simulation']]], ['event_5ftype',['event_type',['../class_exciton___creation.html#a5330b61389f7f7077591e6103305ef8b',1,'Exciton_Creation::event_type()'],['../class_exciton___hop.html#a26793057d5626f5468c963fcfdcf12e7',1,'Exciton_Hop::event_type()'],['../class_exciton___recombination.html#ab8f4e745d18d7ca4116391ad6bcdad06',1,'Exciton_Recombination::event_type()'],['../class_exciton___dissociation.html#a009d4b2010325d0d6d99ac622fb807c2',1,'Exciton_Dissociation::event_type()'],['../class_exciton___intersystem___crossing.html#ae5c1e0d54e2c0c35a804d8bc1784b991',1,'Exciton_Intersystem_Crossing::event_type()'],['../class_exciton___exciton___annihilation.html#a49c819bed5c04d1cf9593d38101cbf4e',1,'Exciton_Exciton_Annihilation::event_type()'],['../class_exciton___polaron___annihilation.html#a7b5ecb43b118ae000d13c54f29beef3c',1,'Exciton_Polaron_Annihilation::event_type()'],['../class_polaron___hop.html#a81cb99b47abaa48ff6ef5eb489d8461b',1,'Polaron_Hop::event_type()'],['../class_polaron___recombination.html#a8ca56257989c90fa565d7b208f686a3a',1,'Polaron_Recombination::event_type()'],['../class_polaron___extraction.html#a9f6cdc1f0cf053c85c2ec9ed8e4a636b',1,'Polaron_Extraction::event_type()']]], ['exciton_5fdissociation_5fcutoff',['Exciton_dissociation_cutoff',['../struct_parameters___o_p_v.html#ad4aaf3f56fe842bc998b3608c5b5b40b',1,'Parameters_OPV']]], ['exciton_5fgeneration_5frate_5facceptor',['Exciton_generation_rate_acceptor',['../struct_parameters___o_p_v.html#a33f99679368b91dcc39f305a658d793b',1,'Parameters_OPV']]], diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js index eba0f65..46793a0 100644 --- a/docs/search/variables_5.js +++ b/docs/search/variables_5.js @@ -1,4 +1,5 @@ var searchData= [ - ['generator',['generator',['../class_simulation.html#a4c1d9071749e0fd93e70380cafb28417',1,'Simulation']]] + ['homo_5facceptor',['Homo_acceptor',['../struct_parameters___o_p_v.html#ab0c38a77995655ced34190093ac1143c',1,'Parameters_OPV']]], + ['homo_5fdonor',['Homo_donor',['../struct_parameters___o_p_v.html#ad46868a18b99d4bcd71dd1d69a51663d',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js index d5db468..744ab5d 100644 --- a/docs/search/variables_6.js +++ b/docs/search/variables_6.js @@ -1,6 +1,5 @@ var searchData= [ - ['height',['Height',['../struct_parameters___lattice.html#a1b59e1a307ad945fb86f44b68354f605',1,'Parameters_Lattice::Height()'],['../struct_parameters___simulation.html#aa1ffb86ac22065dbbb58196db95b3199',1,'Parameters_Simulation::Height()']]], - ['homo_5facceptor',['Homo_acceptor',['../struct_parameters___o_p_v.html#ab0c38a77995655ced34190093ac1143c',1,'Parameters_OPV']]], - ['homo_5fdonor',['Homo_donor',['../struct_parameters___o_p_v.html#ad46868a18b99d4bcd71dd1d69a51663d',1,'Parameters_OPV']]] + ['internal_5fpotential',['Internal_potential',['../struct_parameters___o_p_v.html#ae102e54304cbdcb804e2c78a60093c6e',1,'Parameters_OPV']]], + ['iqe_5ftime_5fcutoff',['IQE_time_cutoff',['../struct_parameters___o_p_v.html#a03f47eeffc8a2984c03208ca2f84717d',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_7.js b/docs/search/variables_7.js index 744ab5d..91db8cc 100644 --- a/docs/search/variables_7.js +++ b/docs/search/variables_7.js @@ -1,5 +1,5 @@ var searchData= [ - ['internal_5fpotential',['Internal_potential',['../struct_parameters___o_p_v.html#ae102e54304cbdcb804e2c78a60093c6e',1,'Parameters_OPV']]], - ['iqe_5ftime_5fcutoff',['IQE_time_cutoff',['../struct_parameters___o_p_v.html#a03f47eeffc8a2984c03208ca2f84717d',1,'Parameters_OPV']]] + ['lumo_5facceptor',['Lumo_acceptor',['../struct_parameters___o_p_v.html#a6fb516e12ab3e48294e13fdde4fb006c',1,'Parameters_OPV']]], + ['lumo_5fdonor',['Lumo_donor',['../struct_parameters___o_p_v.html#a20bbec19017e73934b1cf68909c9171c',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_8.js b/docs/search/variables_8.js index ba2fd49..7eae77e 100644 --- a/docs/search/variables_8.js +++ b/docs/search/variables_8.js @@ -1,8 +1,6 @@ var searchData= [ - ['lattice',['lattice',['../class_simulation.html#afb2cf4feeb4d8292eeba8f9ef393c6a4',1,'Simulation']]], - ['length',['Length',['../struct_parameters___lattice.html#a99c7d553111bb660032bb7ca6f592da6',1,'Parameters_Lattice::Length()'],['../struct_parameters___simulation.html#a038f418e1b2e4fec3fc6a8336f8b23de',1,'Parameters_Simulation::Length()']]], - ['logfile',['Logfile',['../struct_parameters___simulation.html#aa491c1f8ca5045b4cc9c8bbfcb930024',1,'Parameters_Simulation::Logfile()'],['../class_simulation.html#a741321a0bbc89d51b969abda469e6f96',1,'Simulation::Logfile()']]], - ['lumo_5facceptor',['Lumo_acceptor',['../struct_parameters___o_p_v.html#a6fb516e12ab3e48294e13fdde4fb006c',1,'Parameters_OPV']]], - ['lumo_5fdonor',['Lumo_donor',['../struct_parameters___o_p_v.html#a20bbec19017e73934b1cf68909c9171c',1,'Parameters_OPV']]] + ['morphology_5ffile',['Morphology_file',['../struct_parameters___o_p_v.html#a388e0f507abb6742efa33b1ca765ee13',1,'Parameters_OPV']]], + ['morphology_5ffilename',['Morphology_filename',['../struct_parameters__main.html#afa70eb9e8a4c918f678a26fa202650b1',1,'Parameters_main']]], + ['morphology_5fset_5fformat',['Morphology_set_format',['../struct_parameters__main.html#afecfab3c5afbb2bc04ef3d5e8064c4a5',1,'Parameters_main']]] ]; diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js index 7eae77e..11263b4 100644 --- a/docs/search/variables_9.js +++ b/docs/search/variables_9.js @@ -1,6 +1,6 @@ var searchData= [ - ['morphology_5ffile',['Morphology_file',['../struct_parameters___o_p_v.html#a388e0f507abb6742efa33b1ca765ee13',1,'Parameters_OPV']]], - ['morphology_5ffilename',['Morphology_filename',['../struct_parameters__main.html#afa70eb9e8a4c918f678a26fa202650b1',1,'Parameters_main']]], - ['morphology_5fset_5fformat',['Morphology_set_format',['../struct_parameters__main.html#afecfab3c5afbb2bc04ef3d5e8064c4a5',1,'Parameters_main']]] + ['n_5fmorphology_5fset_5fsize',['N_morphology_set_size',['../struct_parameters__main.html#a60ee2e45a155f2bef0681753e877bc5f',1,'Parameters_main']]], + ['n_5ftest_5fmorphologies',['N_test_morphologies',['../struct_parameters__main.html#a14e42c0e58188c19f860de2046cf796b',1,'Parameters_main']]], + ['n_5ftests',['N_tests',['../struct_parameters___o_p_v.html#a502f1711127656c15e78c7f1db168e0f',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_a.js b/docs/search/variables_a.js index 11263b4..0882171 100644 --- a/docs/search/variables_a.js +++ b/docs/search/variables_a.js @@ -1,6 +1,4 @@ var searchData= [ - ['n_5fmorphology_5fset_5fsize',['N_morphology_set_size',['../struct_parameters__main.html#a60ee2e45a155f2bef0681753e877bc5f',1,'Parameters_main']]], - ['n_5ftest_5fmorphologies',['N_test_morphologies',['../struct_parameters__main.html#a14e42c0e58188c19f860de2046cf796b',1,'Parameters_main']]], - ['n_5ftests',['N_tests',['../struct_parameters___o_p_v.html#a502f1711127656c15e78c7f1db168e0f',1,'Parameters_OPV']]] + ['object_5ftype',['object_type',['../class_exciton.html#a3fa1eccff8270355ff24d27f687cb205',1,'Exciton::object_type()'],['../class_polaron.html#a44f333ff29e50353d82f04ca0c070e79',1,'Polaron::object_type()']]] ]; diff --git a/docs/search/variables_b.js b/docs/search/variables_b.js index 0882171..e8d4493 100644 --- a/docs/search/variables_b.js +++ b/docs/search/variables_b.js @@ -1,4 +1,8 @@ var searchData= [ - ['object_5ftype',['object_type',['../class_exciton.html#a3fa1eccff8270355ff24d27f687cb205',1,'Exciton::object_type()'],['../class_polaron.html#a44f333ff29e50353d82f04ca0c070e79',1,'Polaron::object_type()']]] + ['polaron_5fdelocalization_5flength',['Polaron_delocalization_length',['../struct_parameters___o_p_v.html#a837c9091cc25ab63dccc75e79e286f9e',1,'Parameters_OPV']]], + ['polaron_5fhopping_5fcutoff',['Polaron_hopping_cutoff',['../struct_parameters___o_p_v.html#a5955354f2f5aa71d3e2fc6380b508c88',1,'Parameters_OPV']]], + ['polaron_5flocalization_5facceptor',['Polaron_localization_acceptor',['../struct_parameters___o_p_v.html#a794d79e512c2c161ab6242f5d372faef',1,'Parameters_OPV']]], + ['polaron_5flocalization_5fdonor',['Polaron_localization_donor',['../struct_parameters___o_p_v.html#ac9f152101e3970f62d321eb02d211020',1,'Parameters_OPV']]], + ['power_5fkernel_5fexponent',['Power_kernel_exponent',['../struct_parameters___o_p_v.html#adbae25d923c165c2dbc0785c68fccf92',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js index e8d4493..3c5e5fa 100644 --- a/docs/search/variables_c.js +++ b/docs/search/variables_c.js @@ -1,8 +1,22 @@ var searchData= [ - ['polaron_5fdelocalization_5flength',['Polaron_delocalization_length',['../struct_parameters___o_p_v.html#a837c9091cc25ab63dccc75e79e286f9e',1,'Parameters_OPV']]], - ['polaron_5fhopping_5fcutoff',['Polaron_hopping_cutoff',['../struct_parameters___o_p_v.html#a5955354f2f5aa71d3e2fc6380b508c88',1,'Parameters_OPV']]], - ['polaron_5flocalization_5facceptor',['Polaron_localization_acceptor',['../struct_parameters___o_p_v.html#a794d79e512c2c161ab6242f5d372faef',1,'Parameters_OPV']]], - ['polaron_5flocalization_5fdonor',['Polaron_localization_donor',['../struct_parameters___o_p_v.html#ac9f152101e3970f62d321eb02d211020',1,'Parameters_OPV']]], - ['power_5fkernel_5fexponent',['Power_kernel_exponent',['../struct_parameters___o_p_v.html#adbae25d923c165c2dbc0785c68fccf92',1,'Parameters_OPV']]] + ['r_5fexciton_5fdissociation_5facceptor',['R_exciton_dissociation_acceptor',['../struct_parameters___o_p_v.html#aa52d0a4c9795976b4516e214104dd815',1,'Parameters_OPV']]], + ['r_5fexciton_5fdissociation_5fdonor',['R_exciton_dissociation_donor',['../struct_parameters___o_p_v.html#ad021801a526f21ae43037f3e573d50e7',1,'Parameters_OPV']]], + ['r_5fexciton_5fexciton_5fannihilation_5facceptor',['R_exciton_exciton_annihilation_acceptor',['../struct_parameters___o_p_v.html#ad6159c82da14b1d66e1afd03d6e4bc00',1,'Parameters_OPV']]], + ['r_5fexciton_5fexciton_5fannihilation_5fdonor',['R_exciton_exciton_annihilation_donor',['../struct_parameters___o_p_v.html#a66580234d20375c017a3e9bad303062d',1,'Parameters_OPV']]], + ['r_5fexciton_5fisc_5facceptor',['R_exciton_isc_acceptor',['../struct_parameters___o_p_v.html#a9ebd4980c4aa28e62f725e39f93fbc3b',1,'Parameters_OPV']]], + ['r_5fexciton_5fisc_5fdonor',['R_exciton_isc_donor',['../struct_parameters___o_p_v.html#a424ec76e06337bddcdd68550e448792f',1,'Parameters_OPV']]], + ['r_5fexciton_5fpolaron_5fannihilation_5facceptor',['R_exciton_polaron_annihilation_acceptor',['../struct_parameters___o_p_v.html#a8ce8b281ba79d02867f60e22142cf7c8',1,'Parameters_OPV']]], + ['r_5fexciton_5fpolaron_5fannihilation_5fdonor',['R_exciton_polaron_annihilation_donor',['../struct_parameters___o_p_v.html#ad4e469469b09cf493dc46a4ca1f60705',1,'Parameters_OPV']]], + ['r_5fexciton_5frisc_5facceptor',['R_exciton_risc_acceptor',['../struct_parameters___o_p_v.html#ad6198eb075e56b1e69880d8323d7bf65',1,'Parameters_OPV']]], + ['r_5fexciton_5frisc_5fdonor',['R_exciton_risc_donor',['../struct_parameters___o_p_v.html#ace6d9ab02c79ca3483988089e4c1b9a3',1,'Parameters_OPV']]], + ['r_5fpolaron_5fhopping_5facceptor',['R_polaron_hopping_acceptor',['../struct_parameters___o_p_v.html#ad84bb0a0fe56bb1f5157304f63d1503c',1,'Parameters_OPV']]], + ['r_5fpolaron_5fhopping_5fdonor',['R_polaron_hopping_donor',['../struct_parameters___o_p_v.html#a8938dab01474122541123c605a25c56b',1,'Parameters_OPV']]], + ['r_5fpolaron_5frecombination',['R_polaron_recombination',['../struct_parameters___o_p_v.html#a0e55f779bf42b42e399c86914c759140',1,'Parameters_OPV']]], + ['r_5fsinglet_5fhopping_5facceptor',['R_singlet_hopping_acceptor',['../struct_parameters___o_p_v.html#addf89db7c365dc9c1c0ed5ac405c6e79',1,'Parameters_OPV']]], + ['r_5fsinglet_5fhopping_5fdonor',['R_singlet_hopping_donor',['../struct_parameters___o_p_v.html#a292a5caeb412ff44bb829d06f22eebac',1,'Parameters_OPV']]], + ['r_5ftriplet_5fhopping_5facceptor',['R_triplet_hopping_acceptor',['../struct_parameters___o_p_v.html#a6e99571da45591efb83182cd95b72884',1,'Parameters_OPV']]], + ['r_5ftriplet_5fhopping_5fdonor',['R_triplet_hopping_donor',['../struct_parameters___o_p_v.html#a8de2d7b5eac87daa32ece5ff4ec81917',1,'Parameters_OPV']]], + ['reorganization_5facceptor',['Reorganization_acceptor',['../struct_parameters___o_p_v.html#ab0a52db3d6358562603083f6839cf8ad',1,'Parameters_OPV']]], + ['reorganization_5fdonor',['Reorganization_donor',['../struct_parameters___o_p_v.html#a05158466d7973c098d8b6b5b4b43143c',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_d.js b/docs/search/variables_d.js index 614df12..d5e835e 100644 --- a/docs/search/variables_d.js +++ b/docs/search/variables_d.js @@ -1,23 +1,7 @@ var searchData= [ - ['r_5fexciton_5fdissociation_5facceptor',['R_exciton_dissociation_acceptor',['../struct_parameters___o_p_v.html#aa52d0a4c9795976b4516e214104dd815',1,'Parameters_OPV']]], - ['r_5fexciton_5fdissociation_5fdonor',['R_exciton_dissociation_donor',['../struct_parameters___o_p_v.html#ad021801a526f21ae43037f3e573d50e7',1,'Parameters_OPV']]], - ['r_5fexciton_5fexciton_5fannihilation_5facceptor',['R_exciton_exciton_annihilation_acceptor',['../struct_parameters___o_p_v.html#ad6159c82da14b1d66e1afd03d6e4bc00',1,'Parameters_OPV']]], - ['r_5fexciton_5fexciton_5fannihilation_5fdonor',['R_exciton_exciton_annihilation_donor',['../struct_parameters___o_p_v.html#a66580234d20375c017a3e9bad303062d',1,'Parameters_OPV']]], - ['r_5fexciton_5fisc_5facceptor',['R_exciton_isc_acceptor',['../struct_parameters___o_p_v.html#a9ebd4980c4aa28e62f725e39f93fbc3b',1,'Parameters_OPV']]], - ['r_5fexciton_5fisc_5fdonor',['R_exciton_isc_donor',['../struct_parameters___o_p_v.html#a424ec76e06337bddcdd68550e448792f',1,'Parameters_OPV']]], - ['r_5fexciton_5fpolaron_5fannihilation_5facceptor',['R_exciton_polaron_annihilation_acceptor',['../struct_parameters___o_p_v.html#a8ce8b281ba79d02867f60e22142cf7c8',1,'Parameters_OPV']]], - ['r_5fexciton_5fpolaron_5fannihilation_5fdonor',['R_exciton_polaron_annihilation_donor',['../struct_parameters___o_p_v.html#ad4e469469b09cf493dc46a4ca1f60705',1,'Parameters_OPV']]], - ['r_5fexciton_5frisc_5facceptor',['R_exciton_risc_acceptor',['../struct_parameters___o_p_v.html#ad6198eb075e56b1e69880d8323d7bf65',1,'Parameters_OPV']]], - ['r_5fexciton_5frisc_5fdonor',['R_exciton_risc_donor',['../struct_parameters___o_p_v.html#ace6d9ab02c79ca3483988089e4c1b9a3',1,'Parameters_OPV']]], - ['r_5fpolaron_5fhopping_5facceptor',['R_polaron_hopping_acceptor',['../struct_parameters___o_p_v.html#ad84bb0a0fe56bb1f5157304f63d1503c',1,'Parameters_OPV']]], - ['r_5fpolaron_5fhopping_5fdonor',['R_polaron_hopping_donor',['../struct_parameters___o_p_v.html#a8938dab01474122541123c605a25c56b',1,'Parameters_OPV']]], - ['r_5fpolaron_5frecombination',['R_polaron_recombination',['../struct_parameters___o_p_v.html#a0e55f779bf42b42e399c86914c759140',1,'Parameters_OPV']]], - ['r_5fsinglet_5fhopping_5facceptor',['R_singlet_hopping_acceptor',['../struct_parameters___o_p_v.html#addf89db7c365dc9c1c0ed5ac405c6e79',1,'Parameters_OPV']]], - ['r_5fsinglet_5fhopping_5fdonor',['R_singlet_hopping_donor',['../struct_parameters___o_p_v.html#a292a5caeb412ff44bb829d06f22eebac',1,'Parameters_OPV']]], - ['r_5ftriplet_5fhopping_5facceptor',['R_triplet_hopping_acceptor',['../struct_parameters___o_p_v.html#a6e99571da45591efb83182cd95b72884',1,'Parameters_OPV']]], - ['r_5ftriplet_5fhopping_5fdonor',['R_triplet_hopping_donor',['../struct_parameters___o_p_v.html#a8de2d7b5eac87daa32ece5ff4ec81917',1,'Parameters_OPV']]], - ['recalc_5fcutoff',['Recalc_cutoff',['../struct_parameters___simulation.html#af55371ca9e7027e799f5be46e40eacc1',1,'Parameters_Simulation']]], - ['reorganization_5facceptor',['Reorganization_acceptor',['../struct_parameters___o_p_v.html#ab0a52db3d6358562603083f6839cf8ad',1,'Parameters_OPV']]], - ['reorganization_5fdonor',['Reorganization_donor',['../struct_parameters___o_p_v.html#a05158466d7973c098d8b6b5b4b43143c',1,'Parameters_OPV']]] + ['singlet_5flifetime_5facceptor',['Singlet_lifetime_acceptor',['../struct_parameters___o_p_v.html#ab8ebcc4989f4b0fd5bfcd0ae59fb3ee6',1,'Parameters_OPV']]], + ['singlet_5flifetime_5fdonor',['Singlet_lifetime_donor',['../struct_parameters___o_p_v.html#a4d772923d973c80fbd4b8fe18fec9f16',1,'Parameters_OPV']]], + ['singlet_5flocalization_5facceptor',['Singlet_localization_acceptor',['../struct_parameters___o_p_v.html#abd57d59ec0099983c1f288fb0e4a20b1',1,'Parameters_OPV']]], + ['singlet_5flocalization_5fdonor',['Singlet_localization_donor',['../struct_parameters___o_p_v.html#a8c027a9085d8bc5bd0a4e8385acd83ce',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js index 2dbb536..8e0e67b 100644 --- a/docs/search/variables_e.js +++ b/docs/search/variables_e.js @@ -1,8 +1,15 @@ var searchData= [ - ['sim_5fptr',['sim_ptr',['../class_event.html#aa372e6b2345c96b3c0ce21e9603280fb',1,'Event']]], - ['singlet_5flifetime_5facceptor',['Singlet_lifetime_acceptor',['../struct_parameters___o_p_v.html#ab8ebcc4989f4b0fd5bfcd0ae59fb3ee6',1,'Parameters_OPV']]], - ['singlet_5flifetime_5fdonor',['Singlet_lifetime_donor',['../struct_parameters___o_p_v.html#a4d772923d973c80fbd4b8fe18fec9f16',1,'Parameters_OPV']]], - ['singlet_5flocalization_5facceptor',['Singlet_localization_acceptor',['../struct_parameters___o_p_v.html#abd57d59ec0099983c1f288fb0e4a20b1',1,'Parameters_OPV']]], - ['singlet_5flocalization_5fdonor',['Singlet_localization_donor',['../struct_parameters___o_p_v.html#a8c027a9085d8bc5bd0a4e8385acd83ce',1,'Parameters_OPV']]] + ['thickness_5facceptor',['Thickness_acceptor',['../struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a',1,'Parameters_OPV']]], + ['thickness_5fdonor',['Thickness_donor',['../struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3',1,'Parameters_OPV']]], + ['tof_5finitial_5fpolarons',['ToF_initial_polarons',['../struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa',1,'Parameters_OPV']]], + ['tof_5fplacement_5fenergy',['ToF_placement_energy',['../struct_parameters___o_p_v.html#af6e728c4d1efe0ba5b6b4e28c67a0378',1,'Parameters_OPV']]], + ['tof_5fpnts_5fper_5fdecade',['ToF_pnts_per_decade',['../struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7',1,'Parameters_OPV']]], + ['tof_5fpolaron_5ftype',['ToF_polaron_type',['../struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165',1,'Parameters_OPV']]], + ['tof_5ftransient_5fend',['ToF_transient_end',['../struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1',1,'Parameters_OPV']]], + ['tof_5ftransient_5fstart',['ToF_transient_start',['../struct_parameters___o_p_v.html#af5e99b212ed3ece698fb032dd347af63',1,'Parameters_OPV']]], + ['triplet_5flifetime_5facceptor',['Triplet_lifetime_acceptor',['../struct_parameters___o_p_v.html#a4149a095d01c62295865a9064fccb637',1,'Parameters_OPV']]], + ['triplet_5flifetime_5fdonor',['Triplet_lifetime_donor',['../struct_parameters___o_p_v.html#acb3f6fce76263baa95b6a20c7aeb5c4b',1,'Parameters_OPV']]], + ['triplet_5flocalization_5facceptor',['Triplet_localization_acceptor',['../struct_parameters___o_p_v.html#aac11d663f53039160f936a5c670151ed',1,'Parameters_OPV']]], + ['triplet_5flocalization_5fdonor',['Triplet_localization_donor',['../struct_parameters___o_p_v.html#a5b7e58b86bfd90243849862f074ebf51',1,'Parameters_OPV']]] ]; diff --git a/docs/search/variables_f.html b/docs/search/variables_f.html deleted file mode 100644 index cc86fb5..0000000 --- a/docs/search/variables_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                      -
                                                                      Loading...
                                                                      -
                                                                      - -
                                                                      Searching...
                                                                      -
                                                                      No Matches
                                                                      - -
                                                                      - - diff --git a/docs/search/variables_f.js b/docs/search/variables_f.js deleted file mode 100644 index 62084ef..0000000 --- a/docs/search/variables_f.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['temperature',['Temperature',['../struct_parameters___simulation.html#aad5bdf64239620d1b214c49532dba743',1,'Parameters_Simulation']]], - ['thickness_5facceptor',['Thickness_acceptor',['../struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a',1,'Parameters_OPV']]], - ['thickness_5fdonor',['Thickness_donor',['../struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3',1,'Parameters_OPV']]], - ['tof_5finitial_5fpolarons',['ToF_initial_polarons',['../struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa',1,'Parameters_OPV']]], - ['tof_5fpnts_5fper_5fdecade',['ToF_pnts_per_decade',['../struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7',1,'Parameters_OPV']]], - ['tof_5fpolaron_5ftype',['ToF_polaron_type',['../struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165',1,'Parameters_OPV']]], - ['tof_5ftransient_5fend',['ToF_transient_end',['../struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1',1,'Parameters_OPV']]], - ['tof_5ftransient_5fstart',['ToF_transient_start',['../struct_parameters___o_p_v.html#af5e99b212ed3ece698fb032dd347af63',1,'Parameters_OPV']]], - ['triplet_5flifetime_5facceptor',['Triplet_lifetime_acceptor',['../struct_parameters___o_p_v.html#a4149a095d01c62295865a9064fccb637',1,'Parameters_OPV']]], - ['triplet_5flifetime_5fdonor',['Triplet_lifetime_donor',['../struct_parameters___o_p_v.html#acb3f6fce76263baa95b6a20c7aeb5c4b',1,'Parameters_OPV']]], - ['triplet_5flocalization_5facceptor',['Triplet_localization_acceptor',['../struct_parameters___o_p_v.html#aac11d663f53039160f936a5c670151ed',1,'Parameters_OPV']]], - ['triplet_5flocalization_5fdonor',['Triplet_localization_donor',['../struct_parameters___o_p_v.html#a5b7e58b86bfd90243849862f074ebf51',1,'Parameters_OPV']]] -]; diff --git a/docs/struct_coords-members.html b/docs/struct_coords-members.html deleted file mode 100644 index 7533620..0000000 --- a/docs/struct_coords-members.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      -
                                                                      Coords Member List
                                                                      -
                                                                      -
                                                                      - -

                                                                      This is the complete list of members for Coords, including all inherited members.

                                                                      - - - - - - - -
                                                                      operator!=(const Coords &rhs) constCoordsinline
                                                                      operator==(const Coords &rhs) constCoordsinline
                                                                      setXYZ(const int xval, const int yval, const int zval)Coordsinline
                                                                      xCoords
                                                                      yCoords
                                                                      zCoords
                                                                      -
                                                                      - - - - diff --git a/docs/struct_coords.html b/docs/struct_coords.html deleted file mode 100644 index cc966f8..0000000 --- a/docs/struct_coords.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - -Excimontec: Coords Struct Reference - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Coords Struct Reference
                                                                      -
                                                                      -
                                                                      - -

                                                                      This simple struct contains Cartesian coordinates specified by integers x,y,z. - More...

                                                                      - -

                                                                      #include <Utils.h>

                                                                      - - - - - - - - - - - -

                                                                      -Public Member Functions

                                                                      void setXYZ (const int xval, const int yval, const int zval)
                                                                       Sets the x,y,z coordinates using the input values xval, yval, and zval. More...
                                                                       
                                                                      bool operator== (const Coords &rhs) const
                                                                       Defines the conditions when two Coords structs are deemed to be equal. More...
                                                                       
                                                                      bool operator!= (const Coords &rhs) const
                                                                       Defines the conditions when two Coords structs are deemed to be unequal. More...
                                                                       
                                                                      - - - - - - - - - - -

                                                                      -Public Attributes

                                                                      int x
                                                                       The x Cartesian coordinate. More...
                                                                       
                                                                      int y
                                                                       The y Cartesian coordinate. More...
                                                                       
                                                                      int z
                                                                       The z Cartesian coordinate. More...
                                                                       
                                                                      -

                                                                      Detailed Description

                                                                      -

                                                                      This simple struct contains Cartesian coordinates specified by integers x,y,z.

                                                                      - -
                                                                      Author
                                                                      Michael C. Heiber
                                                                      -
                                                                      Date
                                                                      2018
                                                                      -

                                                                      Member Function Documentation

                                                                      - -

                                                                      ◆ operator!=()

                                                                      - -
                                                                      -
                                                                      - - - - - -
                                                                      - - - - - - - - -
                                                                      bool Coords::operator!= (const Coordsrhs) const
                                                                      -
                                                                      -inline
                                                                      -
                                                                      - -

                                                                      Defines the conditions when two Coords structs are deemed to be unequal.

                                                                      -
                                                                      Parameters
                                                                      - - -
                                                                      rhsis the right hand side Coords struct of the comparison operator.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ operator==()

                                                                      - -
                                                                      -
                                                                      - - - - - -
                                                                      - - - - - - - - -
                                                                      bool Coords::operator== (const Coordsrhs) const
                                                                      -
                                                                      -inline
                                                                      -
                                                                      - -

                                                                      Defines the conditions when two Coords structs are deemed to be equal.

                                                                      -
                                                                      Parameters
                                                                      - - -
                                                                      rhsis the right hand side Coords struct of the comparison operator.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ setXYZ()

                                                                      - -
                                                                      -
                                                                      - - - - - -
                                                                      - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                      void Coords::setXYZ (const int xval,
                                                                      const int yval,
                                                                      const int zval 
                                                                      )
                                                                      -
                                                                      -inline
                                                                      -
                                                                      - -

                                                                      Sets the x,y,z coordinates using the input values xval, yval, and zval.

                                                                      -
                                                                      Parameters
                                                                      - - - - -
                                                                      xvalis the input x value.
                                                                      yvalis the input y value.
                                                                      zvalis the input z value.
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -

                                                                      Member Data Documentation

                                                                      - -

                                                                      ◆ x

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      int Coords::x
                                                                      -
                                                                      - -

                                                                      The x Cartesian coordinate.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ y

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      int Coords::y
                                                                      -
                                                                      - -

                                                                      The y Cartesian coordinate.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ z

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      int Coords::z
                                                                      -
                                                                      - -

                                                                      The z Cartesian coordinate.

                                                                      - -
                                                                      -
                                                                      -
                                                                      The documentation for this struct was generated from the following file: -
                                                                      -
                                                                      - - - - diff --git a/docs/struct_coords.js b/docs/struct_coords.js deleted file mode 100644 index a6974be..0000000 --- a/docs/struct_coords.js +++ /dev/null @@ -1,9 +0,0 @@ -var struct_coords = -[ - [ "operator!=", "struct_coords.html#aaea2c566feec4e4bf56b27a34568be76", null ], - [ "operator==", "struct_coords.html#ad3347f6568814df1a2b98b3cd0b78632", null ], - [ "setXYZ", "struct_coords.html#a88de3a6ee710766eb9c9444cee45a9f3", null ], - [ "x", "struct_coords.html#a59992d986e76375f31828d32c05cd15d", null ], - [ "y", "struct_coords.html#a7ed64d02fb7550f1506a93fcfab7f16f", null ], - [ "z", "struct_coords.html#a96d176173dbd5d97e7af63e1b5c0f7e1", null ] -]; \ No newline at end of file diff --git a/docs/struct_parameters___lattice-members.html b/docs/struct_parameters___lattice-members.html deleted file mode 100644 index 5fe1025..0000000 --- a/docs/struct_parameters___lattice-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      -
                                                                      Parameters_Lattice Member List
                                                                      -
                                                                      - -
                                                                      - - - - diff --git a/docs/struct_parameters___lattice.html b/docs/struct_parameters___lattice.html deleted file mode 100644 index 9918ad9..0000000 --- a/docs/struct_parameters___lattice.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - -Excimontec: Parameters_Lattice Struct Reference - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - -
                                                                      -
                                                                      Excimontec -  v1.0-beta.3 -
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      -
                                                                      -
                                                                      - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      Parameters_Lattice Struct Reference
                                                                      -
                                                                      -
                                                                      - -

                                                                      This struct contains all of the main input parameters needed by the Lattice class. - More...

                                                                      - -

                                                                      #include <Lattice.h>

                                                                      - - - - - - - - - - - - - - - - - - - - - - - -

                                                                      -Public Attributes

                                                                      bool Enable_periodic_x
                                                                       Determines whether the x-direction periodic boundaries will be enabled. More...
                                                                       
                                                                      bool Enable_periodic_y
                                                                       Determines whether the y-direction periodic boundaries will be enabled. More...
                                                                       
                                                                      bool Enable_periodic_z
                                                                       Determines whether the z-direction periodic boundaries will be enabled. More...
                                                                       
                                                                      int Length
                                                                       Defines the desired x-direction size of the lattice. More...
                                                                       
                                                                      int Width
                                                                       Defines the desired y-direction size of the lattice. More...
                                                                       
                                                                      int Height
                                                                       Defines the desired z-direction size of the lattice. More...
                                                                       
                                                                      double Unit_size
                                                                       Defines the desired lattice unit size, which is used to convert lattice units into real space units. More...
                                                                       
                                                                      -

                                                                      Detailed Description

                                                                      -

                                                                      This struct contains all of the main input parameters needed by the Lattice class.

                                                                      - -
                                                                      Author
                                                                      Michael C. Heiber
                                                                      -
                                                                      Date
                                                                      2018
                                                                      -

                                                                      Member Data Documentation

                                                                      - -

                                                                      ◆ Enable_periodic_x

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      bool Parameters_Lattice::Enable_periodic_x
                                                                      -
                                                                      - -

                                                                      Determines whether the x-direction periodic boundaries will be enabled.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ Enable_periodic_y

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      bool Parameters_Lattice::Enable_periodic_y
                                                                      -
                                                                      - -

                                                                      Determines whether the y-direction periodic boundaries will be enabled.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ Enable_periodic_z

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      bool Parameters_Lattice::Enable_periodic_z
                                                                      -
                                                                      - -

                                                                      Determines whether the z-direction periodic boundaries will be enabled.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ Height

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      int Parameters_Lattice::Height
                                                                      -
                                                                      - -

                                                                      Defines the desired z-direction size of the lattice.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ Length

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      int Parameters_Lattice::Length
                                                                      -
                                                                      - -

                                                                      Defines the desired x-direction size of the lattice.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ Unit_size

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      double Parameters_Lattice::Unit_size
                                                                      -
                                                                      - -

                                                                      Defines the desired lattice unit size, which is used to convert lattice units into real space units.

                                                                      - -
                                                                      -
                                                                      - -

                                                                      ◆ Width

                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      int Parameters_Lattice::Width
                                                                      -
                                                                      - -

                                                                      Defines the desired y-direction size of the lattice.

                                                                      - -
                                                                      -
                                                                      -
                                                                      The documentation for this struct was generated from the following file: -
                                                                      -
                                                                      - - - - diff --git a/docs/struct_parameters___lattice.js b/docs/struct_parameters___lattice.js deleted file mode 100644 index 105e7b1..0000000 --- a/docs/struct_parameters___lattice.js +++ /dev/null @@ -1,10 +0,0 @@ -var struct_parameters___lattice = -[ - [ "Enable_periodic_x", "struct_parameters___lattice.html#a922f7e39f7debc0bd06ec1f0f1ca8257", null ], - [ "Enable_periodic_y", "struct_parameters___lattice.html#a9ee9c54330f7cd0bc32fd80e27ee87ff", null ], - [ "Enable_periodic_z", "struct_parameters___lattice.html#aff375c434a37560067d9cc677cff8052", null ], - [ "Height", "struct_parameters___lattice.html#a1b59e1a307ad945fb86f44b68354f605", null ], - [ "Length", "struct_parameters___lattice.html#a99c7d553111bb660032bb7ca6f592da6", null ], - [ "Unit_size", "struct_parameters___lattice.html#a5f9628b968ba4206a7650c774827b1f0", null ], - [ "Width", "struct_parameters___lattice.html#a40f8633b47d204f471d041a0d8216e5b", null ] -]; \ No newline at end of file diff --git a/docs/struct_parameters___o_p_v-members.html b/docs/struct_parameters___o_p_v-members.html index 653e20d..254fb42 100644 --- a/docs/struct_parameters___o_p_v-members.html +++ b/docs/struct_parameters___o_p_v-members.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      @@ -114,40 +114,32 @@ Enable_exciton_diffusion_testParameters_OPV Enable_exponential_dosParameters_OPV Enable_FRET_triplet_annihilationParameters_OPV - Enable_FRMParameters_Simulation - Enable_full_recalcParameters_Simulation Enable_gaussian_dosParameters_OPV Enable_gaussian_kernelParameters_OPV Enable_gaussian_polaron_delocalizationParameters_OPV Enable_import_morphologyParameters_OPV Enable_IQE_testParameters_OPV - Enable_loggingParameters_Simulation - Enable_marcusParameters_OPV - Enable_miller_abrahamsParameters_OPV - Enable_neatParameters_OPV - Enable_periodic_xParameters_Simulation - Enable_periodic_yParameters_Simulation - Enable_periodic_zParameters_Simulation + Enable_marcusParameters_OPV + Enable_miller_abrahamsParameters_OPV + Enable_neatParameters_OPV Enable_phase_restrictionParameters_OPV Enable_power_kernelParameters_OPV Enable_random_blendParameters_OPV - Enable_selective_recalcParameters_Simulation - Enable_ToF_testParameters_OPV - Energy_stdev_acceptorParameters_OPV - Energy_stdev_donorParameters_OPV - Energy_urbach_acceptorParameters_OPV - Energy_urbach_donorParameters_OPV - Exciton_dissociation_cutoffParameters_OPV - Exciton_generation_rate_acceptorParameters_OPV - Exciton_generation_rate_donorParameters_OPV - FRET_cutoffParameters_OPV - HeightParameters_Simulation + Enable_ToF_energy_placementParameters_OPV + Enable_ToF_random_placementParameters_OPV + Enable_ToF_testParameters_OPV + Energy_stdev_acceptorParameters_OPV + Energy_stdev_donorParameters_OPV + Energy_urbach_acceptorParameters_OPV + Energy_urbach_donorParameters_OPV + Exciton_dissociation_cutoffParameters_OPV + Exciton_generation_rate_acceptorParameters_OPV + Exciton_generation_rate_donorParameters_OPV + FRET_cutoffParameters_OPV Homo_acceptorParameters_OPV Homo_donorParameters_OPV Internal_potentialParameters_OPV IQE_time_cutoffParameters_OPV - LengthParameters_Simulation - LogfileParameters_Simulation Lumo_acceptorParameters_OPV Lumo_donorParameters_OPV Morphology_fileParameters_OPV @@ -174,27 +166,24 @@ R_singlet_hopping_donorParameters_OPV R_triplet_hopping_acceptorParameters_OPV R_triplet_hopping_donorParameters_OPV - Recalc_cutoffParameters_Simulation - Reorganization_acceptorParameters_OPV - Reorganization_donorParameters_OPV - Singlet_lifetime_acceptorParameters_OPV - Singlet_lifetime_donorParameters_OPV - Singlet_localization_acceptorParameters_OPV - Singlet_localization_donorParameters_OPV - TemperatureParameters_Simulation + Reorganization_acceptorParameters_OPV + Reorganization_donorParameters_OPV + Singlet_lifetime_acceptorParameters_OPV + Singlet_lifetime_donorParameters_OPV + Singlet_localization_acceptorParameters_OPV + Singlet_localization_donorParameters_OPV Thickness_acceptorParameters_OPV Thickness_donorParameters_OPV ToF_initial_polaronsParameters_OPV - ToF_pnts_per_decadeParameters_OPV - ToF_polaron_typeParameters_OPV - ToF_transient_endParameters_OPV - ToF_transient_startParameters_OPV - Triplet_lifetime_acceptorParameters_OPV - Triplet_lifetime_donorParameters_OPV - Triplet_localization_acceptorParameters_OPV - Triplet_localization_donorParameters_OPV - Unit_sizeParameters_Simulation - WidthParameters_Simulation + ToF_placement_energyParameters_OPV + ToF_pnts_per_decadeParameters_OPV + ToF_polaron_typeParameters_OPV + ToF_transient_endParameters_OPV + ToF_transient_startParameters_OPV + Triplet_lifetime_acceptorParameters_OPV + Triplet_lifetime_donorParameters_OPV + Triplet_localization_acceptorParameters_OPV + Triplet_localization_donorParameters_OPV
                                                                      diff --git a/docs/struct_parameters___o_p_v.html b/docs/struct_parameters___o_p_v.html index f4fdfdd..c0ed5fd 100644 --- a/docs/struct_parameters___o_p_v.html +++ b/docs/struct_parameters___o_p_v.html @@ -30,9 +30,9 @@
                                                                      Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                      -
                                                                      An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                      +
                                                                      An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                      @@ -102,7 +102,6 @@
                                                                      -Parameters_Simulation
                                                                      @@ -136,6 +135,12 @@ + + + + + + @@ -282,49 +287,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                       
                                                                      int ToF_initial_polarons
                                                                       
                                                                      bool Enable_ToF_random_placement
                                                                       
                                                                      bool Enable_ToF_energy_placement
                                                                       
                                                                      double ToF_placement_energy
                                                                       
                                                                      double ToF_transient_start
                                                                       
                                                                      double ToF_transient_end
                                                                       
                                                                      int Coulomb_cutoff
                                                                       
                                                                      - Public Attributes inherited from Parameters_Simulation
                                                                      bool Enable_logging
                                                                       Determines whether logging to a logfile during the simulation will be enabled or not. More...
                                                                       
                                                                      bool Enable_periodic_x
                                                                       Determines whether the x-direction periodic boundary conditions will be enabled or not in the Lattice. More...
                                                                       
                                                                      bool Enable_periodic_y
                                                                       Determines whether the y-direction periodic boundary conditions will be enabled or not in the Lattice. More...
                                                                       
                                                                      bool Enable_periodic_z
                                                                       Determines whether the z-direction periodic boundary conditions will be enabled or not in the Lattice. More...
                                                                       
                                                                      int Length
                                                                       Defines the desired x-direction size of the Lattice. More...
                                                                       
                                                                      int Width
                                                                       Defines the desired y-direction size of the Lattice. More...
                                                                       
                                                                      int Height
                                                                       Defines the desired z-direction size of the Lattice. More...
                                                                       
                                                                      double Unit_size
                                                                       Defines the desired resolution of the Lattice in units of nm. More...
                                                                       
                                                                      int Temperature
                                                                       Defines the desired temperature of the simulation in Kelvin. More...
                                                                       
                                                                      bool Enable_FRM
                                                                       Determines whether the first reaction method will be used or not. More...
                                                                       
                                                                      bool Enable_selective_recalc
                                                                       Determines whether the selective recalculation method will be used or not. More...
                                                                       
                                                                      int Recalc_cutoff
                                                                       Defines the desired event recalculation cutoff radius for the simulation in nm. More...
                                                                       
                                                                      bool Enable_full_recalc
                                                                       Determines whether the full recalculation method will be used or not. More...
                                                                       
                                                                      std::ofstream * Logfile
                                                                       Defines the desired output file stream pointer to the logfile. More...
                                                                       

                                                                      Member Data Documentation

                                                                      @@ -759,6 +721,34 @@

                                                                      + + + +

                                                                      ◆ Enable_ToF_energy_placement

                                                                      + +
                                                                      +
                                                                      + + + + +
                                                                      bool Parameters_OPV::Enable_ToF_energy_placement
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +

                                                                      ◆ Enable_ToF_random_placement

                                                                      + +
                                                                      +
                                                                      + + + + +
                                                                      bool Parameters_OPV::Enable_ToF_random_placement
                                                                      +
                                                                      +
                                                                      @@ -1431,6 +1421,20 @@

                                                                      + + + +

                                                                      ◆ ToF_placement_energy

                                                                      + +
                                                                      +
                                                                      + + + + +
                                                                      double Parameters_OPV::ToF_placement_energy
                                                                      +
                                                                      +
                                                                      @@ -1546,7 +1550,7 @@

                                                                      OSC_Sim.h +
                                                                    • src/OSC_Sim.h
                                                                    diff --git a/docs/struct_parameters___o_p_v.js b/docs/struct_parameters___o_p_v.js index fef1f6f..27d0cbc 100644 --- a/docs/struct_parameters___o_p_v.js +++ b/docs/struct_parameters___o_p_v.js @@ -31,6 +31,8 @@ var struct_parameters___o_p_v = [ "Enable_phase_restriction", "struct_parameters___o_p_v.html#ac43d697cf3102e9da550b62d7dc5c84c", null ], [ "Enable_power_kernel", "struct_parameters___o_p_v.html#a01b94b4373991c4fc0fd66a7bcdb1e20", null ], [ "Enable_random_blend", "struct_parameters___o_p_v.html#a7d9cc030e67893f064dfb45b674f1d0e", null ], + [ "Enable_ToF_energy_placement", "struct_parameters___o_p_v.html#a94746d884494104c15bc1d5f39b20b2b", null ], + [ "Enable_ToF_random_placement", "struct_parameters___o_p_v.html#abcda83235617668783cbe31d5b66221d", null ], [ "Enable_ToF_test", "struct_parameters___o_p_v.html#a323fbbb8b40716209cedf5b7c5c3a3e5", null ], [ "Energy_stdev_acceptor", "struct_parameters___o_p_v.html#ad61e54053c0644fca200f803197a4550", null ], [ "Energy_stdev_donor", "struct_parameters___o_p_v.html#a3eb760b9191be8648c7a45998be875a4", null ], @@ -79,6 +81,7 @@ var struct_parameters___o_p_v = [ "Thickness_acceptor", "struct_parameters___o_p_v.html#afa28203f6b02b27ac415491bf1cb4f8a", null ], [ "Thickness_donor", "struct_parameters___o_p_v.html#a4c49f81e20e235e52f943003f0c14fa3", null ], [ "ToF_initial_polarons", "struct_parameters___o_p_v.html#aa8d1f06c2e6e94b0b6bbf419d7b838aa", null ], + [ "ToF_placement_energy", "struct_parameters___o_p_v.html#af6e728c4d1efe0ba5b6b4e28c67a0378", null ], [ "ToF_pnts_per_decade", "struct_parameters___o_p_v.html#ae89162ef61b8288b28e96ea1fe527da7", null ], [ "ToF_polaron_type", "struct_parameters___o_p_v.html#a0a65769f9018d42e76e57244b20c4165", null ], [ "ToF_transient_end", "struct_parameters___o_p_v.html#a6e17e68edee042fbcc30ccb06161dfb1", null ], diff --git a/docs/struct_parameters___o_p_v.png b/docs/struct_parameters___o_p_v.png index 185f44e..6782dde 100644 Binary files a/docs/struct_parameters___o_p_v.png and b/docs/struct_parameters___o_p_v.png differ diff --git a/docs/struct_parameters___simulation-members.html b/docs/struct_parameters___simulation-members.html deleted file mode 100644 index e582580..0000000 --- a/docs/struct_parameters___simulation-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -Excimontec: Member List - - - - - - - - - - - - - - -
                                                                    -
                                                                    - - - - - - -
                                                                    -
                                                                    Excimontec -  v1.0-beta.3 -
                                                                    -
                                                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                    -
                                                                    -
                                                                    - - - - - - - -
                                                                    -
                                                                    - -
                                                                    -
                                                                    -
                                                                    - - - - - - diff --git a/docs/struct_parameters___simulation.html b/docs/struct_parameters___simulation.html deleted file mode 100644 index 4578670..0000000 --- a/docs/struct_parameters___simulation.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - -Excimontec: Parameters_Simulation Struct Reference - - - - - - - - - - - - - - -
                                                                    -
                                                                    - - - - - - -
                                                                    -
                                                                    Excimontec -  v1.0-beta.3 -
                                                                    -
                                                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                    -
                                                                    -
                                                                    - - - - - - - -
                                                                    -
                                                                    - -
                                                                    -
                                                                    -
                                                                    - -
                                                                    - -
                                                                    -
                                                                    - - -
                                                                    - -
                                                                    - -
                                                                    - -
                                                                    -
                                                                    Parameters_Simulation Struct Reference
                                                                    -
                                                                    -
                                                                    - -

                                                                    This struct contains all of the main input parameters needed by the Simulation class. - More...

                                                                    - -

                                                                    #include <Simulation.h>

                                                                    -
                                                                    -Inheritance diagram for Parameters_Simulation:
                                                                    -
                                                                    -
                                                                    - - -Parameters_OPV - -
                                                                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                    -Public Attributes

                                                                    bool Enable_logging
                                                                     Determines whether logging to a logfile during the simulation will be enabled or not. More...
                                                                     
                                                                    bool Enable_periodic_x
                                                                     Determines whether the x-direction periodic boundary conditions will be enabled or not in the Lattice. More...
                                                                     
                                                                    bool Enable_periodic_y
                                                                     Determines whether the y-direction periodic boundary conditions will be enabled or not in the Lattice. More...
                                                                     
                                                                    bool Enable_periodic_z
                                                                     Determines whether the z-direction periodic boundary conditions will be enabled or not in the Lattice. More...
                                                                     
                                                                    int Length
                                                                     Defines the desired x-direction size of the Lattice. More...
                                                                     
                                                                    int Width
                                                                     Defines the desired y-direction size of the Lattice. More...
                                                                     
                                                                    int Height
                                                                     Defines the desired z-direction size of the Lattice. More...
                                                                     
                                                                    double Unit_size
                                                                     Defines the desired resolution of the Lattice in units of nm. More...
                                                                     
                                                                    int Temperature
                                                                     Defines the desired temperature of the simulation in Kelvin. More...
                                                                     
                                                                    bool Enable_FRM
                                                                     Determines whether the first reaction method will be used or not. More...
                                                                     
                                                                    bool Enable_selective_recalc
                                                                     Determines whether the selective recalculation method will be used or not. More...
                                                                     
                                                                    int Recalc_cutoff
                                                                     Defines the desired event recalculation cutoff radius for the simulation in nm. More...
                                                                     
                                                                    bool Enable_full_recalc
                                                                     Determines whether the full recalculation method will be used or not. More...
                                                                     
                                                                    std::ofstream * Logfile
                                                                     Defines the desired output file stream pointer to the logfile. More...
                                                                     
                                                                    -

                                                                    Detailed Description

                                                                    -

                                                                    This struct contains all of the main input parameters needed by the Simulation class.

                                                                    - -
                                                                    Author
                                                                    Michael C. Heiber
                                                                    -
                                                                    Date
                                                                    2018
                                                                    -

                                                                    Member Data Documentation

                                                                    - -

                                                                    ◆ Enable_FRM

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_FRM
                                                                    -
                                                                    - -

                                                                    Determines whether the first reaction method will be used or not.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Enable_full_recalc

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_full_recalc
                                                                    -
                                                                    - -

                                                                    Determines whether the full recalculation method will be used or not.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Enable_logging

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_logging
                                                                    -
                                                                    - -

                                                                    Determines whether logging to a logfile during the simulation will be enabled or not.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Enable_periodic_x

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_periodic_x
                                                                    -
                                                                    - -

                                                                    Determines whether the x-direction periodic boundary conditions will be enabled or not in the Lattice.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Enable_periodic_y

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_periodic_y
                                                                    -
                                                                    - -

                                                                    Determines whether the y-direction periodic boundary conditions will be enabled or not in the Lattice.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Enable_periodic_z

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_periodic_z
                                                                    -
                                                                    - -

                                                                    Determines whether the z-direction periodic boundary conditions will be enabled or not in the Lattice.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Enable_selective_recalc

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    bool Parameters_Simulation::Enable_selective_recalc
                                                                    -
                                                                    - -

                                                                    Determines whether the selective recalculation method will be used or not.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Height

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    int Parameters_Simulation::Height
                                                                    -
                                                                    - -

                                                                    Defines the desired z-direction size of the Lattice.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Length

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    int Parameters_Simulation::Length
                                                                    -
                                                                    - -

                                                                    Defines the desired x-direction size of the Lattice.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Logfile

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    std::ofstream* Parameters_Simulation::Logfile
                                                                    -
                                                                    - -

                                                                    Defines the desired output file stream pointer to the logfile.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Recalc_cutoff

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    int Parameters_Simulation::Recalc_cutoff
                                                                    -
                                                                    - -

                                                                    Defines the desired event recalculation cutoff radius for the simulation in nm.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Temperature

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    int Parameters_Simulation::Temperature
                                                                    -
                                                                    - -

                                                                    Defines the desired temperature of the simulation in Kelvin.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Unit_size

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    double Parameters_Simulation::Unit_size
                                                                    -
                                                                    - -

                                                                    Defines the desired resolution of the Lattice in units of nm.

                                                                    - -
                                                                    -
                                                                    - -

                                                                    ◆ Width

                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    int Parameters_Simulation::Width
                                                                    -
                                                                    - -

                                                                    Defines the desired y-direction size of the Lattice.

                                                                    - -
                                                                    -
                                                                    -
                                                                    The documentation for this struct was generated from the following file: -
                                                                    -
                                                                    - - - - diff --git a/docs/struct_parameters___simulation.js b/docs/struct_parameters___simulation.js deleted file mode 100644 index a4d4973..0000000 --- a/docs/struct_parameters___simulation.js +++ /dev/null @@ -1,17 +0,0 @@ -var struct_parameters___simulation = -[ - [ "Enable_FRM", "struct_parameters___simulation.html#a38edd7e56d80c80258d0563f602d09ea", null ], - [ "Enable_full_recalc", "struct_parameters___simulation.html#adc993369a04d510926341a72e4e54aad", null ], - [ "Enable_logging", "struct_parameters___simulation.html#afde5aaac6f3cd226249cb9646a4c8a4b", null ], - [ "Enable_periodic_x", "struct_parameters___simulation.html#a5624782454dd99271ad94923f53866b4", null ], - [ "Enable_periodic_y", "struct_parameters___simulation.html#a1c3d79a4dcf194f884e8a3d346c2261a", null ], - [ "Enable_periodic_z", "struct_parameters___simulation.html#a0d318f1a9eb75fa909b4ae8266696be1", null ], - [ "Enable_selective_recalc", "struct_parameters___simulation.html#a41834e14865ffe273bfb5824193371b9", null ], - [ "Height", "struct_parameters___simulation.html#aa1ffb86ac22065dbbb58196db95b3199", null ], - [ "Length", "struct_parameters___simulation.html#a038f418e1b2e4fec3fc6a8336f8b23de", null ], - [ "Logfile", "struct_parameters___simulation.html#aa491c1f8ca5045b4cc9c8bbfcb930024", null ], - [ "Recalc_cutoff", "struct_parameters___simulation.html#af55371ca9e7027e799f5be46e40eacc1", null ], - [ "Temperature", "struct_parameters___simulation.html#aad5bdf64239620d1b214c49532dba743", null ], - [ "Unit_size", "struct_parameters___simulation.html#ab5dda6868bc9359d97a614f027734349", null ], - [ "Width", "struct_parameters___simulation.html#aab42f7eb6b5ec1916475d9022ed5165f", null ] -]; \ No newline at end of file diff --git a/docs/struct_parameters___simulation.png b/docs/struct_parameters___simulation.png deleted file mode 100644 index bd781a0..0000000 Binary files a/docs/struct_parameters___simulation.png and /dev/null differ diff --git a/docs/struct_parameters__main-members.html b/docs/struct_parameters__main-members.html index 96c0e3a..b63885f 100644 --- a/docs/struct_parameters__main-members.html +++ b/docs/struct_parameters__main-members.html @@ -30,9 +30,9 @@
                                                                    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                    -
                                                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                    +
                                                                    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                    diff --git a/docs/struct_parameters__main.html b/docs/struct_parameters__main.html index 040bfef..16eac0c 100644 --- a/docs/struct_parameters__main.html +++ b/docs/struct_parameters__main.html @@ -30,9 +30,9 @@
                                                                    Excimontec -  v1.0-beta.3 +  v1.0-beta.4
                                                                    -
                                                                    An open-source KMC simulation software package for modeling organic semiconductor materials and devices, such as OPVs, OLEDs, and more
                                                                    +
                                                                    An open-source KMC simulation software package for modeling the optoelectronic processes in organic semiconductor materials and devices, such as OPVs, OLEDs, and more.
                                                                    @@ -212,7 +212,7 @@

                                                                    main.cpp +
                                                                  • src/main.cpp
                                                                  diff --git a/googletest b/googletest new file mode 160000 index 0000000..045e7f9 --- /dev/null +++ b/googletest @@ -0,0 +1 @@ +Subproject commit 045e7f9ee4f969ac1a3fe428f79c4b880f0aff43 diff --git a/makefile b/makefile index 1032a77..a5fca45 100644 --- a/makefile +++ b/makefile @@ -1,39 +1,71 @@ -CC = mpicxx -FLAGS = -Wall -Wextra -O3 -std=c++11 -OBJS = main.o OSC_Sim.o Exciton.o Polaron.o Event.o Lattice.o Object.o Simulation.o Site.o Utils.o +# Copyright (c) 2018 Michael C. Heiber +# This source file is part of the Excimontec project, which is subject to the MIT License. +# For more information, see the LICENSE file that accompanies this software. +# The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec -Excimontec.exe : $(OBJS) - $(CC) $(FLAGS) $(OBJS) -o Excimontec.exe +ifeq ($(lastword $(subst /, ,$(CXX))),g++) + FLAGS += -Wall -Wextra -O3 -std=c++11 -I. -Isrc -IKMC_Lattice/src +endif +ifeq ($(lastword $(subst /, ,$(CXX))),pgc++) + FLAGS += -O2 -fastsse -Mvect -std=c++11 -Mdalign -Munroll -Mipa=fast -Kieee -m64 -I. -Isrc -IKMC_Lattice/src +endif -main.o : main.cpp OSC_Sim.h Exciton.h Polaron.h KMC_Lattice/Event.h KMC_Lattice/Lattice.h KMC_Lattice/Object.h KMC_Lattice/Simulation.h KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c main.cpp +OBJS = src/OSC_Sim.o src/Exciton.o src/Polaron.o + +all : Excimontec.exe +ifndef FLAGS + $(error Valid compiler not detected.) +endif + +Excimontec.exe : src/main.o $(OBJS) KMC_Lattice/libKMC.a + mpicxx $(FLAGS) $^ -o $@ + +KMC_Lattice/libKMC.a : KMC_Lattice/src/*.h + $(MAKE) -C KMC_Lattice + +src/main.o : src/main.cpp src/OSC_Sim.h src/Exciton.h src/Polaron.h + mpicxx $(FLAGS) -c $< -o $@ -OSC_Sim.o : OSC_Sim.h OSC_Sim.cpp Exciton.h Polaron.h KMC_Lattice/Event.h KMC_Lattice/Lattice.h KMC_Lattice/Object.h KMC_Lattice/Simulation.h KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c OSC_Sim.cpp +src/OSC_Sim.o : src/OSC_Sim.cpp src/OSC_Sim.h src/Exciton.h src/Polaron.h + mpicxx $(FLAGS) -c $< -o $@ -Exciton.o : Exciton.h Exciton.cpp KMC_Lattice/Event.h KMC_Lattice/Lattice.h KMC_Lattice/Object.h KMC_Lattice/Simulation.h KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c Exciton.cpp +src/Exciton.o : src/Exciton.cpp src/Exciton.h + mpicxx $(FLAGS) -c $< -o $@ -Polaron.o : Polaron.h Polaron.cpp KMC_Lattice/Event.h KMC_Lattice/Lattice.h KMC_Lattice/Object.h KMC_Lattice/Simulation.h KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c Polaron.cpp +src/Polaron.o : src/Polaron.cpp src/Polaron.h + mpicxx $(FLAGS) -c $< -o $@ -Event.o : KMC_Lattice/Event.h KMC_Lattice/Event.cpp KMC_Lattice/Lattice.h KMC_Lattice/Object.h KMC_Lattice/Simulation.h KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c KMC_Lattice/Event.cpp +# +# Testing Section using googletest +# -Lattice.o : KMC_Lattice/Lattice.h KMC_Lattice/Lattice.cpp KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c KMC_Lattice/Lattice.cpp +ifndef FLAGS + $(error Valid compiler not detected.) +endif +GTEST_DIR = googletest/googletest +GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \ + $(GTEST_DIR)/include/gtest/internal/*.h +GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) +ifeq ($(lastword $(subst /, ,$(CXX))),g++) + GTEST_FLAGS = -isystem $(GTEST_DIR)/include -pthread +endif +ifeq ($(lastword $(subst /, ,$(CXX))),pgc++) + GTEST_FLAGS = -I$(GTEST_DIR)/include +endif -Object.o : KMC_Lattice/Object.h KMC_Lattice/Object.cpp KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c KMC_Lattice/Object.cpp +test_coverage : FLAGS = -fprofile-arcs -ftest-coverage -std=c++11 -Wall -Wextra -I. -Isrc -IKMC_Lattice/src +test_coverage : test/Excimontec_tests.exe -Simulation.o : KMC_Lattice/Simulation.h KMC_Lattice/Simulation.cpp KMC_Lattice/Event.h KMC_Lattice/Lattice.h KMC_Lattice/Object.h KMC_Lattice/Site.h KMC_Lattice/Utils.h - $(CC) $(FLAGS) -c KMC_Lattice/Simulation.cpp - -Site.o : KMC_Lattice/Site.h KMC_Lattice/Site.cpp - $(CC) $(FLAGS) -c KMC_Lattice/Site.cpp +test : test/Excimontec_tests.exe -Utils.o : KMC_Lattice/Utils.h KMC_Lattice/Utils.cpp - $(CC) $(FLAGS) -c KMC_Lattice/Utils.cpp +test/Excimontec_tests.exe : test/test.o test/gtest-all.o $(OBJS) KMC_Lattice/libKMC.a + mpicxx $(GTEST_FLAGS) $(FLAGS) $^ KMC_Lattice/libKMC.a -lpthread -o $@ + +test/gtest-all.o : $(GTEST_SRCS_) + mpicxx $(GTEST_FLAGS) -I$(GTEST_DIR) $(FLAGS) -c $(GTEST_DIR)/src/gtest-all.cc -o $@ + +test/test.o : test/test.cpp $(GTEST_HEADERS) $(OBJS) + mpicxx $(GTEST_FLAGS) $(FLAGS) -c $< -o $@ clean: - \rm *.o *~ Excimontec.exe \ No newline at end of file + -rm src/*.o src/*.gcno* src/*.gcda test/*.o test/*.gcno* test/*.gcda *~ Excimontec.exe test/Excimontec_tests.exe diff --git a/parameters_default.txt b/parameters_default.txt index 120aa43..8c4cadf 100644 --- a/parameters_default.txt +++ b/parameters_default.txt @@ -1,4 +1,4 @@ -## OPV Parameters for Excimontec v1.0-beta.3 +## OPV Parameters for Excimontec v1.0-beta.4 -------------------------------------------------------------- ## Kinetic Monte Carlo Algorithm Parameters false //Enable_FRM @@ -9,20 +9,20 @@ false //Enable_full_recalc ## Simulation Parameters true //Enable_periodic_x true //Enable_periodic_y -false //Enable_periodic_z +true //Enable_periodic_z 50 //Length 50 //Width -100 //Height +50 //Height 1.0 //Unit_size (nm) 300 //Temperature (K) --1.0 //Internal_potential (V) +0.0 //Internal_potential (V) -------------------------------------------------------------- ## Device Architecture Parameters -false //Enable_neat (uses donor properties) -false //Enable_bilayer +true //Enable_neat (uses donor properties) +false //Enable_bilayer (Sum of Thickness_donor and Thickness_acceptor must equal Height) 25 //Thickness_donor 25 //Thickness_acceptor -true //Enable_random_blend +false //Enable_random_blend 0.5 //Acceptor_conc false //Enable_import_morphology_single morphology_0_compressed.txt //Morphology_filename @@ -33,10 +33,13 @@ morphology_#_compressed.txt //Morphology_set_format -------------------------------------------------------------- ## Test Parameters 100 //N_tests -false //Enable_exciton_diffusion_test -true //Enable_ToF_test +true //Enable_exciton_diffusion_test +false //Enable_ToF_test hole //ToF_polaron_type (electron or hole) -1 //ToF_initial_polarons +10 //ToF_initial_polarons +true //Enable_ToF_random_placement +false //Enable_ToF_energy_placement +0.0 //ToF_placement_energy 1e-10 //ToF_transient_start (s) 1e-4 //ToF_transient_end (s) 20 //ToF_pnts_per_decade @@ -57,8 +60,8 @@ false //Enable_dynamics_extraction 500e-12 //Singlet_lifetime_acceptor (s) 1e-6 //Triplet_lifetime_donor (s) 1e-6 //Triplet_lifetime_acceptor (s) -1e12 //R_singlet_hopping_donor (s^-1) -1e12 //R_singlet_hopping_acceptor (s^-1) +1e11 //R_singlet_hopping_donor (s^-1) +1e11 //R_singlet_hopping_acceptor (s^-1) 2.0 //Singlet_localization_donor (nm^-1) 2.0 //Singlet_localization_acceptor (nm^-1) 1e12 //R_triplet_hopping_donor (s^-1) @@ -84,7 +87,7 @@ false //Enable_FRET_triplet_annihilation 0.7 //E_exciton_ST_acceptor (eV) -------------------------------------------------------------- ## Polaron Parameters -true //Enable_phase_restriction +true //Enable_phase_restriction (holes on donor sites, electrons on acceptor sites) 1e12 //R_polaron_hopping_donor (s^-1) 1e12 //R_polaron_hopping_acceptor (s^-1) 2.0 //Polaron_localization_donor (nm^-1) @@ -103,20 +106,21 @@ false //Enable_gaussian_polaron_delocalization 3.5 //Lumo_donor (eV) 6.0 //Homo_acceptor (eV) 4.0 //Lumo_acceptor (eV) -true //Enable_gaussian_dos +false //Enable_gaussian_dos 0.075 //Energy_stdev_donor (eV) 0.075 //Energy_stdev_acceptor (eV) false //Enable_exponential_dos 0.03 //Energy_urbach_donor (eV) 0.03 //Energy_urbach_acceptor (eV) -false //Enable_correlated_disorder -2.0 //Disorder_correlation_length (nm) (1.0-3.0, used by all kernels) +false //Enable_correlated_disorder (only works with Gaussian DOS) +1.0 //Disorder_correlation_length (nm) (1.0-2.0, used by all kernels) false //Enable_gaussian_kernel false //Enable_power_kernel -1 //Power_kernel_exponent (integer: -1 or -2) -------------------------------------------------------------- ## Coulomb Interaction Parameters -3.5 //Dielectric_donor -3.5 //Dielectric_acceptor +3.5 //Dielectric_constant (relative permittivity) +true //Enable_Coulomb_maximum (sets cutoff to 1/2 the smallest lattice dimension) +false //Enable_Coulomb_cutoff 25 //Coulomb_cutoff (nm) -------------------------------------------------------------- diff --git a/Exciton.cpp b/src/Exciton.cpp similarity index 100% rename from Exciton.cpp rename to src/Exciton.cpp diff --git a/Exciton.h b/src/Exciton.h similarity index 99% rename from Exciton.h rename to src/Exciton.h index 703af4a..7b2214e 100644 --- a/Exciton.h +++ b/src/Exciton.h @@ -6,10 +6,10 @@ #ifndef EXCITON_H #define EXCITON_H -#include "KMC_Lattice/Utils.h" -#include "KMC_Lattice/Object.h" -#include "KMC_Lattice/Event.h" -#include "KMC_Lattice/Simulation.h" +#include "Utils.h" +#include "Object.h" +#include "Event.h" +#include "Simulation.h" #include //! \brief This class extends the Object class to create an exciton object to represent a singlet or triplet exciton in an organic semiconductor. diff --git a/OSC_Sim.cpp b/src/OSC_Sim.cpp similarity index 74% rename from OSC_Sim.cpp rename to src/OSC_Sim.cpp index 74779d0..2d2d25f 100644 --- a/OSC_Sim.cpp +++ b/src/OSC_Sim.cpp @@ -44,6 +44,9 @@ bool OSC_Sim::init(const Parameters_OPV& params,const int id){ Enable_ToF_test = params.Enable_ToF_test; ToF_polaron_type = params.ToF_polaron_type; ToF_initial_polarons = params.ToF_initial_polarons; + Enable_ToF_random_placement = params.Enable_ToF_random_placement; + Enable_ToF_energy_placement = params.Enable_ToF_energy_placement; + ToF_placement_energy = params.ToF_placement_energy; //ToF_transient_start = params.ToF_transient_start; //ToF_transient_end = params.ToF_transient_end; //ToF_pnts_per_decade = params.ToF_pnts_per_decade; @@ -131,8 +134,6 @@ bool OSC_Sim::init(const Parameters_OPV& params,const int id){ Dielectric_donor = params.Dielectric_donor; Dielectric_acceptor = params.Dielectric_acceptor; Coulomb_cutoff = params.Coulomb_cutoff; - // Output files - // Initialize Sites Site_OSC site; sites.assign(lattice.getNumSites(),site); @@ -147,62 +148,69 @@ bool OSC_Sim::init(const Parameters_OPV& params,const int id){ // Assign energies to each site in the sites vector reassignSiteEnergies(); // Initialize Coulomb interactions lookup table - double avgDielectric = (Dielectric_donor+Dielectric_acceptor)/2; + AvgDielectric = (Dielectric_donor+Dielectric_acceptor)/2; + Image_interaction_prefactor = (Elementary_charge / (16 * Pi*AvgDielectric*Vacuum_permittivity))*1e9; double Unit_size = lattice.getUnitSize(); int range = (int)ceil(intpow(Coulomb_cutoff/lattice.getUnitSize(),2)); Coulomb_table.assign(range+1,0); for (int i = 1, imax = (int)Coulomb_table.size(); i::const_iterator polaron_it, const Coords& coords) const { - static const double avgDielectric = (Dielectric_donor + Dielectric_acceptor) / 2; - static const double image_interactions = (Elementary_charge / (16 * Pi*avgDielectric*Vacuum_permittivity))*1e9; double Energy = 0; double distance; int distance_sq_lat; bool charge = polaron_it->getCharge(); - static const int range = (int)ceil((Coulomb_cutoff / lattice.getUnitSize())*(Coulomb_cutoff / lattice.getUnitSize())); // Loop through electrons for (auto const &item : electrons) { if (!charge && item.getTag() == polaron_it->getTag()) { continue; } distance_sq_lat = lattice.calculateLatticeDistanceSquared(coords, item.getCoords()); - if (!(distance_sq_lat > range)) { + if (!(distance_sq_lat > Coulomb_range)) { if (!charge) { Energy += Coulomb_table[distance_sq_lat]; } @@ -259,7 +269,7 @@ double OSC_Sim::calculateCoulomb(const list::const_iterator polaron_it, continue; } distance_sq_lat = lattice.calculateLatticeDistanceSquared(coords, item.getCoords()); - if (!(distance_sq_lat > range)) { + if (!(distance_sq_lat > Coulomb_range)) { if (charge) { Energy += Coulomb_table[distance_sq_lat]; } @@ -272,27 +282,25 @@ double OSC_Sim::calculateCoulomb(const list::const_iterator polaron_it, if (!lattice.isZPeriodic() && !Enable_ToF_test) { distance = lattice.getUnitSize()*((double)(lattice.getHeight() - coords.z) - 0.5); if (!((distance - 0.0001) > Coulomb_cutoff)) { - Energy -= image_interactions / distance; + Energy -= Image_interaction_prefactor / distance; } distance = lattice.getUnitSize()*((double)(coords.z + 1) - 0.5); if (!((distance - 0.0001) > Coulomb_cutoff)) { - Energy -= image_interactions / distance; + Energy -= Image_interaction_prefactor / distance; } } return Energy; } double OSC_Sim::calculateCoulomb(const bool charge, const Coords& coords) const { - static const double avgDielectric = (Dielectric_donor + Dielectric_acceptor) / 2; - static const double image_interactions = (Elementary_charge / (16 * Pi*avgDielectric*Vacuum_permittivity))*1e9; double Energy = 0; double distance; int distance_sq_lat; - static const int range = (int)ceil((Coulomb_cutoff / lattice.getUnitSize())*(Coulomb_cutoff / lattice.getUnitSize())); + // Loop through electrons for (auto const &item : electrons) { distance_sq_lat = lattice.calculateLatticeDistanceSquared(coords, item.getCoords()); - if (!(distance_sq_lat > range)) { + if (!(distance_sq_lat > Coulomb_range)) { if (!charge) { Energy += Coulomb_table[distance_sq_lat]; } @@ -304,7 +312,7 @@ double OSC_Sim::calculateCoulomb(const bool charge, const Coords& coords) const // Loop through holes for (auto const &item : holes) { distance_sq_lat = lattice.calculateLatticeDistanceSquared(coords, item.getCoords()); - if (!(distance_sq_lat > range)) { + if (!(distance_sq_lat > Coulomb_range)) { if (charge) { Energy += Coulomb_table[distance_sq_lat]; } @@ -317,29 +325,32 @@ double OSC_Sim::calculateCoulomb(const bool charge, const Coords& coords) const if (!lattice.isZPeriodic()) { distance = lattice.getUnitSize()*((double)(lattice.getHeight() - coords.z) - 0.5); if (!((distance - 0.0001) > Coulomb_cutoff)) { - Energy -= image_interactions / distance; + Energy -= Image_interaction_prefactor / distance; } distance = lattice.getUnitSize()*((double)(coords.z + 1) - 0.5); if (!((distance - 0.0001) > Coulomb_cutoff)) { - Energy -= image_interactions / distance; + Energy -= Image_interaction_prefactor / distance; } } return Energy; } -double OSC_Sim::calculateDiffusionLength_avg() const{ - return vector_avg(diffusion_distances); -} - -double OSC_Sim::calculateDiffusionLength_stdev() const{ - return vector_stdev(diffusion_distances); +void OSC_Sim::calculateDOSCorrelation() { + DOS_correlation_data.clear(); + double cutoff_radius = 1.0; + calculateDOSCorrelation(cutoff_radius); + while (DOS_correlation_data.back().second > 0.01) { + cutoff_radius += 1.0; + calculateDOSCorrelation(cutoff_radius); + } } -vector> OSC_Sim::calculateDOSCorrelation(const double cutoff_radius) { +void OSC_Sim::calculateDOSCorrelation(const double cutoff_radius) { + int size_old = (int)DOS_correlation_data.size(); int range = (int)ceil(cutoff_radius / lattice.getUnitSize()); - int size = (int)ceil(intpow(cutoff_radius / lattice.getUnitSize(), 2)) + 1; - vector sum_total(size, 0.0); - vector count_total(size, 0.0); + int size_new = (int)ceil(2*cutoff_radius / lattice.getUnitSize()) + 1; + vector sum_total(size_new, 0.0); + vector count_total(size_new, 0); vector energies(sites.size()); for (int n = 0, nmax = (int)sites.size(); n < nmax; n++) { Coords coords = lattice.getSiteCoords(n); @@ -350,33 +361,39 @@ vector> OSC_Sim::calculateDOSCorrelation(const double cutoff if (!lattice.checkMoveValidity(coords, i, j, k)) { continue; } + int bin = (int)round(2.0 * sqrt(i * i + j * j + k * k)); + // Calculation is skipped for bin values that have already been calculated during previous calls + if (bin < (size_old - 1)) { + continue; + } Coords dest_coords; lattice.calculateDestinationCoords(coords, i, j, k, dest_coords); - int distance_sq_lat = i*i + j*j + k*k; - if (distance_sq_lat < size) { - sum_total[distance_sq_lat] += getSiteEnergy(coords)*getSiteEnergy(dest_coords); - count_total[distance_sq_lat] += 1.0; + if (bin < size_new) { + sum_total[bin] += getSiteEnergy(coords)*getSiteEnergy(dest_coords); + count_total[bin]++; } } } } } double stdev = vector_stdev(energies); - pair data_pair; - vector> correlation_data(1); - correlation_data[0].first = 0.0; - correlation_data[0].second = 1.0; - for (int m = 1; m < size; m++) { - if (count_total[m] > 0.1) { - data_pair.first = lattice.getUnitSize()*sqrt((double)m); - data_pair.second = sum_total[m] / ((count_total[m] - 1.0)*stdev*stdev); - correlation_data.push_back(data_pair); + DOS_correlation_data.resize(size_new); + DOS_correlation_data[0].first = 0.0; + DOS_correlation_data[0].second = 1.0; + DOS_correlation_data[1].first = lattice.getUnitSize()*0.5; + DOS_correlation_data[1].second = 1.0; + for (int m = 2; m < size_new; m++) { + if (m < size_old) { + continue; + } + if (count_total[m] > 0) { + DOS_correlation_data[m].first = lattice.getUnitSize()*m/2.0; + DOS_correlation_data[m].second = sum_total[m] / ((count_total[m] - 1)*stdev*stdev); } } - return correlation_data; } -vector OSC_Sim::calculateMobilities(const vector& transit_times) const { +vector OSC_Sim::calculateMobilityData(const vector& transit_times) const { vector mobilities = transit_times; for (int i = 0; i < (int)mobilities.size(); i++) { mobilities[i] = (1e-7*lattice.getUnitSize()*lattice.getHeight()) / (fabs(Internal_potential)*transit_times[i]); @@ -385,16 +402,6 @@ vector OSC_Sim::calculateMobilities(const vector& transit_times) return mobilities; } -double OSC_Sim::calculateMobility_avg() const { - auto mobilities = calculateMobilities(transit_times); - return vector_avg(mobilities); -} - -double OSC_Sim::calculateMobility_stdev() const { - auto mobilities = calculateMobilities(transit_times); - return vector_stdev(mobilities); -} - vector OSC_Sim::calculateTransitTimeDist(const vector& data,const int counts) const{ double step_size = 1.0/(double)Transient_pnts_per_decade; vector dist(transient_times.size(),0); @@ -408,16 +415,8 @@ vector OSC_Sim::calculateTransitTimeDist(const vector& data,cons return dist; } -double OSC_Sim::calculateTransitTime_avg() const{ - return vector_avg(transit_times); -} - -double OSC_Sim::calculateTransitTime_stdev() const{ - return vector_stdev(transit_times); -} - Coords OSC_Sim::calculateExcitonCreationCoords(){ - static uniform_real_distribution dist(0.0,R_exciton_generation_donor+R_exciton_generation_acceptor); + uniform_real_distribution dist(0.0,R_exciton_generation_donor+R_exciton_generation_acceptor); double num = dist(generator); short type_target; if(num possible_events; - // Declare static variables - static const int range = (int)ceil( ((FRET_cutoff>Exciton_dissociation_cutoff) ? (FRET_cutoff):(Exciton_dissociation_cutoff))/ lattice.getUnitSize()); - static const int dim = (2*range+1); - static Exciton_Hop hop_event(this); - static vector hops_temp(dim*dim*dim,hop_event); - static Exciton_Dissociation diss_event(this); - static vector dissociations_temp(dim*dim*dim,diss_event); - static Exciton_Exciton_Annihilation eea_event(this); - static vector exciton_exciton_annihilations_temp(dim*dim*dim,eea_event); - static Exciton_Polaron_Annihilation epa_event(this); - static vector exciton_polaron_annihilations_temp(dim*dim*dim,epa_event); - static vector hops_valid(dim*dim*dim,false); - static vector dissociations_valid(dim*dim*dim,false); - static vector exciton_exciton_annihilations_valid(dim*dim*dim, false); - static vector exciton_polaron_annihilations_valid(dim*dim*dim, false); - // pre-calculate a distances vector that contains the distances to nearby sites used for event execution time calculations - // pre-calculate isInDissRange and isInFRETRange vectors that contains booleans to indicate whether the nearby sites are within range for the different exciton events to be possible. - static vector distances(dim*dim*dim, 0.0); - static vector isInDissRange(dim*dim*dim, false); - static vector isInFRETRange(dim*dim*dim, false); - static bool isInitialized = false; - // Initiaize static distances, isInDissRange, and isInFRETRange vectors - if (!isInitialized) { - for (int i = -range; i <= range; i++) { - for (int j = -range; j <= range; j++) { - for (int k = -range; k <= range; k++) { - index = (i + range)*dim*dim + (j + range)*dim + (k + range); - distances[index] = lattice.getUnitSize()*sqrt((double)(i*i + j*j + k*k)); - if (!((distances[index] - 0.0001) > Exciton_dissociation_cutoff)) { - isInDissRange[index] = true; - } - if (!((distances[index] - 0.0001) > FRET_cutoff)) { - isInFRETRange[index] = true; - } - } - } - } - isInitialized = true; - } // Exciton hopping, dissociation, and annihilation events - hops_valid.assign(dim*dim*dim,false); - dissociations_valid.assign(dim*dim*dim, false); - exciton_exciton_annihilations_valid.assign(dim*dim*dim, false); - exciton_polaron_annihilations_valid.assign(dim*dim*dim, false); - for(int i=-range;i<=range;i++){ - for(int j=-range;j<=range;j++){ - for(int k=-range;k<=range;k++){ - index = (i+range)*dim*dim+(j+range)*dim+(k+range); - if (!isInDissRange[index] && !isInFRETRange[index]) { + fill(exciton_event_calc_vars.hops_valid.begin(), exciton_event_calc_vars.hops_valid.end(), false); + fill(exciton_event_calc_vars.dissociations_valid.begin(), exciton_event_calc_vars.dissociations_valid.end(), false); + fill(exciton_event_calc_vars.ee_annihilations_valid.begin(), exciton_event_calc_vars.ee_annihilations_valid.end(), false); + fill(exciton_event_calc_vars.ep_annihilations_valid.begin(), exciton_event_calc_vars.ep_annihilations_valid.end(), false); + for (int i = -exciton_event_calc_vars.range, imax = exciton_event_calc_vars.range; i <= imax; i++) { + for (int j = -exciton_event_calc_vars.range, jmax = exciton_event_calc_vars.range; j <= jmax; j++) { + for (int k = -exciton_event_calc_vars.range, kmax = exciton_event_calc_vars.range; k <= kmax; k++) { + int index = (i + exciton_event_calc_vars.range)*exciton_event_calc_vars.dim*exciton_event_calc_vars.dim + (j + exciton_event_calc_vars.range)*exciton_event_calc_vars.dim + (k + exciton_event_calc_vars.range); + if (!exciton_event_calc_vars.isInDissRange[index] && !exciton_event_calc_vars.isInFRETRange[index]) { continue; } - if(!lattice.checkMoveValidity(object_coords,i,j,k)){ - continue; - } - lattice.calculateDestinationCoords(object_coords,i,j,k,dest_coords); + if (!lattice.checkMoveValidity(object_coords, i, j, k)) { + continue; + } + lattice.calculateDestinationCoords(object_coords, i, j, k, dest_coords); // Annihilation events if (lattice.isOccupied(dest_coords)) { - if (isInFRETRange[index]) { + if (exciton_event_calc_vars.isInFRETRange[index]) { auto object_target_ptr = sites[lattice.getSiteIndex(dest_coords)].getObjectPtr(); // Exciton-Exciton annihilation - if (object_target_ptr->getObjectType().compare(Exciton::object_type)==0) { - exciton_exciton_annihilations_temp[index].setObjectPtr(exciton_ptr); - exciton_exciton_annihilations_temp[index].setDestCoords(dest_coords); - exciton_exciton_annihilations_temp[index].setObjectTargetPtr(object_target_ptr); + if (object_target_ptr->getObjectType().compare(Exciton::object_type) == 0) { + // Skip disallowed triplet-singlet annihilation + if (!exciton_it->getSpin() && getExcitonIt(object_target_ptr)->getSpin()) { + continue; + } + exciton_event_calc_vars.ee_annihilations_temp[index].setObjectPtr(exciton_ptr); + exciton_event_calc_vars.ee_annihilations_temp[index].setDestCoords(dest_coords); + exciton_event_calc_vars.ee_annihilations_temp[index].setObjectTargetPtr(object_target_ptr); // Exciton is starting from a donor site if (getSiteType(object_coords) == (short)1) { // Triplet Dexter mechanism if (!exciton_it->getSpin() && !Enable_FRET_triplet_annihilation) { - exciton_exciton_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_donor, Triplet_localization_donor, distances[index]); + exciton_event_calc_vars.ee_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_donor, Triplet_localization_donor, exciton_event_calc_vars.distances[index]); } // FRET mechanism else { - exciton_exciton_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_donor, distances[index]); + exciton_event_calc_vars.ee_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_donor, exciton_event_calc_vars.distances[index]); } } // Exciton is starting from an acceptor site else { // Triplet Dexter mechanism if (!exciton_it->getSpin() && !Enable_FRET_triplet_annihilation) { - exciton_exciton_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_acceptor, Triplet_localization_acceptor, distances[index]); + exciton_event_calc_vars.ee_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_acceptor, Triplet_localization_acceptor, exciton_event_calc_vars.distances[index]); } // FRET mechanism else { - exciton_exciton_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_acceptor, distances[index]); + exciton_event_calc_vars.ee_annihilations_temp[index].calculateExecutionTime(R_exciton_exciton_annihilation_acceptor, exciton_event_calc_vars.distances[index]); } } - exciton_exciton_annihilations_valid[index] = true; + exciton_event_calc_vars.ee_annihilations_valid[index] = true; } // Exciton-Polaron annihilation - else if(sites[lattice.getSiteIndex(dest_coords)].getObjectPtr()->getObjectType().compare(Polaron::object_type)==0) { - exciton_polaron_annihilations_temp[index].setObjectPtr(exciton_ptr); - exciton_polaron_annihilations_temp[index].setDestCoords(dest_coords); - exciton_polaron_annihilations_temp[index].setObjectTargetPtr(object_target_ptr); + else if (sites[lattice.getSiteIndex(dest_coords)].getObjectPtr()->getObjectType().compare(Polaron::object_type) == 0) { + exciton_event_calc_vars.ep_annihilations_temp[index].setObjectPtr(exciton_ptr); + exciton_event_calc_vars.ep_annihilations_temp[index].setDestCoords(dest_coords); + exciton_event_calc_vars.ep_annihilations_temp[index].setObjectTargetPtr(object_target_ptr); // Exciton is starting from a donor site if (getSiteType(object_coords) == (short)1) { // Triplet Dexter mechanism if (!exciton_it->getSpin() && !Enable_FRET_triplet_annihilation) { - exciton_polaron_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_donor,Triplet_localization_donor, distances[index]); + exciton_event_calc_vars.ep_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_donor, Triplet_localization_donor, exciton_event_calc_vars.distances[index]); } // FRET mechanism else { - exciton_polaron_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_donor, distances[index]); + exciton_event_calc_vars.ep_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_donor, exciton_event_calc_vars.distances[index]); } } // Exciton is starting from an acceptor site else { // Triplet Dexter mechanism if (!exciton_it->getSpin() && !Enable_FRET_triplet_annihilation) { - exciton_polaron_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_acceptor,Triplet_localization_acceptor, distances[index]); + exciton_event_calc_vars.ep_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_acceptor, Triplet_localization_acceptor, exciton_event_calc_vars.distances[index]); } // FRET mechanism else { - exciton_polaron_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_acceptor, distances[index]); + exciton_event_calc_vars.ep_annihilations_temp[index].calculateExecutionTime(R_exciton_polaron_annihilation_acceptor, exciton_event_calc_vars.distances[index]); } } - exciton_polaron_annihilations_valid[index] = true; + exciton_event_calc_vars.ep_annihilations_valid[index] = true; } } } // Dissociation and Hop events else { // Dissociation event - if (getSiteType(object_coords) != getSiteType(dest_coords) && isInDissRange[index]) { - dissociations_temp[index].setObjectPtr(exciton_ptr); - dissociations_temp[index].setDestCoords(dest_coords); + if (getSiteType(object_coords) != getSiteType(dest_coords) && exciton_event_calc_vars.isInDissRange[index]) { + exciton_event_calc_vars.dissociations_temp[index].setObjectPtr(exciton_ptr); + exciton_event_calc_vars.dissociations_temp[index].setDestCoords(dest_coords); // Exciton is starting from a donor site if (getSiteType(object_coords) == (short)1) { - Coulomb_final = calculateCoulomb(true, object_coords) + calculateCoulomb(false, dest_coords) - Coulomb_table[i*i + j*j + k*k]; + Coulomb_final = calculateCoulomb(true, object_coords) + calculateCoulomb(false, dest_coords) - Coulomb_table[i*i + j * j + k * k]; E_delta = (getSiteEnergy(dest_coords) - getSiteEnergy(object_coords)) - (Lumo_acceptor - Lumo_donor) + (Coulomb_final + E_exciton_binding_donor) + (E_potential[dest_coords.z] - E_potential[object_coords.z]); // Singlet if (exciton_ptr->getSpin()) { if (Enable_miller_abrahams) { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Singlet_localization_donor, distances[index], E_delta); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Singlet_localization_donor, exciton_event_calc_vars.distances[index], E_delta); } else { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Singlet_localization_donor, distances[index], E_delta, Reorganization_donor); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Singlet_localization_donor, exciton_event_calc_vars.distances[index], E_delta, Reorganization_donor); } } // Triplet @@ -598,44 +561,44 @@ void OSC_Sim::calculateExcitonEvents(Exciton* exciton_ptr){ // Increase E_delta by the singlet-triplet energy splititng if the exciton is a triplet E_delta += E_exciton_ST_donor; if (Enable_miller_abrahams) { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Triplet_localization_donor, distances[index], E_delta); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Triplet_localization_donor, exciton_event_calc_vars.distances[index], E_delta); } else { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Triplet_localization_donor, distances[index], E_delta, Reorganization_donor); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_donor, Triplet_localization_donor, exciton_event_calc_vars.distances[index], E_delta, Reorganization_donor); } } } // Exciton is starting from an acceptor site else { - Coulomb_final = calculateCoulomb(false, object_coords) + calculateCoulomb(true, dest_coords) - Coulomb_table[i*i + j*j + k*k]; + Coulomb_final = calculateCoulomb(false, object_coords) + calculateCoulomb(true, dest_coords) - Coulomb_table[i*i + j * j + k * k]; E_delta = (getSiteEnergy(dest_coords) - getSiteEnergy(object_coords)) + (Homo_donor - Homo_acceptor) + (Coulomb_final + E_exciton_binding_donor) - (E_potential[dest_coords.z] - E_potential[object_coords.z]); // Singlet if (exciton_ptr->getSpin()) { if (Enable_miller_abrahams) { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Singlet_localization_acceptor, distances[index], E_delta); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Singlet_localization_acceptor, exciton_event_calc_vars.distances[index], E_delta); } else { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Singlet_localization_acceptor, distances[index], E_delta, Reorganization_acceptor); - } + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Singlet_localization_acceptor, exciton_event_calc_vars.distances[index], E_delta, Reorganization_acceptor); + } } // Triplet else { // Increase E_delta by the singlet-triplet energy splititng if the exciton is a triplet E_delta += E_exciton_ST_acceptor; if (Enable_miller_abrahams) { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Triplet_localization_acceptor, distances[index], E_delta); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Triplet_localization_acceptor, exciton_event_calc_vars.distances[index], E_delta); } else { - dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Triplet_localization_acceptor, distances[index], E_delta, Reorganization_acceptor); + exciton_event_calc_vars.dissociations_temp[index].calculateExecutionTime(R_exciton_dissociation_acceptor, Triplet_localization_acceptor, exciton_event_calc_vars.distances[index], E_delta, Reorganization_acceptor); } } } - dissociations_valid[index] = true; + exciton_event_calc_vars.dissociations_valid[index] = true; } // Hop event - if (isInFRETRange[index]) { - hops_temp[index].setObjectPtr(exciton_ptr); - hops_temp[index].setDestCoords(dest_coords); + if (exciton_event_calc_vars.isInFRETRange[index]) { + exciton_event_calc_vars.hops_temp[index].setObjectPtr(exciton_ptr); + exciton_event_calc_vars.hops_temp[index].setDestCoords(dest_coords); E_delta = (getSiteEnergy(dest_coords) - getSiteEnergy(object_coords)); // Singlet FRET hopping if (exciton_it->getSpin()) { @@ -644,34 +607,33 @@ void OSC_Sim::calculateExcitonEvents(Exciton* exciton_ptr){ if (getSiteType(dest_coords) == (short)2) { E_delta += (Homo_acceptor - Lumo_acceptor - E_exciton_binding_acceptor) - (Homo_donor - Lumo_donor - E_exciton_binding_donor); } - hops_temp[index].calculateExecutionTime(R_singlet_hopping_donor, distances[index], E_delta); + exciton_event_calc_vars.hops_temp[index].calculateExecutionTime(R_singlet_hopping_donor, exciton_event_calc_vars.distances[index], E_delta); } else { // acceptor-to-donor energy modification if (getSiteType(dest_coords) == (short)1) { E_delta += (Homo_donor - Lumo_donor - E_exciton_binding_donor) - (Homo_acceptor - Lumo_acceptor - E_exciton_binding_acceptor); } - hops_temp[index].calculateExecutionTime(R_singlet_hopping_acceptor, distances[index], E_delta); + exciton_event_calc_vars.hops_temp[index].calculateExecutionTime(R_singlet_hopping_acceptor, exciton_event_calc_vars.distances[index], E_delta); } } // Dexter hopping is only donor-to-donor and acceptor-to-acceptor else { if (getSiteType(object_coords) == (short)1) { - hops_temp[index].calculateExecutionTime(R_triplet_hopping_donor, Triplet_localization_donor, distances[index], E_delta); + exciton_event_calc_vars.hops_temp[index].calculateExecutionTime(R_triplet_hopping_donor, Triplet_localization_donor, exciton_event_calc_vars.distances[index], E_delta); } else { - hops_temp[index].calculateExecutionTime(R_triplet_hopping_donor, Triplet_localization_acceptor, distances[index], E_delta); + exciton_event_calc_vars.hops_temp[index].calculateExecutionTime(R_triplet_hopping_donor, Triplet_localization_acceptor, exciton_event_calc_vars.distances[index], E_delta); } } - hops_valid[index] = true; + exciton_event_calc_vars.hops_valid[index] = true; } } - } - } - } + } + } + } // Exciton Recombination - auto recombination_event_it = exciton_recombination_events.begin(); - std::advance(recombination_event_it,std::distance(excitons.begin(),exciton_it)); + auto recombination_event_it = find_if(exciton_recombination_events.begin(), exciton_recombination_events.end(), [exciton_ptr](Exciton_Recombination& a) { return a.getObjectPtr() == exciton_ptr; }); if (exciton_it->getSpin()) { if (getSiteType(object_coords) == (short)1) { rate = 1.0 / Singlet_lifetime_donor; @@ -691,8 +653,7 @@ void OSC_Sim::calculateExcitonEvents(Exciton* exciton_ptr){ recombination_event_it->calculateExecutionTime(rate); possible_events.push_back(&(*recombination_event_it)); // Exciton Intersystem Crossing - auto intersystem_crossing_event_it = exciton_intersystem_crossing_events.begin(); - std::advance(intersystem_crossing_event_it, std::distance(excitons.begin(), exciton_it)); + auto intersystem_crossing_event_it = find_if(exciton_intersystem_crossing_events.begin(), exciton_intersystem_crossing_events.end(), [exciton_ptr](Exciton_Intersystem_Crossing& a) { return a.getObjectPtr() == exciton_ptr; }); // ISC if (exciton_it->getSpin()) { if (getSiteType(object_coords) == (short)1) { @@ -714,33 +675,33 @@ void OSC_Sim::calculateExcitonEvents(Exciton* exciton_ptr){ } possible_events.push_back(&(*intersystem_crossing_event_it)); // Determine the valid exciton-exciton annihilation events - index = 0; - for (auto &item : exciton_exciton_annihilations_temp) { - if (exciton_exciton_annihilations_valid[index]) { + int index = 0; + for (auto &item : exciton_event_calc_vars.ee_annihilations_temp) { + if (exciton_event_calc_vars.ee_annihilations_valid[index]) { possible_events.push_back(&item); } index++; } // Determine the valid exciton-polaron annihilation events index = 0; - for (auto &item : exciton_polaron_annihilations_temp) { - if (exciton_polaron_annihilations_valid[index]) { + for (auto &item : exciton_event_calc_vars.ep_annihilations_temp) { + if (exciton_event_calc_vars.ep_annihilations_valid[index]) { possible_events.push_back(&item); } index++; } // Determine the valid hop events index = 0; - for (auto &item : hops_temp){ - if(hops_valid[index]){ + for (auto &item : exciton_event_calc_vars.hops_temp){ + if(exciton_event_calc_vars.hops_valid[index]){ possible_events.push_back(&item); } index++; } // Determine the valid dissociation events index = 0; - for (auto &item : dissociations_temp){ - if(dissociations_valid[index]){ + for (auto &item : exciton_event_calc_vars.dissociations_temp){ + if(exciton_event_calc_vars.dissociations_valid[index]){ possible_events.push_back(&item); } index++; @@ -754,13 +715,20 @@ void OSC_Sim::calculateExcitonEvents(Exciton* exciton_ptr){ return; } // Determine fastest valid event - double best_time = possible_events[0]->getExecutionTime(); - Event* event_ptr_target = possible_events[0]; - for (auto const &event_ptr : possible_events) { - if (event_ptr->getExecutionTime() < best_time) { - best_time = event_ptr->getExecutionTime(); - event_ptr_target = event_ptr; - } + Event* event_ptr_target; + auto possible_it = min_element(possible_events.begin(), possible_events.end(), [](Event* ptr1, Event* ptr2) { + return ptr1->getExecutionTime() < ptr2->getExecutionTime(); + }); + if (possible_it != possible_events.end()) { + event_ptr_target = *possible_it; + } + // Check that the execution time is valid + if (event_ptr_target->getExecutionTime() < getTime()) { + setObjectEvent(exciton_ptr, nullptr); + cout << getId() << ": Error! The fastest exciton event execution time is less than the current simulation time." << endl; + setErrorMessage(" The fastest exciton event execution time is less than the current simulation time."); + Error_found = true; + return; } // Copy the chosen temp event to the appropriate main event list and set the target event pointer to the corresponding event from the main list string event_type = event_ptr_target->getEventType(); @@ -837,115 +805,86 @@ void OSC_Sim::calculatePolaronEvents(Polaron* polaron_ptr){ double E_site_i = getSiteEnergy(object_coords); double Coulomb_i = calculateCoulomb(polaron_it,object_coords); vector possible_events; - // Static obejcts - static const int range = (int)ceil(Polaron_hopping_cutoff/ lattice.getUnitSize()); - static const int dim = (2*range+1); - static Polaron_Hop hop_event(this); - static vector hops_temp(dim*dim*dim,hop_event); - static Polaron_Recombination rec_event(this); - static vector recombinations_temp(dim*dim*dim,rec_event); - static vector hops_valid(dim*dim*dim,false); - static vector recombinations_valid(dim*dim*dim,false); - // pre-calculate a distances vector that contains the distances to nearby sites used for event execution time calculations - // pre-calculate a isInRange vector that contains booleans to indicate if the nearby sites are within range for polaron events to be possible. - static vector distances(dim*dim*dim, 0.0); - static vector E_deltas(dim*dim*dim, 0.0); - static vector isInRange(dim*dim*dim, false); - static bool isInitialized = false; - // Intialize static distances and isInRange vectors - if (!isInitialized) { - for (int i = -range; i <= range; i++) { - for (int j = -range; j <= range; j++) { - for (int k = -range; k <= range; k++) { - index = (i + range)*dim*dim + (j + range)*dim + (k + range); - distances[index] = lattice.getUnitSize()*sqrt((double)(i*i + j*j + k*k)); - if (!((distances[index] - 0.0001) > Polaron_hopping_cutoff)) { - isInRange[index] = true; - } - } - } - } - isInitialized = true; - } + // Calculate Polaron hopping and recombination events - hops_valid.assign(dim*dim*dim, false); - recombinations_valid.assign(dim*dim*dim, false); - for(int i=-range;i<=range;i++){ - for(int j=-range;j<=range;j++){ - for(int k=-range;k<=range;k++){ - index = (i + range)*dim*dim + (j + range)*dim + (k + range); - if (!isInRange[index]) { + fill(polaron_event_calc_vars.hops_valid.begin(), polaron_event_calc_vars.hops_valid.end(), false); + fill(polaron_event_calc_vars.recombinations_valid.begin(), polaron_event_calc_vars.recombinations_valid.end(), false); + for (int i = -polaron_event_calc_vars.range, imax = polaron_event_calc_vars.range; i <= imax; i++) { + for (int j = -polaron_event_calc_vars.range, jmax = polaron_event_calc_vars.range; j <= jmax; j++) { + for (int k = -polaron_event_calc_vars.range, kmax = polaron_event_calc_vars.range; k <= kmax; k++) { + index = (i + polaron_event_calc_vars.range)*polaron_event_calc_vars.dim*polaron_event_calc_vars.dim + (j + polaron_event_calc_vars.range)*polaron_event_calc_vars.dim + (k + polaron_event_calc_vars.range); + if (!polaron_event_calc_vars.isInRange[index]) { continue; } if (!lattice.checkMoveValidity(object_coords, i, j, k)) { continue; } - lattice.calculateDestinationCoords(object_coords,i,j,k,dest_coords); - // Recombination events - // If destination site is occupied by a hole Polaron and the main Polaron is an electron, check for a possible recombination event - if(lattice.isOccupied(dest_coords) && !polaron_it->getCharge() && siteContainsHole(dest_coords)){ - if(getSiteType(object_coords)==(short)1){ - recombinations_temp[index].calculateExecutionTime(R_polaron_recombination,Polaron_localization_donor,distances[index],0); - } - else if(getSiteType(object_coords)==(short)2){ - recombinations_temp[index].calculateExecutionTime(R_polaron_recombination,Polaron_localization_acceptor,distances[index],0); - } - recombinations_temp[index].setObjectPtr(polaron_ptr); - recombinations_temp[index].setDestCoords(dest_coords); - recombinations_temp[index].setObjectTargetPtr((*lattice.getSiteIt(dest_coords))->getObjectPtr()); - recombinations_valid[index] = true; - } - // Hop events - // If destination site is unoccupied and either phase restriction is disabled or the starting site and destination sites have the same type, check for a possible hop event - if(!lattice.isOccupied(dest_coords) && (!Enable_phase_restriction || getSiteType(object_coords)==getSiteType(dest_coords))){ - E_deltas[index] = (getSiteEnergy(dest_coords) - E_site_i); - E_deltas[index] += (calculateCoulomb(polaron_it,dest_coords)-Coulomb_i); - if(!polaron_it->getCharge()){ - E_deltas[index] += (E_potential[dest_coords.z]-E_potential[object_coords.z]); - } - else{ - E_deltas[index] -= (E_potential[dest_coords.z]-E_potential[object_coords.z]); - } - if(getSiteType(object_coords)==(short)1){ - if(getSiteType(dest_coords)==(short)2){ - if(!polaron_it->getCharge()){ - E_deltas[index] -= (Lumo_acceptor-Lumo_donor); - } - else{ - E_deltas[index] -= (Homo_acceptor-Homo_donor); - } - } - if(Enable_miller_abrahams){ - hops_temp[index].calculateExecutionTime(R_polaron_hopping_donor,Polaron_localization_donor,distances[index],E_deltas[index]); - } - else{ - hops_temp[index].calculateExecutionTime(R_polaron_hopping_donor,Polaron_localization_donor,distances[index],E_deltas[index],Reorganization_donor); - } - } - else if(getSiteType(object_coords)==(short)2){ - if(getSiteType(dest_coords)==(short)1){ - if(!polaron_it->getCharge()){ - E_deltas[index] -= (Lumo_donor-Lumo_acceptor); - } - else{ - E_deltas[index] -= (Homo_donor-Homo_acceptor); - } - } - if(Enable_miller_abrahams){ - hops_temp[index].calculateExecutionTime(R_polaron_hopping_acceptor,Polaron_localization_acceptor,distances[index],E_deltas[index]); - } - else{ - hops_temp[index].calculateExecutionTime(R_polaron_hopping_acceptor,Polaron_localization_acceptor,distances[index],E_deltas[index],Reorganization_acceptor); - } - } - hops_temp[index].setObjectPtr(polaron_ptr); - hops_temp[index].setDestCoords(dest_coords); - hops_temp[index].setObjectTargetPtr(nullptr); - hops_valid[index] = true; - } - } - } - } + lattice.calculateDestinationCoords(object_coords, i, j, k, dest_coords); + // Recombination events + // If destination site is occupied by a hole Polaron and the main Polaron is an electron, check for a possible recombination event + if (lattice.isOccupied(dest_coords) && !polaron_it->getCharge() && siteContainsHole(dest_coords)) { + if (getSiteType(object_coords) == (short)1) { + polaron_event_calc_vars.recombinations_temp[index].calculateExecutionTime(R_polaron_recombination, Polaron_localization_donor, polaron_event_calc_vars.distances[index], 0); + } + else if (getSiteType(object_coords) == (short)2) { + polaron_event_calc_vars.recombinations_temp[index].calculateExecutionTime(R_polaron_recombination, Polaron_localization_acceptor, polaron_event_calc_vars.distances[index], 0); + } + polaron_event_calc_vars.recombinations_temp[index].setObjectPtr(polaron_ptr); + polaron_event_calc_vars.recombinations_temp[index].setDestCoords(dest_coords); + polaron_event_calc_vars.recombinations_temp[index].setObjectTargetPtr((*lattice.getSiteIt(dest_coords))->getObjectPtr()); + polaron_event_calc_vars.recombinations_valid[index] = true; + } + // Hop events + // If destination site is unoccupied and either phase restriction is disabled or the starting site and destination sites have the same type, check for a possible hop event + if (!lattice.isOccupied(dest_coords) && (!Enable_phase_restriction || getSiteType(object_coords) == getSiteType(dest_coords))) { + polaron_event_calc_vars.E_deltas[index] = (getSiteEnergy(dest_coords) - E_site_i); + polaron_event_calc_vars.E_deltas[index] += (calculateCoulomb(polaron_it, dest_coords) - Coulomb_i); + if (!polaron_it->getCharge()) { + polaron_event_calc_vars.E_deltas[index] += (E_potential[dest_coords.z] - E_potential[object_coords.z]); + } + else { + polaron_event_calc_vars.E_deltas[index] -= (E_potential[dest_coords.z] - E_potential[object_coords.z]); + } + if (getSiteType(object_coords) == (short)1) { + if (getSiteType(dest_coords) == (short)2) { + if (!polaron_it->getCharge()) { + polaron_event_calc_vars.E_deltas[index] -= (Lumo_acceptor - Lumo_donor); + } + else { + polaron_event_calc_vars.E_deltas[index] -= (Homo_acceptor - Homo_donor); + } + } + if (Enable_miller_abrahams) { + polaron_event_calc_vars.hops_temp[index].calculateExecutionTime(R_polaron_hopping_donor, Polaron_localization_donor, polaron_event_calc_vars.distances[index], polaron_event_calc_vars.E_deltas[index]); + } + else { + polaron_event_calc_vars.hops_temp[index].calculateExecutionTime(R_polaron_hopping_donor, Polaron_localization_donor, polaron_event_calc_vars.distances[index], polaron_event_calc_vars.E_deltas[index], Reorganization_donor); + } + } + else if (getSiteType(object_coords) == (short)2) { + if (getSiteType(dest_coords) == (short)1) { + if (!polaron_it->getCharge()) { + polaron_event_calc_vars.E_deltas[index] -= (Lumo_donor - Lumo_acceptor); + } + else { + polaron_event_calc_vars.E_deltas[index] -= (Homo_donor - Homo_acceptor); + } + } + if (Enable_miller_abrahams) { + polaron_event_calc_vars.hops_temp[index].calculateExecutionTime(R_polaron_hopping_acceptor, Polaron_localization_acceptor, polaron_event_calc_vars.distances[index], polaron_event_calc_vars.E_deltas[index]); + } + else { + polaron_event_calc_vars.hops_temp[index].calculateExecutionTime(R_polaron_hopping_acceptor, Polaron_localization_acceptor, polaron_event_calc_vars.distances[index], polaron_event_calc_vars.E_deltas[index], Reorganization_acceptor); + } + } + polaron_event_calc_vars.hops_temp[index].setObjectPtr(polaron_ptr); + polaron_event_calc_vars.hops_temp[index].setDestCoords(dest_coords); + polaron_event_calc_vars.hops_temp[index].setObjectTargetPtr(nullptr); + polaron_event_calc_vars.hops_valid[index] = true; + } + } + } + } // Calculate possible extraction event // Electrons are extracted at the bottom of the lattice (z=-1) // Holes are extracted at the top of the lattice (z=Height) @@ -983,16 +922,16 @@ void OSC_Sim::calculatePolaronEvents(Polaron* polaron_ptr){ } // Add the valid hop events to possible events vector index = 0; - for (auto &item : hops_temp){ - if(hops_valid[index]){ + for (auto &item : polaron_event_calc_vars.hops_temp){ + if(polaron_event_calc_vars.hops_valid[index]){ possible_events.push_back(&item); } index++; } // Add the valid recombination events to the possible events vector index = 0; - for (auto &item : recombinations_temp){ - if(recombinations_valid[index]){ + for (auto &item : polaron_event_calc_vars.recombinations_temp){ + if(polaron_event_calc_vars.recombinations_valid[index]){ possible_events.push_back(&item); } index++; @@ -1000,16 +939,26 @@ void OSC_Sim::calculatePolaronEvents(Polaron* polaron_ptr){ // If there are no possible events, return an error if(possible_events.size()==0){ setObjectEvent(polaron_ptr,nullptr); + cout << getId() << ": Error! No valid polaron events could be calculated." << endl; + setErrorMessage("No valid polaronm events could be calculated."); + Error_found = true; return; } // Determine the fastest possible event - double best_time = possible_events[0]->getExecutionTime(); - Event* event_ptr_target = possible_events[0]; - for (auto const &event_ptr : possible_events) { - if (event_ptr->getExecutionTime() < best_time) { - best_time = event_ptr->getExecutionTime(); - event_ptr_target = event_ptr; - } + Event* event_ptr_target; + auto possible_it = min_element(possible_events.begin(), possible_events.end(), [](Event* ptr1, Event* ptr2) { + return ptr1->getExecutionTime() < ptr2->getExecutionTime(); + }); + if (possible_it != possible_events.end()) { + event_ptr_target = *possible_it; + } + // Check that the execution time is valid + if (event_ptr_target->getExecutionTime() < getTime()) { + setObjectEvent(polaron_ptr, nullptr); + cout << getId() << ": Error! The fastest polaron event execution time is less than the current simulation time." << endl; + setErrorMessage(" The fastest polaron event execution time is less than the current simulation time."); + Error_found = true; + return; } // Copy the chosen temp event to the appropriate main event list and set the target event pointer to the corresponding event from the main list string event_type = event_ptr_target->getEventType(); @@ -1062,7 +1011,7 @@ bool OSC_Sim::checkFinished() const{ return (N_excitons == 0 && N_electrons == 0 && N_holes == 0 && N_excitons_created >= N_tests); } if(Enable_ToF_test){ - return ((N_electrons==0 && N_electrons_collected>=N_tests) || (N_holes==0 && N_holes_collected>=N_tests) || N_electrons_created>2*N_tests || N_holes_created>2*N_tests); + return ((N_electrons==0 && N_electrons_created>=N_tests) || (N_holes==0 && N_holes_created>=N_tests)); } if(Enable_IQE_test){ if(N_excitons_created==N_tests && N_excitons==0 && N_electrons==0 && N_holes==0){ @@ -1153,6 +1102,10 @@ bool OSC_Sim::checkParameters(const Parameters_OPV& params) const { return false; } // Check test parameters + if (params.Enable_ToF_test && ((params.Enable_ToF_random_placement && params.Enable_ToF_energy_placement) || (!params.Enable_ToF_random_placement && !params.Enable_ToF_energy_placement))) { + cout << "Error! For a time-of-flight charge transport test either the random placement or the low energy placement option must be enabled." << endl; + return false; + } if (params.Enable_ToF_test && params.Enable_bilayer) { cout << "Error! The bilayer film architecture cannot be used with the time-of-flight charge transport test." << endl; return false; @@ -1161,6 +1114,10 @@ bool OSC_Sim::checkParameters(const Parameters_OPV& params) const { cout << "Error! The z-direction periodic boundary must be disabled in order to run the time-of-flight charge transport test." << endl; return false; } + if (params.Enable_ToF_test && !params.ToF_polaron_type && params.Enable_neat) { + cout << "Error! The time-of-flight charge transport test cannot be performed with electrons on a neat film architecture. Use holes instead." << endl; + return false; + } if (params.Enable_IQE_test && params.Enable_periodic_z) { cout << "Error! The z-direction periodic boundary must be disabled in order to run the internal quantum efficiency test." << endl; return false; @@ -1204,16 +1161,6 @@ bool OSC_Sim::checkParameters(const Parameters_OPV& params) const { cout << "Error! When running a dynamics test with extraction, z-direction periodic boundaries cannot be used." << endl; return false; } - // Check ToF test conditions - if (params.Enable_ToF_test && params.Enable_periodic_z) { - cout << "Error! When running a ToF test, z-direction periodic boundaries cannot be used." << endl; - return false; - } - // Check IQE test conditions - if (params.Enable_IQE_test && params.Enable_periodic_z) { - cout << "Error! When running an IQE test, z-direction periodic boundaries cannot be used." << endl; - return false; - } // Check exciton parameters if (params.Exciton_generation_rate_donor < 0 || params.Exciton_generation_rate_acceptor < 0) { cout << "Error! The exciton generation rate of the donor and acceptor must not be negative." << endl; @@ -1348,8 +1295,8 @@ bool OSC_Sim::checkParameters(const Parameters_OPV& params) const { cout << "Error! When using the correlated disorder model with the power kernel, the power kernel exponent must be either -1 or -2." << endl; return false; } - if (params.Enable_correlated_disorder && (params.Disorder_correlation_length < 0.999 || params.Disorder_correlation_length > 3.001)) { - cout << "Error! When using the correlated disorder model, the disorder correlation length must be in the range between 1.0 and 3.0." << endl; + if (params.Enable_correlated_disorder && (params.Disorder_correlation_length < 0.999 || params.Disorder_correlation_length > 2.001)) { + cout << "Error! When using the correlated disorder model, the disorder correlation length must be in the range between 1.0 and 2.0." << endl; return false; } if (params.Enable_correlated_disorder && !params.Enable_neat && params.Energy_stdev_donor != params.Energy_stdev_acceptor) { @@ -1373,116 +1320,178 @@ bool OSC_Sim::checkParameters(const Parameters_OPV& params) const { } void OSC_Sim::createCorrelatedDOS(const double correlation_length) { - int range; double stdev, percent_diff; - double distance_max = 0; double scale_factor = 1; - double Unit_size = lattice.getUnitSize(); if (Enable_gaussian_kernel) { - distance_max = 1 + 1.8*correlation_length; - scale_factor = -0.1 - 1.21*pow(correlation_length, -2.87); + scale_factor = -0.07*exp((correlation_length-1)/-0.21) - 0.09*exp((correlation_length-1)/-0.9); } if (Enable_power_kernel && Power_kernel_exponent == -1) { - distance_max = 1 + 4.5*correlation_length; scale_factor = 0.7 + 3.1*pow(correlation_length, -1.55); } if (Enable_power_kernel && Power_kernel_exponent == -2) { - distance_max = 1 + 2.3*correlation_length; scale_factor = -0.4 + 2.2*pow(correlation_length, -0.74); scale_factor = pow(scale_factor, 2); } - // Create and calculates distances and range check vectors - range = (int)ceil(distance_max / Unit_size); - int dim = 2 * range + 1; - int vec_size = dim*dim*dim; - vector distances(vec_size, 0.0); - vector isInRange(vec_size, false); - vector distance_indices(vec_size, 0); - for (int i = -range; i <= range; i++) { - for (int j = -range; j <= range; j++) { - for (int k = -range; k <= range; k++) { - int index = (i + range)*dim*dim + (j + range)*dim + (k + range); - distance_indices[index] = i*i + j*j + k*k; - distances[index] = Unit_size*sqrt((double)(i*i + j*j + k*k)); - if (i == 0 && j == 0 && k == 0) { - distances[index] = -1.0; - } - else if ((distances[index] - 1e-6) < distance_max) { - isInRange[index] = true; - } - } - } + // Save original site energies + vector original_energies((int)sites.size(), 0.0); + for (int n = 0; n < (int)sites.size(); n++) { + original_energies[n] = sites[n].getEnergy(); } - // Impart correlation vector new_energies((int)sites.size(), 0.0); - vector isAble(vec_size, 0.0); - vector energies_temp(vec_size, 0.0); - vector counts((int)ceil((distance_max / Unit_size)*(distance_max / Unit_size)) + 1, 0.0); - for (int n = 0, nmax = (int)sites.size(); n < nmax; n++) { - isAble.assign(vec_size, 0.0); - energies_temp.assign(vec_size, 0.0); - Coords coords = lattice.getSiteCoords(n); - // Get nearby site energies and determine if able - #pragma loop(hint_parallel(2)) - #pragma loop(ivdep) + int range = 2; + while (1) { + // Create and calculates distances and range check vectors + int dim = 2 * range + 1; + int vec_size = dim * dim*dim; + vector distances(vec_size, 0.0); + vector isInRange(vec_size, false); + vector distance_indices(vec_size, 0); for (int i = -range; i <= range; i++) { for (int j = -range; j <= range; j++) { for (int k = -range; k <= range; k++) { - if (!lattice.checkMoveValidity(coords, i, j, k)) { - continue; - } - Coords dest_coords; - lattice.calculateDestinationCoords(coords, i, j, k, dest_coords); int index = (i + range)*dim*dim + (j + range)*dim + (k + range); - if (isInRange[index]) { - energies_temp[index] = getSiteEnergy(dest_coords); - isAble[index] = 1.0; + distance_indices[index] = i * i + j * j + k * k; + distances[index] = lattice.getUnitSize()*sqrt((double)(i*i + j * j + k * k)); + if (i == 0 && j == 0 && k == 0) { + distances[index] = -1.0; + } + else if (distance_indices[index] < range*range) { + isInRange[index] = true; } } } } - if (Enable_gaussian_kernel) { - for (int m = 0; m < vec_size; m++) { - energies_temp[m] = isAble[m] * energies_temp[m] * exp(scale_factor * distances[m] * distances[m]); + // Impart correlation + vector isAble(vec_size, 0.0); + vector energies_temp(vec_size, 0.0); + vector counts(range*range + 1, 0); + for (int n = 0, nmax = (int)sites.size(); n < nmax; n++) { + isAble.assign(vec_size, 0.0); + energies_temp.assign(vec_size, 0.0); + Coords coords = lattice.getSiteCoords(n); + // Get nearby site energies and determine if able + #pragma loop(hint_parallel(2)) + #pragma loop(ivdep) + for (int i = -range; i <= range; i++) { + for (int j = -range; j <= range; j++) { + for (int k = -range; k <= range; k++) { + if (!lattice.checkMoveValidity(coords, i, j, k)) { + continue; + } + Coords dest_coords; + lattice.calculateDestinationCoords(coords, i, j, k, dest_coords); + int index = (i + range)*dim*dim + (j + range)*dim + (k + range); + if (isInRange[index]) { + energies_temp[index] = getSiteEnergy(dest_coords); + isAble[index] = 1.0; + } + } + } } - } - if (Enable_power_kernel && Power_kernel_exponent == -1) { - for (int m = 0; m < vec_size; m++) { - energies_temp[m] = isAble[m] * energies_temp[m] / (scale_factor * distances[m]); + if (Enable_gaussian_kernel) { + for (int m = 0; m < vec_size; m++) { + energies_temp[m] = isAble[m] * energies_temp[m] * exp(scale_factor * distances[m] * distances[m]); + } } - } - if (Enable_power_kernel && Power_kernel_exponent == -2) { + if (Enable_power_kernel && Power_kernel_exponent == -1) { + for (int m = 0; m < vec_size; m++) { + energies_temp[m] = isAble[m] * energies_temp[m] / (scale_factor * distances[m]); + } + } + if (Enable_power_kernel && Power_kernel_exponent == -2) { + for (int m = 0; m < vec_size; m++) { + energies_temp[m] = isAble[m] * energies_temp[m] / (scale_factor * distances[m] * distances[m]); + } + } + // Normalize energies by site count + counts.assign(range*range + 1, 0); for (int m = 0; m < vec_size; m++) { - energies_temp[m] = isAble[m] * energies_temp[m] / (scale_factor * distances[m] * distances[m]); + if (isAble[m] > 0.1 && distance_indices[m] < (int)counts.size()) { + counts[distance_indices[m]] ++; + } } - } - // Normalize energies by site count - counts.assign((int)ceil((distance_max / Unit_size)*(distance_max / Unit_size)) + 1, 0.0); - for (int m = 0; m < vec_size; m++) { - if (isAble[m] > 0.1 && distance_indices[m] < (int)counts.size()) { - counts[distance_indices[m]] += 1.0; + for (int m = 0; m < vec_size; m++) { + if (isAble[m] > 0.1 && distance_indices[m] < (int)counts.size()) { + energies_temp[m] /= counts[distance_indices[m]]; + } } - } - for (int m = 0; m < vec_size; m++) { - if (isAble[m] > 0.1 && distance_indices[m] < (int)counts.size()) { - energies_temp[m] /= counts[distance_indices[m]]; + new_energies[n] = accumulate(energies_temp.begin(), energies_temp.end(), getSiteEnergy(coords)); + } + // Normalize energies to reach desired disorder + stdev = vector_stdev(new_energies); + percent_diff = (stdev - Energy_stdev_donor) / Energy_stdev_donor; + double norm_factor = 1 + percent_diff; + for (auto &item : new_energies) { + item /= norm_factor; + } + // Assign new energies to the sites + for (int n = 0; n < (int)sites.size(); n++) { + sites[n].setEnergy(new_energies[n]); + } + // Calculate the correlation function + calculateDOSCorrelation(); + // Check if finished + if ((int)DOS_correlation_data.size() - 1 < 2 * range) { + break; + } + // If not finished + else { + // Reassign original site energies + for (int n = 0; n < (int)sites.size(); n++) { + sites[n].setEnergy(original_energies[n]); } + // Increment range and repeat the calculation + range += 2; } - new_energies[n] = accumulate(energies_temp.begin(), energies_temp.end(), getSiteEnergy(coords)); } - // Normalize energies to reach desired disorder - stdev = vector_stdev(new_energies); - percent_diff = (stdev - Energy_stdev_donor) / Energy_stdev_donor; - double norm_factor = 1 + percent_diff; - for (auto &item : new_energies) { - item /= norm_factor; +} + +void OSC_Sim::createElectron(const Coords& coords) { + // Check that coords are valid + if (lattice.getSiteIndex(coords) < 0) { + cout << "Error! Electron cannot be generated because the input coordinates are invalid." << endl; + setErrorMessage("Electron cannot be generated because the input coordinates are invalid."); + Error_found = true; } - // Assign new energies to the sites - for (int n = 0; n < (int)sites.size(); n++) { - sites[n].setEnergy(new_energies[n]); + // Check that the site type is valid + else if (Enable_phase_restriction && getSiteType(coords) == 1) { + cout << "Error! Electron cannot be generated on a donor site." << endl; + setErrorMessage("Electron cannot be generated on a donor site."); + Error_found = true; + } + else { + generateElectron(coords, 0); + } +} + +void OSC_Sim::createExciton(const Coords& coords, const bool spin) { + // Check that coords are valid + if (lattice.getSiteIndex(coords) < 0) { + cout << "Error! Exciton cannot be generated because the input coordinates are invalid." << endl; + setErrorMessage("Exciton cannot be generated because the input coordinates are invalid."); + Error_found = true; + } + else { + generateExciton(coords, spin, 0); + } +} + +void OSC_Sim::createHole(const Coords& coords) { + // Check that coords are valid + if (lattice.getSiteIndex(coords) < 0) { + cout << "Error! Hole cannot be generated because the input coordinates are invalid." << endl; + setErrorMessage("Hole cannot be generated because the input coordinates are invalid."); + Error_found = true; + } + // Check that the site type is valid + else if (Enable_phase_restriction && getSiteType(coords) == 2) { + cout << "Error! Hole cannot be generated on an acceptor site." << endl; + setErrorMessage("Hole cannot be generated on an acceptor site."); + Error_found = true; + } + else { + generateHole(coords, 0); } - // Calculate the correlation function - DOS_correlation_data = calculateDOSCorrelation(distance_max); } bool OSC_Sim::createImportedMorphology(){ @@ -1706,37 +1715,34 @@ bool OSC_Sim::executeExcitonDissociation(const list::const_iterator even bool OSC_Sim::executeExcitonExcitonAnnihilation(const list::const_iterator event_it) { // Get event info - auto object_ptr = (*event_it)->getObjectPtr(); - int exciton_tag = object_ptr->getTag(); - bool spin_state = (getExcitonIt((*event_it)->getObjectPtr()))->getSpin(); + auto exciton_it = getExcitonIt((*event_it)->getObjectPtr()); + int exciton_tag = exciton_it->getTag(); + bool spin_state = exciton_it->getSpin(); int target_tag = ((*event_it)->getObjectTargetPtr())->getTag(); bool spin_state_target = (getExcitonIt((*event_it)->getObjectTargetPtr()))->getSpin(); - Coords coords_initial = object_ptr->getCoords(); + Coords coords_initial = exciton_it->getCoords(); Coords coords_dest = (*event_it)->getDestCoords(); - // Check for triplet-triplet annihilation - if (!getExcitonIt(object_ptr)->getSpin() && !getExcitonIt((*event_it)->getObjectTargetPtr())->getSpin()) { + // Triplet-triplet annihilation + if (!spin_state && !spin_state_target) { // Target triplet exciton becomes a singlet exciton - getExcitonIt((*event_it)->getObjectTargetPtr())->flipSpin(); + if (rand01() > 0.75) { + getExcitonIt((*event_it)->getObjectTargetPtr())->flipSpin(); + N_triplets--; + N_singlets++; + } + N_triplet_triplet_annihilations++; } - // delete exciton and its events - deleteObject((*event_it)->getObjectPtr()); - // Update exciton counters - N_excitons--; + // Singlet-singlet or singlet-triplet annihilation // singlet-singlet - if (spin_state && spin_state == spin_state_target) { + if (spin_state && spin_state_target) { N_singlet_singlet_annihilations++; - N_singlets--; - } - // triplet-triplet - else if (!spin_state && spin_state == spin_state_target) { - N_triplet_triplet_annihilations++; - N_triplets--; } // singlet-triplet - else if (spin_state != spin_state_target) { + else if (spin_state && !spin_state_target) { N_singlet_triplet_annihilations++; - N_singlets--; } + // delete exciton and its events + removeExciton(exciton_it); // Log event if (isLoggingEnabled()) { *Logfile << "Exciton " << exciton_tag << " annihilated at site " << coords_initial.x << "," << coords_initial.y << "," << coords_initial.z; @@ -1790,6 +1796,10 @@ bool OSC_Sim::executeExcitonHop(const list::const_iterator event_it) { if (isLoggingEnabled()) { *Logfile << "Exciton " << ((*event_it)->getObjectPtr())->getTag() << " hopping to site " << (*event_it)->getDestCoords().x << "," << (*event_it)->getDestCoords().y << "," << (*event_it)->getDestCoords().z << "." << endl; } + // Log information aobut the top when the exciton diffusion test is enabled + if (Enable_exciton_diffusion_test) { + exciton_hop_distances.push_back(lattice.calculateLatticeDistanceSquared(((*event_it)->getObjectPtr())->getCoords(), (*event_it)->getDestCoords())); + } return executeObjectHop(event_it); } } @@ -1830,24 +1840,18 @@ bool OSC_Sim::executeExcitonIntersystemCrossing(const list::const_iterat bool OSC_Sim::executeExcitonRecombination(const list::const_iterator event_it) { // Get event info - int exciton_tag = ((*event_it)->getObjectPtr())->getTag(); - Coords coords_initial = ((*event_it)->getObjectPtr())->getCoords(); - bool spin_state = (getExcitonIt((*event_it)->getObjectPtr()))->getSpin(); - // Output diffusion distance - if (Enable_exciton_diffusion_test) { - diffusion_distances.push_back(((*event_it)->getObjectPtr())->calculateDisplacement()); - } + auto exciton_it = getExcitonIt((*event_it)->getObjectPtr()); + int exciton_tag = exciton_it->getTag(); + Coords coords_initial = exciton_it->getCoords(); + bool spin_state = exciton_it->getSpin(); // delete exciton and its events - deleteObject((*event_it)->getObjectPtr()); + removeExciton(exciton_it); // Update exciton counters - N_excitons--; if (spin_state) { N_singlet_excitons_recombined++; - N_singlets--; } else { N_triplet_excitons_recombined++; - N_triplets--; } // Log event if (isLoggingEnabled()) { @@ -1860,6 +1864,7 @@ bool OSC_Sim::executeExcitonRecombination(const list::const_iterator eve } bool OSC_Sim::executeNextEvent() { + // Check or when to stop generating excitons in the IQE test before executing the next event if (Enable_IQE_test) { if (isLightOn && N_excitons_created == N_tests) { removeEvent(&exciton_creation_events.front()); @@ -1905,12 +1910,19 @@ bool OSC_Sim::executeNextEvent() { } } auto event_it = chooseNextEvent(); + // Check for errors if(*event_it==nullptr){ cout << getId() << ": Error! The simulation has no events to execute." << endl; setErrorMessage("The simulation has no events to execute."); Error_found = true; return false; } + if ((*event_it)->getExecutionTime() < getTime()) { + cout << getId() << ": Error! The chosen event execution time is less than the current simulation time." << endl; + setErrorMessage(" The chosen event execution time is less than the current simulation time."); + Error_found = true; + return false; + } string event_type = (*event_it)->getEventType(); if(isLoggingEnabled()){ *Logfile << "Executing " << event_type << " event" << endl; @@ -2070,21 +2082,29 @@ bool OSC_Sim::executePolaronRecombination(const list::const_iterator eve Coords OSC_Sim::generateExciton(){ // Determine coords Coords coords = calculateExcitonCreationCoords(); - // Create the new exciton and add it to the simulation - Exciton exciton_new(getTime(),N_excitons_created+1,coords); - exciton_new.setSpin(true); // Generated exciton is in singlet state - excitons.push_back(exciton_new); + generateExciton(coords, true, 0); + return coords; +} + +void OSC_Sim::generateExciton(const Coords& coords, const bool spin, int tag=0) { + if (tag == 0) { + tag = N_excitons_created + 1; + } + // Create the new exciton and add it to the simulation + Exciton exciton_new(getTime(), tag, coords); + exciton_new.setSpin(spin); // Generated exciton is in singlet state + excitons.push_back(exciton_new); Object* object_ptr = &excitons.back(); - addObject(object_ptr); - // Add placeholder events to the corresponding lists + addObject(object_ptr); + // Add placeholder events to the corresponding lists Simulation* sim_ptr = this; - Exciton_Hop hop_event(sim_ptr); - exciton_hop_events.push_back(hop_event); - Exciton_Recombination recombination_event(sim_ptr); - recombination_event.setObjectPtr(object_ptr); - exciton_recombination_events.push_back(recombination_event); - Exciton_Dissociation dissociation_event(sim_ptr); - exciton_dissociation_events.push_back(dissociation_event); + Exciton_Hop hop_event(sim_ptr); + exciton_hop_events.push_back(hop_event); + Exciton_Recombination recombination_event(sim_ptr); + recombination_event.setObjectPtr(object_ptr); + exciton_recombination_events.push_back(recombination_event); + Exciton_Dissociation dissociation_event(sim_ptr); + exciton_dissociation_events.push_back(dissociation_event); Exciton_Exciton_Annihilation exciton_exciton_annihilation_event(sim_ptr); exciton_exciton_annihilation_events.push_back(exciton_exciton_annihilation_event); Exciton_Polaron_Annihilation exciton_polaron_annihilation_event(sim_ptr); @@ -2092,21 +2112,25 @@ Coords OSC_Sim::generateExciton(){ Exciton_Intersystem_Crossing intersystem_crossing_event(sim_ptr); intersystem_crossing_event.setObjectPtr(object_ptr); exciton_intersystem_crossing_events.push_back(intersystem_crossing_event); - // Update exciton counters - if(getSiteType(coords)==(short)1){ - N_excitons_created_donor++; - } - else{ - N_excitons_created_acceptor++; - } - N_excitons_created++; - N_excitons++; - N_singlets++; - // Log event - if(isLoggingEnabled()){ - *Logfile << "Created exciton " << exciton_new.getTag() << " at site " << coords.x << "," << coords.y << "," << coords.z << "." << endl; - } - return coords; + // Update exciton counters + if (getSiteType(coords) == (short)1) { + N_excitons_created_donor++; + } + else { + N_excitons_created_acceptor++; + } + N_excitons_created++; + N_excitons++; + if (spin) { + N_singlets++; + } + else { + N_triplets++; + } + // Log event + if (isLoggingEnabled()) { + *Logfile << "Created exciton " << exciton_new.getTag() << " at site " << coords.x << "," << coords.y << "," << coords.z << "." << endl; + } } void OSC_Sim::generateElectron(const Coords& coords,int tag=0){ @@ -2177,7 +2201,6 @@ void OSC_Sim::generateDynamicsExcitons(){ reassignSiteEnergies(); } // Initialize transient data vectors - static const int N_initial_excitons = (int)ceil(Dynamics_initial_exciton_conc*lattice.getVolume()); transient_exciton_tags.assign(N_initial_excitons, -1); transient_exciton_energies_prev.assign(N_initial_excitons, 0); transient_electron_tags.clear(); @@ -2186,7 +2209,9 @@ void OSC_Sim::generateDynamicsExcitons(){ transient_hole_energies_prev.clear(); N_transient_cycles++; int num = 0; - cout << getId() << ": Dynamics transient cycle " << N_transient_cycles << ": Generating " << N_initial_excitons << " initial excitons." << endl; + if (N_transient_cycles % 5 == 0) { + cout << getId() << ": Dynamics transient cycle " << N_transient_cycles << ": Generating " << N_initial_excitons << " initial excitons." << endl; + } while(num 0 || N_holes_collected > 0) { reassignSiteEnergies(); } - // Create electrons at the top plane of the lattice - if(!ToF_polaron_type){ - coords.z = lattice.getHeight()-1; - } - // Create holes at the bottom plane of the lattice - else{ - coords.z = 0; - } + // Create electrons at the top plane of the lattice + if (!ToF_polaron_type) { + coords.z = lattice.getHeight() - 1; + } + // Create holes at the bottom plane of the lattice + else { + coords.z = 0; + } // Initialize transient data vectors if (!ToF_polaron_type) { transient_electron_tags.assign(ToF_initial_polarons, -1); @@ -2228,45 +2252,69 @@ void OSC_Sim::generateToFPolarons(){ transient_hole_energies_prev.assign(ToF_initial_polarons, 0); Transient_hole_counts_prev = ToF_initial_polarons; } - ToF_positions_prev.assign(ToF_initial_polarons,coords.z); + ToF_positions_prev.assign(ToF_initial_polarons, coords.z); Transient_creation_time = getTime(); Transient_index_prev = -1; N_transient_cycles++; - cout << getId() << ": ToF transient cycle " << N_transient_cycles << ": Generating " << ToF_initial_polarons << " initial polarons." << endl; + if (N_transient_cycles % 5 == 0) { + cout << getId() << ": ToF transient cycle " << N_transient_cycles << ": Generating " << ToF_initial_polarons << " initial polarons." << endl; + } int num = 0; - while(num coords_vect(0); + // Construct vector of coordinates for all possible sites + for (int x = 0; x < lattice.getLength(); x++) { + for (int y = 0; y < lattice.getWidth(); y++) { + coords.x = x; + coords.y = y; + // If phase restriction is enabled, electrons cannot be created on donor sites + if (Enable_phase_restriction && !ToF_polaron_type && getSiteType(coords) == (short)1) { + continue; + } + // If phase restriction is enabled, holes cannot be created on acceptor sites + if (Enable_phase_restriction && ToF_polaron_type && getSiteType(coords) == (short)2) { + continue; + } + coords_vect.push_back(coords); + } + } + // Check to make sure there are enough possible sites + if ((int)coords_vect.size() < ToF_initial_polarons){ + cout << "Error! " << ToF_initial_polarons << " sites were not available to place the initial ToF polarons." << endl; + setErrorMessage("Initial ToF polarons could not be created."); + Error_found = true; + } + // Randomly select from the total possible sites + if (Enable_ToF_random_placement) { + shuffle(coords_vect.begin(), coords_vect.end(), generator); + // Resize the vector to only keep the appropriate number of sites + coords_vect.resize(ToF_initial_polarons); + } + // Only select the lowest energy sites + else if (Enable_ToF_energy_placement) { + // Sort vector by site energy from closest to the target energy to furthest + sort(coords_vect.begin(), coords_vect.end(), [this](const Coords& a, const Coords& b) -> bool { + return fabs(getSiteEnergy(a)-ToF_placement_energy) < fabs(getSiteEnergy(b)-ToF_placement_energy); + }); + // Resize vector to only keep the the lowest energy sites + coords_vect.resize(ToF_initial_polarons); + } + // Generate the polarons in the selected sites + num = 0; + for (auto const &item : coords_vect) { + if (!ToF_polaron_type) { + generateElectron(item); transient_electron_tags[num] = electrons.back().getTag(); - transient_electron_energies_prev[num] = getSiteEnergy(coords); - } - else{ - generateHole(coords); + transient_electron_energies_prev[num] = getSiteEnergy(item); + } + else { + generateHole(item); transient_hole_tags[num] = holes.back().getTag(); - transient_hole_energies_prev[num] = getSiteEnergy(coords); - } - num++; - } - auto object_its = getAllObjectPtrs(); - calculateObjectListEvents(object_its); -} - -vector OSC_Sim::getDiffusionData() const { - return diffusion_distances; + transient_hole_energies_prev[num] = getSiteEnergy(item); + } + num++; + } + calculateAllEvents(); } vector OSC_Sim::getDynamicsExcitonMSDV() const { @@ -2317,16 +2365,36 @@ vector OSC_Sim::getDynamicsTransientTimes() const { return transient_times; } +std::vector OSC_Sim::getEvents() const { + auto event_ptrs = getAllEventPtrs(); + vector events; + events.reserve(event_ptrs.size()); + for (auto item : event_ptrs) { + events.push_back(*item); + } + return events; +} + +vector OSC_Sim::getExcitonDiffusionData() const { + return exciton_diffusion_distances; +} + +vector OSC_Sim::getExcitonHopLengthData() const { + return exciton_hop_distances; +} + +vector OSC_Sim::getExcitonLifetimeData() const { + return exciton_lifetimes; +} + list::iterator OSC_Sim::getExcitonIt(const Object* object_ptr){ - for (auto it=excitons.begin();it!=excitons.end();++it){ - if(object_ptr->getTag()==it->getTag()){ - return it; - } - } - cout << "Error! Exciton iterator could not be located." << endl; - setErrorMessage("Exciton iterator could not be located."); - Error_found = true; - return excitons.end(); + auto it = find_if(excitons.begin(), excitons.end(), [object_ptr](Exciton& a) {return (a.getTag() == object_ptr->getTag()); }); + if (it == excitons.end()) { + cout << "Error! Exciton iterator could not be located." << endl; + setErrorMessage("Exciton iterator could not be located."); + Error_found = true; + } + return it; } double OSC_Sim::getInternalField() const { @@ -2415,28 +2483,23 @@ int OSC_Sim::getN_transient_cycles() const { } list::iterator OSC_Sim::getPolaronIt(const Object* object_ptr) { + list::iterator it; if (object_ptr->getObjectType().compare(Polaron::object_type) == 0) { // electrons if (!(static_cast(object_ptr)->getCharge())) { - for (auto it = electrons.begin(); it != electrons.end(); ++it) { - if (object_ptr->getTag() == it->getTag()) { - return it; - } - } + it = find_if(electrons.begin(), electrons.end(), [object_ptr](Polaron& a) {return (a.getTag() == object_ptr->getTag()); }); } // holes else { - for (auto it = holes.begin(); it != holes.end(); ++it) { - if (object_ptr->getTag() == it->getTag()) { - return it; - } - } + it = find_if(holes.begin(), holes.end(), [object_ptr](Polaron& a) {return (a.getTag() == object_ptr->getTag()); }); } } - cout << "Error! Polaron iterator could not be located." << endl; - setErrorMessage("Polaron iterator could not be located."); - Error_found = true; - return electrons.end(); + if (it == electrons.end() || it == holes.end()) { + cout << "Error! Polaron iterator could not be located." << endl; + setErrorMessage("Polaron iterator could not be located."); + Error_found = true; + } + return it; } vector OSC_Sim::getSiteEnergies(const short site_type) const { @@ -2561,7 +2624,7 @@ bool OSC_Sim::initializeArchitecture() { } N_donor_sites = lattice.getNumSites() - N_acceptor_sites; shuffle(site_types.begin(), site_types.end(), generator); - for (int i = 0; i < sites.size(); i++) { + for (int i = 0; i < (int)sites.size(); i++) { sites[i].setType(site_types[i]); } } @@ -2675,25 +2738,43 @@ void OSC_Sim::reassignSiteEnergies() { if (Enable_correlated_disorder) { createCorrelatedDOS(Disorder_correlation_length); } - //outputVectorToFile(site_energies_donor, "DOS_data.txt"); +} + +void OSC_Sim::removeExciton(list::iterator exciton_it) { + // Output diffusion distance + if (Enable_exciton_diffusion_test) { + exciton_diffusion_distances.push_back(lattice.getUnitSize()*exciton_it->calculateDisplacement()); + exciton_lifetimes.push_back(getTime() - exciton_it->getCreationTime()); + } + // Update exciton counters + N_excitons--; + if (exciton_it->getSpin()) { + N_singlets--; + } + else { + N_triplets--; + } + // Delete exciton + deleteObject(&(*exciton_it)); } bool OSC_Sim::siteContainsHole(const Coords& coords){ - auto object_ptr = (*lattice.getSiteIt(coords))->getObjectPtr(); - if(object_ptr->getObjectType().compare(Polaron::object_type)==0){ - return static_cast(object_ptr)->getCharge(); - } + if (lattice.isOccupied(coords)) { + auto object_ptr = (*lattice.getSiteIt(coords))->getObjectPtr(); + if (object_ptr->getObjectType().compare(Polaron::object_type) == 0) { + return static_cast(object_ptr)->getCharge(); + } + } return false; } void OSC_Sim::updateTransientData() { // ToF_positions_prev is a vector that stores the z-position of each charge carrier at the previous time interval // Transient_xxxx_energies_prev is a vector that stores the energies of each object at the previous time interval - static const double step_size = 1.0 / (double)Transient_pnts_per_decade; if (Enable_ToF_test) { // Cheeck if enough time has passed since the previous time interval if ((getTime() - Transient_creation_time) > transient_times[Transient_index_prev + 1]) { - int index = (int)floor((log10(getTime() - Transient_creation_time) - log10(Transient_start)) / step_size); + int index = (int)floor((log10(getTime() - Transient_creation_time) - log10(Transient_start)) / Transient_step_size); if (index >= (int)transient_times.size()) { return; } @@ -2752,7 +2833,7 @@ void OSC_Sim::updateTransientData() { else if (Enable_dynamics_test) { // Calculate data for next time step if enough time has elapsed if ((getTime() - Transient_creation_time) > transient_times[Transient_index_prev + 1]) { - int index = (int)floor((log10(getTime() - Transient_creation_time) - log10(Transient_start)) / step_size); + int index = (int)floor((log10(getTime() - Transient_creation_time) - log10(Transient_start)) / Transient_step_size); if (index >= (int)transient_times.size()) { return; } diff --git a/OSC_Sim.h b/src/OSC_Sim.h similarity index 72% rename from OSC_Sim.h rename to src/OSC_Sim.h index 970806a..f7227be 100644 --- a/OSC_Sim.h +++ b/src/OSC_Sim.h @@ -6,8 +6,8 @@ #ifndef OSC_SIM_H #define OSC_SIM_H -#include "KMC_Lattice/Simulation.h" -#include "KMC_Lattice/Site.h" +#include "Simulation.h" +#include "Site.h" #include "Exciton.h" #include "Polaron.h" #include @@ -31,6 +31,9 @@ struct Parameters_OPV : Parameters_Simulation{ bool Enable_ToF_test; bool ToF_polaron_type; int ToF_initial_polarons; + bool Enable_ToF_random_placement; + bool Enable_ToF_energy_placement; + double ToF_placement_energy; double ToF_transient_start; double ToF_transient_end; int ToF_pnts_per_decade; @@ -128,19 +131,17 @@ class OSC_Sim : public Simulation{ OSC_Sim(); virtual ~OSC_Sim(); bool init(const Parameters_OPV& params,const int id); - double calculateDiffusionLength_avg() const; - double calculateDiffusionLength_stdev() const; - std::vector> calculateDOSCorrelation(const double cutoff_radius); + void calculateAllEvents(); + void calculateDOSCorrelation(); + void calculateDOSCorrelation(const double cutoff_radius); std::vector calculateTransitTimeDist(const std::vector& data,const int counts) const; - double calculateTransitTime_avg() const; - double calculateTransitTime_stdev() const; - std::vector calculateMobilities(const std::vector& transit_times) const; - double calculateMobility_avg() const; - double calculateMobility_stdev() const; + std::vector calculateMobilityData(const std::vector& transit_times) const; bool checkFinished() const; bool checkParameters(const Parameters_OPV& params) const; + void createExciton(const Coords& coords, const bool spin); + void createElectron(const Coords& coords); + void createHole(const Coords& coords); bool executeNextEvent(); - std::vector getDiffusionData() const; std::vector> getDOSCorrelationData() const; std::vector getDynamicsExcitonEnergies() const; std::vector getDynamicsElectronEnergies() const; @@ -153,6 +154,10 @@ class OSC_Sim : public Simulation{ std::vector getDynamicsExcitonMSDV() const; std::vector getDynamicsElectronMSDV() const; std::vector getDynamicsHoleMSDV() const; + std::vector getEvents() const; + std::vector getExcitonDiffusionData() const; + std::vector getExcitonHopLengthData() const; + std::vector getExcitonLifetimeData() const; double getInternalField() const; std::vector getSiteEnergies(const short site_type) const; std::vector getChargeExtractionMap(const bool charge) const; @@ -185,6 +190,116 @@ class OSC_Sim : public Simulation{ protected: private: + + struct ExcitonEventCalcVars { + int range; + int dim; + Exciton_Hop hop_event; + std::vector hops_temp; + Exciton_Dissociation diss_event; + std::vector dissociations_temp; + Exciton_Exciton_Annihilation ee_annihilation_event; + std::vector ee_annihilations_temp; + Exciton_Polaron_Annihilation ep_annihilation_event; + std::vector ep_annihilations_temp; + std::vector hops_valid; + std::vector dissociations_valid; + std::vector ee_annihilations_valid; + std::vector ep_annihilations_valid; + // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations + std::vector distances; + // pre-calculated isInDissRange and isInFRETRange vectors that contains booleans to indicate whether the nearby sites are within range for the different exciton events to be possible. + std::vector isInDissRange; + std::vector isInFRETRange; + + ExcitonEventCalcVars() {} + + ExcitonEventCalcVars(OSC_Sim* sim_ptr) { + range = (int)ceil(((sim_ptr->FRET_cutoff > sim_ptr->Exciton_dissociation_cutoff) ? (sim_ptr->FRET_cutoff) : (sim_ptr->Exciton_dissociation_cutoff)) / sim_ptr->lattice.getUnitSize()); + dim = (2 * range + 1); + hop_event = Exciton_Hop(sim_ptr); + hops_temp.assign(dim*dim*dim, hop_event); + diss_event = Exciton_Dissociation(sim_ptr); + dissociations_temp.assign(dim*dim*dim, diss_event); + ee_annihilation_event = Exciton_Exciton_Annihilation(sim_ptr); + ee_annihilations_temp.assign(dim*dim*dim, ee_annihilation_event); + ep_annihilation_event = Exciton_Polaron_Annihilation(sim_ptr); + ep_annihilations_temp.assign(dim*dim*dim, ep_annihilation_event); + hops_valid.assign(dim*dim*dim, false); + dissociations_valid.assign(dim*dim*dim, false); + ee_annihilations_valid.assign(dim*dim*dim, false); + ep_annihilations_valid.assign(dim*dim*dim, false); + // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations + distances.assign(dim*dim*dim, 0.0); + // pre-calculated isInDissRange and isInFRETRange vectors that contains booleans to indicate whether the nearby sites are within range for the different exciton events to be possible. + isInDissRange.assign(dim*dim*dim, false); + isInFRETRange.assign(dim*dim*dim, false); + // Initiaize distances, isInDissRange, and isInFRETRange vectors + for (int i = -range; i <= range; i++) { + for (int j = -range; j <= range; j++) { + for (int k = -range; k <= range; k++) { + int index = (i + range)*dim*dim + (j + range)*dim + (k + range); + distances[index] = sim_ptr->lattice.getUnitSize()*sqrt((double)(i*i + j * j + k * k)); + if (!((distances[index] - 0.0001) > sim_ptr->Exciton_dissociation_cutoff)) { + isInDissRange[index] = true; + } + if (!((distances[index] - 0.0001) > sim_ptr->FRET_cutoff)) { + isInFRETRange[index] = true; + } + } + } + } + } + }; + ExcitonEventCalcVars exciton_event_calc_vars; + + struct PolaronEventCalcVars { + int range; + int dim; + Polaron_Hop hop_event; + std::vector hops_temp; + Polaron_Recombination rec_event; + std::vector recombinations_temp; + std::vector hops_valid; + std::vector recombinations_valid; + // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations + std::vector distances; + std::vector E_deltas; + // pre-calculated isInRange vector that contains booleans to indicate if the nearby sites are within range for polaron events to be possible. + std::vector isInRange; + + PolaronEventCalcVars() {} + + PolaronEventCalcVars(OSC_Sim* sim_ptr) { + range = (int)ceil(sim_ptr->Polaron_hopping_cutoff / sim_ptr->lattice.getUnitSize()); + dim = (2 * range + 1); + hop_event = Polaron_Hop(sim_ptr); + hops_temp.assign(dim*dim*dim, hop_event); + rec_event = Polaron_Recombination(sim_ptr); + recombinations_temp.assign(dim*dim*dim, rec_event); + hops_valid.assign(dim*dim*dim, false); + recombinations_valid.assign(dim*dim*dim, false); + // pre-calculated distances vector that contains the distances to nearby sites used for event execution time calculations + distances.assign(dim*dim*dim, 0.0); + E_deltas.assign(dim*dim*dim, 0.0); + // pre-calculated isInRange vector that contains booleans to indicate if the nearby sites are within range for polaron events to be possible. + isInRange.assign(dim*dim*dim, false); + // Intialize distances and isInRange vectors + for (int i = -range; i <= range; i++) { + for (int j = -range; j <= range; j++) { + for (int k = -range; k <= range; k++) { + int index = (i + range)*dim*dim + (j + range)*dim + (k + range); + distances[index] = sim_ptr->lattice.getUnitSize()*sqrt((double)(i*i + j * j + k * k)); + if (!((distances[index] - 0.0001) > sim_ptr->Polaron_hopping_cutoff)) { + isInRange[index] = true; + } + } + } + } + } + }; + PolaronEventCalcVars polaron_event_calc_vars; + // Additional General Parameters double Internal_potential; // Morphology Parameters @@ -202,6 +317,9 @@ class OSC_Sim : public Simulation{ bool Enable_ToF_test; bool ToF_polaron_type; int ToF_initial_polarons; + bool Enable_ToF_random_placement; + bool Enable_ToF_energy_placement; + double ToF_placement_energy; //double ToF_transient_start; //double ToF_transient_end; //int ToF_pnts_per_decade; @@ -288,12 +406,17 @@ class OSC_Sim : public Simulation{ bool isLightOn; double R_exciton_generation_donor; double R_exciton_generation_acceptor; + double Transient_step_size; double Transient_creation_time; int Transient_index_prev; int Transient_singlet_counts_prev; int Transient_triplet_counts_prev; int Transient_electron_counts_prev; int Transient_hole_counts_prev; + int Coulomb_range; + double AvgDielectric; + double Image_interaction_prefactor; + int N_initial_excitons; // Site Data Structure std::vector sites; // Object Data Structures @@ -320,7 +443,9 @@ class OSC_Sim : public Simulation{ std::vector site_energies_donor; std::vector site_energies_acceptor; std::vector> DOS_correlation_data; - std::vector diffusion_distances; + std::vector exciton_lifetimes; + std::vector exciton_diffusion_distances; + std::vector exciton_hop_distances; // saved as lattice units squared std::vector transient_exciton_tags; std::vector transient_electron_tags; std::vector transient_hole_tags; @@ -401,6 +526,7 @@ class OSC_Sim : public Simulation{ bool executePolaronRecombination(const std::list::const_iterator event_it); bool executePolaronExtraction(const std::list::const_iterator event_it); Coords generateExciton(); + void generateExciton(const Coords& coords, const bool spin, int tag); void generateElectron(const Coords& coords,int tag); void generateHole(const Coords& coords,int tag); void generateDynamicsExcitons(); @@ -410,6 +536,7 @@ class OSC_Sim : public Simulation{ double getSiteEnergy(const Coords& coords) const; short getSiteType(const Coords& coords) const; bool initializeArchitecture(); + void removeExciton(std::list::iterator exciton_it); bool siteContainsHole(const Coords& coords); void updateTransientData(); }; diff --git a/Polaron.cpp b/src/Polaron.cpp similarity index 100% rename from Polaron.cpp rename to src/Polaron.cpp diff --git a/Polaron.h b/src/Polaron.h similarity index 97% rename from Polaron.h rename to src/Polaron.h index a159c23..9d63655 100644 --- a/Polaron.h +++ b/src/Polaron.h @@ -6,9 +6,9 @@ #ifndef POLARON_H #define POLARON_H -#include "KMC_Lattice/Utils.h" -#include "KMC_Lattice/Object.h" -#include "KMC_Lattice/Event.h" +#include "Utils.h" +#include "Object.h" +#include "Event.h" #include class Polaron : public Object{ diff --git a/main.cpp b/src/main.cpp similarity index 84% rename from main.cpp rename to src/main.cpp index 3885b44..b272dd3 100644 --- a/main.cpp +++ b/src/main.cpp @@ -29,7 +29,7 @@ struct Parameters_main{ bool importParameters(ifstream& inputfile,Parameters_main& params_main,Parameters_OPV& params); int main(int argc, char *argv[]) { - string version = "v1.0-beta.3"; + string version = "v1.0-beta.4"; // Parameters bool End_sim = false; // File declaration @@ -38,9 +38,7 @@ int main(int argc, char *argv[]) { ofstream logfile; ofstream resultsfile; ofstream analysisfile; - stringstream ss; // Initialize variables - string parameterfilename; string logfilename; Parameters_main params_main; Parameters_OPV params_opv; @@ -58,8 +56,7 @@ int main(int argc, char *argv[]) { time_start = time(NULL); // Import parameters and options from parameter file and command line arguments cout << "Loading input parameters from file... " << endl; - parameterfilename = argv[1]; - parameterfile.open(parameterfilename.c_str(), ifstream::in); + parameterfile.open(argv[1], ifstream::in); if (!parameterfile.good()) { cout << "Error loading parameter file. Program will now exit." << endl; return 0; @@ -87,8 +84,13 @@ int main(int argc, char *argv[]) { cout << "You have requested " << nproc << " processors for " << params_main.N_test_morphologies << " morphologies." << endl; return 0; } + if (params_main.Enable_import_morphology_set && params_main.N_test_morphologies > params_main.N_morphology_set_size) { + cout << "Error! The number of tested morphologies cannot be greater than the number of morphologies in the set." << endl; + cout << "You have asked to test " << params_main.N_test_morphologies << " morphologies out of a " << params_main.N_morphology_set_size << " morphology set." << endl; + return 0; + } if (params_main.Enable_import_morphology_set) { - int* selected_morphologies = (int *)malloc(sizeof(int)*nproc); + int* selected_morphologies = new int[nproc]; if (procid == 0) { default_random_engine generator((int)time(0)); vector morphology_set_original(params_main.N_test_morphologies); @@ -121,10 +123,10 @@ int main(int argc, char *argv[]) { string prefix = params_main.Morphology_set_format.substr(0, pos); string suffix = params_main.Morphology_set_format.substr(pos + 1); cout << procid << ": Morphology " << selected_morphologies[procid] << " selected." << endl; - ss << prefix << selected_morphologies[procid] << suffix; - cout << procid << ": " << ss.str() << " selected." << endl; - params_main.Morphology_filename = ss.str(); - ss.str(""); + params_main.Morphology_filename = prefix + to_string(selected_morphologies[procid]) + suffix; + cout << procid << ": " << params_main.Morphology_filename << " selected." << endl; + // Cleanup + delete[] selected_morphologies; } if (params_main.Enable_import_morphology_single || params_main.Enable_import_morphology_set) { params_opv.Enable_import_morphology = true; @@ -143,10 +145,8 @@ int main(int argc, char *argv[]) { // Setup file output cout << procid << ": Creating output files..." << endl; if (params_opv.Enable_logging) { - ss << "log" << procid << ".txt"; - logfilename = ss.str(); - logfile.open(ss.str().c_str()); - ss.str(""); + logfilename = "log" + to_string(procid) + ".txt"; + logfile.open(logfilename); } params_opv.Logfile = &logfile; // Initialize Simulation @@ -197,7 +197,8 @@ int main(int argc, char *argv[]) { if (!success) { msg_length = (char)sim.getErrorMessage().size(); MPI_Send(&msg_length, 1, MPI_CHAR, 0, i, MPI_COMM_WORLD); - MPI_Send(sim.getErrorMessage().c_str(), (int)msg_length, MPI_CHAR, 0, i, MPI_COMM_WORLD); + char* error_msg = &sim.getErrorMessage()[0]; + MPI_Send(&error_msg, (int)msg_length, MPI_CHAR, 0, i, MPI_COMM_WORLD); } MPI_Send(&finished_status, 1, MPI_CHAR, 0, i, MPI_COMM_WORLD); } @@ -209,10 +210,11 @@ int main(int argc, char *argv[]) { // If the proc has an error, then receive the error message if (error_status_vec[i]) { MPI_Recv(&msg_length, 1, MPI_CHAR, i, i, MPI_COMM_WORLD, MPI_STATUS_IGNORE); - char* error_msg = (char *)malloc(sizeof(char) * (int)msg_length); + char* error_msg = new char[(int)msg_length]; MPI_Recv(error_msg, (int)msg_length, MPI_CHAR, i, i, MPI_COMM_WORLD, MPI_STATUS_IGNORE); error_messages[i] = string(error_msg); error_found = (char)1; + delete[] error_msg; } MPI_Recv(&finished_status, 1, MPI_CHAR, i, i, MPI_COMM_WORLD, MPI_STATUS_IGNORE); proc_finished[i] = (finished_status == (char)1) ? true : false; @@ -256,7 +258,7 @@ int main(int argc, char *argv[]) { if (params_opv.Enable_logging) { if (sim.getN_events_executed() % 1000 == 0) { logfile.close(); - logfile.open(logfilename.c_str()); + logfile.open(logfilename); } } } @@ -267,23 +269,28 @@ int main(int argc, char *argv[]) { cout << procid << ": Simulation finished." << endl; time_end = time(NULL); elapsedtime = (int)difftime(time_end, time_start); + // Output disorder correlation information if correlated disorder is enabled + if (params_opv.Enable_correlated_disorder) { + auto dos_correlation_data = sim.getDOSCorrelationData(); + outputVectorToFile(dos_correlation_data, "DOS_correlation_data"+to_string(procid)+".txt"); + } // Output result summary for each processor - ss << "results" << procid << ".txt"; - resultsfile.open(ss.str().c_str()); - ss.str(""); + resultsfile.open("results" + to_string(procid) + ".txt"); resultsfile << "Excimontec " << version << " Results:\n"; resultsfile << "Calculation time elapsed is " << (double)elapsedtime / 60 << " minutes.\n"; resultsfile << sim.getTime() << " seconds have been simulated.\n"; resultsfile << sim.getN_events_executed() << " events have been executed.\n"; if (!success) { - resultsfile << "An error occured during the simulation:" << endl; + resultsfile << "An error occurred during the simulation:" << endl; resultsfile << sim.getErrorMessage() << endl; } else { if (params_opv.Enable_exciton_diffusion_test) { resultsfile << "Exciton diffusion test results:\n"; resultsfile << sim.getN_excitons_created() << " excitons have been created.\n"; - resultsfile << "Exciton Diffusion Length is " << sim.calculateDiffusionLength_avg() << " ± " << sim.calculateDiffusionLength_stdev() << " nm.\n"; + resultsfile << "Exciton diffusion length is " << vector_avg(sim.getExcitonDiffusionData()) << " ± " << vector_stdev(sim.getExcitonDiffusionData()) << " nm.\n"; + resultsfile << "Exciton hop distance is " << vector_avg(sim.getExcitonHopLengthData()) << " ± " << vector_stdev(sim.getExcitonHopLengthData()) << " nm.\n"; + resultsfile << "Exciton lifetime is " << vector_avg(sim.getExcitonLifetimeData()) << " ± " << vector_stdev(sim.getExcitonLifetimeData()) << " s.\n"; } else if (params_opv.Enable_ToF_test) { resultsfile << "Time-of-flight charge transport test results:\n"; @@ -293,8 +300,8 @@ int main(int argc, char *argv[]) { else { resultsfile << sim.getN_holes_collected() << " of " << sim.getN_holes_created() << " holes have been collected.\n"; } - resultsfile << "Transit time is " << sim.calculateTransitTime_avg() << " ± " << sim.calculateTransitTime_stdev() << " s.\n"; - resultsfile << "Charge carrier mobility is " << sim.calculateMobility_avg() << " ± " << sim.calculateMobility_stdev() << " cm^2 V^-1 s^-1.\n"; + resultsfile << "Transit time is " << vector_avg(sim.getTransitTimeData()) << " ± " << vector_stdev(sim.getTransitTimeData()) << " s.\n"; + resultsfile << "Charge carrier mobility is " << vector_avg(sim.calculateMobilityData(sim.getTransitTimeData())) << " ± " << vector_stdev(sim.calculateMobilityData(sim.getTransitTimeData())) << " cm^2 V^-1 s^-1.\n"; } if (params_opv.Enable_dynamics_test) { resultsfile << "Dynamics test results:\n"; @@ -328,21 +335,15 @@ int main(int argc, char *argv[]) { // Output charge extraction map data if (success && params_main.Enable_extraction_map_output && (params_opv.Enable_ToF_test || params_opv.Enable_IQE_test)) { if (params_opv.Enable_ToF_test) { - ss << "Charge_extraction_map" << procid << ".txt"; - string filename = ss.str(); - ss.str(""); + string filename = "Charge_extraction_map" + to_string(procid) + ".txt"; vector extraction_data = sim.getChargeExtractionMap(params_opv.ToF_polaron_type); outputVectorToFile(extraction_data, filename); } if (params_opv.Enable_IQE_test) { - ss << "Electron_extraction_map" << procid << ".txt"; - string filename = ss.str(); - ss.str(""); + string filename = "Electron_extraction_map" + to_string(procid) + ".txt"; vector extraction_data = sim.getChargeExtractionMap(false); outputVectorToFile(extraction_data, filename); - ss << "Hole_extraction_map" << procid << ".txt"; - filename = ss.str(); - ss.str(""); + filename = "Hole_extraction_map" + to_string(procid) + ".txt"; extraction_data = sim.getChargeExtractionMap(true); outputVectorToFile(extraction_data, filename); } @@ -351,14 +352,12 @@ int main(int argc, char *argv[]) { int elapsedtime_sum; MPI_Reduce(&elapsedtime, &elapsedtime_sum, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); if (procid == 0) { - ss << "analysis_summary.txt"; - analysisfile.open(ss.str().c_str()); - ss.str(""); + analysisfile.open("analysis_summary.txt"); analysisfile << "Excimontec " << version << " Results Summary:\n"; analysisfile << "Simulation was performed on " << nproc << " processors.\n"; analysisfile << "Average calculation time was " << (double)elapsedtime_sum / (60 * nproc) << " minutes.\n"; if (error_found == (char)1) { - analysisfile << endl << "An error occured on one or more processors:" << endl; + analysisfile << endl << "An error occurred on one or more processors:" << endl; for (int i = 0; i < nproc; i++) { if (error_status_vec[i]) { analysisfile << i << ": " << error_messages[i] << endl; @@ -367,19 +366,25 @@ int main(int argc, char *argv[]) { } } if (error_found == (char)0 && params_opv.Enable_exciton_diffusion_test) { - vector diffusion_data; - diffusion_data = MPI_gatherVectors(sim.getDiffusionData()); + vector exciton_diffusion_data; + vector exciton_hop_length_data; + vector exciton_lifetime_data; + exciton_diffusion_data = MPI_gatherVectors(sim.getExcitonDiffusionData()); + exciton_hop_length_data = MPI_gatherVectors(sim.getExcitonHopLengthData()); + exciton_lifetime_data = MPI_gatherVectors(sim.getExcitonLifetimeData()); if (procid == 0) { - analysisfile << "Overall exciton diffusion test results:\n"; + analysisfile << "\nOverall exciton diffusion test results:\n"; analysisfile << nproc*(sim.getN_singlet_excitons_recombined() + sim.getN_triplet_excitons_recombined()) << " total excitons tested." << endl; - analysisfile << "Exciton diffusion length is " << vector_avg(diffusion_data) << " ± " << vector_stdev(diffusion_data) << " nm.\n"; + analysisfile << "Exciton diffusion length is " << vector_avg(exciton_diffusion_data) << " ± " << vector_stdev(exciton_diffusion_data) << " nm.\n"; + analysisfile << "Exciton hop distance is " << sqrt(vector_avg(exciton_hop_length_data))*params_opv.Unit_size << " ± " << sqrt(vector_stdev(exciton_hop_length_data))*params_opv.Unit_size << " nm.\n"; + analysisfile << "Exciton lifetime is " << vector_avg(exciton_lifetime_data) << " ± " << vector_stdev(exciton_lifetime_data) << " s.\n"; } } if (error_found == (char)0 && params_opv.Enable_ToF_test) { int N_transient_cycles = sim.getN_transient_cycles(); int N_transient_cycles_sum; MPI_Reduce(&N_transient_cycles, &N_transient_cycles_sum, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); - vector transit_times = MPI_gatherVectors(sim.getTransitTimeData()); + vector transit_times_all = MPI_gatherVectors(sim.getTransitTimeData()); int transit_attempts = ((sim.getN_electrons_collected() > sim.getN_holes_collected()) ? sim.getN_electrons_created() : (sim.getN_holes_created())); int transit_attempts_total; MPI_Reduce(&transit_attempts, &transit_attempts_total, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); @@ -389,28 +394,24 @@ int main(int argc, char *argv[]) { vector times = sim.getToFTransientTimes(); if (procid == 0) { // ToF main results output - vector mobilities = sim.calculateMobilities(transit_times); + vector mobility_data_all = sim.calculateMobilityData(transit_times_all); double electric_field = fabs(sim.getInternalField()); ofstream tof_resultsfile; - ss << "ToF_results.txt"; - tof_resultsfile.open(ss.str().c_str()); - ss.str(""); + tof_resultsfile.open("ToF_results.txt"); tof_resultsfile << "Electric Field (V/cm),Transit Time Avg (s),Transit Time Stdev (s),Mobility Avg (cm^2 V^-1 s^-1),Mobility Stdev (cm^2 V^-1 s^-1)" << endl; - tof_resultsfile << electric_field << "," << vector_avg(transit_times) << "," << vector_stdev(transit_times) << "," << vector_avg(mobilities) << "," << vector_stdev(mobilities) << endl; + tof_resultsfile << electric_field << "," << vector_avg(transit_times_all) << "," << vector_stdev(transit_times_all) << "," << vector_avg(mobility_data_all) << "," << vector_stdev(mobility_data_all) << endl; tof_resultsfile.close(); // ToF transient output ofstream transientfile; - ss << "ToF_average_transients.txt"; - transientfile.open(ss.str().c_str()); - ss.str(""); + transientfile.open("ToF_average_transients.txt"); transientfile << "Time (s),Current (mA cm^-2),Average Mobility (cm^2 V^-1 s^-1),Average Energy (eV),Carrier Density (cm^-3)" << endl; double volume_total = N_transient_cycles_sum*sim.getVolume(); for (int i = 0; i < (int)velocities.size(); i++) { - if (counts[i] > 0 && counts[i] > 5 * N_transient_cycles_sum) { + if ((double)counts[i] > 0.95*counts[0]) { transientfile << times[i] << "," << 1000.0 * Elementary_charge*velocities[i] / volume_total << "," << (velocities[i] / (double)counts[i]) / electric_field << "," << energies[i] / (double)counts[i] << "," << (double)counts[i] / volume_total << endl; } else if (counts[i] > 0) { - transientfile << times[i] << "," << 1000.0 * Elementary_charge*velocities[i] / volume_total << "," << (velocities[i] / (double)counts[i]) / electric_field << "," << "NaN" << "," << (double)counts[i] / volume_total << endl; + transientfile << times[i] << "," << 1000.0 * Elementary_charge*velocities[i] / volume_total << "," << "NaN" << "," << "NaN" << "," << (double)counts[i] / volume_total << endl; } else { transientfile << times[i] << ",0,NaN,NaN,0" << endl; @@ -419,25 +420,24 @@ int main(int argc, char *argv[]) { transientfile.close(); // ToF transit time distribution output ofstream transitdistfile; - ss << "ToF_transit_time_dist.txt"; - transitdistfile.open(ss.str().c_str()); - ss.str(""); - vector transit_dist = sim.calculateTransitTimeDist(transit_times, transit_attempts_total); + transitdistfile.open("ToF_transit_time_dist.txt"); + vector transit_dist = sim.calculateTransitTimeDist(transit_times_all, transit_attempts_total); transitdistfile << "Transit Time (s),Probability" << endl; for (int i = 0; i < (int)transit_dist.size(); i++) { transitdistfile << times[i] << "," << transit_dist[i] << endl; } transitdistfile.close(); // Analysis Output + analysisfile << "\nOverall time-of-flight charge transport test results:\n"; if (!params_opv.ToF_polaron_type) { analysisfile << nproc*sim.getN_electrons_collected() << " total electrons collected out of " << transit_attempts_total << " total attempts.\n"; } else { analysisfile << nproc*sim.getN_holes_collected() << " total holes collected out of " << transit_attempts_total << " total attempts.\n"; } - analysisfile << "Overall time-of-flight charge transport test results:\n"; - analysisfile << "Transit time is " << vector_avg(transit_times) << " ± " << vector_stdev(transit_times) << " s.\n"; - analysisfile << "Charge carrier mobility is " << vector_avg(mobilities) << " ± " << vector_stdev(mobilities) << " cm^2 V^-1 s^-1.\n"; + + analysisfile << "Transit time is " << vector_avg(transit_times_all) << " ± " << vector_stdev(transit_times_all) << " s.\n"; + analysisfile << "Charge carrier mobility is " << vector_avg(mobility_data_all) << " ± " << vector_stdev(mobility_data_all) << " cm^2 V^-1 s^-1.\n"; } } if (error_found == (char)0 && params_opv.Enable_dynamics_test) { @@ -457,9 +457,7 @@ int main(int argc, char *argv[]) { vector hole_msdv = MPI_calculateVectorSum(sim.getDynamicsHoleMSDV()); if (procid == 0) { ofstream transientfile; - ss << "dynamics_average_transients.txt"; - transientfile.open(ss.str().c_str()); - ss.str(""); + transientfile.open("dynamics_average_transients.txt"); transientfile << "Time (s),Singlet Exciton Density (cm^-3),Triplet Exciton Density (cm^-3),Electron Density (cm^-3),Hole Density (cm^-3)"; transientfile << ",Average Exciton Energy (eV),Exciton MSDV (cm^2 s^-1)"; transientfile << ",Average Electron Energy (eV),Electron MSDV (cm^2 s^-1)"; @@ -499,7 +497,7 @@ int main(int argc, char *argv[]) { transientfile.close(); } } - if (error_found == (char)0 && (params_opv.Enable_dynamics_test || params_opv.Enable_IQE_test)) { + if (error_found == (char)0 && (params_opv.Enable_dynamics_test || params_opv.Enable_IQE_test || params_opv.Enable_exciton_diffusion_test)) { int excitons_created = sim.getN_excitons_created(); int excitons_created_total; MPI_Reduce(&excitons_created, &excitons_created_total, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); @@ -551,6 +549,9 @@ int main(int argc, char *argv[]) { if (procid == 0 && params_opv.Enable_IQE_test) { analysisfile << "Overall internal quantum efficiency test results:\n"; } + if (procid == 0 && params_opv.Enable_exciton_diffusion_test) { + analysisfile << "\nOverall exciton mechanism statistics:\n"; + } if (procid == 0) { analysisfile << excitons_created_total << " total excitons have been created.\n"; analysisfile << excitons_created_donor_total << " excitons were created on donor sites.\n"; @@ -563,9 +564,11 @@ int main(int argc, char *argv[]) { analysisfile << 100 * (double)triplet_triplet_annihilations_total / (double)excitons_created_total << "% of total excitons were lost to triplet-triplet annihilation.\n"; analysisfile << 100 * (double)singlet_polaron_annihilations_total / (double)excitons_created_total << "% of total excitons were lost to singlet-polaron annihilation.\n"; analysisfile << 100 * (double)triplet_polaron_annihilations_total / (double)excitons_created_total << "% of total excitons were lost to triplet-polaron annihilation.\n"; - analysisfile << 100 * (double)geminate_recombinations_total / (double)excitons_dissociated_total << "% of total photogenerated charges were lost to geminate recombination.\n"; - analysisfile << 100 * (double)bimolecular_recombinations_total / (double)excitons_dissociated_total << "% of total photogenerated charges were lost to bimolecular recombination.\n"; - analysisfile << 100 * (double)(electrons_collected_total + holes_collected_total) / (2 * (double)excitons_dissociated_total) << "% of total photogenerated charges were extracted.\n"; + if (excitons_dissociated_total > 0) { + analysisfile << 100 * (double)geminate_recombinations_total / (double)excitons_dissociated_total << "% of total photogenerated charges were lost to geminate recombination.\n"; + analysisfile << 100 * (double)bimolecular_recombinations_total / (double)excitons_dissociated_total << "% of total photogenerated charges were lost to bimolecular recombination.\n"; + analysisfile << 100 * (double)(electrons_collected_total + holes_collected_total) / (2 * (double)excitons_dissociated_total) << "% of total photogenerated charges were extracted.\n"; + } } if (procid == 0 && params_opv.Enable_IQE_test) { analysisfile << "IQE = " << 100 * (double)(electrons_collected_total + holes_collected_total) / (2 * (double)excitons_created_total) << "% with an internal potential of " << params_opv.Internal_potential << " V." << endl; @@ -587,9 +590,10 @@ bool importParameters(ifstream& inputfile,Parameters_main& params_main,Parameter bool error_status = false; while(inputfile.good()){ getline(inputfile,line); - if((line.substr(0,2)).compare("--")!=0 && (line.substr(0,2)).compare("##")!=0){ - pos = line.find("/",0); - var = line.substr(0,pos-1); + if((line.substr(0,2)).compare("--")!=0 && (line.substr(0,2)).compare("##")!=0 && line.compare("")!=0){ + pos = line.find_first_of("/",0); + var = line.substr(0,pos); + var = removeWhitespace(var); stringvars.push_back(var); } } @@ -723,6 +727,20 @@ bool importParameters(ifstream& inputfile,Parameters_main& params_main,Parameter i++; params.ToF_initial_polarons = atoi(stringvars[i].c_str()); i++; + params.Enable_ToF_random_placement = importBooleanParam(stringvars[i], error_status); + if (error_status) { + cout << "Error enabling ToF random placement option." << endl; + return false; + } + i++; + params.Enable_ToF_energy_placement = importBooleanParam(stringvars[i], error_status); + if (error_status) { + cout << "Error enabling ToF low energy placement option." << endl; + return false; + } + i++; + params.ToF_placement_energy = atof(stringvars[i].c_str()); + i++; params.ToF_transient_start = atof(stringvars[i].c_str()); i++; params.ToF_transient_end = atof(stringvars[i].c_str()); @@ -931,11 +949,37 @@ bool importParameters(ifstream& inputfile,Parameters_main& params_main,Parameter i++; // Coulomb Calculation Parameters params.Dielectric_donor = atof(stringvars[i].c_str()); - i++; + //i++; params.Dielectric_acceptor = atof(stringvars[i].c_str()); i++; + //enable_coulomb_maximum + bool Enable_Coulomb_maximum = importBooleanParam(stringvars[i], error_status); + if (error_status) { + cout << "Error setting Coulomb interaction options" << endl; + return false; + } + i++; + //enable_coulomb_cutoff + bool Enable_Coulomb_cutoff = importBooleanParam(stringvars[i], error_status); + if (error_status) { + cout << "Error setting Coulomb interaction options" << endl; + return false; + } + i++; params.Coulomb_cutoff = atoi(stringvars[i].c_str()); i++; + if (Enable_Coulomb_maximum && Enable_Coulomb_cutoff) { + cout << "Error! Cannot enable both the maximum Coulomb cutoff and enable use of a sepcific cutoff distance." << endl; + return false; + } + if (!Enable_Coulomb_maximum && !Enable_Coulomb_cutoff) { + cout << "Error! One of the Coulomb interactions calculation options must be enabled." << endl; + return false; + } + if (Enable_Coulomb_maximum) { + auto vec = { params.Length, params.Width, params.Height }; + params.Coulomb_cutoff = (int)floor(*min_element(vec.begin(), vec.end()) / 2.0); + } return true; } diff --git a/parameters_test1.txt b/test/parameters_test1.txt similarity index 98% rename from parameters_test1.txt rename to test/parameters_test1.txt index 10c56e7..6e9ff4c 100644 --- a/parameters_test1.txt +++ b/test/parameters_test1.txt @@ -1,4 +1,4 @@ -## OPV Parameters for Excimontec v1.0-beta.3 +## OPV Parameters for Excimontec v1.0-beta.4 -------------------------------------------------------------- ## Kinetic Monte Carlo Algorithm Parameters false //Enable_FRM diff --git a/parameters_test2.txt b/test/parameters_test2.txt similarity index 98% rename from parameters_test2.txt rename to test/parameters_test2.txt index 0a14318..85e8f8c 100644 --- a/parameters_test2.txt +++ b/test/parameters_test2.txt @@ -1,4 +1,4 @@ -## OPV Parameters for Excimontec v1.0-beta.3 +## OPV Parameters for Excimontec v1.0-beta.4 -------------------------------------------------------------- ## Kinetic Monte Carlo Algorithm Parameters false //Enable_FRM diff --git a/parameters_test3.txt b/test/parameters_test3.txt similarity index 98% rename from parameters_test3.txt rename to test/parameters_test3.txt index 07fbb67..c0fb4d0 100644 --- a/parameters_test3.txt +++ b/test/parameters_test3.txt @@ -1,4 +1,4 @@ -## OPV Parameters for Excimontec v1.0-beta.3 +## OPV Parameters for Excimontec v1.0-beta.4 -------------------------------------------------------------- ## Kinetic Monte Carlo Algorithm Parameters false //Enable_FRM diff --git a/test/run_tests.sh b/test/run_tests.sh new file mode 100644 index 0000000..0745e97 --- /dev/null +++ b/test/run_tests.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Unit tests +./Excimontec_tests.exe + +# System tests +sbatch system_test1.sh diff --git a/test/system_test1.sh b/test/system_test1.sh new file mode 100644 index 0000000..bfef47b --- /dev/null +++ b/test/system_test1.sh @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -J Excimontec # Job name +#SBATCH -n 16 # Number of tasks +#SBATCH -t 00:30:00 # Maximum walltime +#SBATCH --cpus-per-task=1 + +# Setup job directory +mkdir $SLURM_JOB_ID +cd $SLURM_JOB_ID +cp ../../Excimontec.exe ./Excimontec.exe +cp ../parameters_test1.txt ./parameters_test1.txt + +# Execute Excimontec Simulation +mpiexec -n 16 Excimontec.exe parameters_test1.txt > test1_output.txt + +# Cleanup +cp test1_output.txt ../test1_output.txt +rm -f Excimontec.exe diff --git a/test/test.cpp b/test/test.cpp new file mode 100644 index 0000000..9cc7f61 --- /dev/null +++ b/test/test.cpp @@ -0,0 +1,284 @@ +// Copyright (c) 2018 Michael C. Heiber +// This source file is part of the Excimontec project, which is subject to the MIT License. +// For more information, see the LICENSE file that accompanies this software. +// The Excimontec project can be found on Github at https://github.com/MikeHeiber/Excimontec + +#include "gtest/gtest.h" +#include "OSC_Sim.h" +#include "Exciton.h" +#include "Utils.h" + +using namespace std; +using namespace Utils; + +namespace OSC_SimTests { + + class OSC_SimTest : public ::testing::Test { + protected: + Parameters_OPV params_default; + Parameters_Simulation params_base; + OSC_Sim sim; + void SetUp() { + // General Parameters + params_default.Enable_FRM = false; + params_default.Enable_selective_recalc = true; + params_default.Recalc_cutoff = 3; + params_default.Enable_full_recalc = false; + params_default.Enable_logging = false; + params_default.Enable_periodic_x = true; + params_default.Enable_periodic_y = true; + params_default.Enable_periodic_z = true; + params_default.Length = 100; + params_default.Width = 100; + params_default.Height = 100; + params_default.Unit_size = 1.0; + params_default.Temperature = 300; + // Output files + params_default.Logfile = NULL; + // Additional General Parameters + params_default.Internal_potential = 0.0; + // Morphology Parameters + params_default.Enable_neat = true; + params_default.Enable_bilayer = false; + params_default.Thickness_donor = 50; + params_default.Thickness_acceptor = 50; + params_default.Enable_random_blend = false; + params_default.Acceptor_conc = 0.5; + params_default.Enable_import_morphology = false; + params_default.Morphology_file = NULL; + // Test Parameters + params_default.N_tests = 1000; + params_default.Enable_exciton_diffusion_test = true; + params_default.Enable_ToF_test = false; + params_default.ToF_polaron_type = true; + params_default.ToF_initial_polarons = 5; + params_default.Enable_ToF_random_placement = true; + params_default.Enable_ToF_energy_placement = false; + params_default.ToF_transient_start = 1e-10; + params_default.ToF_transient_end = 1e-4; + params_default.ToF_pnts_per_decade = 20; + params_default.Enable_IQE_test = false; + params_default.IQE_time_cutoff = 1e-4; + params_default.Enable_dynamics_test = false; + params_default.Enable_dynamics_extraction = false; + params_default.Dynamics_initial_exciton_conc = 1e16; + params_default.Dynamics_transient_start = 1e-13; + params_default.Dynamics_transient_end = 1e-5; + params_default.Dynamics_pnts_per_decade = 20; + // Exciton Parameters + params_default.Exciton_generation_rate_donor = 1e18; + params_default.Exciton_generation_rate_acceptor = 1e18; + params_default.Singlet_lifetime_donor = 1e-9; + params_default.Singlet_lifetime_acceptor = 1e-9; + params_default.Triplet_lifetime_donor = 1e-6; + params_default.Triplet_lifetime_acceptor = 1e-6; + params_default.R_singlet_hopping_donor = 1e11; + params_default.R_singlet_hopping_acceptor = 1e11; + params_default.Singlet_localization_donor = 1.0; + params_default.Singlet_localization_acceptor = 1.0; + params_default.R_singlet_hopping_acceptor = 1e12; + params_default.R_triplet_hopping_donor = 1e12; + params_default.R_triplet_hopping_acceptor = 1e12; + params_default.Triplet_localization_donor = 2.0; + params_default.Triplet_localization_acceptor = 2.0; + params_default.Enable_FRET_triplet_annihilation = false; + params_default.R_exciton_exciton_annihilation_donor = 1e1; + params_default.R_exciton_exciton_annihilation_acceptor = 1e1; + params_default.R_exciton_polaron_annihilation_donor = 1e1; + params_default.R_exciton_polaron_annihilation_acceptor = 1e1; + params_default.FRET_cutoff = 1; + params_default.E_exciton_binding_donor = 0.5; + params_default.E_exciton_binding_acceptor = 0.5; + params_default.R_exciton_dissociation_donor = 1e14; + params_default.R_exciton_dissociation_acceptor = 1e14; + params_default.Exciton_dissociation_cutoff = 1; + params_default.R_exciton_isc_donor = 1e-12; + params_default.R_exciton_isc_acceptor = 1e-12; + params_default.R_exciton_risc_donor = 1e-12; + params_default.R_exciton_risc_acceptor = 1e-12; + params_default.E_exciton_ST_donor = 0.7; + params_default.E_exciton_ST_acceptor = 0.7; + // Polaron Parameters + params_default.Enable_phase_restriction = true; + params_default.R_polaron_hopping_donor = 1e11; + params_default.R_polaron_hopping_acceptor = 1e11; + params_default.Polaron_localization_donor = 2.0; + params_default.Polaron_localization_acceptor = 2.0; + params_default.Enable_miller_abrahams = true; + params_default.Enable_marcus = false; + params_default.Reorganization_donor = 0.2; + params_default.Reorganization_acceptor = 0.2; + params_default.R_polaron_recombination = 1e12; + params_default.Polaron_hopping_cutoff = 1; + params_default.Enable_gaussian_polaron_delocalization = false; + params_default.Polaron_delocalization_length = 1.0; + // Additional Lattice Parameters + params_default.Homo_donor = 5.0; + params_default.Lumo_donor = 3.0; + params_default.Homo_acceptor = 6.0; + params_default.Lumo_acceptor = 4.0; + params_default.Enable_gaussian_dos = false; + params_default.Energy_stdev_donor = 0.05; + params_default.Energy_stdev_acceptor = 0.05; + params_default.Enable_exponential_dos = false; + params_default.Energy_urbach_donor = 0.03; + params_default.Energy_urbach_acceptor = 0.03; + params_default.Enable_correlated_disorder = false; + params_default.Disorder_correlation_length = 1.0; + params_default.Enable_gaussian_kernel = false; + params_default.Enable_power_kernel = false; + params_default.Power_kernel_exponent = -2; + // Coulomb Calculation Parameters + params_default.Dielectric_donor = 3.5; + params_default.Dielectric_acceptor = 3.5; + params_default.Coulomb_cutoff = 50; + } + }; + + TEST_F(OSC_SimTest, ParameterCheckTests) { + Parameters_OPV params = params_default; + // Check that default parameters are valid + EXPECT_TRUE(sim.init(params, 0)); + // Check for multiple enabled morphologies + params.Enable_neat = true; + params.Enable_random_blend = true; + EXPECT_FALSE(sim.init(params, 0)); + // Check for ToF test boundary conditions, films architectures, and test conditions + sim = OSC_Sim(); + params = params_default; + params.Enable_exciton_diffusion_test = false; + params.Enable_ToF_test = true; + params.Enable_periodic_z = false; + EXPECT_TRUE(sim.init(params, 0)); + params.Enable_periodic_z = true; + EXPECT_FALSE(sim.init(params, 0)); + params.Enable_periodic_z = false; + params.Enable_bilayer = true; + params.Enable_neat = false; + EXPECT_FALSE(sim.init(params, 0)); + params.Enable_neat = true; + params.Enable_bilayer = false; + params.Enable_ToF_random_placement = false; + params.Enable_ToF_energy_placement = false; + EXPECT_FALSE(sim.init(params, 0)); + params.Enable_ToF_random_placement = true; + params.ToF_polaron_type = false; + EXPECT_FALSE(sim.init(params, 0)); + // Check for multiple enabled tests + params = params_default; + params.Enable_dynamics_test = true; + params.Enable_exciton_diffusion_test = true; + EXPECT_FALSE(sim.init(params, 0)); + } + + TEST_F(OSC_SimTest, SetupTests) { + sim = OSC_Sim(); + Parameters_OPV params = params_default; + EXPECT_TRUE(sim.init(params, 0)); + EXPECT_EQ(params.Length*params.Width*params.Height*1e-21, sim.getVolume()); + } + + TEST_F(OSC_SimTest, ExcitonDynamicsTest) { + sim = OSC_Sim(); + Parameters_OPV params = params_default; + params.Enable_exciton_diffusion_test = false; + params.Enable_dynamics_test = true; + params.N_tests = 5000; + EXPECT_TRUE(sim.init(params, 0)); + while (!sim.checkFinished()) { + EXPECT_TRUE(sim.executeNextEvent()); + } + auto time_data = sim.getDynamicsTransientTimes(); + auto singlet_data = sim.getDynamicsTransientSinglets(); + EXPECT_TRUE(time_data.size() == singlet_data.size()); + vector> transient_data(time_data.size()); + for (int i = 0; i < (int)time_data.size(); i++) { + transient_data[i] = pair(time_data[i], (double)singlet_data[i] / (sim.getVolume()*sim.getN_transient_cycles())); + } + EXPECT_NEAR(params.Dynamics_initial_exciton_conc, transient_data[0].second, 1e-3*params.Dynamics_initial_exciton_conc); + EXPECT_NEAR(params.Dynamics_initial_exciton_conc / exp(1), interpolateData(transient_data, params.Singlet_lifetime_donor), 5e-2*params.Dynamics_initial_exciton_conc / exp(1)); + } + + TEST_F(OSC_SimTest, ExcitonDiffusionTest) { + sim = OSC_Sim(); + Parameters_OPV params = params_default; + params.N_tests = 5000; + EXPECT_TRUE(sim.init(params, 0)); + while (!sim.checkFinished()) { + EXPECT_TRUE(sim.executeNextEvent()); + } + auto lifetime_data = sim.getExcitonLifetimeData(); + EXPECT_NEAR(params.Singlet_lifetime_donor, vector_avg(lifetime_data), 5e-2*params.Singlet_lifetime_donor); + EXPECT_DOUBLE_EQ(1.0, vector_avg(sim.getExcitonHopLengthData())); + auto displacement_data = sim.getExcitonDiffusionData(); + auto ratio_data(displacement_data); + transform(displacement_data.begin(), displacement_data.end(), lifetime_data.begin(), ratio_data.begin(), [params](double& displacement_element, double& lifetime_element) { + return displacement_element / sqrt(6 * params.R_singlet_hopping_donor*lifetime_element); + }); + double dim = 3.0; + double expected_ratio = sqrt(2.0 / dim)*(tgamma((dim + 1.0) / 2.0) / tgamma(dim / 2.0)); + EXPECT_NEAR(expected_ratio, vector_avg(ratio_data), 2e-2*expected_ratio); + } + + TEST_F(OSC_SimTest, ToFTest) { + // Hole ToF test + sim = OSC_Sim(); + Parameters_OPV params = params_default; + params.Enable_periodic_z = false; + params.Height = 200; + params.Internal_potential = -4.0; + params.Enable_exciton_diffusion_test = false; + params.Enable_ToF_test = true; + params.N_tests = 1000; + EXPECT_TRUE(sim.init(params, 0)); + while (!sim.checkFinished()) { + EXPECT_TRUE(sim.executeNextEvent()); + } + auto transit_time_data = sim.getTransitTimeData(); + auto mobility_data = sim.calculateMobilityData(transit_time_data); + double dim = 3.0; + double expected_mobility = (params.R_polaron_hopping_donor*exp(-2.0*params.Polaron_localization_donor)*1e-14) * (2.0/3.0) * (tgamma((dim + 1.0) / 2.0) / tgamma(dim / 2.0)) * ( 1 / (K_b*params.Temperature)); + EXPECT_NEAR(expected_mobility, vector_avg(mobility_data), 1e-1*expected_mobility); + } + + TEST_F(OSC_SimTest, CorrelatedDisorderGaussianKernelTests) { + sim = OSC_Sim(); + Parameters_OPV params = params_default; + params.Enable_gaussian_dos = true; + params.Energy_stdev_donor = 0.05; + params.Energy_stdev_acceptor = 0.05; + params.Enable_correlated_disorder = true; + params.Enable_gaussian_kernel = true; + params.Enable_power_kernel = false; + // correlation length = 1.0, Unit_size = 0.8 + params.Length = 40; + params.Width = 40; + params.Height = 40; + params.Disorder_correlation_length = 1.1; + sim.init(params, 0); + auto energies = sim.getSiteEnergies(1); + EXPECT_NEAR(0.0, vector_avg(energies), 5e-3); + EXPECT_NEAR(0.05, vector_stdev(energies), 1e-3); + auto correlation_data = sim.getDOSCorrelationData(); + EXPECT_NEAR(1/exp(1), interpolateData(correlation_data, 1.1), 0.05); + // correlation length = 1.3, Unit_size = 1.2 + sim = OSC_Sim(); + params.Unit_size = 1.2; + params.Length = 40; + params.Width = 40; + params.Height = 40; + params.Disorder_correlation_length = 1.3; + sim.init(params, 0); + energies = sim.getSiteEnergies(1); + EXPECT_NEAR(0.0, vector_avg(energies), 5e-3); + EXPECT_NEAR(0.05, vector_stdev(energies), 1e-3); + correlation_data = sim.getDOSCorrelationData(); + EXPECT_NEAR(1 / exp(1), interpolateData(correlation_data, 1.3), 0.05); + } + +} + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}