Skip to content

Releases: JuliaMolSim/DFTK.jl

v0.5.5

19 Jul 16:24
Compare
Choose a tag to compare

DFTK v0.5.5

Diff since v0.5.4

Merged pull requests:

v0.5.4

08 Jul 20:18
Compare
Choose a tag to compare

DFTK v0.5.4

Diff since v0.5.3

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:

v0.5.3

22 Jun 22:41
Compare
Choose a tag to compare

DFTK v0.5.3

Diff since v0.5.2

Closed issues:

  • Rewrite ewald (#656)
  • DFTK doesn't precompile (#660)

Merged pull requests:

v0.5.2

01 Jun 12:54
Compare
Choose a tag to compare

DFTK v0.5.2

Diff since v0.5.1

Closed issues:

  • Fix forwarddiff with symmetries (#643)
  • Tolerance issue when using ForwardDiff (#651)

Merged pull requests:

v0.5.1

16 May 07:00
Compare
Choose a tag to compare

DFTK v0.5.1

Diff since v0.5.0

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:

v0.5.0

20 Mar 18:30
Compare
Choose a tag to compare

DFTK v0.5.0

Diff since v0.4.7

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:

        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 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:

        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 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. (#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. (#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...). (#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. (#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. (#558)

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

  • The deprecated PowerNonlinearity(C, α) constructor has now been removed in favour of LocalNonlinearity(ρ -> 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:

v0.4.7

01 Mar 08:02
Compare
Choose a tag to compare

DFTK v0.4.7

Diff since v0.4.6

Closed issues:

  • Segfault in preconditioning (#529)
  • Investigate eigensolver bad convergence (#578)
  • Convergence monitoring (#579)
  • De-threadiding parallel loops (#588)

Merged pull requests:

v0.4.6

24 Feb 10:27
Compare
Choose a tag to compare

DFTK v0.4.6

Diff since v0.4.5

Closed issues:

  • Use symmetrization for forces (#515)

Merged pull requests:

v0.4.5

27 Jan 21:36
Compare
Choose a tag to compare

DFTK v0.4.5

Diff since v0.4.4

Closed issues:

  • Make perturbation-based error bounds available in master (#560)

Merged pull requests:

v0.4.4

17 Jan 17:58
Compare
Choose a tag to compare

DFTK v0.4.4

Diff since v0.4.3

Closed issues:

  • Error showing basis without kshift (#554)

Merged pull requests: