IVCharacteristics

class IVCharacteristics(configuration, filename, object_id, gate_regions=None, gate_source_voltages=None, drain_source_voltages=None, energies=None, kpoints=None, kpoints_weights=None, self_energy_calculator=None, energy_zero_parameter=None, infinitesimal=None, log_filename_prefix=None, number_of_processes_per_task=None)

Constructor for the IVCharacteristics object.

Parameters:
  • configuration (DeviceConfiguration) – The device configuration with attached calculator for which to perform the study. The configuration must include at least one metallic region acting as the gate.
  • filename (str) – The full or relative filename path the Study object should be saved to. See nlsave().
  • object_id (str) – The name of the study that the Study object should be saved to within the file. This needs to be a unique name in this file. See nlsave().
  • gate_regions (int | list of int) – An index or list of indices of the metallic regions present in the configuration for which to apply the gate voltage.
    Default: All metallic regions present in the configuration.
  • gate_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of the gate-source voltages for which the current will be calculated the next time the object is updated. It is assumed that the right electrode is the source and is grounded, and that the gate-source voltage is defined as V_gs = V_g - V_s. Therefore, in each transmission calculation, the right electrode voltage will be set to zero and the gate regions voltage to V_gs.
    Default: [0.0] * Volt
  • drain_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of the drain-source voltages for which the current will be calculated the next time the object is updated. It is assumed that the right electrode is the source, and that the drain-source voltage is defined as V_ds = V_d - V_s. Therefore, in each transmission calculation, the right electrode voltage will be set to zero and the right electrode voltage to V_ds.
    Default: [0.5] * Volt
  • energies (list of PhysicalQuantity of type energy) – A list of the energies for which the TransmissionSpectrum at each voltage should be calculated.
    Default: Energy range that covers the bias window, plus \(30 k_B T\).
  • kpoints (MonkhorstPackGrid | RegularKpointGrid | AdaptiveGrid | list (size n_kpoints) of list (size 3) of float) – The k-points for which the TransmissionSpectrum at each voltage should be calculated. Note that the k-points must be in the same xy-plane. Set nc=1 for MonkhorstPackGrid and RegularKpointGrid.
    Default: MonkhorstPackGrid(na, nb) where (na, nb) is the sampling used for the self-consistent calculation.
  • kpoints_weights (list (size n_kpoints) of float) – The weight of each k-point for which the TransmissionSpectrum at each voltage should be calculated.
    Default: The weights corresponding to the MonkhorstPackGrid/RegularKpointGrid, or equal weights if the k-points are specified as a list.
  • self_energy_calculator (DirectSelfEnergy | RecursionSelfEnergy | SparseRecursionSelfEnergy | KrylovSelfEnergy) – The SelfEnergyCalculator to be used for the TransmissionSpectrum calculation at each voltage.
    Default: RecursionSelfEnergy(storage_strategy=NoStorage())
  • energy_zero_parameter (AverageFermiLevel | AbsoluteEnergy) – The choice for the zero of energy to be used for the TransmissionSpectrum calculation at each voltage.
    Default: AverageFermiLevel
  • infinitesimal (PhysicalQuantity of type energy) – Small positive energy, used to move the TransmissionSpectrum calculation at each voltage away from the real axis. This is only relevant for recursion-style self-energy calculators.
    Default: 1.0e-6 * eV
  • log_filename_prefix (str | LogToStdOut) – Filename prefix for the logging output of the calculations, each to be stored in a separate file. If LogToStdOut, all logging will instead be sent to standard output.
    Default: 'iv_characteristics_'
  • number_of_processes_per_task (int) – The number of processes that will be used to execute each task. If this value is greater than or equal to the total number of available processes, each single task will be executed collaboratively over all processes. Otherwise, a delegator-worker scheme is used; in this case, one process will be set aside as the delegator, and the remaining ones will be grouped into workers and execute tasks concurrently.
    Default: All available processes execute each task collaboratively.
addAnalysis(gate_source_voltages, drain_source_voltages, analysis_type, analysis_arguments=None)

Add an analysis object to the IVCharacteristics study for given gate-source and drain-source voltage pair.

