device_configuration = nlread('au_vacuumgap.hdf5', DeviceConfiguration)[-1]
calculator = device_configuration.calculator()
for voltage in [0.0, 0.25, 0.5, 0.75, 1.0]:
    # Set new calculator with modified electrode voltages on the configuration
    # use the self consistent state of  the old calculation as starting input.
    device_configuration.setCalculator(
          calculator(electrode_voltages=(0.5*voltage*Volt, -0.5*voltage*Volt)),
                     initial_state=device_configuration)
    device_configuration.update()
    nlsave('au_vacuumgap.hdf5', device_configuration, object_id="SCF %s" % voltage)
    # -------------------------------------------------------------
    # Mulliken population
    # -------------------------------------------------------------
    mulliken_population = MullikenPopulation(device_configuration)
    nlsave('au_vacuumgap.hdf5', mulliken_population, object_id="Mulliken %s" % voltage)
    # -------------------------------------------------------------
    # Electrostatic difference potential
    # -------------------------------------------------------------
    electrostatic_difference_potential = ElectrostaticDifferencePotential(device_configuration)
    nlsave('au_vacuumgap.hdf5', electrostatic_difference_potential, object_id="EDP %s" % voltage)
    # -------------------------------------------------------------
    # Electron difference density
    # -------------------------------------------------------------
    electron_difference_density = ElectronDifferenceDensity(device_configuration)
    nlsave('au_vacuumgap.hdf5', electron_difference_density, object_id="EDD %s" % voltage)
