# Read the data
transmission_spectrum_list = nlread("nanodevice_huckel.hdf5", TransmissionSpectrum)
configuration_list = nlread("nanodevice_huckel.hdf5", DeviceConfiguration)

conductance = numpy.zeros(len(configuration_list))
gate_bias = numpy.zeros(len(configuration_list))
for i, configuration in enumerate(configuration_list):
    transmission_spectrum = transmission_spectrum_list[i]
    energies = transmission_spectrum.energies().inUnitsOf(eV)
    spectrum = transmission_spectrum.evaluate()
    gate_bias[i] = configuration.metallicRegions()[0].value().inUnitsOf(Volt)
    conductance[i] = transmission_spectrum.conductance()

# Sort the data according to the gate bias
index_list = numpy.argsort(gate_bias)

# Plot the spectra
import pylab
pylab.figure()
ax = pylab.subplot(111)
ax.semilogy(gate_bias[index_list],  conductance[index_list])
ax.set_ylabel("Conductance (S)", size=16)
ax.set_xlabel("Gate Bias (Volt)", size=16)
ax.set_ybound(lower=1e-26)

for g,c in zip(gate_bias[index_list],  conductance[index_list]):
    print(g,c)
pylab.show()