CarrierCapture.jl
A set of codes to compute carrier capture and recombination rates in semiconducting compounds like solar cells.
https://github.com/wmd-group/carriercapture.jl
Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy
Keywords
defects electronic-structure materials-design semiconductors solar-cells
Keywords from Contributors
materials-science computational-chemistry spectroscopy semiconductor-physics perovskites
Last synced: about 20 hours ago
JSON representation
Repository metadata
Julia package to compute trap-assisted electron and hole capture in semiconductors
- Host: GitHub
- URL: https://github.com/wmd-group/carriercapture.jl
- Owner: WMD-group
- License: mit
- Created: 2018-04-23T12:10:13.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-03-28T13:44:25.000Z (about 1 month ago)
- Last Synced: 2025-04-06T02:34:44.770Z (22 days ago)
- Topics: defects, electronic-structure, materials-design, semiconductors, solar-cells
- Language: Jupyter Notebook
- Homepage: https://wmd-group.github.io/CarrierCapture.jl/dev/
- Size: 104 MB
- Stars: 56
- Watchers: 24
- Forks: 24
- Open Issues: 1
- Releases: 8
-
Metadata Files:
- Readme: README.md
README.md
A set of codes to compute carrier capture and non-radiative recombination rates associated with point defects in semiconducting compounds.
Multiphonon process involving impurities has a rich history starting from the work by Huang and Rhys.
Our implementation was inspired by the approach (and FORTRAN code) employed by Alkauskas and coworkers, but has been adapted
to also describe anharmonic potential energy surfaces.
Installation
The codes are written in Julia, while the scripts and Jupyter Notebooks also contain Python and use pymatgen and pawpyseed, which are assumed to be installed.
The Brooglie package is used to solve the time-independent Schrödinger equation.
Install the package by:
julia> using Pkg
julia> Pkg.add(PackageSpec(url="https://github.com/WMD-group/CarrierCapture.jl.git"))
To run the unit tests for the package, use the Pkg.test
function.
julia> Pkg.test("CarrierCapture")
Development
The project is hosted on Github.
Please use the issue tracker for feature requests, bug reports and more general questions.
If you would like to contribute, please do so via a pull request.
Usage
A typical workflow consists of several steps, implemented in a series of programs, which may be run from the command line. Input for the calculations is provided in input.yaml
.
-
Prepare a sequence of atomic structure models with displacements that interpolate between two defect configurations (e.g. a site vacancy in charge states q=0 and q=+1).
Run single-point energy calculations on these structures, and extract the total energies. Scripts for preprocessing may be found inscript
. -
Find a best fit for the energy calculations of the deformed structures (
potential
) to generate potential energy surfaces (PES).
Solve the 1D Schrödinger equation for each PES to obtain their phonon (nuclear) wavefunctions. -
Construct configuration coordinate (
conf_coord
) to calculate the wavefunction overlap between each PES,
which forms part of the temperature-dependent capture coefficient.
The command-line interface (GetPotential.jl
and GetRate.jl
) is depreciated.
Use Jupyter Notebook examples as a template.
User warning: The values produced by this type of analysis procedure are sensitive to the quality of the input.
We expect that most input data will have been generated by DFT where the basis set, k-points, and ionic forces have been carefully converged.
In addition, the alignment of energy surfaces for defects in different charge states requires appropriate finite-size corrections (e.g. see Freysoldt and coworkers and consider using the doped package).
Examples
The following examples are provided to illustrate some of the applications of these codes. The input data has been generated from density functional theory (DFT) using VASP, but the framework can easily be adapted to accept output from other electronic structure calculators.
-
SnZn in Cu2ZnSnS4: Harmonic approximation
-
DX-center in GaAs: Anharmonic fitting
-
Electron-phonon coupling: Electron-phonon coupling matrix element
Theory
The electronic matrix element frequently causes feelings of discomfort (Stoneham, 1981)
The capture of electrons or holes by point defects in a crystalline materials requires the consideration of a number of factors including the coupling between electronic and vibrational degrees of freedom. Many theories and approximations have been developed to describe the reaction kinetics.
The capture coefficient between an initial and final state for this computational set up is given by (eq. 22 in Alkauskas and coworkers):
Here, V is the volume of the supercell, Wif is the electron-phonon overlap and ξim and ξfn describe the wavefunctions of the mth and nth phonons in the initial i and final f states. The final delta-function term serves to conserve energy and in practice is replaced by a smearing Gaussian of finite width σ.
Citation
@article{kim2020carriercapture,
title={Carriercapture. jl: Anharmonic carrier capture},
author={Kim, Sunghyun and Hood, Samantha N and van Gerwen, Puck and Whalley, Lucy D and Walsh, Aron},
journal={Journal of Open Source Software},
volume={5},
number={47},
pages={2102},
year={2020},
doi={10.21105/joss.02102},
url={https://joss.theoj.org/papers/10.21105/joss.02102},
}
Extended Reading List
Theory Development
-
Henry and Lang, Nonradiative capture and recombination by multiphonon emission in GaAs and GaP (1977)
Seminal contribution that introduces many important concepts -
Huang, Adiabatic approximation theory and static coupling theory of nonradiative transition (1981)
Context for the static approximation that we employ -
Stoneham, Non-radiative transitions in semiconductors (1981)
Review on theory and various models of recombination -
Markvart, Determination of potential surfaces from multiphonon transition rates (1981)
Discussion and treatment of anharmonicity -
Markvart, Semiclassical theory of non-radiative transitions (1981)
Semiclassical treatment of matrix elements following Landau and Holstein
Applications of CarrierCapture
-
Wang et al, Upper efficiency limit of Sb2Se3 solar cells (2024)
-
Kavanagh et al, Rapid recombination by cadmium vacancies in CdTe (2021)
-
Kim et al, Upper limit to the photovoltaic efficiency of imperfect crystals (2020)
-
Kim et al, Anharmonic lattice relaxation during non-radiative carrier capture (2019)
-
Kim et al, Lone-pair effect on carrier capture in Cu2ZnSnS4 solar cells (2019)
-
Kim et al, Identification of killer defects in kesterite thin-film solar cells (2018)
Owner metadata
- Name: Materials Design Group
- Login: WMD-group
- Email:
- Kind: organization
- Description: Research group in computational chemistry & physics led by @aronwalsh at @ImperialCollegeLondon
- Website: https://wmd-group.github.io
- Location: London
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1716969?v=4
- Repositories: 57
- Last ynced at: 2024-03-26T15:31:30.245Z
- Profile URL: https://github.com/WMD-group
GitHub Events
Total
- Create event: 1
- Release event: 1
- Issues event: 2
- Watch event: 6
- Member event: 1
- Issue comment event: 4
- Push event: 41
- Fork event: 2
Last Year
- Create event: 1
- Release event: 1
- Issues event: 2
- Watch event: 6
- Member event: 1
- Issue comment event: 4
- Push event: 41
- Fork event: 2
Committers metadata
Last synced: 5 days ago
Total Commits: 300
Total Committers: 14
Avg Commits per committer: 21.429
Development Distribution Score (DDS): 0.667
Commits in past year: 29
Committers in past year: 4
Avg Commits per committer in past year: 7.25
Development Distribution Score (DDS) in past year: 0.586
Name | Commits | |
---|---|---|
Sunghyun Kim | f****m@g****m | 100 |
Aron Walsh | a****h@g****m | 54 |
sam | s****d@g****m | 40 |
Miguel Rivera | m****a@h****r | 32 |
puckvg | 3****g | 22 |
Xinwei | 6****w | 17 |
Seán Kavanagh | 5****e | 12 |
Miguel Rivera | m****l@d****e | 6 |
Puck van Gerwen | p****8@i****k | 6 |
Alex Ganose | a****e@g****m | 4 |
Lucy Whalley | l****y@g****m | 3 |
xw-w | xw@i****k | 2 |
Daniel S. Katz | d****z@i****g | 1 |
Sunghyun Kim | k****n@m****k | 1 |
Committer domains:
- ic.ac.uk: 2
- mt-skim17.mt.ic.ac.uk: 1
- ieee.org: 1
- ding.home: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 12
Total pull requests: 10
Average time to close issues: 4 months
Average time to close pull requests: 15 days
Total issue authors: 7
Total pull request authors: 6
Average comments per issue: 1.92
Average comments per pull request: 0.4
Merged pull request: 7
Bot issues: 0
Bot pull requests: 0
Past year issues: 2
Past year pull requests: 1
Past year average time to close issues: 2 months
Past year average time to close pull requests: about 19 hours
Past year issue authors: 1
Past year pull request authors: 1
Past year average comments per issue: 3.0
Past year average comments per pull request: 2.0
Past year merged pull request: 1
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- utf (4)
- kavanase (2)
- taylor-a-barnes (2)
- frssp (1)
- zhuhaoran-nku (1)
- zb3lyp (1)
- dianadahliah (1)
Top Pull Request Authors
- m-rivera (4)
- kavanase (2)
- PaleBlueSam (1)
- utf (1)
- lucydot (1)
- danielskatz (1)
Top Issue Labels
- question (1)
Top Pull Request Labels
Dependencies
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
Score: 6.682108597449808