Once you have dropped the VNL file on the Nanoscope, use the right mouse button to bring up the context menu. Under "Insert plot", there is first a list of plot types (Volume plot, Isosurface, etc), and under each of these is a list of the eigenstates in the VNL file. Select the one you want to include.
A useful tip is to assign a unique label that's easy to remember to each state when you save it in the VNL file. This label will be visible in the menu, and makes it easier to choose the correct state. For example, the label could reflect the spin, or the eigenvalue, and the index.
For instance:
k = (0.0,0.0)
E = 0.0*electronVolt
transmission_eigenvalues = calculateTransmissionEigenvalues(
self_consistent_calculation = scf,
energy = E,
quantum_numbers = (k)
)
for index,eigenvalue in enumerate(transmission_eigenvalues):
transmission_eigenstates = calculateTransmissionEigenstates(
self_consistent_calculation = scf,
energy = E,
quantum_numbers = (index,(k))
)
label='Transmission Eigenstate'+' '+str(index)+', k='+str(k)+', Eigenvalue='+str(eigenvalue)
if processIsMaster(): file.addToSample(transmission_eigenstates[0], 'twoprobe_configuration', label)
This will, given the specified 2D k-point and energy, calculate the transmission eigenvalues, and for each one calculate the corresponding eigenstate and save it in a VNL file, with a label like Transmission Eigenstate 0, k=(0,0), Eigenvalue=0.92.
Modify as needed for spin. If you have multiple k-points you can in principle extend "k" to be a list, but the code gets a bit messy...
The label is optional, but if it's missing the list should still be there in VNL, in the Nanoscope. However, it might be hard to distinguish the states from each other.
You can easily modify the example file you refer to by adding the label as the third argument to addToSample().
from ATK.TwoProbe import *
# Look for the eigenvector at the Fermi level
energy = 0.0*Units.eV
# Restore the SCF calculation
scf = restoreSelfConsistentCalculation('imperfect_chain.nc')
# Define output on VNL file
results = VNLFile('imperfect_alwire.vnl')
# Calculate the transmission eigenstates
index_list = [0,1]
kpoint_list = [(0.0,0.0)]
for index in index_list:
transmission_eigenstate = calculateTransmissionEigenstates(
scf,
energy,
quantum_numbers=(index,kpoint_list)
)
label = 'Transmission Eigenstate '+str(index)
results.addToSample(transmission_eigenstate[0],"imperfect_alwire",label)
Two last lines modified.