You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we can visualize a field, such as an eigenstate or the LDOS of a finite or unbounded system using e.g. vlplot(h, field), where field is a vector. Since an infinite system has a uniform LDOS (each unit cell has the same LDOS at a given energy), this is enough visualize the LDOS in this case. However, it doesn't allow us to visualize the LDOS of a semi-infinite system, or a system with boundaries. The PR #150 now allows us to compute the spatial Greens function in semi-infinite quasi1D systems, so it would be good to enable a way to visualize fields in semi-infinite lattices too.
A flexible way would be to allow a method vlplot(h::Hamiltonian{LA,L}, field::AbstractVector{<:Pair{NTuple{L,Int}}}) that accepts things like field = [(1,1) => [amplitudes at cell (1,1)...], (1,2) => ...]. Then, vlplot would plot the cells contained in field with their specific fields.
One problem with this is that there is no way to indicate where the boundaries are, or where to represent the shaded cells that represent the unbounded direction. Perhaps that could be solved by passing a boundaries kwarg similar to the one for greens, and have vlplot compute a bounding box that includes the boundaries. Another, more natural way, would be to include cells to be shaded inside field in some way.
However, I think it would be best to not overcomplicate things and forego shading of open cells. Ultimately, we want this to encode information about the field, of which we know nothing in unspecified cells, so nothing should be plotted there, probably. At most, we could allow an opacity directive that depends on the cell variable
The text was updated successfully, but these errors were encountered:
Currently, we can visualize a field, such as an eigenstate or the LDOS of a finite or unbounded system using e.g.
vlplot(h, field)
, where field is a vector. Since an infinite system has a uniform LDOS (each unit cell has the same LDOS at a given energy), this is enough visualize the LDOS in this case. However, it doesn't allow us to visualize the LDOS of a semi-infinite system, or a system with boundaries. The PR #150 now allows us to compute the spatial Greens function in semi-infinite quasi1D systems, so it would be good to enable a way to visualize fields in semi-infinite lattices too.A flexible way would be to allow a method
vlplot(h::Hamiltonian{LA,L}, field::AbstractVector{<:Pair{NTuple{L,Int}}})
that accepts things likefield = [(1,1) => [amplitudes at cell (1,1)...], (1,2) => ...]
. Then,vlplot
would plot the cells contained infield
with their specific fields.One problem with this is that there is no way to indicate where the boundaries are, or where to represent the shaded cells that represent the unbounded direction. Perhaps that could be solved by passing a
boundaries
kwarg similar to the one forgreens
, and have vlplot compute a bounding box that includes the boundaries. Another, more natural way, would be to include cells to be shaded insidefield
in some way.However, I think it would be best to not overcomplicate things and forego shading of open cells. Ultimately, we want this to encode information about the field, of which we know nothing in unspecified cells, so nothing should be plotted there, probably. At most, we could allow an
opacity
directive that depends on thecell
variableThe text was updated successfully, but these errors were encountered: