Author Topic: Can I calculated continuously for suddenly suspended job?  (Read 5507 times)

0 Members and 1 Guest are viewing this topic.

Offline Jicheol son

  • New QuantumATK user
  • *
  • Posts: 1
  • Country: kr
  • Reputation: 0
    • View Profile
Dear All,

I was running calculate I-v curve, transmission and etc,  on the lab machine. But due to some technical problem it was stopped.
I already have completed  half of my calculation.  It is very time consuming calculation so,now i want to restart my calculation from last data point.
I think that the  convergence self consistent  calculations are saved in the "ivcurve_selfconsistant_configrations.nc"
there are many objects in this file now with the names like "ivcurve011" . I don't know ho i can access them and how can i patch it with previous calculation.

Any way I have attached the script file "black_140.py" which i was using for the calculation.


Jiechol


Offline Umberto Martinez

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 479
  • Country: dk
  • Reputation: 26
    • View Profile
Re: Can I calculated continuously for suddenly suspended job?
« Reply #1 on: April 20, 2015, 09:15 »
each of these objects correspond to a converged finite bias calculation. You can check that if you select one of them and you read the left and right electrode voltages from the LabFloor under General Info. In your case it corresponds to the calculations at 1.1 Volt. Unfortunately you have lost the transmission spectra calculated so far. What you can do is to restart from this last point and calculate all the remaining biases:
Code: python
device_configuration = nlread('ivcurve_selfconsistent_configurations.nc', DeviceConfiguration)[-1]

calculator=device_configuration.calculator()

biases = [1.200000, 1.300000, 1.400000, 1.500000, 1.600000, 1.700000,
          1.800000, 1.900000, 2.000000, 2.100000, 2.200000, 2.300000,
          2.400000, 2.500000, 2.600000, 2.700000, 2.800000, 2.900000,
          3.000000]*Volt
calculator = device_configuration.calculator()
for bias in biases:
    calculator=calculator(
            electrode_voltages=(bias/2, -bias/2))

    device_configuration.setCalculator(
          calculator(),
          initial_state=device_configuration)
    device_configuration.update()
    nlsave('ivcurve_selfconsistent_configurations.nc', device_configuration)
calculate all the transmission spectra:
Code: python
configurations = nlread('ivcurve_selfconsistent_configurations.nc', DeviceConfiguration)
for device_configuration in configurations:
    transmission_spectrum = TransmissionSpectrum(
        configuration=device_configuration,
        energies=numpy.linspace(-8,8,201)*eV,
        kpoints=MonkhorstPackGrid(1, 1),
        energy_zero_parameter=AverageFermiLevel,
        infinitesimal=1e-06*eV,
        self_energy_calculator=RecursionSelfEnergy(),
        )
    nlsave("TS_analysis.nc", transmission_spectrum)
    nlprint(transmission_spectrum)
and finally, from the LabFloor select all the TS in TS_analysis.nc and create the IV curve with the IV-generator pluin as described here. Check the whole tutorial to get some hints. for example you will get better results if you narrow your window bias in the transmission spectra calculations.