[Diff since v0.6.20](https://github.com/JuliaMolSim/DFTK.jl/compare/v0.6.20...v0.7.0) Note that this release increases the minor version and contains a number of breaking changes: - SCF solver implementations have changed their API from `ρout = F(ρin)` to `ρout, info_out = F(ρin, info_in)`. This means that many of DFTK's learning resources (which use this feature to introduce the concepts of basic SCF algorithms) need to be adapted for DFTK 0.7. (#811) - The `model_LDA`, `model_PBE` and `model_SCAN` functions are now deprecated and will be removed in a later DFTK version. Use `model_DFT(system; functionals=LDA(), kwargs...)` or similar (`functionals=PBE()`, `functionals=SCAN()`) (#994). - The `model_DFT` syntax with an array of functionals in the last argument is deprecated and will be removed in a later DFTK version. Instead of `model_DFT(system, [:lda_x]; kwargs...)` use `model_DFT(system; functionals=[:lda_x], kwargs...)` (#994) - The model constructors in combination with `AtomsBase` systems no longer respect the `:pseudopotential` atom keys. To specify the pseudopotentials in combination with the `AtomsBase` interface now use the `pseudopotentials` keyword argument of the model constructors. E.g. instead of running `system = attach_psp(system; Si="hgh/lda/si-q4"); model = model_DFT(system; kwargs...)` use `model = model_DFT(system; pseudopotentials=Dict(:Si => "hgh/lda/si-q4"))`. Note that the new `PseudoPotentialData.PseudoFamily` objects can also be passed as values to the `pseudopotentials` keywords, which is often simpler. (#1020) - The `attach_psp` function *has been removed* due to the above change. Use the new `model_DFT(system; pseudopotential=Dict(:Si => "hgh/lda/si-q4"), kwargs...)` syntax instead. (#1020) - The `ElementPsp(key; psp)` constructor is deprecated and will be removed in a later DFTK version, use instead `Element(key, psp)` which is now more powerful (`psp` can be a `PspHgh`, `PspUpf` or `PseudoPotentialData.PseudoFamily`). (#1020) - The deprecated `kgrid_from_minimal_spacing` function has been removed in favour of `kgrid_from_maximal_spacing` (#994) - The deprecated `ScfDiagtol` function has been removed. Use `AdaptiveDiagtol` now (#994) **Merged pull requests:** - Change internal fixed-point API to (x, info) = f(x, info) to simplify SCF metadata tracking (#811) (@epolack) - Adaptive-depth anderson (#939) (@mfherbst) - Add DFT book to resources (#991) (@mfherbst) - Solutions to discretisation exercises (#993) (@dianetambey) - Drop deprecated features and a round of docs updating (#994) (@mfherbst) - Minor refactoring of the FFTs (#996) (@abussy) - Enhance user experience with MPI (#997) (@abussy) - MPI workarounds for aarch64 (#999) (@abussy) - CompatHelper: bump compat for JLD2 in [weakdeps] to 0.5, (keep existing compat) (#1000) (@github-actions[bot]) - Update literature (#1001) (@mfherbst) - Reupload the projected density of states (#1002) (@xuequan818) - Update README.md (#1004) (@antoine-levitt) - Make `solve_ΩplusK` MPI-compatible (#1005) (@Technici4n) - Optimize `apply_K` (#1006) (@Technici4n) - Use latest pre-release version instead of nightly for CI against upcoming versions (#1010) (@Technici4n) - ForwardDiff for response derivatives with PspUpf pseudopotentials (#1013) (@niklasschmitz) - Fix typo in self_consistent_field documentation (#1015) (@Technici4n) - Refinement of density and forces (#1016) (@Technici4n) - Bump codecov/codecov-action from 4 to 5 (#1018) (@dependabot[bot]) - Remove dependency on DftFunctionals.change_parameters fallback behavior for functionals without parameters (#1019) (@niklasschmitz) - Use PseudoPotentialData.jl instead of Artifacts (#1020) (@mfherbst) - Fix Fermi-Dirac occupation overflow and remove custom ForwardDiff rule (#514) (#1022) (@niklasschmitz) - Speed up AtomicLocal forces (#1024) (@abussy) - Fix #1026: Allow GPU arrays in FFTGrid (#1029) (@Technici4n) **Closed issues:** - Fix AD for small occupations (#514) - Typo in `self_consistent_field` documentation (#1003) - DFTK broken on GPUs (#1026)