DFTK

Density-functional toolkit

https://github.com/juliamolsim/dftk.jl

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    2 of 45 committers (4.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

ab-initio computational-chemistry density-functional-theory electronic-structure julia kohn-sham materials-science mathematical-analysis numerical-analysis plane-wave toolkit

Keywords from Contributors

numerical julialang programming-language standardization partial-differential-equations mpi interpretability build-tools pde pinn
Last synced: 6 months ago · JSON representation ·

Repository

Density-functional toolkit

Basic Info
  • Host: GitHub
  • Owner: JuliaMolSim
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage: https://docs.dftk.org
  • Size: 94.2 MB
Statistics
  • Stars: 487
  • Watchers: 16
  • Forks: 95
  • Open Issues: 121
  • Releases: 106
Topics
ab-initio computational-chemistry density-functional-theory electronic-structure julia kohn-sham materials-science mathematical-analysis numerical-analysis plane-wave toolkit
Created almost 7 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

dftk logo

Density-functional toolkit

| Documentation | Build Status | License | |:------------------------------------------------------------------------------------------------------------- |:----------------------------------------------- |:-------------------------------- | | | | |

The density-functional toolkit, DFTK for short, is a collection of Julia routines for plane-wave density-functional theory (DFT). The unique feature of this code is its emphasis on simplicity and flexibility with the goal of facilitating algorithmic and numerical developments as well as interdisciplinary collaboration in solid-state research.

In only around 10k lines of code DFTK already has a sizeable set of features including GPU support or parallelisation using MPI. Our performance is of the same order of magnitude as more established packages and systems up to 1000 electrons can be routinely treated.

For getting started with DFTK, see our documentation: - Installation instructions - Tutorial - Basic DFT examples

Note that at least Julia 1.10 is required.

Support and citation

DFTK is mostly developed as part of academic research. Parts of DFTK have also been discussed in published papers. If you use our code as part of your research, teaching or other activities, we would be grateful if you cite them as appropriate. See the CITATION.bib in the root of this repo for relevant references. The current DFTK reference paper to cite is DOI.

Funding

This project has received funding from the Institute of computing and data sciences (ISCD, Sorbonne Université), École des Ponts ParisTech, Inria Research Centre Paris, RWTH Aachen University, Swiss National Science Foundation, from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement No 810367) and from the Simons Foundation.

Contributing

If you stumble across issues in using DFTK or have suggestions for future developments we are more than happy to hear about it. In this case please open an issue or contact us (@mfherbst and @antoine-levitt) directly.

Contributions to the code in any form is very welcome, just submit a pull request on github. If you want to contribute but are unsure where to start, take a look at the list of issues tagged good first issue (relatively easy tasks suitable for newcomers) or help wanted (more sizeable but well-defined and isolated). Don't hesitate to ask for help, through github, email, JuliaMolSim zulip or Matrix chat.

Owner

  • Name: Molecular Simulation in Julia
  • Login: JuliaMolSim
  • Kind: organization

Citation (CITATION.bib)

% Extended abstract describing DFTK along with a short summary of its features
@article{DFTKjcon,
  author = {Herbst, Michael F. and Levitt, Antoine and Cancès, Eric},
  doi = {10.21105/jcon.00069},
  journal = {Proc. JuliaCon Conf.},
  title = {{DFTK}: A {Julian} approach for simulating electrons in solids},
  volume = {3},
  pages = {69},
  year = {2021},
}

