using DFTK a = 5.42352 # Bohr lattice = a / 2 * [[-1 1 1]; [ 1 -1 1]; [ 1 1 -1]] Fe = ElementPsp(:Fe, psp=load_psp("hgh/lda/Fe-q8.hgh")) atoms = [Fe => [zeros(3)]]; kgrid = [3, 3, 3] # k-point grid (Regular Monkhorst-Pack grid) Ecut = 15 # kinetic energy cutoff in Hartree model_nospin = model_LDA(lattice, atoms, temperature=0.01) basis_nospin = PlaneWaveBasis(model_nospin, Ecut; kgrid=kgrid) scfres_nospin = self_consistent_field(basis_nospin, tol=1e-6, mixing=KerkerMixing()); scfres_nospin.energies magnetic_moments = [Fe => [4, ]]; model = model_LDA(lattice, atoms, magnetic_moments=magnetic_moments, temperature=0.01) basis = PlaneWaveBasis(model, Ecut; kgrid=kgrid) ρspin = guess_spin_density(basis, magnetic_moments) scfres = self_consistent_field(basis, tol=1e-6, ρspin=ρspin, mixing=KerkerMixing()); scfres.energies println("No magnetization: ", scfres_nospin.energies.total) println("Magnetic case: ", scfres.energies.total) println("Difference: ", scfres.energies.total - scfres_nospin.energies.total); iup = 1 idown = iup + length(scfres.basis.kpoints) ÷ 2 @show scfres.occupation[iup][1:7] @show scfres.occupation[idown][1:7]; @show scfres.eigenvalues[iup][1:7] @show scfres.eigenvalues[idown][1:7]; using Plots plot_dos(scfres) plot_bandstructure(scfres, kline_density=3, unit=:eV)