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)