> 1) 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.

> 2) 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:


i.e. the vectors that you give are in the basis of the lattice vectors, so like:

    sym0.add_site_family(graphene, [(-1, 1)])

> 4) 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).

> 5) 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:


> 6) 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,