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.916446071362 -0.69 4.9 108ms
2 -7.921205790430 -2.32 -1.52 1.0 51.5ms
3 -7.921404550928 -3.70 -2.49 1.5 57.3ms
4 -7.921440945971 -4.44 -2.82 2.5 89.6ms
5 -7.921441599849 -6.18 -2.98 1.1 57.6ms
6 -7.921442008168 -6.39 -4.53 1.0 56.2ms
7 -7.921442021744 -7.87 -4.57 2.8 85.0ms
8 -7.921442022125 -9.42 -5.27 1.0 56.6ms
9 -7.921442022143 -10.73 -5.96 1.6 72.4ms
10 -7.921442022144 -12.17 -6.06 2.1 71.7ms
11 -7.921442022144 -12.60 -6.86 1.0 56.9ms
12 -7.921442022144 -13.97 -7.08 1.6 65.4ms
13 -7.921442022144 + -14.75 -7.57 1.0 64.5ms
14 -7.921442022144 -14.57 -8.21 1.2 112ms
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.170792 seconds (110.23 M allocations: 102.085 GiB, 8.86% gc time, 0.00% compilation time)
These are the final phonon frequencies:
phret_q0.frequencies
6-element Vector{Float64}:
-0.0034981553604699436
-0.0029774511649070974
-0.0029774511634876877
0.004302230635376008
0.004302230636669572
0.004353201767357237