Author Topic: iv-scan for double gate  (Read 3339 times)

0 Members and 1 Guest are viewing this topic.

Offline tara

  • Heavy QuantumATK user
  • ***
  • Posts: 37
  • Country: in
  • Reputation: 0
    • View Profile
iv-scan for double gate
« on: April 17, 2015, 11:55 »
Sir
For a double gate tansistor , how will the id-Vg  script change. Does "device_configuration.metallicRegions()" contain both the top and botton metallic region?? :-\

#read in the old configuration
device_configuration = nlread('/home/xyz/.vnl/abc/investigate/transistor.nc', object_id='gID000')[0]
calculator = device_configuration.calculator()
metallic_region0 = device_configuration.metallicRegions()[0]

# Define gate_voltages
gate_voltage_list=numpy.linspace(0,2,10)*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(electrode_voltages=(0.0*Volt,0.2*Volt)),
    initial_state=device_configuration)
    device_configuration.update()
    nlsave("'/home/xyz/.vnl/abc/investigate/iv-transistor.nc'", device_configuration)
#Analysis
    filename= '/home/xyz/.vnl/abc/investigate/iv-transistor.nc'
    # -------------------------------------------------------------
    # transmission spectrum
    # -------------------------------------------------------------
    transmission_spectrum = TransmissionSpectrum(
    configuration=device_configuration,
    energies=numpy.linspace(-2,2,101)*eV,
    kpoints=MonkhorstPackGrid(3,3),
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    self_energy_calculator=KrylovSelfEnergy(),
    )
    nlsave(filename, transmission_spectrum,object_id='trans'+str(gate_voltage))
    nlprint(transmission_spectrum)
   

Offline Umberto Martinez

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 479
  • Country: dk
  • Reputation: 26
    • View Profile
Re: iv-scan for double gate
« Reply #1 on: April 17, 2015, 13:22 »
Quote
For a double gate tansistor , how will the id-Vg  script change. Does "device_configuration.metallicRegions()" contain both the top and botton metallic region?? :-\
yes, it does. However,  in your script you specifically change the gate bias of the first metallic region metallic_region0 = device_configuration.metallicRegions()[0] You can change the bias of all the gate regions with something like:
Code: python
metallic_regions = device_configuration.metallicRegions()
gate_voltage_list=numpy.linspace(0,2,10)*Volt

for gate_voltage in gate_voltage_list:
    new_regions = [m(value = gate_voltage) for m in metallic_regions]
    device_configuration.setMetallicRegions(new_regions)

Offline tara

  • Heavy QuantumATK user
  • ***
  • Posts: 37
  • Country: in
  • Reputation: 0
    • View Profile
Re: iv-scan for double gate
« Reply #2 on: April 18, 2015, 06:09 »
So if both the top and bottom gate are shorted (i.e having same gate  voltages) then the below script would hold good?? :-\

#read in the old configuration
device_configuration = nlread('/home/xyz/.vnl/abc/investigate/transistor.nc', object_id='gID000')[0]
calculator = device_configuration.calculator()
metallic_regions= device_configuration.metallicRegions()[0]

# Define gate_voltages
gate_voltage_list=numpy.linspace(0,2,10)*Volt

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


Offline Umberto Martinez

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 479
  • Country: dk
  • Reputation: 26
    • View Profile
Re: iv-scan for double gate
« Reply #3 on: April 20, 2015, 09:32 »
You are still changing the gate bias of only one region (the first one you have defined).
use the code I posted before to change the gate bias of both regions simultaneously.