Author Topic: Current at each bias  (Read 2836 times)

0 Members and 1 Guest are viewing this topic.

Offline Jahanzaib

  • QuantumATK Guru
  • ****
  • Posts: 103
  • Country: gb
  • Reputation: 3
    • View Profile
Current at each bias
« on: September 2, 2024, 15:44 »
Dear Expert,
I hope you are doing well.

I am interested in calculating the current at each bias given in code below. This code work well, but I don't have an idea how to calculate current at each bias, any suggestion?

pos_bias_list = [0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70]*Volt

# Read DeviceConfiguration
zero_bias_file = '/home/hartree/jem/wolf6252/N-P/Device/Fe-H-D/Fe-H-D-3-3/Fe-H-D-3-3.hdf5'
device_configuration = nlread(zero_bias_file, DeviceConfiguration)[0]

for bias in pos_bias_list:
    if processIsMaster():
        print("Bias is now: ", bias)
    # Get the calculator
    calculator = device_configuration.calculator()

    # Set the bias voltage
    calculator=calculator(electrode_voltages=(bias/2, -bias/2))

    # Attach the calculator and use the old initial state
    device_configuration.setCalculator(
      calculator(),
      initial_state=device_configuration)
    device_configuration.update()
    nlsave('device_bias_%.2f.hdf5' % bias.inUnitsOf(Volt), device_configuration)
    nlprint(device_configuration)

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5573
  • Country: dk
  • Reputation: 95
    • View Profile
    • QuantumATK at Synopsys
Re: Current at each bias
« Reply #1 on: September 5, 2024, 21:35 »
To get the current you also have to compute the transmission spectrum at each bias (can be done afterwards, using the saved configurations for each bias), and from each transmission spectrum you get the current.

Offline Jahanzaib

  • QuantumATK Guru
  • ****
  • Posts: 103
  • Country: gb
  • Reputation: 3
    • View Profile
Re: Current at each bias
« Reply #2 on: September 8, 2024, 01:08 »
If I understand you correctly then it's mean I have to apply different bias let's say -0.1, 0.2 etc and calculate the TS. ok?

I calculated the TS with -0.1 and also got current as shown in the figure? this is what you are explaining?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5573
  • Country: dk
  • Reputation: 95
    • View Profile
    • QuantumATK at Synopsys
Re: Current at each bias
« Reply #3 on: September 9, 2024, 21:02 »
Yes. There is appreciable band gap in this system, so the current will be zero for low bias (nano-Ampere is for practical purposes to be considered zero in a system like this), but once you bump up the bias a bit you should start to see a lot more.

You can also extract the current in a script, if you have many bias points, but it's instructive to visualize the transmission spectrum to discern why the I-V looks the way it does.

Offline Jahanzaib

  • QuantumATK Guru
  • ****
  • Posts: 103
  • Country: gb
  • Reputation: 3
    • View Profile
Re: Current at each bias
« Reply #4 on: September 10, 2024, 01:40 »
I got your point. Actually I was looking the following tutorial (https://docs.quantumatk.com/tutorials/std_transport/std_transport.html). I run many bias but I didnot get current using the following

 Calculate the current from the transmission spectrum
    current = transmission_spectrum.current()

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5573
  • Country: dk
  • Reputation: 95
    • View Profile
    • QuantumATK at Synopsys
Re: Current at each bias
« Reply #5 on: September 11, 2024, 20:37 »
Right, that is correct, then in the script you can just nlprint(current)