This method can be invoked several times; in this case, multiple analysis objects will be added to the same voltage pairs.

Parameters:
  • gate_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of gate-source voltages for which the analysis should be appended. Each voltage in the list needs to be already present.
  • drain_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of drain-source voltages for which the analysis should be appended. Each voltage in the list needs to be already present.
  • analysis_type (An Analysis type supported by IVCharacteristics.) – The type of the analysis object to be calculated.
  • analysis_arguments (A dictionary of valid arguments for an analysis object of the type specified in analysis_type.) – Dictionary of optional arguments to be passed to the analysis object. The configuration arguments must not be present.
    Default: An empty dictionary.
addProjectedLocalDensityOfStates(gate_source_voltages, drain_source_voltages, energies=None)

Add a ProjectedLocalDensityOfStates analysis object to the IVCharacteristics study for a given gate-source and drain-source voltage pair. The input paramenters are taken from the IVCharacteristics study.

Parameters:
  • gate_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of gate-source voltages for which the analysis should be appended. Each voltage in the list needs to be already present.
  • drain_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of drain-source voltages for which the analysis should be appended. Each voltage in the list needs to be already present.
  • energies (list of PhysicalQuantity of type energy) – The energies for which the density of states should be calculated.
    Default: The value given in the constructor of the study object, if not None; numpy.linspace(-2.0, 2.0, 200) * eV otherwise.
addVoltages(gate_source_voltages=None, drain_source_voltages=None)

Add a list of gate-source and/or drain-source voltage points to the IVCharacteristics study. These will be calculated the next time the object is updated.

Parameters:
calculatedVoltages()
Returns:The list of gate-source and drain-source voltage pairs for which a transmission spectrum has been calculated.
Return type:list of PhysicalQuantity of type voltage
configuration(gate_source_voltage, drain_source_voltage)

Retrieve the updated configuration for the given gate-source and drain-source voltages.

This result will only be available after the calculation ran successfully.

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
Returns:

The configuration associated with this voltage pair. If not available, returns None.

Return type:

DeviceConfiguration | None

configurationCalculator(gate_source_voltage, drain_source_voltage)

Retrieve the updated configuration’s calculator for the given gate-source and drain-source voltages.

This result will only be available after the calculation ran successfully.

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
Returns:

The calculator associated with this voltage pair. If not available, returns None.

Return type:

DeviceLCAOCalculator | DeviceSemiEmpiricalCalculator None

current(gate_source_voltage, drain_source_voltage, electrode_temperatures=None)

The current calculated from the TransmissionSpectrum analysis.

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
  • electrode_temperatures (list (size 2) of PhysicalQuantity of type temperature) – The electrode temperatures to be used in the current calculation.
    Default: The temperatures from the calculator.
Returns:

The calculated current for the required gate-source and drain-source voltages. If not available, returns None.

Return type:

PhysicalQuantity of type current | None

drainInducedBarrierLowering(threshold_current, high_drain_source_voltage, low_drain_source_voltage, min_subthreshold_current=None, max_subthreshold_current=None, range_min=None, range_max=None, converged_only=None, electrode_temperatures=None)

Calculate drain induced barrier lowering (DIBL). The threshold voltage is defined as the gate-source voltage for which the current has a user-defined value, evaluated at a high and a low source-drain voltage value.

The DIBL is calculated as the unitless ratio

\(DIBL = \frac{V_{TH}^{low} - V_{TH}^{high}}{V_{DS}^{high} - V_{DS}^{low}}\)

In order to obtain meaningful results, a current in the subthreshold regime must be specified.

