Dear Jin-Kyu,
a detailed description of how to control the checkpoint file can be found in the manual (http://quantumwise.com/documents/manuals/latest/ReferenceManual/index.html/ref.checkpointhandler.html), and just this week we also published a small tutorial on the subject: http://quantumwise.com/publications/tutorials/mini-tutorials/142
There is a basic tutorial on I-V curves here: http://quantumwise.com/publications/tutorials/mini-tutorials/98
If the system is large, to put each bias point in a separate NC file (not really checkpoint file). For this you should change the "nlsave" statement to make a new file for each bias:
nlsave("lih2li_iv_scf_bias_%g.nc" % voltage.inUnitsOf(Volt), device_configuration)
If the calculation is interrupted, you can restart by reading in the initial state from the last NC file and continuing the loop (edit the voltages list). For instance:
# ... script as it was before ... until "for voltage in"
initial_state = nlread("lih2li_iv_scf_bias_0.3.nc", DeviceConfiguration)[0]
for voltage in [0.4, 0.5, 0.6, 0.7]*Volt:
device_configuration.setCalculator(
calculator(electrode_voltages=(-0.5*voltage,0.5*voltage)),
initial_state=device_configuration
)
device_configuration.update()
nlsave("lih2li_iv_scf_bias_%g.nc" % voltage.inUnitsOf(Volt), device_configuration)
There is no simple way to automate these things, but a few small edits of the script are all that's needed.
Note that using a checkpoint file isn't really going to lower the memory consumption, however, so if this is a general problem you should look into what you can do to make the calculation smaller. How much RAM do you have? 4 Gb is often enough, provided you don't try to run in parallel on the machine, but of course it depends a lot on how many atoms you have.