Skip to content

Using the tight binding module from Python

Lars Pastewka edited this page Oct 2, 2015 · 11 revisions
Calculations without charge self-consistency

Atomistica's ASE interface exposes a simplified interface to the tight-binding module that can be used for calculations that do not require charge self-consistency. The parameter width determines the electronic temperature. There is an additional parameter database_folder that can be used to specify the location of the Slaster-Koster database. The default is to use the current folder.

from atomistica import TightBinding
...
c = TightBinding(width=0.01)
a.set_calculator(c)
...
Charge self-consistent calculations

For self-consistent calculations the native Atomistica interface needs to be used to piece together tight-binding and Coulomb solvers. The Coulomb solver consists of a long-ranged and a short-ranged part. Currently only direct summation is supported for the long-ranged part. The short ranged part can be used to specify either Slater or Gaussian charges.

from atomistica import Atomistica
from atomistica.native import TightBinding, DirectCoulomb, SlaterCharges

c = Atomistica([TightBinding(SolverLAPACK = dict(electronic_T = 0.01),
                             SCC = dict(dq_crit = 1e-4,
                                        mixing = 0.1,
                                        andersen_memory = 4,
                                        maximum_iterations = 250,
                                        log = True)),
                DirectCoulomb(),
                SlaterCharges(cutoff=10.0)],
               avgn = 1000)
a.set_calculator(c)

Clone this wiki locally