Phonon computations
This is a quick sketch how to run a simple phonon calculation using DFTK.
Practical phonon computations have only seen rudimentary testing as of now. As of now we do not yet recommend relying on this feature for production calculations. Some of the limitations are:
- symmetries must be disabled (pass
symmetries=falseto the model) - only LDA functionals are supported
- non-linear core corrections from the pseudopotentials are not supported
- MPI parallelization over k-points is not supported (due to $k$ and $k+q$ interactions)
We appreciate any issues, bug reports or PRs.
First we run an SCF calculation.
using AtomsBuilder
using DFTK
using PseudoPotentialData
pseudopotentials = PseudoFamily("cp2k.nc.sr.lda.v0_1.semicore.gth")
# Make sure to disable symmetries:
model = model_DFT(bulk(:Si); pseudopotentials, functionals=LDA(), symmetries=false)
basis = PlaneWaveBasis(model; Ecut=10, kgrid=[4, 4, 4])
scfres = self_consistent_field(basis, tol=1e-8);
nothing # hiden Energy log10(ΔE) log10(Δρ) Diag Δtime
--- --------------- --------- --------- ---- ------
1 -7.916325425776 -0.69 4.2 1.43s
2 -7.921168245196 -2.31 -1.52 1.0 318ms
3 -7.921407971753 -3.62 -2.48 1.4 369ms
4 -7.921440958220 -4.48 -2.85 2.3 451ms
5 -7.921441782057 -6.08 -3.18 1.0 328ms
6 -7.921442006838 -6.65 -4.37 1.0 354ms
7 -7.921442022027 -7.82 -5.04 2.4 499ms
8 -7.921442022135 -9.96 -5.31 2.0 402ms
9 -7.921442022143 -11.10 -6.09 1.1 329ms
10 -7.921442022144 -12.10 -6.08 1.9 425ms
11 -7.921442022144 -12.62 -6.89 1.0 323ms
12 -7.921442022144 -13.77 -7.58 2.0 421ms
13 -7.921442022144 -14.75 -8.20 1.8 431ms
Next we compute the phonon modes at the q-point [1/4, 1/4, 1/4].
phret_q0 = @time DFTK.phonon_modes(scfres; q=[0.25, 0.25, 0.25]);
nothing # hideIter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 2.02s Non-interacting
1 0 1 1.03 15.1 12.7s
2 0 2 0.53 14.5 1.38s
3 0 3 -0.01 14.1 1.32s
4 0 4 -0.87 13.7 1.29s
5 0 5 -1.74 11.8 1.88s
6 0 6 -2.43 9.9 968ms
7 0 7 -3.33 8.9 865ms
8 0 8 -4.02 7.8 829ms
9 0 9 -5.04 6.4 731ms
10 0 10 -6.06 3.9 526ms
11 0 11 -7.08 2.2 423ms
12 0 12 -8.27 1.0 337ms
13 1 1 -7.53 17.8 2.00s Restart
14 1 2 -7.88 3.1 449ms
15 1 3 -8.68 2.1 388ms
19.2 2.27s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.58s Non-interacting
1 0 1 1.03 15.1 1.47s
2 0 2 0.53 14.5 1.34s
3 0 3 -0.01 14.1 1.31s
4 0 4 -0.87 13.8 1.31s
5 0 5 -1.74 11.8 1.16s
6 0 6 -2.43 10.0 1.02s
7 0 7 -3.33 8.9 916ms
8 0 8 -4.02 7.8 859ms
9 0 9 -5.04 6.4 733ms
10 0 10 -6.06 3.9 541ms
11 0 11 -7.08 2.3 434ms
12 0 12 -8.27 1.0 344ms
13 1 1 -7.53 17.8 1.85s Restart
14 1 2 -7.89 3.1 439ms
15 1 3 -8.66 2.0 377ms
19.2 1.73s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.57s Non-interacting
1 0 1 1.03 15.1 2.21s
2 0 2 0.53 14.5 1.27s
3 0 3 -0.01 14.1 1.31s
4 0 4 -0.87 13.8 1.27s
5 0 5 -1.74 11.8 1.15s
6 0 6 -2.43 10.0 1.01s
7 0 7 -3.33 8.9 922ms
8 0 8 -4.02 7.8 839ms
9 0 9 -5.04 6.4 734ms
10 0 10 -6.06 3.9 537ms
11 0 11 -7.08 2.3 442ms
12 0 12 -8.27 1.0 340ms
13 1 1 -7.53 17.9 1.83s Restart
14 1 2 -7.87 3.1 438ms
15 1 3 -8.65 2.1 378ms
19.2 1.70s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.57s Non-interacting
1 0 1 1.03 15.1 1.46s
2 0 2 0.53 14.5 1.34s
3 0 3 -0.01 14.1 1.32s
4 0 4 -0.87 13.7 1.30s
5 0 5 -1.74 11.8 1.15s
6 0 6 -2.43 9.9 1.00s
7 0 7 -3.33 8.9 925ms
8 0 8 -4.02 7.8 856ms
9 0 9 -5.04 6.4 731ms
10 0 10 -6.06 3.9 540ms
11 0 11 -7.08 2.2 433ms
12 0 12 -8.27 1.0 343ms
13 1 1 -7.53 17.8 1.92s Restart
14 1 2 -7.87 3.1 1.11s
15 1 3 -8.69 2.1 356ms
19.2 1.60s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.49s Non-interacting
1 0 1 1.03 15.1 1.45s
2 0 2 0.53 14.5 1.33s
3 0 3 -0.01 14.1 1.32s
4 0 4 -0.87 13.8 1.30s
5 0 5 -1.74 11.8 1.16s
6 0 6 -2.43 10.0 1.01s
7 0 7 -3.33 8.9 927ms
8 0 8 -4.02 7.8 849ms
9 0 9 -5.04 6.4 741ms
10 0 10 -6.06 3.9 538ms
11 0 11 -7.08 2.3 437ms
12 0 12 -8.27 1.0 342ms
13 1 1 -7.54 17.8 1.85s Restart
14 1 2 -7.89 3.1 442ms
15 1 3 -8.68 2.1 378ms
19.2 1.71s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.56s Non-interacting
1 0 1 1.03 15.1 1.49s
2 0 2 0.53 14.5 1.36s
3 0 3 -0.01 14.1 1.32s
4 0 4 -0.87 13.8 1.30s
5 0 5 -1.74 11.8 1.17s
6 0 6 -2.43 10.0 1.02s
7 0 7 -3.33 8.9 924ms
8 0 8 -4.02 7.8 860ms
9 0 9 -5.04 6.4 810ms
10 0 10 -6.06 3.9 1.21s
11 0 11 -7.08 2.3 400ms
12 0 12 -8.27 1.0 304ms
13 1 1 -7.54 17.9 1.72s Restart
14 1 2 -7.88 3.1 413ms
15 1 3 -8.66 2.1 352ms
19.2 1.68s Final orbitals
146.512622 seconds (144.22 M allocations: 31.693 GiB, 3.72% gc time, 22.88% compilation time)
These are the final phonon frequencies:
phret_q0.frequencies6-element Vector{Float64}:
0.00042654657743381515
0.00042654659336022855
0.0010167311140500527
0.002180329334734365
0.0022080776996891574
0.0022080777018975376