Skip to content

Commit f58cf3b

Browse files
committed
Up test
1 parent 9b11fe8 commit f58cf3b

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

test/hartree_fock.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
functionals=PBE(), temperature=0.001,
3737
smearing=DFTK.Smearing.Gaussian())
3838
basis_pbe = PlaneWaveBasis(model_pbe; Ecut=20, kgrid=[1, 1, 1])
39-
scfres_pbe = self_consistent_field(basis_pbe; tol=1e-4, seed=0xadcdb6c21c47beb1)
39+
scfres_pbe = self_consistent_field(basis_pbe; callback=identity,
40+
tol=1e-4, seed=0xadcdb6c21c47beb1)
4041

4142
# Then run Hartree-Fock
4243
model = model_HF(lattice, atoms, positions;
@@ -45,7 +46,7 @@
4546
basis = PlaneWaveBasis(model; Ecut=20, kgrid=[1, 1, 1])
4647

4748
run_scf_and_compare(Float64, basis, ref_hf, ref_etot;
48-
scf_ene_tol=1e-7, test_tol=1e-4, maxiter=20,
49+
scf_dens_tol=5e-4, test_tol=1e-4, n_ignored=1, maxiter=30,
4950
scfres_pbe.ψ, scfres_pbe.ρ,
5051
scfres_pbe.eigenvalues, scfres_pbe.occupation, exxalg=VanillaExx(),
5152
# TODO: Anderson right does not yet work well for Hartree-Fock

test/run_scf_and_compare.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@ using DFTK
44
using DFTK: mpi_sum
55

66
function run_scf_and_compare(T, basis, ref_evals, ref_etot; n_ignored=0, test_tol=1e-6,
7-
scf_ene_tol=1e-6, test_etot=true, kwargs...)
7+
scf_ene_tol=1e-6, scf_dens_tol=nothing, test_etot=true, kwargs...)
88
n_kpt = length(ref_evals)
99
n_bands = length(ref_evals[1])
1010
kpt_done = zeros(Bool, n_kpt)
1111

1212
nbandsalg = AdaptiveBands(basis.model, n_bands_converge=n_bands)
13-
is_converged = DFTK.ScfConvergenceEnergy(scf_ene_tol)
13+
if !isnothing(scf_dens_tol)
14+
is_converged = DFTK.ScfConvergenceDensity(scf_dens_tol)
15+
else
16+
@assert !isnothing(scf_ene_tol)
17+
is_converged = DFTK.ScfConvergenceEnergy(scf_ene_tol)
18+
end
1419
scfres = self_consistent_field(basis; is_converged, nbandsalg, kwargs...)
1520
for (ik, ik_global) in enumerate(basis.krange_thisproc_allspin)
1621
@test eltype(scfres.eigenvalues[ik]) == T

0 commit comments

Comments
 (0)