dual transverse wave functions and mode velocities
Hi, I am fairly new to kwant, but what I have seen so far is really impressive! Currently, I am trying to obtain the dual transverse wave functions and mode velocities for graphene leads. In other words, I would like to achieve the diagonalization of the coupling matrix Gamma (=2Im Sigma^R) in terms of the wave-function and velocities. Any pointers on how to do this in a convenient way would be highly appreciated. Many thanks & best regards, Alex.
Dear Alexander, While what you want is not implemented directly in Kwant, but you can get * Wave functions, momenta and velocities of the propagating modes, from the function kwant.physics.modes (check out the docs for the full description of the output of modes) * Self-energy of a lead using either kwant.physics.selfenergy, or selfenergy method of the StabilizedModes (one of the things returned by kwant.physics.modes) Having the two, you should be able to construct the necessary decomposition. However let me ask, what is the physical observable that you want to compute? For all the things I am aware about you don't need this decomposition, and the modes themselves should be sufficient. Hope that helps, Anton On Thu, Oct 17, 2013 at 3:24 PM, Alexander Croy <alexcroy@googlemail.com> wrote:
Hi,
I am fairly new to kwant, but what I have seen so far is really impressive!
Currently, I am trying to obtain the dual transverse wave functions and mode velocities for graphene leads. In other words, I would like to achieve the diagonalization of the coupling matrix Gamma (=2Im Sigma^R) in terms of the wave-function and velocities. Any pointers on how to do this in a convenient way would be highly appreciated.
Many thanks & best regards,
Alex.
Dear Anton, Thanks for the quick reply!
While what you want is not implemented directly in Kwant, but you can get * Wave functions, momenta and velocities of the propagating modes, from the function kwant.physics.modes (check out the docs for the full description of the output of modes) * Self-energy of a lead using either kwant.physics.selfenergy, or selfenergy method of the StabilizedModes (one of the things returned by kwant.physics.modes)
Indeed, this should give me the information I need. Excuse my possibly stupid question, but how would I go about constructing h_cell and h_hop? For example, for a square lattice (2 sites in transversal direction for simplicity) I would use h_cell = [[0,-1],[-1,0]], h_hop = [[-1, 0],[0,-1]] Right? I just want to make sure I understand how things are supposed to be represented. BTW, I managed to get the self-energy using kwant.system.InfiniteSystem.selfenergy and I just saw that there is also a modes function in that class which is probably called by the methods you mentioned (or vice versa).
Having the two, you should be able to construct the necessary decomposition. However let me ask, what is the physical observable that you want to compute? For all the things I am aware about you don't need this decomposition, and the modes themselves should be sufficient.
That is probably true for most applications. However, you may have a look at http://dx.doi.org/10.1016/j.physrep.2013.09.001 ("Numerical simulations of time-resolved quantum electronics") for an example using the decomposition. At this point, I just want to better understand the decomposition and test some approximation schemes (which also gives me a good excuse to have a closer look at kwant). Best, Alex.
Anton Akhmerov writes:
While what you want is not implemented directly in Kwant, but you can get * Wave functions, momenta and velocities of the propagating modes, from the function kwant.physics.modes
Alexander Croy writes:
Excuse my possibly stupid question, but how would I go about constructing h_cell and h_hop? For example, for a square lattice (2 sites in transversal direction for simplicity) I would use
h_cell = [[0,-1],[-1,0]], h_hop = [[-1, 0],[0,-1]]
Right? I just want to make sure I understand how things are supposed to be represented.
Exactly. Whenever some Kwant function takes h_cell and h_hop, these two matrices describe a quasi-1d chain. h_cell is the Hamiltonian of a single link of that chain (two neighboring sites in transversal direction in your example), and h_hop is the hopping matrix between two links.
Dear Alexander, just to add: You did mention correctly how to construct the cell and hopping Hamiltonian. You don't need to do this manually though: A finalized lead (InfiniteSystem) contains methods to get both the cell and hopping Hamiltonian, as well as convenience functions to obtain self-energy and the modes (http://www.kwant-project.org/doc/1.0/reference/generated/kwant.system.Infini...). You can get the finalized lead in two ways: 1. You finalize a Builder that has TranslationalSymmetry (as in Tutorial 2.4.1) 2. A finalized system has all its finalized leads in a list in sys.leads I should also mention that if you want to use the cell and hopping Hamiltonian directly in selfenergy and modes, then you need to pass h_cell - en * unit matrix to get the modes/selfenergy at energy en. Best, Michael
Am 18 okt. 2013 um 10:17 schrieb christoph.groth@cea.fr:
Anton Akhmerov writes:
While what you want is not implemented directly in Kwant, but you can get * Wave functions, momenta and velocities of the propagating modes, from the function kwant.physics.modes
Alexander Croy writes:
Excuse my possibly stupid question, but how would I go about constructing h_cell and h_hop? For example, for a square lattice (2 sites in transversal direction for simplicity) I would use
h_cell = [[0,-1],[-1,0]], h_hop = [[-1, 0],[0,-1]]
Right? I just want to make sure I understand how things are supposed to be represented.
Exactly. Whenever some Kwant function takes h_cell and h_hop, these two matrices describe a quasi-1d chain. h_cell is the Hamiltonian of a single link of that chain (two neighboring sites in transversal direction in your example), and h_hop is the hopping matrix between two links.
participants (4)
-
Alexander Croy -
Anton Akhmerov -
christoph.groth@cea.fr -
Michael Wimmer