Core User Data (structs)
ThreeBodyTB.CrystalMod.crystal
— Typemutable 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.tb
— Typemutable 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 correspondingind_array
index.nwan::Int
Number of orbitals (generalized wannier functions).nr::Int64
number of R-space supercells.nonorth::Bool
:true
if non-orthogonal. Almost alwaystrue
in this code.S::Array{Complex{T},3}
: Overlap matrix, organized likeH
scf::Bool
equal totrue
if requires self-consistency (usuallytrue
for fittb
,false
for direct from DFT)h1::Array{T,2}
Has the term determined by scf calculations, if calculated already.
ThreeBodyTB.TB.tb_crys
— Typemutable 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 structurenelec::Float64
Number of electronsdftenergy::Float64
DFT energy for reference, only for fit to DFT cases.scf::Bool
true
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
istrue
if model is passes tests of being within the fitting parameter space,false
for extrapolationenergy::Float64
energy in Ryd, if calculated.efermi::Float64
Fermi energy in Ryd, if calculated.