... | ... | @@ -22,15 +22,29 @@ an array of values. This will mean that a given value function only has to be ca |
|
|
`wave_function` and `ldos` should return objects which can be used like an array, but which can also
|
|
|
be indexed with `Site` objects, if the system was a finalized `Builder`.
|
|
|
|
|
|
## Builders can support multiple values for Hamiltonian elements
|
|
|
## Multiple values for Hamiltonian elements
|
|
|
It should be possible to do the following:
|
|
|
```python
|
|
|
sys[onsite] = 1.
|
|
|
sys[onsite] += lambda site, Vb, time: Vb * cos(time)
|
|
|
```
|
|
|
With the meaning that the result of the function evaluation is added to the
|
|
|
constant term when the system Hamiltonian is evaluated.
|
|
|
|
|
|
|
|
|
|
|
|
# Data structures
|
|
|
|
|
|
## Builder
|
|
|
## [[Builder | Builder]]
|
|
|
The builder will need to be modified so that it supports the above "multiple
|
|
|
value" interface, but also so that it supports vectorized system construction
|
|
|
(e.g. vectorized `shape` functions). In addition it should be in a format that
|
|
|
is easy to finalize to the new low-level format. [[This page | Builder]] will
|
|
|
hold the specification for the new builder.
|
|
|
|
|
|
## [[Low-level system | Low-Level-System-Format]]
|
|
|
The low-level system format is rather involved, and so is described in a separate document,
|
|
|
[[here|Low-Level-System-Format]]. Roughly, instead of having a single graph with values
|
|
|
associated with each node/edge, in Kwant-2 there will be multiple graphs, one for each set of
|
|
|
site families, values, and symmetry group elements represented in the system. This will allow
|
|
|
for efficient building of the Hamiltonian. |
|
|
\ No newline at end of file |
|
|
for efficient building of the Hamiltonian. |