diff --git a/joss.05941/10.21105.joss.05941.crossref.xml b/joss.05941/10.21105.joss.05941.crossref.xml new file mode 100644 index 0000000000..69138b80fc --- /dev/null +++ b/joss.05941/10.21105.joss.05941.crossref.xml @@ -0,0 +1,208 @@ + + + + 20240119T213704-13c7216eeb42dd0d5f762e8b113ea677733f02c9 + 20240119213704 + + JOSS Admin + admin@theoj.org + + The Open Journal + + + + + Journal of Open Source Software + JOSS + 2475-9066 + + 10.21105/joss + https://joss.theoj.org + + + + + 01 + 2024 + + + 9 + + 93 + + + + pymatgen-analysis-defects: A Python package for +analyzing point defects in crystalline materials + + + + Jimmy-Xuan + Shen + https://orcid.org/0000-0002-2743-7531 + + + Joel + Varley + https://orcid.org/0000-0002-5384-5248 + + + + 01 + 19 + 2024 + + + 5941 + + + 10.21105/joss.05941 + + + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + + + + Software archive + 10.5281/zenodo.6994437 + + + GitHub review issue + https://github.com/openjournals/joss-reviews/issues/5941 + + + + 10.21105/joss.05941 + https://joss.theoj.org/papers/10.21105/joss.05941 + + + https://joss.theoj.org/papers/10.21105/joss.05941.pdf + + + + + + Nonrad: Computing nonradiative capture +coefficients from first principles + Turiansky + Comput. Phys. Commun. + 267 + 10.1016/j.cpc.2021.108056 + 2021 + Turiansky, M. E., Alkauskas, A., +Engel, M., Kresse, G., Wickramaratne, D., Shen, J.-X., Dreyer, C. E., +& Van de Walle, C. G. (2021). Nonrad: Computing nonradiative capture +coefficients from first principles. Comput. Phys. Commun., 267, 108056. +https://doi.org/10.1016/j.cpc.2021.108056 + + + First-principles calculations for point +defects in solids + Freysoldt + Rev. Mod. Phys. + 86 + 10.1103/RevModPhys.86.253 + 2014 + Freysoldt, C., Grabowski, B., Hickel, +T., Neugebauer, J., Kresse, G., Janotti, A., & Walle, C. G. de. +(2014). First-principles calculations for point defects in solids. Rev. +Mod. Phys., 86, 253. +https://doi.org/10.1103/RevModPhys.86.253 + + + PyCDT: A python toolkit for modeling point +defects in semiconductors and insulators + Broberg + Comput. Phys. Commun. + 226 + 10.1016/j.cpc.2018.01.004 + 0010-4655 + 2018 + Broberg, D., Medasani, B., +Zimmermann, N. E. R., Yu, G., Canning, A., Haranczyk, M., Asta, M., +& Hautier, G. (2018). PyCDT: A python toolkit for modeling point +defects in semiconductors and insulators. Comput. Phys. Commun., 226, +165–179. +https://doi.org/10.1016/j.cpc.2018.01.004 + + + Insights into oxygen vacancies from +high-throughput first-principles calculations + Kumagai + Phys. Rev. Mater. + 5 + 10.1103/PhysRevMaterials.5.123803 + 2475-9953 + 2021 + Kumagai, Y., Tsunoda, N., Takahashi, +A., & Oba, F. (2021). Insights into oxygen vacancies from +high-throughput first-principles calculations. Phys. Rev. Mater., 5, +123803. +https://doi.org/10.1103/PhysRevMaterials.5.123803 + + + DASP: Defect and dopant ab-initio simulation +package + Huang + J. Semicond. + 43 + 10.1088/1674-4926/43/4/042101 + 1674-4926 + 2022 + Huang, M., Zheng, Z., Dai, Z., Guo, +X., Wang, S., Jiang, L., Wei, J., & Chen, S. (2022). DASP: Defect +and dopant ab-initio simulation package. J. Semicond., 43, 42101. +https://doi.org/10.1088/1674-4926/43/4/042101 + + + Spinney: Post-processing of first-principles +calculations of point defects in semiconductors with +Python + Arrigoni + Comput. Phys. Commun. + 264 + 10.1016/j.cpc.2021.107946 + 0010-4655 + 2021 + Arrigoni, M., & Madsen, G. K. H. +(2021). Spinney: Post-processing of first-principles calculations of +point defects in semiconductors with Python. Comput. Phys. Commun., 264, +107946. +https://doi.org/10.1016/j.cpc.2021.107946 + + + A computational framework for automation of +point defect calculations + Goyal + Comput. Mater. Sci. + 130 + 10.1016/j.commatsci.2016.12.040 + 0927-0256 + 2017 + Goyal, A., Gorai, P., Peng, H., Lany, +S., & Stevanović, V. (2017). A computational framework for +automation of point defect calculations. Comput. Mater. Sci., 130, 1–9. +https://doi.org/10.1016/j.commatsci.2016.12.040 + + + doped + Kavanagh + GitHub + 2023 + Kavanagh, S. R., Mosquera-Lois, I., +Walsh, A., & Scanlon, D. O. (2023). doped. In GitHub. +https://github.com/SMTG-Bham/doped + + + + + + diff --git a/joss.05941/10.21105.joss.05941.jats b/joss.05941/10.21105.joss.05941.jats new file mode 100644 index 0000000000..ae7f214bdd --- /dev/null +++ b/joss.05941/10.21105.joss.05941.jats @@ -0,0 +1,411 @@ + + +
+ + + + +Journal of Open Source Software +JOSS + +2475-9066 + +Open Journals + + + +5941 +10.21105/joss.05941 + +pymatgen-analysis-defects: A Python package for analyzing +point defects in crystalline materials + + + +https://orcid.org/0000-0002-2743-7531 + +Shen +Jimmy-Xuan + + + + +https://orcid.org/0000-0002-5384-5248 + +Varley +Joel + + + + + +Lawrence Livermore National Laboratory, Livermore, +California 94550, United States + + + +9 +93 +5941 + +Authors of papers retain copyright and release the +work under a Creative Commons Attribution 4.0 International License (CC +BY 4.0) +2022 +The article authors + +Authors of papers retain copyright and release the work under +a Creative Commons Attribution 4.0 International License (CC BY +4.0) + + + +python +materials science +point defects +finite-size corrections +database building + + + + + + Statement of need +

