# Set bias
# Positive: Reverse and Negative: Forward

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

# Read DeviceConfiguration
zero_bias_file = '../0K-zero-bias/0K-zero-bias.py.hdf5'
device_configuration = nlread(zero_bias_file, DeviceConfiguration)[-1]

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)
    
# Read DeviceConfiguration
device_configuration = nlread(zero_bias_file, DeviceConfiguration)[-1]

for bias in neg_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)
