On loading overlap matrices #806
-
Hello, I am trying to use a model for graphene that includes two nearest neighbors and a non-identity overlap matrix. As I read from the docs, Overlap class allows to create an overlap object but Hamiltonian object has already its own definition of the overlap matrix. Given a set of parameters for the hamiltonian [r, t], and a set of parameters for the overlap matrix [r2, s], is there a way using the construct() function to load simple non-orthogonal models? I have tried things along the lines: O = Overlap(geometry)
O.construct([r2, s])
Ham = Hamiltonian(geometry, orthogonal=False, S=O)
Ham.construct([r, t]) Also Ham = Hamiltonian(geometry, orthogonal=False)
Ham.H.construct([r, t])
Ham.S.construct([r2, s]) Both methods lead to no success. If you could point a direction, it would help a great deal! Best, |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
To build a non-orthogonal hamiltonian for graphene, say with hopping g = sisl.geom.graphene()
H = Hamiltonian(g, orthogonal=False)
r = (0.1, 1.6) # radii
h1 = (0, 1) # onsite and overlap for inner sphere
h2 = (t, s) # hopping and overlap for first shell
H.construct([r, (h1, h2)]) |
Beta Was this translation helpful? Give feedback.
To build a non-orthogonal hamiltonian for graphene, say with hopping$t$ and overlap $s$ between first neighbours, you could do: