A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

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

README.md

License: MIT
made-with-julia

CI
DOI
DOI
Julia

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.

  1. 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 in script.

  2. 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.

  3. Construct configuration coordinate (conf_coord) to calculate the wavefunction overlap between each PES,
    which forms part of the temperature-dependent capture coefficient.

schematics

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.

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

Applications of CarrierCapture


Owner metadata


GitHub Events

Total
Last Year

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 Email 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:


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

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/wmd-group/carriercapture.jl

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

.github/workflows/ci.yml actions
  • 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