Skip to content

Tags: Crazy-Rookie/DFTK.jl

Tags

v0.5.4

Toggle v0.5.4's commit message
[Diff since v0.5.3](JuliaMolSim/DFTK.jl@v0.5.3...v0.5.4)

**Closed issues:**
- How to set up models (JuliaMolSim#666)
- Stronger type annotations for model construction (JuliaMolSim#668)
- Get rid of lowpass_for_symmetry! (JuliaMolSim#672)
- Don't hardcode ylims in band structure (JuliaMolSim#674)
- MPI error with redirect_stdout() (JuliaMolSim#681)

**Merged pull requests:**
- Handling complex numbers for PairwisePotential (JuliaMolSim#655) (@epolack)
- Add more type annotations to model constructors (JuliaMolSim#670) (@mfherbst)
- Performance optimizations (JuliaMolSim#671) (@antoine-levitt)
- Handling of extra bands in response calculations (JuliaMolSim#679) (@gkemlin)
- Store G_vectors and r_vectors in the basis (JuliaMolSim#680) (@antoine-levitt)

v0.5.3

Toggle v0.5.3's commit message
[Diff since v0.5.2](JuliaMolSim/DFTK.jl@v0.5.2...v0.5.3)

**Closed issues:**
- Rewrite ewald (JuliaMolSim#656)
- DFTK doesn't precompile (JuliaMolSim#660)

**Merged pull requests:**
- Precompute Ewald summation bounds (JuliaMolSim#659) (@niklasschmitz)
- Small changes to improve working with intervals (JuliaMolSim#661) (@mfherbst)
- Testing RealSpaceMultiplication consistency as well (JuliaMolSim#662) (@epolack)
- Refactor Pairwise term to precompute summation bounds (JuliaMolSim#663) (@niklasschmitz)
- fix typo (JuliaMolSim#664) (@killah-t-cell)
- Fix performance gotcha (JuliaMolSim#665) (@antoine-levitt)
- Turn LOBPCG problem size warning to error (JuliaMolSim#667) (@antoine-levitt)

v0.5.2

Toggle v0.5.2's commit message
[Diff since v0.5.1](JuliaMolSim/DFTK.jl@v0.5.1...v0.5.2)

**Closed issues:**
- Fix forwarddiff with symmetries (JuliaMolSim#643)
- Tolerance issue when using ForwardDiff (JuliaMolSim#651)

**Merged pull requests:**
- Forwarddiff for metals (JuliaMolSim#638) (@mfherbst)
- Fix cart (JuliaMolSim#657) (@epolack)
- Forward-diff support for pseudo parameters (JuliaMolSim#658) (@mfherbst)

v0.5.1

Toggle v0.5.1's commit message
[Diff since v0.5.0](JuliaMolSim/DFTK.jl@v0.5.0...v0.5.1)

**Closed issues:**
- Pretty traces (JuliaMolSim#123)
- Define and use cis2pi (JuliaMolSim#400)
- Direct minimization with Double64 does not work (JuliaMolSim#428)
- Investigate forces test failure (JuliaMolSim#625)
- Help Needed  (JuliaMolSim#649)

**Merged pull requests:**
- Remove dead and unused code (JuliaMolSim#634) (@mfherbst)
- Remove deprecation wrappers (JuliaMolSim#635) (@mfherbst)
- Zygote scf (JuliaMolSim#636) (@mtowara)
- Use chemical_formula function from AtomsBase (JuliaMolSim#639) (@mfherbst)
- Simplify pwbasis constructors (JuliaMolSim#640) (@antoine-levitt)
- Add and use cis2pi functions (JuliaMolSim#641) (@kvnoct)
- Filter rgrid symmetries (JuliaMolSim#642) (@antoine-levitt)
- Zygote scf (JuliaMolSim#644) (@mtowara)
- Integrate with InteratomicPotentials.jl (JuliaMolSim#645) (@jrdegreeff)
- CompatHelper: bump compat for Roots to 2, (keep existing compat) (JuliaMolSim#646) (@github-actions[bot])
- Test consistency of local potential in both real and Fourier space (JuliaMolSim#647) (@antoine-levitt)
- Using Cartesian routine (JuliaMolSim#648) (@epolack)
- update support for InteratomicPotentials v0.2 (JuliaMolSim#654) (@jrdegreeff)

v0.5.0

Toggle v0.5.0's commit message
[Diff since v0.4.7](JuliaMolSim/DFTK.jl@v0.4.7...v0.5.0)

Note that this release increases the minor version and contains a number of breaking changes:

- The `atoms` field in the `Model` data structure, which used to contain pairs mapping from an element to a list of associated positions, is now split up into a plain `atoms` vector (containing a flat and repeated list of all elements) and a `positions` vector (containing the list of respective positions). I.e. whereas before one would have, for example:
  ```julia
      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
  ```julia
      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 the `model_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:
  ```julia
      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. (JuliaMolSim#626)

- The `compute_forces` and `compute_forces_cart` functions now also return arrays of `Vec3` (Static vector of 3 dimensions). These vectors are the forces on a particular atom in the same order as the `model.positions` and `model.atoms` arrays. (JuliaMolSim#626)

- The `Model(lattice; atoms, positions, kwargs...)` constructor has been dropped in favour of `Model(lattice, atoms, positions; kwargs...)`, i.e. `atoms` and `positions` are now positional arguments. This was done to make the constructor resemble more the structure of the `model_LDA`, `model_PBE`, etc. functions. (JuliaMolSim#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 replace `model_LDA(lattice, atoms, positions; kwargs...)`
  by `model_DFT(lattice, atoms, positions, :lda_xc_teter93; kwargs...)`. (JuliaMolSim#629)

- The default `kshift` in the `PlaneWaveBasis` constructor is now always `(0, 0, 0)`. It used to be `1/2` in one direction in case the `kgrid` was even in this direction. Manually specifying the desired `kshift` returns the old behaviour. (JuliaMolSim#630)

- The `load_psp(element; kwargs...)` function is discontinued and has been removed. Instead use a combination of `list_psp(element; kwargs...)` with `load_psp(identifier)` or the `attach_psp(system::AbstractSystem)` function. (JuliaMolSim#558)

- The deprecated `compute_stresses(scfres)` function has now been removed in favour of `compute_stresses_cart(scfres)`. (JuliaMolSim#628)

- The deprecated `PowerNonlinearity(C, α)` constructor has now been removed in favour of `LocalNonlinearity(ρ -> C * ρ^α)`. (JuliaMolSim#628)

**Closed issues:**
- Autodiff (JuliaMolSim#107)
- Figure out notations for the symmetry operations (JuliaMolSim#266)
- Possibility to "unfold" the k grid (JuliaMolSim#382)
- Make another round of profiling (JuliaMolSim#425)
- Improve density computation (JuliaMolSim#456)
- Employing DFTK results for Machine-Learning (JuliaMolSim#595)
- Refactor SymOp to be primarily (W,w) rather than (S,tau) (JuliaMolSim#618)
- Remove ksymops (JuliaMolSim#621)

**Merged pull requests:**
- Integrate with AtomsBase (JuliaMolSim#558) (@mfherbst)
- Adding framework for pairwise interactions (JuliaMolSim#602) (@epolack)
- Random optimization (JuliaMolSim#610) (@antoine-levitt)
- Fix performance issue in block array (JuliaMolSim#611) (@antoine-levitt)
- Small cleanup in LOBPCG (JuliaMolSim#612) (@mfherbst)
- Remove coordinate_cart field from Kpoint (JuliaMolSim#613) (@niklasschmitz)
- Small optimizations (JuliaMolSim#615) (@antoine-levitt)
- Refactoring diagonalize_all_kblocks (JuliaMolSim#617) (@antoine-levitt)
- Symop refactoring (again!) (JuliaMolSim#619) (@antoine-levitt)
- Fixes for julia 1.8 (JuliaMolSim#620) (@mfherbst)
- Excise ksymops (JuliaMolSim#622) (@antoine-levitt)
- Excise symops, part 2 (JuliaMolSim#624) (@antoine-levitt)
- Refactor atoms field in Model (JuliaMolSim#626) (@mfherbst)
- Remove deprecated features (JuliaMolSim#628) (@mfherbst)
- Make atoms and positions positional arguments of the Model (JuliaMolSim#629) (@mfherbst)
- Change default kshift to zero (JuliaMolSim#630) (@mfherbst)
- Remove kpoint fallback (JuliaMolSim#631) (@mfherbst)
- Remove final mention of ksymops (JuliaMolSim#632) (@mfherbst)

v0.4.7

Toggle v0.4.7's commit message
[Diff since v0.4.6](JuliaMolSim/DFTK.jl@v0.4.6...v0.4.7)

**Closed issues:**
- Segfault in preconditioning (JuliaMolSim#529)
- Investigate eigensolver bad convergence (JuliaMolSim#578)
- Convergence monitoring (JuliaMolSim#579)
- De-`threadid`ing parallel loops (JuliaMolSim#588)

**Merged pull requests:**
- CompatHelper: bump compat for Polynomials to 3, (keep existing compat) (JuliaMolSim#598) (@github-actions[bot])
- Use Val(true) in G_to_r to help const-prop (JuliaMolSim#605) (@antoine-levitt)
- Change printing (JuliaMolSim#606) (@antoine-levitt)
- Switch maximum iteration count to 100 (JuliaMolSim#607) (@antoine-levitt)
- Fix unsafe use of unpack (JuliaMolSim#608) (@antoine-levitt)

v0.4.6

Toggle v0.4.6's commit message
[Diff since v0.4.5](JuliaMolSim/DFTK.jl@v0.4.5...v0.4.6)

**Closed issues:**
- Use symmetrization for forces (JuliaMolSim#515)

**Merged pull requests:**
- Replace `@timing_seq` by thread-local timers (JuliaMolSim#574) (@mfherbst)
- Optimization to density building (JuliaMolSim#575) (@antoine-levitt)
- Cleanup Chi0Mixing docstrings and timings (JuliaMolSim#576) (@mfherbst)
- Symop refactoring (JuliaMolSim#577) (@antoine-levitt)
- Fix type in periodic problems guide (JuliaMolSim#580) (@epolack)
- AtomicNonlocal Zygote compatibility (JuliaMolSim#581) (@mtowara)
- Show function for kpoints (JuliaMolSim#582) (@antoine-levitt)
- Proper integration of SCF with ForwardDiff (JuliaMolSim#583) (@mfherbst)
- Schur complement in Sternheimer solver (JuliaMolSim#584) (@gkemlin)
- Selection from zoo of PBE functionals (JuliaMolSim#586) (@mfherbst)
- Use symmetrization in density construction (JuliaMolSim#589) (@antoine-levitt)
- Remove a forwarddiff workaround (JuliaMolSim#590) (@antoine-levitt)
- Fix threading (JuliaMolSim#592) (@antoine-levitt)
- Fix formula to match comment (JuliaMolSim#594) (@epolack)
- Symmetrize forces (JuliaMolSim#596) (@antoine-levitt)
- Simplify the erfc cutoff in ewald (JuliaMolSim#597) (@antoine-levitt)
- Support for multiple partials in ForwardDiff SCF (JuliaMolSim#599) (@niklasschmitz)
- Using pseudo-inverse for one- and two-dimensional cells (JuliaMolSim#601) (@epolack)
- Fix stress symmetrization (JuliaMolSim#603) (@antoine-levitt)
- Add explicit error if SCF is used with no kinetic term (JuliaMolSim#604) (@epolack)

v0.4.5

Toggle v0.4.5's commit message
[Diff since v0.4.4](JuliaMolSim/DFTK.jl@v0.4.4...v0.4.5)

**Closed issues:**
- Make perturbation-based error bounds available in master (JuliaMolSim#560)

**Merged pull requests:**
- Merge the two functions for standardising cells (JuliaMolSim#568) (@mfherbst)
- More XC fallback implementations (JuliaMolSim#569) (@mfherbst)
- Recode lda_c_vwn (JuliaMolSim#570) (@antoine-levitt)
- Implement meta-GGA functionals (JuliaMolSim#571) (@mfherbst)
- Implement meta-GGAs depending on the laplacian of the density (JuliaMolSim#572) (@mfherbst)
- Remove outdated and broken ABINIT interface (JuliaMolSim#573) (@mfherbst)

v0.4.4

Toggle v0.4.4's commit message
[Diff since v0.4.3](JuliaMolSim/DFTK.jl@v0.4.3...v0.4.4)

**Closed issues:**
- Error showing basis without kshift (JuliaMolSim#554)

**Merged pull requests:**
- Turn generators into arrays (JuliaMolSim#556) (@antoine-levitt)
- Implement Marzari-Vanderbilt-DeVita-Payne (cold) smearing (JuliaMolSim#557) (@azadoks)
- Fix typo (JuliaMolSim#559) (@haampie)
- new example using AD to compute error bounds for forces (JuliaMolSim#561) (@gkemlin)
- [WIP] Zygote SCF (JuliaMolSim#563) (@niklasschmitz)
- Generalize PowerNonlinearity to LocalNonlinearity (JuliaMolSim#564) (@antoine-levitt)
- Simplify xc fallbacks, allow second derivatives, remove codegen (JuliaMolSim#565) (@antoine-levitt)
- Reformulate readme (JuliaMolSim#566) (@mfherbst)

v0.4.3

Toggle v0.4.3's commit message
[Diff since v0.4.2](JuliaMolSim/DFTK.jl@v0.4.2...v0.4.3)

**Merged pull requests:**
- Update to Wannier example and rename `atomic_symbol` (JuliaMolSim#550) (@mfherbst)
- Refactor ene_ops and Terms interface (JuliaMolSim#551) (@mfherbst)
- Remove model backreference from `Kpoint` structure (JuliaMolSim#552) (@mfherbst)
- Include advertisement to DFTK school 2022 (JuliaMolSim#553) (@mfherbst)