Point defects can often determine the properties of semiconductor + and optoelectronic materials. Due to the large simulation cell and the + higher-cost density functionals required for defect simulations, the + computational cost of defect calculations is often orders of magnitude + higher than that of bulk calculations. As such, managing and curating + the results of the defect calculations generated by a single user has + the potential to save a significant amount of computational resources. + Moreover, eventually building a high-quality, persistent defects + database will significantly reduce the computational cost of defect + calculations for the entire community.

+

Simulation of point defects is one of the most complex workflows in + computational materials science, involving extensive pre- and + post-processing of the structural and electronic structure data + (Freysoldt + et al., 2014). Multiple software packages exist to automate the + simulation of point defects including work from Broberg et al. + (2018), + Kumagai et al. + (2021), + Huang et al. + (2022), + Arrigoni & Madsen + (2021), + Goyal et al. + (2017), + and Kavanagh et al. + (2023); + however, no available code focuses on:

+ + +

Integration of but not insistence on standardized + high-throughput workflow frameworks

+
+ +

Building large, persistent databases of point defects that are + extensible to new calculations over time

+
+
+
+ + Summary +

Since the combinatorics of point defects in crystalline materials + can be daunting, it is important to have a software package that can + be easily integrated into high-throughput workflows to manage these + complex calculations. However, most users of defect analysis packages + will not need to run thousands of calculations, so it is important to + have code focused purely on the defect analysis and relegate the + high-throughput workflow aspect to a separate package. A focus of the + present package is also to provide a base library for the analysis of + point defects without invoking any high-throughput workflow + frameworks. Even though this package was designed with high-throughput + in mind and developed alongside a high-throughput workflow framework, + it is not dependent on any particular workflow framework and can be + used as a standalone analysis package.

+

Additionally, a well-known problem in the simulation of point + defects is the fact that current structure optimization techniques can + miss the ground state structure based on the initial guess in a + sizable minority of cases, so the ability to easily re-visit and + re-optimize structures is crucial to building a reliable database of + point defects. Towards that end, we have developed a Python package, + pymatgen-analysis-defects, and integrated it + with the popular atomate2 workflow framework to + provide a complete set of tools for simulating, analyzing, and + managing the results of point defect calculations.

+

Since the ability to revisit calculations is crucial to building a + reliable database, but user tagging of calculations is inconsistent, + especially in a high-throughput context, we have codified a + structure-only definition of point defects that can be used to + aggregate the results of multiple calculations of the same defect. + This allows for the creation of a database of point defects that can + be easily extended to new calculations over time. In addition to the + focus on database building, we have also implemented several tools for + analyzing carrier recombination in defects, these include:

+ + +

Obtaining the chemical potential contribution to the defect + formation energy without explicit calculations of the competing + phases

+
+ +

Obtaining the Freysoldt finite-size correction without user + intervention

+
+ +

Calculation of the optical transition between states under the + independent-particle approximation

+
+ +

Calculation of the non-radiative recombination using the + nonrad code + (Turiansky + et al., 2021)

+
+
+

Details of the implementation and tutorials for using the different + parts of the package are provided at + https://materialsproject.github.io/pymatgen-analysis-defects/intro.html.

+ + Defect Definition +

A core feature of + pymatgen-analysis-defects is the ability to + define point defects automatically. While symmetry analysis on the + atomic structure alone is usually enough to define the distinct + substitutional and vacancy defects, we found that the electronic + charge density was the most effective at placing the interstitial + defect at symmetry-inequivalent positions. A basic example of + creating a full list of defects is shown below:

+ from pymatgen.analysis.defects.generators import generate_all_native_defects +from pymatgen.ext.matproj import MPRester + +with MPRester() as mpr: + chgcar = mpr.get_charge_density_from_material_id("mp-804") + +defects = [] +for defect in generate_all_native_defects(chgcar): + print(defect) + defects.append(defect) + Ga Vacancy defect at site #0 +N Vacancy defect at site #2 +N subsitituted on the Ga site at at site #0 +Ga subsitituted on the N site at at site #2 +Ga intersitial site at [0.00,0.00,0.20] +Ga intersitial site at [0.35,0.65,0.69] +N intersitial site at [0.00,0.00,0.20] +N intersitial site at [0.35,0.65,0.69] +

In the code above, we query the Materials Project database for + the charge density object, which contains information about the bulk + structure, as well as the electronic charge density. Using the + generate_all_native_defects function, we can + generate a list of all of the native point defects for this + structure.

+ +

Defect generation.

+ +
+
+ + Defect Simulation Workflow +

A basic example of integration with the + atomate2 workflow framework is provided + below:

+ from atomate2.vasp.flows.defect import FormationEnergyMaker +from jobflow import Flow +from pymatgen.analysis.defects.generators import generate_all_native_defects +from pymatgen.ext.matproj import MPRester + +with MPRester() as mpr: + chgcar = mpr.get_charge_density_from_material_id("mp-804") + + +maker = FormationEnergyMaker() +jobs = [] +for defect in generate_all_native_defects(chgcar): + jobs.append(maker.make(defect)) +flow = Flow(jobs) +

The code above will generate a Flow object + that contains all of the instructions to dynamically create all of + the required defect calculations, which can be sent to the job + manager on an HPC system.

+
+
+ + Acknowledgements +

The following parts of the present package contain contributions + from other open-source projects: the finite size correction is based + on the original implementation in pyCDT by + Dr. Danny Broberg, the non-radiative recombination code is based on + the original implementation in nonrad by + Dr. Mark E. Turiansky. This work was performed under the auspices of + the U.S. DOE by Lawrence Livermore National Laboratory under contract + DE-AC52-07NA27344, and partially supported by LLNL LDRD funding under + project number 22-SI-003.

+
+ + + + + + + TurianskyMark E. + AlkauskasAudrius + EngelManuel + KresseGeorg + WickramaratneDarshana + ShenJimmy-Xuan + DreyerCyrus E. + Van de WalleChris G. + + Nonrad: Computing nonradiative capture coefficients from first principles + Comput. Phys. Commun. + 202110 + 267 + 10.1016/j.cpc.2021.108056 + 108056 + + + + + + + FreysoldtChristoph + GrabowskiBlazej + HickelTilmann + NeugebauerJörg + KresseGeorg + JanottiAnderson + WalleChris G de + + First-principles calculations for point defects in solids + Rev. Mod. Phys. + APS + 2014 + 86 + 10.1103/RevModPhys.86.253 + 253 + + + + + + + BrobergDanny + MedasaniBharat + ZimmermannNils E R + YuGuodong + CanningAndrew + HaranczykMaciej + AstaMark + HautierGeoffroy + + PyCDT: A python toolkit for modeling point defects in semiconductors and insulators + Comput. Phys. Commun. + North-Holland + 201805 + 226 + 0010-4655 + 10.1016/j.cpc.2018.01.004 + 165 + 179 + + + + + + KumagaiYu + TsunodaNaoki + TakahashiAkira + ObaFumiyasu + + Insights into oxygen vacancies from high-throughput first-principles calculations + Phys. Rev. Mater. + American Physical Society + 202112 + 5 + 2475-9953 + 10.1103/PhysRevMaterials.5.123803 + 123803 + + + + + + + HuangMenglin + ZhengZhengneng + DaiZhenxing + GuoXinjing + WangShanshan + JiangLilai + WeiJinchen + ChenShiyou + + DASP: Defect and dopant ab-initio simulation package + J. Semicond. + Chinese Institute of Electronics + 202204 + 43 + 1674-4926 + 10.1088/1674-4926/43/4/042101 + 42101 + + + + + + + ArrigoniMarco + MadsenGeorg K. H. + + Spinney: Post-processing of first-principles calculations of point defects in semiconductors with Python + Comput. Phys. Commun. + North-Holland + 202107 + 264 + 0010-4655 + 10.1016/j.cpc.2021.107946 + 107946 + + + + + + + GoyalAnuj + GoraiPrashun + PengHaowei + LanyStephan + StevanovićVladan + + A computational framework for automation of point defect calculations + Comput. Mater. Sci. + Elsevier + 201704 + 130 + 0927-0256 + 10.1016/j.commatsci.2016.12.040 + 1 + 9 + + + + + + KavanaghSeán R. + Mosquera-LoisIrea + WalshAron + ScanlonDavid O. + + doped + GitHub + 202312 + https://github.com/SMTG-Bham/doped + + + + +
diff --git a/joss.05941/10.21105.joss.05941.pdf b/joss.05941/10.21105.joss.05941.pdf new file mode 100644 index 0000000000..cbaabb43d7 Binary files /dev/null and b/joss.05941/10.21105.joss.05941.pdf differ diff --git a/joss.05941/media/fig1.png b/joss.05941/media/fig1.png new file mode 100644 index 0000000000..aaaec45649 Binary files /dev/null and b/joss.05941/media/fig1.png differ