Phonon computations
This is a quick sketch how to run a simple phonon calculation using DFTK. First we run an SCF calculation.
using AtomsBuilder
using DFTK
using PseudoPotentialData
pseudopotentials = PseudoFamily("cp2k.nc.sr.lda.v0_1.semicore.gth")
model = model_DFT(bulk(:Si); pseudopotentials, functionals=LDA())
basis = PlaneWaveBasis(model; Ecut=10, kgrid=[4, 4, 4])
scfres = self_consistent_field(basis, tol=1e-8);
n Energy log10(ΔE) log10(Δρ) Diag Δtime
--- --------------- --------- --------- ---- ------
1 -7.916446899127 -0.69 4.8 113ms
2 -7.921209278045 -2.32 -1.52 1.0 53.2ms
3 -7.921403513301 -3.71 -2.50 1.2 55.7ms
4 -7.921440994101 -4.43 -2.82 2.6 77.7ms
5 -7.921441569645 -6.24 -2.96 1.1 54.3ms
6 -7.921442006287 -6.36 -4.53 1.0 52.5ms
7 -7.921442021827 -7.81 -4.62 3.0 81.6ms
8 -7.921442022128 -9.52 -5.27 1.0 64.5ms
9 -7.921442022142 -10.84 -5.82 1.5 60.3ms
10 -7.921442022144 -11.84 -5.95 1.4 79.5ms
11 -7.921442022144 -12.46 -6.65 1.0 60.0ms
12 -7.921442022144 -13.46 -7.90 2.0 68.3ms
13 -7.921442022144 + -Inf -7.85 2.6 89.2ms
14 -7.921442022144 -14.57 -8.21 1.0 54.4ms
Next we compute the phonon modes at the q-point [1/4, 1/4, 1/4]
.
scfres = DFTK.unfold_bz(scfres)
phret_q0 = @time DFTK.phonon_modes(scfres; q=[0.25, 0.25, 0.25]);
119.438016 seconds (107.44 M allocations: 102.070 GiB, 9.13% gc time, 0.00% compilation time)
These are the final phonon frequencies:
phret_q0.frequencies
6-element Vector{Float64}:
-0.0034981553601745783
-0.002977451158936035
-0.0029774511588415375
0.004302230618921831
0.004302230619126334
0.004353201751741694