Mean-field Hubbard model and self-energy correction in TB(NHO) basis

code : TB2dscf_heteroatom_lapack_newEF.extHam.with_corr.spinpol (download)

Keywords : (click on the keywords to go to their description)
tbdetails

num_atom_types (Compulsory)
atom_types (compulsory)
cell_param (compulsory if tbdetails not set/available)
sys_atom_num (compulsory if tbdetails not set/available)
sys_coords (compulsory if tbdetails not set/available)

nval (compulsory)
k_grid (compulsory if tbdetails not set/available) hopping
hubbard
onsite

num_iteration
beta
energy_conv_thr

net_charge

mag_order
rmag (Compulsory if mag_order set to "FM")

num_atom_spin_initialized
list_atom_spin_initialized
list_intial_spin

num_atom_biased
list_atom_biased
list_bias

Variables for self energy correction
selfenergycorr
bgwcorr_files
hopping_range

Description of keywords:

tbdetails
character : name of file containing the unitcell, coordinates, k grid and the Hamiltoninan in NHO basis
This file is generated by default at the end of TB Hamiltonian in NHO basis
Note: The Hamiltonian described by the input parameters above will add to the Hamiltoninan supplied by tbdetails if used. default : "non"

num_atom_types(Compulsory)
integer : number of types of atom

atom_types(Compulsory)
character(1) character(2) ... character(N)
character(i) : symbol of the i-th atom type
N : number of types of atom considered (num_atom_types)

cell_param (compulsory if tbdetails not set/available)
x1(1) x1(2) x1(1)
x2(2) x2(2) x2(2)
x3(3) x3(3) x3(3)
x1 x2 x3 are three lattice vectors
Note: must set if a particular unit-cell is needed but no scf_output is set;
default: unit-cell larger than the system by 10 Angstrom on x y z directions if scf_output not set

sys_atom_num (compulsory if tbdetails not set/available)
integer : number of atoms in system ; use if system coordinate to be supplied externally,
Note: Will overwrite atom symbols and coordinate read from tbdetails file, must be supplied if tbdetails set to 'no'

sys_coords(compulsory if tbdetails not set/available)
symbol(1) x(1) y(1) z(1)
symbol(2) x(2) y(2) z(2)
symbol(3) x(3) y(3) z(3)
- - - -
symbol(n) x(n) y(n) z(n)
n : number of atoms supplied after sys_atom_num
Note: Will overwrite atom symbols and coordinate read from tbdetails file, must be supplied if tbdetails set to 'no'

nval(compulsory)
integer(1) integer(2) ... integer(N)
integer(i) : number of electrons contributed by the i-th type of atom
N : number of types of atom considered (num_atom_types)

k_grid(Compulsory if tbdetails not set/available)
integer1 integer2 integer3 : grid of k points in which electronic structure to be calculated in the mapped NHO basis

hopping
real(1,1)
real(2,1) real(2,2)
real(3,1) real(3,2) real(3,3)
---
real(N,1) real(N,2) ... real(N,N)
real(i,j) : t_i_j : hopping between the i-th and the j-th atoms
N : number of types of atom considered (num_atom_types)

hubbard
real(1) real(2) ... real(N)
real(i) : Hubbard U of the i-th atom type
N : number of types of atom considered (num_atom_types)

onsite
real(1) real(2) ... real(N)
real(i) : onsite term of the i-th atom type
N : number of types of atom considered (num_atom_types)

num_iteration
integer : number of iteration for self consistency
default : 1000

beta
real : mixing parametere used in self-consistency
default : 0.5

energy_conv_thr
real : threshold for convergence of energy during self-consistency
default : 0.0000001

net_charge
integer : net charge of the system if any to be considered
default : 0

mag_order
character : nature of magnetic ordering between nearest neighbours ("NM/FREE/AFM/FM")
NM : Non-magnetic
FREE : as per the minima of total energy given the initial condition
AFM : anti-ferromagnetic
FM : ferro-magnetic
default : NM

rmag (Compulsory if mag_order set to "FM")
character : net magnetic moment if mag_order is set to FM

num_atom_spin_initialized
integer : number of atoms whose spins to be initialized as initial condition

list_atom_spin_initialized
integer(1) integer(2) ... integer(n)
n : number of atoms whose spins to be initialized as mentioned for num_atom_spin_initialized
integer(i) : index of the i-th atom among n atoms whose spin to be initialized

list_intial_spin
real(1) real(2) ... real(n)
n : number of atoms whose spins to be initialized as mentioned for num_atom_spin_initialized
real(i) : spin in terms of atomic unit of spin initialized for the i-th atom among n atoms

num_atom_biased
integer : number of atoms to which additional onsite term to be added as bias

list_atom_biased
integer(1) integer(2) ... integer(n)
n : number of atoms to be biased
integer(i) : index of the i-th atom to be biased

list_bias
real(1) real(2) ... real(n)
n : number of atoms whose spins to be initialized as mentioned for num_atom_spin_initialized
real(i) : bias to be aplied to the i-th atom among n atoms

hopping_range
real : distance between atoms beyond which hopping to be not considered
relevant only if self-energy correction is used since the correction file provides correction to hopping between two orbtials anywhere in the supercell (nk1*nk2*nk3*unitcell) of the reference system
default : 100 Angstrom

NOTE: If you want to restrict hopping itself up to a certain distance then regenerate TB_details with hop_range set at the input of the TB Hamiltonian generation. You should set proj_todo to no at that input to save time.

selfenergycorr
character : "yes/YES" if self energy correction to be performed
default : no

bgwcorr_files (compulsory if selfenergycorr set to yes/YES)
character(1,spin1) character(2,spin1) ... character(n,spin1)
character(1,spin2) character(2,spin2) ... character(n,spin2)
n : number of type of atoms as supplied for num_atom_types
character(i,spin2) : correction file for the i-th type of atom for spin2