Code for accurate and efficient electronic structure calculations using tight-binding (TB), including three-body interactions. Run TB calculations with nearly DFT (pbesol) accuracy in seconds, using a pre-fit and tested model for most elemental or binary systems.
Or fit your own coefficients!
Calculate energies, forces, and band structures.
ThreeBodyTB is written in the Julia programming language, for easy and efficient computations.
Please see our preprint at arXiv:2112.11585 and our database used for fitting.
After installing julia (see here), start a REPL and install using the package manager:
using Pkg
Pkg.add("ThreeBodyTB")
Alternatively, you can install from github directly
using Pkg
Pkg.add(url="https://github.com/usnistgov/ThreeBodyTB.jl")
See documentation for more details.
Example of creating a crystal structure of AlP (zincblende) and calculating the energy and band structure.
using ThreeBodyTB
c = makecrys([2.6 2.6 0;2.6 0 2.6;0 2.6 2.6], [0 0 0; 0.25 0.25 0.25], ["Al", "P"])
energy, tbc, flag = scf_energy(c)
plot_bandstr(tbc)
See also the user's guide for more detail.
Performance Note: julia compiles code the first time you run a function, but
subsequent runs of this code will take under 1 second. Also,
ThreeBodyTB.jl can take advantage of multiple processors if you define
the environment variable JULIA_NUM_THREADS=8;export JULIA_NUM_THREADS
or start julia with julia --threads 8
where
the number of threads is set as appropriate for your system.