Core User Data (structs)

ThreeBodyTB.CrystalMod.crystalType
mutable struct crystal{T}

Holds basic crystal structure information, type T. Use makecrys to easily construct.

Note: you can create supercells like

julia> c = makecrys([5.0 0 0; 0 5.0 0; 0 0 5.0], [0.0 0.0 0.0], ["H"])
A1=     5.00000  0.00000  0.00000
A2=     0.00000  5.00000  0.00000
A3=     0.00000  0.00000  5.00000

H    0.00000  0.00000  0.00000


julia> c*[2,2,2]
A1=     10.00000  0.00000  0.00000
A2=     0.00000  10.00000  0.00000
A3=     0.00000  0.00000  10.00000

H    0.00000  0.00000  0.00000
H    0.00000  0.00000  0.50000
H    0.00000  0.50000  0.00000
H    0.00000  0.50000  0.50000
H    0.50000  0.00000  0.00000
H    0.50000  0.00000  0.50000
H    0.50000  0.50000  0.00000
H    0.50000  0.50000  0.50000

Holds

  • A::Array{T,2} 3 × 3 lattice vectors, Bohr (atomic units) internally.
  • coords::Array{T,2} num_atoms × 3 atomic positions, fractional units.
  • types::Array{String,1} atomic names, like "H" or "Zn".
  • types::Array{Symbol,1} atomic names, but julia Symbols like :H or :Zn, for nominally faster internal evaluation.
  • nat::Int64 number of atoms.
ThreeBodyTB.TB.tbType
mutable struct tb{T}

Holds key tight-binding information in real-space. Like _hr.dat file from Wannier90. Also part of the tb_crys object.

Holds

  • H::Array{Complex{T},3} Hamiltonian. nw×nw×nr
  • ind_array::Array{Int64,3}nr×3 , holds the r-space supercells of the TB object.
  • r_dict::Dict keys are three Ints like [0,0,0], returns the corresponding ind_array index.
  • nwan::Int Number of orbitals (generalized wannier functions).
  • nr::Int64 number of R-space supercells.
  • nonorth::Bool : true if non-orthogonal. Almost always true in this code.
  • S::Array{Complex{T},3} : Overlap matrix, organized like H
  • scf::Bool equal to true if requires self-consistency (usually true for fit tb, false for direct from DFT)
  • h1::Array{T,2} Has the term determined by scf calculations, if calculated already.
ThreeBodyTB.TB.tb_crysType
mutable struct tb_crys{T}

Main tight-binding object, holds the tight-binding model tb and information about the crystal

Holds

  • tb::tb Has the key tb info (see above)
  • crys::crystal Has the crystal structure
  • nelec::Float64 Number of electrons
  • dftenergy::Float64 DFT energy for reference, only for fit to DFT cases.
  • scf::Booltrue if requires self-consistency.
  • gamma::Array{T, 2} has the Ewald calculation results, needed for self-consistency.
  • eden::Array{Float64,1} electron density, by orbital, if calculated by self-consistency.
  • within_fit::Bool is true if model is passes tests of being within the fitting parameter space, false for extrapolation
  • energy::Float64 energy in Ryd, if calculated.
  • efermi::Float64 Fermi energy in Ryd, if calculated.