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.916436960214 -0.69 4.6 104ms
2 -7.921211273820 -2.32 -1.52 1.0 52.9ms
3 -7.921404784852 -3.71 -2.49 1.2 55.6ms
4 -7.921440957223 -4.44 -2.82 2.6 75.9ms
5 -7.921441619373 -6.18 -3.00 1.0 53.5ms
6 -7.921442007697 -6.41 -4.55 1.1 55.4ms
7 -7.921442021760 -7.85 -4.58 3.0 83.6ms
8 -7.921442022125 -9.44 -5.27 1.0 64.1ms
9 -7.921442022143 -10.73 -5.92 1.4 60.9ms
10 -7.921442022144 -12.16 -5.99 2.1 70.8ms
11 -7.921442022144 -12.49 -6.67 1.0 55.9ms
12 -7.921442022144 -13.75 -7.04 1.5 62.1ms
13 -7.921442022144 -14.57 -7.44 1.2 66.7ms
14 -7.921442022144 -15.05 -8.47 1.1 59.9ms
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]);
117.023536 seconds (107.41 M allocations: 102.016 GiB, 9.48% gc time, 0.00% compilation time)
These are the final phonon frequencies:
phret_q0.frequencies
6-element Vector{Float64}:
-0.003498155362967933
-0.0029774511670800333
-0.00297745116658925
0.0043022306303090105
0.004302230630822649
0.004353201761507754