Hello all, In Section 2.3 of the Kwant 1.0.3 documentation it says: "(...) it is enough to specify one direction of the hopping (i.e. when specifying (1, 0) it is not necessary to specify (-1, 0)), Builder assures hermiticity." However, if I want the hopping in the e.g. -x direction to be different from that in the +x direction, how do I implement this? Is it OK to write: sys[kwant.builder.HoppingKind((0, 0, -1), lat, lat)] = value1 sys[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = value2 Will the above code produce the desired result? Thanks, Oscar Erlandsson
Dear Oscar,
Unfortunately right now it is impossible to create a Hamiltonian where
hoppings aren't hermitian.
Best regards,
Anton
On Tue, Nov 17, 2015 at 2:09 AM, Oscar Erlandsson
Hello all,
In Section 2.3 of the Kwant 1.0.3 documentation it says:
"(...) it is enough to specify one direction of the hopping (i.e. when specifying (1, 0) it is not necessary to specify (-1, 0)), Builder assures hermiticity."
However, if I want the hopping in the e.g. -x direction to be different from that in the +x direction, how do I implement this? Is it OK to write:
sys[kwant.builder.HoppingKind((0, 0, -1), lat, lat)] = value1 sys[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = value2
Will the above code produce the desired result?
Thanks,
Oscar Erlandsson
Dear Anton, Thank you for your reply. I have a follow-up question. As far as I understand, a hopping is hermitian if the hopping from site A to site B is equal to the complex conjugate of the hopping from site B to site A. This is for instance fulfilled if both of the these hoppings are equal to -t (a real number). However, it should also be fulfilled if the two hoppings have equal real part and imaginary part of equal magnitude but opposite sign. If I want to implement this (in e.g. a 2D system) in such a way that the hoppings in +x-direction (of my lattice 'lat') are equal to -t+1j and in -x-direction equal to -t-1j (where 1j is the imaginary unit), is the following code the correct way to do it: sys[kwant.builder.HoppingKind((1, 0), lat, lat)] = -t+1j sys[kwant.builder.HoppingKind((-1, 0), lat, lat)] = -t-1j Best regards, Oscar Erlandsson On 2015-11-17 08:52, Anton Akhmerov wrote:
Dear Oscar,
Unfortunately right now it is impossible to create a Hamiltonian where hoppings aren't hermitian.
Best regards, Anton
On Tue, Nov 17, 2015 at 2:09 AM, Oscar Erlandsson
wrote: Hello all,
In Section 2.3 of the Kwant 1.0.3 documentation it says:
"(...) it is enough to specify one direction of the hopping (i.e. when specifying (1, 0) it is not necessary to specify (-1, 0)), Builder assures hermiticity."
However, if I want the hopping in the e.g. -x direction to be different from that in the +x direction, how do I implement this? Is it OK to write:
sys[kwant.builder.HoppingKind((0, 0, -1), lat, lat)] = value1 sys[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = value2
Will the above code produce the desired result?
Thanks,
Oscar Erlandsson
Dear Oscar,
Ah, that's easy. You don't even need the second assignment, it is
ensured by Kwant automatically. Compare with e.g.
http://kwant-project.org/doc/1/tutorial/tutorial2#matrix-structure-of-on-sit...
Best regards,
Anton
On Wed, Nov 18, 2015 at 9:09 PM, Oscar Erlandsson
Dear Anton,
Thank you for your reply. I have a follow-up question.
As far as I understand, a hopping is hermitian if the hopping from site A to site B is equal to the complex conjugate of the hopping from site B to site A. This is for instance fulfilled if both of the these hoppings are equal to -t (a real number). However, it should also be fulfilled if the two hoppings have equal real part and imaginary part of equal magnitude but opposite sign.
If I want to implement this (in e.g. a 2D system) in such a way that the hoppings in +x-direction (of my lattice 'lat') are equal to -t+1j and in -x-direction equal to -t-1j (where 1j is the imaginary unit), is the following code the correct way to do it:
sys[kwant.builder.HoppingKind((1, 0), lat, lat)] = -t+1j sys[kwant.builder.HoppingKind((-1, 0), lat, lat)] = -t-1j
Best regards,
Oscar Erlandsson
On 2015-11-17 08:52, Anton Akhmerov wrote:
Dear Oscar,
Unfortunately right now it is impossible to create a Hamiltonian where hoppings aren't hermitian.
Best regards, Anton
On Tue, Nov 17, 2015 at 2:09 AM, Oscar Erlandsson
wrote: Hello all,
In Section 2.3 of the Kwant 1.0.3 documentation it says:
"(...) it is enough to specify one direction of the hopping (i.e. when specifying (1, 0) it is not necessary to specify (-1, 0)), Builder assures hermiticity."
However, if I want the hopping in the e.g. -x direction to be different from that in the +x direction, how do I implement this? Is it OK to write:
sys[kwant.builder.HoppingKind((0, 0, -1), lat, lat)] = value1 sys[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = value2
Will the above code produce the desired result?
Thanks,
Oscar Erlandsson
participants (2)
-
Anton Akhmerov
-
Oscar Erlandsson