% Paper describing the calculation of response properties in DFTK.
% Used for forward-diff derivatives, `solve_ΩplusK_split` and `apply_χ0` functions.
@article{ResponseCalculations,
  author={Canc{\`e}s, Eric and Herbst, Michael F and Kemlin, Gaspard and Levitt, Antoine and Stamm, Benjamin},
  title={Numerical stability and efficiency of response property calculations in density functional theory},
  journal={Letters in Mathematical Physics},
  volume={113},
  number={1},
  pages={21},
  year={2023},
  publisher={Springer}
}

% Paper describing the inexact Krylov algorithm used in the `solve_ΩplusK_split` response calculation
@misc{InexactKrylovResponse,
  title={Efficient {Krylov} methods for linear response in plane-wave electronic structure calculations},
  author={Michael F. Herbst and Bonan Sun},
  year={2025},
  eprint={2505.02319},
  archivePrefix={arXiv},
  primaryClass={math.NA},
  url={https://arxiv.org/abs/2505.02319},
}

% Paper describing the energy cutoff smearing method `BlowupCHV`
@article{BlowupCHV,
  author={Canc{\`e}s, Eric and Hassan, Muhammad and Vidal, Laurent},
  title={Modified-operator method for the calculation of band diagrams of crystalline materials},
  journal={Mathematics of Computation},
  volume={93},
  number={347},
  pages={1203--1245},
  year={2024}
}

% Paper describing the adaptive damping strategy implemented by
% the scf_potential_mixing_adaptive function
@article{AdaptiveDamping,
  author = {Herbst, Michael F. and Levitt, Antoine},
  doi = {10.1016/j.jcp.2022.111127},
  journal = {Journal of Computational Physics},
  title = {A robust and efficient line search for self-consistent field iterations},
  volume = {459},
  pages = {111127},
  year = {2022},
}

% Paper describing the HybridMixing, DielectricMixing and LdosMixing SCF preconditioners
% available inside DFTK
@article{HybridMixing,
  author = {Herbst, Michael F. and Levitt, Antoine},
  doi = {10.1088/1361-648x/abcbdb},
  journal = {J. Phys. Condens. Matter},
  title = {Black-box inhomogeneous preconditioning for self-consistent field iterations in density functional theory},
  volume = {33},
  pages = {085503},
  year = {2021},
}

GitHub Events

Total
  • Fork event: 9
  • Create event: 64
  • Commit comment event: 25
  • Release event: 13
  • Issues event: 35
  • Watch event: 53
  • Delete event: 56
  • Member event: 2
  • Issue comment event: 314
  • Push event: 434
  • Pull request review comment event: 285
  • Pull request review event: 208
  • Pull request event: 162
Last Year
  • Fork event: 9
  • Create event: 64
  • Commit comment event: 25
  • Release event: 13
  • Issues event: 35
  • Watch event: 53
  • Delete event: 56
  • Member event: 2
  • Issue comment event: 314
  • Push event: 434
  • Pull request review comment event: 285
  • Pull request review event: 208
  • Pull request event: 162

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,255
  • Total Committers: 45
  • Avg Commits per committer: 27.889
  • Development Distribution Score (DDS): 0.356
Past Year
  • Commits: 104
  • Committers: 16
  • Avg Commits per committer: 6.5
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
Michael F. Herbst i****o@m****m 808
Antoine Levitt a****t@g****m 223
Étienne Polack 8****k 54
github-actions[bot] 4****] 39
Niklas Schmitz n****z@g****m 21
Gaspard Kemlin g****n@e****r 18
Augustin Bussy a****y@c****h 14
Bruno Ploumhans 1****n 12
dependabot[bot] 4****] 8
Austin Zadoks a****s@p****m 5
GVigne 7****e 5
Laurent Vidal 7****5 4
Cédric Travelletti 3****i 4
Jae-Mo Lihm j****6@g****m 3
Jeremiah DeGreeff j****f@g****m 2
Andrea Azzali 1****i 2
gkemlin g****n@p****t 2
Chuin Wei Tan 8****n 2
Gabriel Birnbaum g****m@g****m 2
ssirajdine s****e@g****m 2
Eric Berquist e****t@g****m 1
Diane Tambey 1****y 1
Bonan Zhu 3****n 1
Carsten Bauer c****r@g****m 1
Christopher Hillenbrand c****5@g****m 1
tzsuzsi 4****i 1
m-schwendt 1****t 1
Yongjoong Shin 1****e 1
Xue Quan 5****8 1
Valentin Churavy v****y 1
and 15 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 102
  • Total pull requests: 401
  • Average time to close issues: 9 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 28
  • Total pull request authors: 39
  • Average comments per issue: 4.02
  • Average comments per pull request: 2.51
  • Merged pull requests: 286
  • Bot issues: 1
  • Bot pull requests: 50
Past Year
  • Issues: 31
  • Pull requests: 176
  • Average time to close issues: 13 days
  • Average time to close pull requests: 7 days
  • Issue authors: 13
  • Pull request authors: 18
  • Average comments per issue: 2.26
  • Average comments per pull request: 1.59
  • Merged pull requests: 122
  • Bot issues: 0
  • Bot pull requests: 22
Top Authors
Issue Authors
  • antoine-levitt (24)
  • mfherbst (21)
  • Technici4n (12)
  • epolack (7)
  • abussy (4)
  • azadoks (4)
  • niklasschmitz (4)
  • GVigne (3)
  • thomsen59 (3)
  • LaurentVidal95 (2)
  • exenGT (1)
  • raphaelzstone (1)
  • aouinaayoub (1)
  • JuliaTagBot (1)
  • gkemlin (1)
Pull Request Authors
  • mfherbst (115)
  • epolack (50)
  • github-actions[bot] (37)
  • abussy (34)
  • niklasschmitz (29)
  • Technici4n (26)
  • antoine-levitt (25)
  • dependabot[bot] (13)
  • CedricTravelletti (7)
  • dianetambey (6)
  • raphaelzstone (6)
  • azadoks (5)
  • GVigne (4)
  • a-azzali (4)
  • xuequan818 (4)
Top Labels
Issue Labels
bug (10) feature (7) testing (6) discussion (5) gpu (5) good first issue (5) API (5) third party (2) performance (2) help wanted (2) usage (1) breaking (1)
Pull Request Labels
dependencies (13) breaking (11) gpu (4) documentation (4) testing (1) github_actions (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 48 total
  • Total dependent packages: 2
  • Total dependent repositories: 0
  • Total versions: 100
juliahub.com: DFTK

Density-functional toolkit

  • Versions: 100
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 48 Total
Rankings
Forks count: 1.8%
Stargazers count: 2.1%
Average: 9.2%
Dependent repos count: 9.9%
Dependent packages count: 23.0%
Last synced: 6 months ago

Dependencies

.github/workflows/CompatHelper.yaml actions
  • julia-actions/setup-julia latest composite
.github/workflows/TagBot.yaml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yaml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • julia-actions/cache 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
.github/workflows/documentation.yaml actions
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/setup-julia v1 composite