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.916324060453 -0.69 4.2 796ms
2 -7.921170414022 -2.31 -1.52 1.0 320ms
3 -7.921406928331 -3.63 -2.48 1.4 354ms
4 -7.921440932340 -4.47 -2.84 2.4 1.44s
5 -7.921441752827 -6.09 -3.13 1.0 315ms
6 -7.921442008560 -6.59 -4.57 1.1 316ms
7 -7.921442022099 -7.87 -4.99 2.7 551ms
8 -7.921442022139 -10.39 -5.36 1.5 384ms
9 -7.921442022142 -11.54 -5.67 1.0 319ms
10 -7.921442022144 -11.71 -6.23 1.1 327ms
11 -7.921442022144 -12.65 -7.53 1.7 422ms
12 -7.921442022144 -13.85 -7.42 2.8 564ms
13 -7.921442022144 -14.57 -8.33 1.0 308ms
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.09s Non-interacting
1 0 1 1.03 15.1 9.62s
2 0 2 0.53 14.5 1.47s
3 0 3 -0.01 14.1 1.39s
4 0 4 -0.87 13.7 1.36s
5 0 5 -1.74 11.8 1.22s
6 0 6 -2.43 10.0 1.05s
7 0 7 -3.33 8.9 954ms
8 0 8 -4.02 7.8 895ms
9 0 9 -5.04 6.4 771ms
10 0 10 -6.06 3.9 543ms
11 0 11 -7.08 2.3 427ms
12 0 12 -8.27 1.0 315ms
13 1 1 -7.54 17.8 2.97s Restart
14 1 2 -7.88 3.2 412ms
15 1 3 -8.71 2.2 345ms
19.2 2.28s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.69s Non-interacting
1 0 1 1.03 15.1 1.55s
2 0 2 0.53 14.5 1.42s
3 0 3 -0.01 14.1 1.39s
4 0 4 -0.87 13.8 1.38s
5 0 5 -1.74 11.8 1.22s
6 0 6 -2.43 10.0 1.04s
7 0 7 -3.33 8.9 968ms
8 0 8 -4.02 7.8 872ms
9 0 9 -5.04 6.4 761ms
10 0 10 -6.06 3.9 535ms
11 0 11 -7.08 2.3 421ms
12 0 12 -8.28 1.0 317ms
13 1 1 -7.54 17.8 1.92s Restart
14 1 2 -7.89 3.2 417ms
15 1 3 -8.68 2.0 354ms
19.2 1.82s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.71s Non-interacting
1 0 1 1.03 15.1 1.54s
2 0 2 0.53 14.5 1.42s
3 0 3 -0.01 14.1 1.38s
4 0 4 -0.87 13.8 1.38s
5 0 5 -1.74 11.8 1.22s
6 0 6 -2.43 10.0 1.06s
7 0 7 -3.33 8.9 972ms
8 0 8 -4.02 7.8 987ms
9 0 9 -5.04 6.4 1.55s
10 0 10 -6.06 3.9 529ms
11 0 11 -7.08 2.2 403ms
12 0 12 -8.27 1.0 299ms
13 1 1 -7.53 17.9 1.91s Restart
14 1 2 -7.88 3.2 409ms
15 1 3 -8.65 2.1 355ms
19.2 1.82s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.74s Non-interacting
1 0 1 1.03 15.1 1.56s
2 0 2 0.53 14.5 1.44s
3 0 3 -0.01 14.1 1.41s
4 0 4 -0.87 13.7 1.37s
5 0 5 -1.74 11.8 1.22s
6 0 6 -2.43 10.0 1.07s
7 0 7 -3.33 8.9 975ms
8 0 8 -4.02 7.8 885ms
9 0 9 -5.04 6.4 750ms
10 0 10 -6.06 3.9 540ms
11 0 11 -7.08 2.3 416ms
12 0 12 -8.27 1.0 314ms
13 1 1 -7.53 17.9 1.94s Restart
14 1 2 -7.87 3.2 420ms
15 1 3 -8.69 2.2 373ms
19.2 1.83s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.76s Non-interacting
1 0 1 1.03 15.1 1.55s
2 0 2 0.53 14.5 1.44s
3 0 3 -0.01 14.1 1.40s
4 0 4 -0.87 13.8 1.37s
5 0 5 -1.74 11.8 2.15s
6 0 6 -2.43 10.0 1.03s
7 0 7 -3.33 8.9 932ms
8 0 8 -4.02 7.8 882ms
9 0 9 -5.04 6.4 723ms
10 0 10 -6.06 3.9 531ms
11 0 11 -7.08 2.3 406ms
12 0 12 -8.28 1.0 313ms
13 1 1 -7.53 17.9 1.93s Restart
14 1 2 -7.88 3.2 431ms
15 1 3 -8.68 2.1 359ms
19.2 1.82s Final orbitals
Iter Restart Krydim log10(res) avg(CG) Δtime Comment
---- ------- ------ ---------- ------- ------ ---------------
20.0 1.74s Non-interacting
1 0 1 1.03 15.1 1.54s
2 0 2 0.53 14.5 1.42s
3 0 3 -0.01 14.1 1.37s
4 0 4 -0.87 13.8 1.38s
5 0 5 -1.74 11.8 1.21s
6 0 6 -2.43 10.0 1.05s
7 0 7 -3.33 8.9 957ms
8 0 8 -4.02 7.8 880ms
9 0 9 -5.04 6.4 750ms
10 0 10 -6.06 3.9 545ms
11 0 11 -7.08 2.3 413ms
12 0 12 -8.27 1.0 326ms
13 1 1 -7.53 17.9 1.92s Restart
14 1 2 -7.88 3.2 428ms
15 1 3 -8.64 2.1 353ms
19.2 1.83s Final orbitals
147.625306 seconds (144.24 M allocations: 31.707 GiB, 4.82% gc time, 19.21% compilation time)
These are the final phonon frequencies:
phret_q0.frequencies6-element Vector{Float64}:
0.00042654659206182245
0.00042654659406379857
0.0010167311239306118
0.002180329340544575
0.002208077701381627
0.0022080777022311106