This is an old revision of the document!


CreateClusterHamiltonian

The function CreateClusterHamiltonian(TB, cluster, …) generates a Hamiltonian operator using the input tight-binding Object (TB) and the information regarding the cluster (cluster). The cluster can be an open cluster or a periodic one.

Open Cluster

HCl, HClTB = CreateClusterHamiltonian(TB, {“open”, AtomPos}, …)

Input

  • TB: tight-binding object
  • AtomPos: list of atoms, their positions and (optionally) their spin-orbitals. AtomPos can have the format: {Atom.Name, Atom.Position, {Atom.Shells}} with Atom.Shells is an option. If not given all shells of this atom are included. (same for orbitals per shell)

Output

  • HCl: Hamiltonian operator, corresponding to the input cluster, generated using the input tight-binding object.
  • HClTB: tight-binding object, corresponding to the input cluster, generated using the input tight-binding object.

Example

A small example:

Input

Example.Quanty
-- set parameters
dAB = 0.2
tnn = 1.1
-- create the tight binding Hamiltonian
HTB = NewTightBinding()
HTB.Name = "dichalcogenide tight binding"
HTB.Cell = {{sqrt(3),0,0},
            {sqrt(3/4),3/2,0},
            {0,0,1}}
HTB.Atoms = { {"A", {0,0,0},       {{"p", {"0"}}}},
              {"B", {sqrt(3),1,0}, {{"p", {"0"}}}}}
HTB.Hopping = {{"A.p","A.p",{         0,   0,0},{{-dAB/2}}},
               {"B.p","B.p",{         0,   0,0},{{ dAB/2}}},
               {"A.p","B.p",{         0,   1,0},{{ tnn  }}},
               {"B.p","A.p",{         0,  -1,0},{{ tnn  }}},
               {"A.p","B.p",{ sqrt(3/4),-1/2,0},{{ tnn  }}},
               {"B.p","A.p",{-sqrt(3/4), 1/2,0},{{ tnn  }}},
               {"A.p","B.p",{-sqrt(3/4),-1/2,0},{{ tnn  }}},
               {"B.p","A.p",{ sqrt(3/4), 1/2,0},{{ tnn  }}}
              }
AtomPos = {{"A", {0,0,0}}, {"B", {sqrt(3),1,0}},
           {"B", {0,1,0}},
           {"B", { sqrt(3/4),-1/2,0}}, 
           {"B", {-sqrt(3/4),-1/2,0}}, 
           {"A", {sqrt(3),0,0}},
           {"A", {sqrt(3/4), 3/2,0}},
           {"A", {3*sqrt(3/4), 3/2,0}}}
print("create a cluster Hamiltonian")
HCl, HClTB = CreateClusterHamiltonian(HTB, {"open", AtomPos})
 
print("Output operator:")
print(HCl)
 
print("Output TB object:")
print(HClTB)

Result

text produced as output

Table of contents

Print/export