Parameters:
  • threshold_current (PhysicalQuantity of type current) – The current for which the device is considered to be at the gate-source threshold.
  • high_drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage at the working point (i.e., the supply voltage).
  • low_drain_source_voltage (PhysicalQuantity of type voltage) – The low drain voltage used as reference. It needs to be a finite value close to 0.
  • min_subthreshold_current (PhysicalQuantity of type current) – The minimum value of current used to extract the subthreshold regime model.
    Default: threshold_current / 10
  • max_subthreshold_current (PhysicalQuantity of type current) – The minimum value of current used to extract the subthreshold regime model.
    Default: threshold_current * 10
  • range_min (PhysicalQuantity of type voltage) – The minimum gate-source voltage used for the processing. This parameter can be used to select the nmos-like or pmos-like section of the IV curve in bipolar devices.
    Default: No restriction.
  • range_max (bool) – The maximum gate-source voltage in the required range. This parameter can be used to select the nmos-like or pmos-like section of the IV curve in bipolar devices.
    Default: No restriction.
  • converged_only – Whether to only include data points which have converged.
    Default: True
  • electrode_temperatures (list (size 2) of PhysicalQuantity of type temperature) – The electrode temperatures to be used in the current calculation.
    Default: The temperatures from the calculator.
Returns:

The calculated drain induced barrier lowering.

Return type:

float

drainSourceSaturationVoltage(gate_source_voltage, range_min=None, range_max=None, converged_only=None, electrode_temperatures=None)

Calculate the drain-source saturation voltage for a given gate-source voltage. It is assumed that a transition to saturation regime occurs in the interval specified by range_min and range_max. The value is estimated by fitting the data to a Schichman-Hodges model (SPICE Mosfet model 1).

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage, for which the drain-source saturation voltage will be calculated.
  • range_min (PhysicalQuantity of type voltage) – The minimum drain-source voltage in the required range.
    Default: No restriction.
  • range_max (bool) – The maximum drain-source voltage in the required range.
    Default: No restriction.
  • converged_only – Whether to only include data points which have converged.
    Default: True
  • electrode_temperatures (list (size 2) of PhysicalQuantity of type temperature) – The electrode temperatures to be used in the current calculation.
    Default: The temperatures from the calculator.
Returns:

The calculated drain-source saturation voltage, fitted in the required range.

Return type:

PhysicalQuantity of type voltage

drainSourceVoltages()
Returns:The list of all calculated and not calculated drain-source voltages. Any drain-source voltage which has not yet been calculated will be calculated the next time the object is updated.
Return type:list of PhysicalQuantity of type voltage
energies()
Returns:The list of energies used for the TransmissionSpectrum calculation at each voltage.
Return type:list of PhysicalQuantity of type energy
energyZeroParameter()
Returns:The choice for the zero of energy used for the TransmissionSpectrum calculation at each voltage.
Return type:AverageFermiLevel | AbsoluteEnergy
filename()
Returns:The filename where the study object is stored.
Return type:str
gateRegions()
Returns:The list of indices of the metallic regions present in the configuration which the gate voltage is applied to.
Return type:list of int
gateSourceVoltages()
Returns:The list of all calculated and not calculated gate-source voltages. Any gate-source voltage which has not yet been calculated will be calculated the next time the object is updated.
Return type:list of PhysicalQuantity of type voltage
infinitesimal()
Returns:The small positive energy used to move the TransmissionSpectrum calculation at each voltage away from the real axis for the case of a recursion-style self-energy calculator.
Return type:PhysicalQuantity of type energy
isConverged(gate_source_voltage, drain_source_voltage)
Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
Returns:

Whether the calculator for the required gate-source and drain-source voltages has been converged. If not available, returns None.

Return type:

bool | None

kpoints()
Returns:The k-points used for the TransmissionSpectrum calculation at each voltage.
Return type:MonkhorstPackGrid | RegularKpointGrid | AdaptiveGrid | list (size n_kpoints) of list (size 3) of float
kpointsWeights()
Returns:The weight of each k-point used for the TransmissionSpectrum calculation at each voltage.
Return type:list (size n_kpoints) of float
logFilenamePrefix()
Returns:The filename prefix for the logging output of the study.
Return type:str | LogToStdOut
nlprint(stream=None)

Print a string containing an ASCII table useful for plotting the Study object.

Parameters:stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()
numberOfProcessesPerTask()
Returns:The number of processes to be used to execute each task. If None, all available processes should execute each task collaboratively.
Return type:int | None
objectId()
Returns:The name of the study object in the file.
Return type:str
onOffRatio(drain_source_voltage, off_gate_source_voltage, on_gate_source_voltage, converged_only=None, electrode_temperatures=None)

