# -------------------------------------------------------------
# Initial State
# -------------------------------------------------------------
initial_spin = InitialSpin(scaled_spins=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
device_configuration.setCalculator(
calculator(),
initial_spin=initial_spin,
)
device_configuration.update()
Voltage = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0]*Volt
for bias in Voltage:
calculator=calculator(
checkpoint_handler= CheckpointHandler('checkpoint-%.1f.nc' % bias.inUnitsOf(Volt), 30*Minute),
electrode_voltages=(bias/2, -bias/2))
device_configuration.setCalculator(
calculator()
initial_state=device_configuration
)
device_configuration.update()
nlsave('%.1f.nc' % bias.inUnitsOf(Volt), device_configuration)
As we know, when we perform first scf calculator, device_configuration will be calculated using
, if we perform 2nd scf(use electron configuration within 0V to calculate electron configuration within 0.2V ), does initial_spin will still work? or is just recovered by initial_state?