Author Topic: How to get the G-S curve from transmission spectral.  (Read 2947 times)

0 Members and 1 Guest are viewing this topic.

Offline donmbringer

  • Heavy QuantumATK user
  • ***
  • Posts: 40
  • Country: ca
  • Reputation: 0
    • View Profile
How to get the G-S curve from transmission spectral.
« on: August 23, 2012, 16:37 »
I have run the following program:
#read in the old configuration
device_configuration = nlread("FGNRARMW8L12.nc",DeviceConfiguration)[0]
calculator = device_configuration.calculator()
metallic_region0 = device_configuration.metallicRegions()[0]

# Define gate_voltages
gate_voltage_list=numpy.linspace(-2.0,2.0,17)*Volt

for gate_voltage in gate_voltage_list:
    device_configuration.setMetallicRegions(
        [metallic_region0(value = gate_voltage)] )

    # make a copy of the calculator and attach it to the configuration
    # restart from the previous scf state
    device_configuration.setCalculator(calculator(),
         initial_state=device_configuration)

    #Analysis
    filename= 'gatescanAW8L12.nc'
    electron_density = ElectronDifferenceDensity(device_configuration)
    nlsave(filename, electron_density,object_id='dens'+str(gate_voltage))

    electrostatic_potential = ElectrostaticDifferencePotential(device_configuration)
    nlsave(filename, electrostatic_potential, object_id='pot'+str(gate_voltage))

    transmission_spectrum = TransmissionSpectrum(
        configuration=device_configuration,
        energies=numpy.linspace(-2,2,200)*eV,
        )

    nlsave(filename, transmission_spectrum,object_id='trans'+str(gate_voltage))
    nlprint(transmission_spectrum)

How can I get the curve of "conductance vs. gate bias voltage" from file I get from the program above? (it gives me the transmission spectrum under different bias.)

Offline donmbringer

  • Heavy QuantumATK user
  • ***
  • Posts: 40
  • Country: ca
  • Reputation: 0
    • View Profile
Re: How to get the G-S curve from transmission spectral.
« Reply #1 on: August 23, 2012, 18:23 »
Sorry, I did not make my question clearly. I built a graphene nanoribbon as shwon in device.jpg. After I calculate the transmission spectrum (with self-consistent), I run the program above. Then I just run the program shown on the tutor as shown below, but the result I obtained (in result.jpg) is different from the theory, which should be a "V" shaped curve.

#make list of relevant temperatures
temperature_list=numpy.linspace(25,350,2)*Kelvin
#make list of relevant gate voltages
gate_voltage_list=numpy.linspace(-2.0,2.0,17)*Volt
#make list to hold the conductance calculations
conductance_list=numpy.zeros(len(gate_voltage_list)*len(temperature_list))
conductance_list=conductance_list.reshape(len(gate_voltage_list),
len(temperature_list))
#specify the filename for the netcdf data file
filename="gatescanAW8L8.nc"
#loop through the gate voltages
for n in range(len(gate_voltage_list)):
    transmission_spectrum=nlread(filename,
                                 object_id="trans"+str(gate_voltage_list[n]))[0]
    #loop through the temperature list
    for i in range(len(temperature_list)):
        conductance_list[n,i]=transmission_spectrum.conductance(
            electrode_temperatures=(temperature_list,temperature_list))
 
#plot the conductance as function of gatevoltage
import pylab
pylab.figure()
# make curve for each temperature
for i in range(len(temperature_list)):
    pylab.semilogy(gate_voltage_list,conductance_list[:,i])
pylab.xlabel("Gate Voltage (V)")
pylab.ylabel("Conductance (S)")
pylab.show()