Calculate the on/off ratio for the available data points at a given drain-source voltage.

Parameters:
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage which determines the gate-source voltage/current data set from which the on/off ratio will be calculated.
    Default: The first drain-source voltage in the IVCharacteristics study.
  • off_gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage corresponding to the off state.
  • on_gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage corresponding to the on state.
  • converged_only – Whether to only include data points which have converged.
    Default: True
  • electrode_temperatures (list (size 2) of PhysicalQuantity of type temperature) – The electrode temperatures to be used in the current calculation.
    Default: The temperatures from the calculator.
Returns:

The calculated on/off ratio in the required range.

Return type:

float

removeAnalysis(gate_source_voltages, drain_source_voltages, analysis_type)

Remove an analysis object from the IVCharacteristics study for given gate-source and drain-source voltage pairs.

Note that if multiple analysis objects of the same type exist, they will all be removed.

Parameters:
  • gate_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of gate-source voltages for which the analysis object should be removed.
  • drain_source_voltages (PhysicalQuantity of type voltage | sequence of PhysicalQuantity of type voltage) – A list of drain-source voltages for which the analysis object should be removed.
  • analysis_type (An Analysis type supported by IVCharacteristics.) – The type of the analysis object to be removed.
removeDrainSourceVoltage(drain_source_voltage)

Remove a drain-source voltage from the IVCharacteristics study. All analysis objects corresponding to the given drain-source voltage will be removed.

Parameters:drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage which should be removed from the IVCharacteristics study.
removeGateSourceVoltage(gate_source_voltage)

Remove a gate-source voltage from the IVCharacteristics study. All analysis objects corresponding to the given gate-source voltage will be removed.

Parameters:gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage which should be removed from the IVCharacteristics study.
results(gate_source_voltage, drain_source_voltage, result_types=None)

Retrieve all results of the specified types for the given gate-source and drain-source voltages.

Only the results of calculations that ran successfully are available.

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
  • result_types (list) – A list of types which should be included in the returned quantity. For example, result_types=[DeviceConfiguration] will only return instances of DeviceConfiguration. If not specified, all results are returned.
Returns:

The available results from calculations associated with this voltage pair. If none available, it returns an empty list.

Return type:

list

selfEnergyCalculator()
Returns:The SelfEnergyCalculator used for the TransmissionSpectrum calculation at each voltage.
Return type:DirectSelfEnergy | RecursionSelfEnergy | SparseRecursionSelfEnergy | KrylovSelfEnergy
setCalculator(gate_source_voltage, drain_source_voltage, calculator, initial_state=None)

Set a new calculator and initial state for an existing gate-source and drain-source voltage pair.

The next call to update() will recalculate the configuration, transmission spectrum and any additional Analysis objects for this gate-source and drain-source voltage pair.

Parameters:
setTransmissionSpectrumArguments(gate_source_voltage, drain_source_voltage, transmission_arguments=None)

Set new arguments for the TransmissionSpectrum object for an existing gate-source and drain-source voltage pair.

The next call to update() will recalculate the transmission spectrum for this gate-source and drain-source voltage pair.

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
  • transmission_arguments (A dictionary of valid arguments for a TransmissionSpectrum object.) – Dictionary of arguments to be passed to the TransmissionSpectrum object. The configuration argument must not be present.
    Default: An empty dictionary.
subthresholdSlope(drain_source_voltage=None, range_min=None, range_max=None, converged_only=None, electrode_temperatures=None)

Calculate the subthreshold slope for the available data points at a given drain-source voltage.

Note that by default the entire range is used for the fitting, which might give an unphysical result. It is strongly recommended for the user to define a physical range in which to perform the fitting.

Parameters:
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage which determines the gate-source voltage/current data set from which the subthreshold slope will be calculated.
  • range_min (PhysicalQuantity of type voltage) – The minimum gate-source voltage in the required range.
    Default: No restriction.
  • range_max (bool) – The maximum gate-source voltage in the required range.
    Default: No restriction.
  • converged_only – Whether to only include data points which have converged.
    Default: True
  • electrode_temperatures (list (size 2) of PhysicalQuantity of type temperature) – The electrode temperatures to be used in the current calculation.
    Default: The temperatures from the calculator.
