We solve the almost-bosonic anyon model of https://arxiv.org/pdf/1901.10739.pdf
using DFTK
using StaticArrays
using Plots
# Unit cell. Having one of the lattice vectors as zero means a 2D system
a = 14
lattice = a .* [[1 0 0.]; [0 1 0]; [0 0 0]];
# Confining scalar potential
pot(x, y, z) = ((x - a/2)^2 + (y - a/2)^2);
# Parameters
Ecut = 50
n_electrons = 1
β = 5;
# Collect all the terms, build and run the model
terms = [Kinetic(; scaling_factor=2),
ExternalFromReal(X -> pot(X...)),
Anyonic(1, β)
]
model = Model(lattice; n_electrons, terms, spin_polarization=:spinless) # "spinless electrons"
basis = PlaneWaveBasis(model; Ecut, kgrid=(1, 1, 1))
scfres = direct_minimization(basis, tol=1e-14) # Reduce tol for production
E = scfres.energies.total
s = 2
E11 = π/2 * (2(s+1)/s)^((s+2)/s) * (s/(s+2))^(2(s+1)/s) * E^((s+2)/s) / β
println("e(1,1) / (2π)= ", E11 / (2π))
heatmap(scfres.ρ[:, :, 1, 1], c=:blues)
Iter Function value Gradient norm 0 8.510825e+01 1.433703e+01 * time: 0.0037479400634765625 1 6.261635e+01 1.059977e+01 * time: 0.010985851287841797 2 5.596146e+01 1.475653e+01 * time: 0.02825188636779785 3 4.086197e+01 9.911974e+00 * time: 0.13123297691345215 4 3.058236e+01 8.450051e+00 * time: 0.15758395195007324 5 2.562763e+01 7.538135e+00 * time: 0.1791839599609375 6 1.224479e+01 2.494525e+00 * time: 0.20121097564697266 7 1.185749e+01 4.313602e+00 * time: 0.21592402458190918 8 9.436821e+00 2.333889e+00 * time: 0.28729701042175293 9 8.910663e+00 2.473528e+00 * time: 0.30191898345947266 10 8.043010e+00 2.030384e+00 * time: 0.3199429512023926 11 7.797338e+00 2.700208e+00 * time: 0.3357889652252197 12 7.444471e+00 2.128942e+00 * time: 0.35129785537719727 13 7.127486e+00 2.012159e+00 * time: 0.36583590507507324 14 6.892565e+00 1.603986e+00 * time: 0.3803558349609375 15 6.673610e+00 1.269919e+00 * time: 0.4379448890686035 16 6.613841e+00 2.103153e+00 * time: 0.4540269374847412 17 6.458632e+00 8.806043e-01 * time: 0.47229599952697754 18 6.421592e+00 1.645461e+00 * time: 0.4867708683013916 19 6.289115e+00 1.921790e+00 * time: 0.5013699531555176 20 6.169125e+00 1.257745e+00 * time: 0.5160658359527588 21 6.027653e+00 1.195836e+00 * time: 0.5306010246276855 22 5.918568e+00 9.337476e-01 * time: 0.5638070106506348 23 5.811785e+00 6.976539e-01 * time: 0.5778148174285889 24 5.754954e+00 5.267787e-01 * time: 0.5922069549560547 25 5.693027e+00 6.672500e-01 * time: 0.6029808521270752 26 5.661399e+00 8.801142e-01 * time: 0.6139259338378906 27 5.648746e+00 7.779108e-01 * time: 0.6248049736022949 28 5.632913e+00 5.085560e-01 * time: 0.6399288177490234 29 5.607723e+00 4.356511e-01 * time: 0.6522359848022461 30 5.591711e+00 4.181805e-01 * time: 0.6629300117492676 31 5.581046e+00 3.778050e-01 * time: 0.69038987159729 32 5.577136e+00 2.760850e-01 * time: 0.7009599208831787 33 5.573259e+00 2.752647e-01 * time: 0.7117528915405273 34 5.570536e+00 2.239428e-01 * time: 0.7258179187774658 35 5.568316e+00 1.454189e-01 * time: 0.7396500110626221 36 5.565651e+00 1.651304e-01 * time: 0.7517080307006836 37 5.564436e+00 2.092198e-01 * time: 0.7622559070587158 38 5.564110e+00 2.471565e-01 * time: 0.7730698585510254 39 5.563217e+00 1.175107e-01 * time: 0.7870948314666748 40 5.562637e+00 1.292677e-01 * time: 0.8177399635314941 41 5.561966e+00 1.095712e-01 * time: 0.8290579319000244 42 5.561659e+00 1.091662e-01 * time: 0.8396730422973633 43 5.561411e+00 8.586280e-02 * time: 0.8521609306335449 44 5.561166e+00 5.440290e-02 * time: 0.8626489639282227 45 5.561001e+00 3.317569e-02 * time: 0.8770749568939209 46 5.560837e+00 4.469864e-02 * time: 0.8909668922424316 47 5.560705e+00 2.592477e-02 * time: 0.9051389694213867 48 5.560655e+00 3.082392e-02 * time: 0.932884931564331 49 5.560612e+00 3.083745e-02 * time: 0.9481019973754883 50 5.560581e+00 2.693332e-02 * time: 0.958873987197876 51 5.560549e+00 2.192171e-02 * time: 0.9731018543243408 52 5.560518e+00 1.826070e-02 * time: 0.9869489669799805 53 5.560500e+00 1.779929e-02 * time: 1.001230001449585 54 5.560486e+00 1.516361e-02 * time: 1.0153818130493164 55 5.560485e+00 1.389700e-02 * time: 1.0261199474334717 56 5.560479e+00 8.843074e-03 * time: 1.0542550086975098 57 5.560475e+00 1.080395e-02 * time: 1.0683739185333252 58 5.560471e+00 9.244356e-03 * time: 1.0824499130249023 59 5.560467e+00 4.965850e-03 * time: 1.0965049266815186 60 5.560466e+00 5.747469e-03 * time: 1.1073119640350342 61 5.560465e+00 4.013168e-03 * time: 1.1219208240509033 62 5.560465e+00 3.043593e-03 * time: 1.132699966430664 63 5.560464e+00 2.298374e-03 * time: 1.146927833557129 64 5.560464e+00 3.730200e-03 * time: 1.1752798557281494 65 5.560464e+00 2.345714e-03 * time: 1.1857750415802002 66 5.560463e+00 2.834053e-03 * time: 1.2000789642333984 67 5.560463e+00 2.260962e-03 * time: 1.2109858989715576 68 5.560463e+00 1.941850e-03 * time: 1.221524953842163 69 5.560463e+00 1.110276e-03 * time: 1.2364559173583984 70 5.560463e+00 1.174704e-03 * time: 1.2519810199737549 71 5.560463e+00 9.657746e-04 * time: 1.2631080150604248 72 5.560463e+00 7.808029e-04 * time: 1.2743608951568604 73 5.560463e+00 6.031283e-04 * time: 1.3062939643859863 74 5.560463e+00 9.867855e-04 * time: 1.3174388408660889 75 5.560463e+00 6.201871e-04 * time: 1.328537940979004 76 5.560463e+00 3.996932e-04 * time: 1.3397278785705566 77 5.560463e+00 5.775584e-04 * time: 1.3507308959960938 78 5.560463e+00 4.325642e-04 * time: 1.363562822341919 79 5.560463e+00 4.241591e-04 * time: 1.3747169971466064 80 5.560463e+00 3.225246e-04 * time: 1.3861379623413086 81 5.560463e+00 3.093399e-04 * time: 1.4006319046020508 82 5.560463e+00 1.713180e-04 * time: 1.4322278499603271 83 5.560463e+00 2.974088e-04 * time: 1.442781925201416 84 5.560463e+00 1.453810e-04 * time: 1.4582958221435547 85 5.560463e+00 1.576106e-04 * time: 1.469101905822754 86 5.560463e+00 1.187704e-04 * time: 1.4799468517303467 87 5.560463e+00 1.043775e-04 * time: 1.4941918849945068 ┌ Warning: Negative ρ detected │ min_ρ = -2.6967174168704244e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 ┌ Warning: Negative ρ detected │ min_ρ = -2.6967174168704244e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 88 5.560463e+00 6.426286e-05 * time: 1.6433939933776855 89 5.560463e+00 3.766925e-05 * time: 1.6932599544525146 90 5.560463e+00 6.049655e-05 * time: 1.7052009105682373 91 5.560463e+00 5.092156e-05 * time: 1.7168068885803223 92 5.560463e+00 4.070035e-05 * time: 1.7282559871673584 93 5.560463e+00 8.860389e-05 * time: 1.739408016204834 94 5.560463e+00 5.879594e-05 * time: 1.7532639503479004 95 5.560463e+00 6.064262e-05 * time: 1.7644739151000977 ┌ Warning: Negative ρ detected │ min_ρ = -4.956352788505163e-19 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 96 5.560463e+00 5.787752e-05 * time: 1.7819039821624756 ┌ Warning: Negative ρ detected │ min_ρ = -7.93016446160826e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 97 5.560463e+00 4.820271e-05 * time: 1.7962238788604736 ┌ Warning: Negative ρ detected │ min_ρ = -5.419679810653265e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 98 5.560463e+00 3.891108e-05 * time: 1.8398759365081787 99 5.560463e+00 8.089394e-05 * time: 1.8504128456115723 100 5.560463e+00 5.232639e-05 * time: 1.8623018264770508 101 5.560463e+00 4.646981e-05 * time: 1.8729689121246338 102 5.560463e+00 5.396340e-05 * time: 1.8835728168487549 ┌ Warning: Negative ρ detected │ min_ρ = -2.5861795497218356e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 ┌ Warning: Negative ρ detected │ min_ρ = -9.912705577010326e-19 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 103 5.560463e+00 5.396255e-05 * time: 1.9189469814300537 ┌ Warning: Negative ρ detected │ min_ρ = -3.177095089133535e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 104 5.560463e+00 5.369718e-05 * time: 1.9771080017089844 105 5.560463e+00 5.070403e-05 * time: 1.9911308288574219 ┌ Warning: Negative ρ detected │ min_ρ = -1.2390881971262907e-19 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 ┌ Warning: Negative ρ detected │ min_ρ = -7.07107210761875e-19 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 106 5.560463e+00 5.070393e-05 * time: 2.0257468223571777 ┌ Warning: Negative ρ detected │ min_ρ = -9.46136862205366e-18 └ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5 e(1,1) / (2π)= 1.739179404220607