convergenced parallel configuration as initial state to calculate antiparallel configuration. But how do we calculate spin transport of antiparallel configuration in finite bias? I have some methods.
method 1. firstly, we should calculate parallel configuration under 0 bias, get convergenced parallel-0V.nc file, then read parallel-0V.nc as initial state, set opposite spin distributed in two electrodes and calculate it, getting antiparallel-0v.nc file. finally, read antiparallel-0v.nc as inital state, apply finite bias,
0.2, 0.4, 0.8..1.2V and get .nc file under different bias(no initial-spin set again when calculate .nc file under finite bias ).
method 2. firstly, we should calculate parallel configuration under 0 bias, get convergenced parallel-0V.nc file. secondly, go on calculating parallel configuration under finite bias, get parallel-0.2V.nc, parallel-0.4V.nc, parallel-0.6V.nc and so on. then use parallel-0V.nc tocalculate antiparallel-0V.nc, use parallel-0.2V.nc to calculate antiparallel-0.2V.n, use parallel-0.4V.nc to calculate antiparallel-0.4V.nc...get antiparallel .nc under different bias.
method 3. No .nc file, create configuration and set opposite initial-spin in two eletrodes directly. get antiparallel-0V.nc, and then apply finite bias, get .nc file under diferent bias.
what's more, should we set initial-spin again when calculating transport under finite bias?
one script is :
# -------------------------------------------------------------
# Initial State
# -------------------------------------------------------------
initial_spin = InitialSpin(scaled_spins=[0.0, 1.0, 0.0, 0.0, 1.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, 1.0, 0.0, 0.0, 1.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, 1.0, 0.0, 0.0, 1.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, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0])
for bias in numpy.arange(0.0,1.2,0.2)*Volt:
device_configuration.setCalculator(
calculator(electrode_voltages=(0.5*bias,-0.5*bias)),
initial_spin=initial_spin,
)
device_configuration.update()
nlsave('%.1f.nc' % bias.inUnitsOf(Volt), device_configuration)
nlprint(device_configuration)