Returns:

The calculated subthreshold slope, fitted in the required range. Units are mV/dec.

Return type:

float

transconductance(drain_source_voltage, gate_source_voltage, converged_only=None, electrode_temperatures=None)

Calculate the transconductance, defined as:

\(g_m = \partial I_{D} / \partial V_{GS}\)

at a given drain-source voltage, where \(I_{D}\) is the drain current and \(V_{GS}\) the gate-source voltage. The transconductance is evaluated around the gate-source voltage specified in input. The derivative is calculated by finite difference, using the available currents.

Parameters:
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage at which the transconductance is calculated,
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage at which the transconductance is evaluated.
  • converged_only – Whether to only include data points which have converged.
    Default: True
  • electrode_temperatures (list (size 2) of PhysicalQuantity of type temperature) – The electrode temperatures to be used in the current calculation.
    Default: The temperatures from the calculator.
Returns:

The value of transconductance at the given gate-source and drain-source voltage.

Return type:

PhysicalQuantity of type current / voltage.

transmissionSpectrum(gate_source_voltage, drain_source_voltage)

Retrieve the TransmissionSpectrum for the updated configuration for the given gate-source and drain-source voltages.

This result will only be available after the transmission spectrum calculation ran successfully.

Additional TransmissionSpectrum analysis objects added with addAnalysis will be ignored.

Parameters:
  • gate_source_voltage (PhysicalQuantity of type voltage) – The gate-source voltage.
  • drain_source_voltage (PhysicalQuantity of type voltage) – The drain-source voltage.
Returns:

The transmission spectrum associated with this voltage pair. If not available, returns None.

Return type:

TransmissionSpectrum | None

update()

Run the calculations for the study.

Notes

Note

Study objects behave differently from analysis objects. See the Study object overview for more details.

The IVCharacteristics object can be used to perform a detailed study on a device. The object is initialized by specifying the DeviceConfiguration to study, a list of gate-source and drain-source voltages over which to scan, and the parameters needed to perform a TransmissionSpectrum calculation for each voltage.

The IVCharacteristics object supports configurations with an arbitrary number of gates, defined as metallic regions in the DeviceConfiguration. During the calculation the gate voltage is set equally on the gate regions specified by the gate_regions parameter; other metallic regions present in the configuration will not be affected. It is also possible to use IVCharacteristics for a DeviceConfiguration without any gate. In this case, gate_regions and gate_source_voltages can be left unspecified. A dummy value gate_source_voltages=0.0*Volt is then assumed.

After performing the calculation, the results can be retrieved by calling a number of methods:

  • calculatedVoltages
  • configuration
  • configurationCalculator
  • current
  • isConverged
  • results
  • transmissionSpectrum

There are also a number of post-processing methods available, which will perform their analysis on the available results:

  • onOffRatio
  • subthresholdSlope
  • drainSourceSaturationVoltage
  • drainInducedBarrierLowering
  • transconductance

The user is free to add gate-source and drain-source voltage points to the study by calling addVoltages. It is also possible to specify additional Analysis objects to be calculated on the configuration alongside the TransmissionSpectrum for each voltage point (or only selected points); this can be done by calling addAnalysis. The results for these additional Analysis calculations can be retrieved by calling the results method.

Finally, existing gate voltage points can be modified by calling a number of methods:

  • setCalculator
  • setTransmissionSpectrumArguments

Calling update after one of these methods will recalculate any point which is no longer up to date, including any additional Analysis objects present.

Tip

See the tutotial Electrical characteristics of devices using the IVCharacteristics study object for an example of usage of IVCharacteristics study on a realistic device and a demonstration of the graphical user interface.

Usage Example

This example shows how to perform a simple study of a gated carbon nanotube system and display a summary of results.

First, we define the device system with metallic regions to act as the gate. This is given in the following file (for clarity, we split this from the IVCharacteristics study itself):

iv_characteristics_device_setup.py

We can now proceed with the study. Note that this example is only intended to give an overview of the capabilities of IVCharacteristics.

