Hi,
- I would like to do both. but more so for the finalized builder.
`FinalizedBuilder`s have a `sites` attribute that is a list of sites, ordered in the same way as the wavefunction/ldos etc.
- Ok I saw this post, but I am still a little unsure how this is set up.
Do I start with
some sym0 = kwant.TranslationalSymmetry(graphene.vec((1, 0))). And then add_site_family? And is the other vectors a general direction, or the
lattice direction?
yes that's it. The docs say that you have to give lattice vectors:
http://kwant-project.org/doc/1.0/reference/generated/kwant.lattice.Translati...
i.e. the vectors that you give are in the basis of the lattice vectors, so like:
sym0.add_site_family(graphene, [(-1, 1)])
- I have calculated the energy DOS for a lead and this looks correct,
what I’m more
unsure of is this the same as the DOS of the propagating modes. And I see
how to find
the velocity and things from the documentation, but is there a way to
find the energy.
Sorry if this is a stupid question I could not find anything on the forum
Not sure what you mean by this; the energy is an _input_ for calculating the DOS, although by default a value of 0 is used (see the docs).
- similar to question 1) how do I find things like the number of
propagating modes.
`InfiniteSystem`s have a method called `modes` that will calculate you this:
http://kwant-project.org/doc/1.0/reference/generated/kwant.system.InfiniteSy...
- what is the best way to go about writing observables, sorry this is
quite a general
question and most likely up to the user, but for instance the pauli
matrices are quite
simple.
Yeah so support for this in kind of weak in Kwant at the moment. It will, unfortunately probably be a case of creating the operator matrix yourself. We want to add support or easily defining generic charge/current operators (e.g. spin along some magnetization axis that changes through the system), but this is more do do with dealing with multiple "orbitals" than things like the position operator.
However the position operator, or velocity operator changes with the way
the
Hamiltonian is described, is there something simple general method to
calculate these?
This will obviously depend on your model; Kwant doesn't know anything about what basis your Hamiltonian is written in. In the general case you would need to calculate the matrix elements of the observable in your chosen basis. For specific cases this may not be as daunting as it sounds. e.g. for a continuum Hamiltonian discretised on a lattice the position operator is diagonal and each entry is just the position of the corresponding site.
As a return question I'd like to ask whether the documentation could be improved or if navigation and discoverability could be improved. We seem to get quite a few questions on here that are covered in the documentation, but people seem to have trouble finding it; what do you think we could do better in this regard?
Happy Kwanting,
Joe