Releases: JuliaMolSim/DFTK.jl
v0.5.5
DFTK v0.5.5
Merged pull requests:
- Integrate with DftFunctionals.jl (#633) (@mfherbst)
- Cap tolerance in check on electron count (#682) (@mfherbst)
- Graphene band structure (#683) (@antoine-levitt)
- CompatHelper: bump compat for Interpolations to 0.14, (keep existing compat) (#685) (@github-actions[bot])
- Fixup stylistic aspects raised in #633 (#686) (@mfherbst)
- Fix bug on magnetization in guess_density (#687) (@gkemlin)
- Band energy derivatives using ForwardDiff (#688) (@mfherbst)
- Add code for paper by Cazalis on 2D-confined graphene (#689) (@antoine-levitt)
v0.5.4
DFTK v0.5.4
Closed issues:
- How to set up models (#666)
- Stronger type annotations for model construction (#668)
- Get rid of lowpass_for_symmetry! (#672)
- Don't hardcode ylims in band structure (#674)
- MPI error with redirect_stdout() (#681)
Merged pull requests:
- Handling complex numbers for PairwisePotential (#655) (@epolack)
- Add more type annotations to model constructors (#670) (@mfherbst)
- Performance optimizations (#671) (@antoine-levitt)
- Handling of extra bands in response calculations (#679) (@gkemlin)
- Store G_vectors and r_vectors in the basis (#680) (@antoine-levitt)
v0.5.3
DFTK v0.5.3
Closed issues:
Merged pull requests:
- Precompute Ewald summation bounds (#659) (@niklasschmitz)
- Small changes to improve working with intervals (#661) (@mfherbst)
- Testing RealSpaceMultiplication consistency as well (#662) (@epolack)
- Refactor Pairwise term to precompute summation bounds (#663) (@niklasschmitz)
- fix typo (#664) (@killah-t-cell)
- Fix performance gotcha (#665) (@antoine-levitt)
- Turn LOBPCG problem size warning to error (#667) (@antoine-levitt)
v0.5.2
v0.5.1
DFTK v0.5.1
Closed issues:
- Pretty traces (#123)
- Define and use cis2pi (#400)
- Direct minimization with Double64 does not work (#428)
- Investigate forces test failure (#625)
- Help Needed (#649)
Merged pull requests:
- Remove dead and unused code (#634) (@mfherbst)
- Remove deprecation wrappers (#635) (@mfherbst)
- Zygote scf (#636) (@mtowara)
- Use chemical_formula function from AtomsBase (#639) (@mfherbst)
- Simplify pwbasis constructors (#640) (@antoine-levitt)
- Add and use cis2pi functions (#641) (@kvnoct)
- Filter rgrid symmetries (#642) (@antoine-levitt)
- Zygote scf (#644) (@mtowara)
- Integrate with InteratomicPotentials.jl (#645) (@jrdegreeff)
- CompatHelper: bump compat for Roots to 2, (keep existing compat) (#646) (@github-actions[bot])
- Test consistency of local potential in both real and Fourier space (#647) (@antoine-levitt)
- Using Cartesian routine (#648) (@epolack)
- update support for InteratomicPotentials v0.2 (#654) (@jrdegreeff)
v0.5.0
DFTK v0.5.0
Note that this release increases the minor version and contains a number of breaking changes:
-
The
atoms
field in theModel
data structure, which used to contain pairs mapping from an element to a list of associated positions, is now split up into a plainatoms
vector (containing a flat and repeated list of all elements) and apositions
vector (containing the list of respective positions). I.e. whereas before one would have, for example:Ga = ElementCoulomb(:Ga) As = ElementCoulomb(:As) atoms = [Ga => [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], ], As => [[0.7, 0.8, 0.9], ], ]
we now have
Ga = ElementCoulomb(:Ga) As = ElementCoulomb(:As) atoms = [Ga, Ga, As] positions = [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.7, 0.8, 0.9], ]
This change is carried forward to all interfaces of DFTK. This means that all
Model
constructors as well as themodel_atomic
,model_DFT
,model_LDA
,model_PBE
,model_SCAN
functions change interface. E.g. constructing an LDA model for this fictitious gallium arsenide system could now be done as such:Ga = ElementCoulomb(:Ga) As = ElementCoulomb(:As) atoms = [Ga, Ga, As] positions = [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.7, 0.8, 0.9], ] lattice = 5.6 * I(3) model = model_LDA(lattice, atoms, positions)
All examples and tests have been updated and can be used to draw examples for the new interface. For convenience and to simplify amending downstream code the old
model_LDA
etc. function have not been completely removed for now, but only marked as deprecated. However, removal will occur at the next patch release. (#626) -
The
compute_forces
andcompute_forces_cart
functions now also return arrays ofVec3
(Static vector of 3 dimensions). These vectors are the forces on a particular atom in the same order as themodel.positions
andmodel.atoms
arrays. (#626) -
The
Model(lattice; atoms, positions, kwargs...)
constructor has been dropped in favour ofModel(lattice, atoms, positions; kwargs...)
, i.e.atoms
andpositions
are now positional arguments. This was done to make the constructor resemble more the structure of themodel_LDA
,model_PBE
, etc. functions. (#629). -
The default LDA model constructed by
model_LDA
is now[:lda_x, :lda_c_pw]
instead of[:lda_xc_teter93]
. To return to the old behaviour replacemodel_LDA(lattice, atoms, positions; kwargs...)
bymodel_DFT(lattice, atoms, positions, :lda_xc_teter93; kwargs...)
. (#629) -
The default
kshift
in thePlaneWaveBasis
constructor is now always(0, 0, 0)
. It used to be1/2
in one direction in case thekgrid
was even in this direction. Manually specifying the desiredkshift
returns the old behaviour. (#630) -
The
load_psp(element; kwargs...)
function is discontinued and has been removed. Instead use a combination oflist_psp(element; kwargs...)
withload_psp(identifier)
or theattach_psp(system::AbstractSystem)
function. (#558) -
The deprecated
compute_stresses(scfres)
function has now been removed in favour ofcompute_stresses_cart(scfres)
. (#628) -
The deprecated
PowerNonlinearity(C, α)
constructor has now been removed in favour ofLocalNonlinearity(ρ -> C * ρ^α)
. (#628)
Closed issues:
- Autodiff (#107)
- Figure out notations for the symmetry operations (#266)
- Possibility to "unfold" the k grid (#382)
- Make another round of profiling (#425)
- Improve density computation (#456)
- Employing DFTK results for Machine-Learning (#595)
- Refactor SymOp to be primarily (W,w) rather than (S,tau) (#618)
- Remove ksymops (#621)
Merged pull requests:
- Integrate with AtomsBase (#558) (@mfherbst)
- Adding framework for pairwise interactions (#602) (@epolack)
- Random optimization (#610) (@antoine-levitt)
- Fix performance issue in block array (#611) (@antoine-levitt)
- Small cleanup in LOBPCG (#612) (@mfherbst)
- Remove coordinate_cart field from Kpoint (#613) (@niklasschmitz)
- Small optimizations (#615) (@antoine-levitt)
- Refactoring diagonalize_all_kblocks (#617) (@antoine-levitt)
- Symop refactoring (again!) (#619) (@antoine-levitt)
- Fixes for julia 1.8 (#620) (@mfherbst)
- Excise ksymops (#622) (@antoine-levitt)
- Excise symops, part 2 (#624) (@antoine-levitt)
- Refactor atoms field in Model (#626) (@mfherbst)
- Remove deprecated features (#628) (@mfherbst)
- Make atoms and positions positional arguments of the Model (#629) (@mfherbst)
- Change default kshift to zero (#630) (@mfherbst)
- Remove kpoint fallback (#631) (@mfherbst)
- Remove final mention of ksymops (#632) (@mfherbst)
v0.4.7
DFTK v0.4.7
Closed issues:
- Segfault in preconditioning (#529)
- Investigate eigensolver bad convergence (#578)
- Convergence monitoring (#579)
- De-
threadid
ing parallel loops (#588)
Merged pull requests:
- CompatHelper: bump compat for Polynomials to 3, (keep existing compat) (#598) (@github-actions[bot])
- Use Val(true) in G_to_r to help const-prop (#605) (@antoine-levitt)
- Change printing (#606) (@antoine-levitt)
- Switch maximum iteration count to 100 (#607) (@antoine-levitt)
- Fix unsafe use of unpack (#608) (@antoine-levitt)
v0.4.6
DFTK v0.4.6
Closed issues:
- Use symmetrization for forces (#515)
Merged pull requests:
- Replace
@timing_seq
by thread-local timers (#574) (@mfherbst) - Optimization to density building (#575) (@antoine-levitt)
- Cleanup Chi0Mixing docstrings and timings (#576) (@mfherbst)
- Symop refactoring (#577) (@antoine-levitt)
- Fix type in periodic problems guide (#580) (@epolack)
- AtomicNonlocal Zygote compatibility (#581) (@mtowara)
- Show function for kpoints (#582) (@antoine-levitt)
- Proper integration of SCF with ForwardDiff (#583) (@mfherbst)
- Schur complement in Sternheimer solver (#584) (@gkemlin)
- Selection from zoo of PBE functionals (#586) (@mfherbst)
- Use symmetrization in density construction (#589) (@antoine-levitt)
- Remove a forwarddiff workaround (#590) (@antoine-levitt)
- Fix threading (#592) (@antoine-levitt)
- Fix formula to match comment (#594) (@epolack)
- Symmetrize forces (#596) (@antoine-levitt)
- Simplify the erfc cutoff in ewald (#597) (@antoine-levitt)
- Support for multiple partials in ForwardDiff SCF (#599) (@niklasschmitz)
- Using pseudo-inverse for one- and two-dimensional cells (#601) (@epolack)
- Fix stress symmetrization (#603) (@antoine-levitt)
- Add explicit error if SCF is used with no kinetic term (#604) (@epolack)
v0.4.5
DFTK v0.4.5
Closed issues:
- Make perturbation-based error bounds available in master (#560)
Merged pull requests:
- Merge the two functions for standardising cells (#568) (@mfherbst)
- More XC fallback implementations (#569) (@mfherbst)
- Recode lda_c_vwn (#570) (@antoine-levitt)
- Implement meta-GGA functionals (#571) (@mfherbst)
- Implement meta-GGAs depending on the laplacian of the density (#572) (@mfherbst)
- Remove outdated and broken ABINIT interface (#573) (@mfherbst)
v0.4.4
DFTK v0.4.4
Closed issues:
- Error showing basis without kshift (#554)
Merged pull requests:
- Turn generators into arrays (#556) (@antoine-levitt)
- Implement Marzari-Vanderbilt-DeVita-Payne (cold) smearing (#557) (@azadoks)
- Fix typo (#559) (@haampie)
- new example using AD to compute error bounds for forces (#561) (@gkemlin)
- [WIP] Zygote SCF (#563) (@niklasschmitz)
- Generalize PowerNonlinearity to LocalNonlinearity (#564) (@antoine-levitt)
- Simplify xc fallbacks, allow second derivatives, remove codegen (#565) (@antoine-levitt)
- Reformulate readme (#566) (@mfherbst)