# Setup the device configuration.
device_configuration = nlread('iv_characteristics_device_setup.py', DeviceConfiguration)[0]

# -------------------------------------------------------------
# IVCharacteristics study
# -------------------------------------------------------------
# Initialize the IV characteristics study with 11 gate-source
# and a single drain-source voltage points.
iv_characteristics = IVCharacteristics(
    configuration=device_configuration,
    filename='ivcharacteristics.hdf5',
    object_id='graphene_ribbon',
    gate_regions=[0, 1],
    gate_source_voltages=numpy.linspace(-1, 1, 11)*Volt,
    drain_source_voltages=0.1*Volt,
    log_filename_prefix='ivcharacteristics_',
    )

# Run update to calculate the initial points.
iv_characteristics.update()

# Print the iv_characteristics report.
nlprint(iv_characteristics)

# Add a new gate-source voltage point.
iv_characteristics.addVoltages(gate_source_voltages=1.5 * Volt)

# Call update again to calculate the new point.
iv_characteristics.update()

# Calculate the on/off ratio at Vds=0.1*Volt and print it out.
on_off_ratio = iv_characteristics.onOffRatio(
    0.1 * Volt,
    -1.0 * Volt,
    1.0 * Volt)
print("On/off ratio:", on_off_ratio)

# Add an additional DeviceDensityOfStates calculation to two of the gate voltage
# points. We also specify custom arguments for this object.
analysis_arguments = {'energies': numpy.arange(-1.0, 1.0, 0.01) * eV}
iv_characteristics.addAnalysis(
    [0.2, 0.4] * Volt,
    0.1 * Volt,
    DeviceDensityOfStates,
    analysis_arguments
    )

# Update again.
iv_characteristics.update()

# Get the calculated objects for a particular voltage value.
gate_source_voltage = 0.2 * Volt
drain_source_voltage = 0.1 * Volt
configuration = iv_characteristics.configuration(
    gate_source_voltage,
    drain_source_voltage)
calculator = iv_characteristics.configurationCalculator(
    gate_source_voltage,
    drain_source_voltage)
transmission_spectrum = iv_characteristics.transmissionSpectrum(
    gate_source_voltage,
    drain_source_voltage)
device_dos = iv_characteristics.results(
    gate_source_voltage,
    drain_source_voltage,
    [DeviceDensityOfStates])[0]

# Set a new initial state for this gate voltage value.
restart_gate_voltage = -0.2 * Volt
restart_configuration = iv_characteristics.configuration(
    restart_gate_voltage,
    drain_source_voltage)
iv_characteristics.setCalculator(
    gate_source_voltage,
    drain_source_voltage,
    calculator,
    restart_configuration)

# Also set some new arguments for the transmission spectrum.
new_arguments = {'energies': numpy.linspace(-2, 2, 21)*eV}
iv_characteristics.setTransmissionSpectrumArguments(
    gate_source_voltage,
    drain_source_voltage,
    new_arguments)

# Running update will calculate this gate voltage point again.
iv_characteristics.update()

# Print again the iv_characteristics report.
nlprint(iv_characteristics)

iv_characteristics.py

Here is the resulting output from the last nlprint command:

+------------------------------------------------------------------------------+
| IVCharacteristics Report                                                     |
+------------------------------------------------------------------------------+
|       Gate-source      Drain-source      Drain-source                        |
|        voltage (V)       voltage (V)       current (A)                       |
+------------------------------------------------------------------------------+
|          -1.000000          0.100000      1.432517e-13                       |
|          -0.800000          0.100000      7.487856e-13                       |
|          -0.600000          0.100000      7.141447e-12                       |
|          -0.400000          0.100000      1.520051e-10                       |
|          -0.200000          0.100000      7.014625e-09                       |
|           0.000000          0.100000      1.632069e-07                       |
|           0.200000          0.100000      5.286407e-07                       |
|           0.400000          0.100000      1.376396e-07                       |
|           0.600000          0.100000      1.431255e-07                       |
|           0.800000          0.100000      1.121649e-07                       |
|           1.000000          0.100000      1.175979e-07                       |
|           1.500000          0.100000      9.040193e-08                       |
+------------------------------------------------------------------------------+