ThreeBodyTB.jl

Accurate and fast tight-binding calculations, using pre-fit coefficients and three-body terms.
Author usnistgov
Popularity
12 Stars
Updated Last
1 Year Ago
Started In
June 2021

asdf

ThreeBodyTB.jl

logo

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.

Easy Installation

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")

Documentation

See documentation for more details.

Example code

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.