class ChemicalPotential(configuration=None)

A class for representing the ChemicalPotential.

Parameters:configuration (MoleculeConfiguration | BulkConfiguration | DeviceConfiguration | SurfaceConfiguration) – The configuration for which the chemical potential should be calculated.

Get the chemical potential(s).

Parameters:spin (Spin.Up | Spin.Down | Spin.All) – The spin channel the chemical potential should be returned for. Must be either Spin.Up, Spin.Down or Spin.All. The chemical potential will only depend on spin when the calculation has been done with a fixed spin moment. In that case if Spin.All is chosen a list of both chemical potentials is returned.
Default: Spin.All
Returns:The chemical potential. For a device the chemical potentials of the electrodes are returned.
Return type:PhysicalQuantity of type energy
Returns:The metatext of the object or None if no metatext is present.
Return type:str | unicode | None

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

Parameters:stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()

Set a given metatext string on the object.

Parameters:metatext (str | unicode | None) – The metatext string that should be set. A value of “None” can be given to remove the current metatext.

Usage Examples

Calculate the chemical potential of a bulk system and print the result:

chemical_potential_object = ChemicalPotential(bulk_configuration)
fermi_level = chemical_potential_object.evaluate()[0]
print 'Fermi level = ', fermi_level.inUnitsOf(eV), ' eV'

Calculate the chemical potentials of a device system and print the results:

chemical_potential_object = ChemicalPotential(device_configuration)
left_chemical_potential = chemical_potential_object.evaluate()[0]
right_chemical_potential = chemical_potential_object.evaluate()[1]
print 'left chemical potential = ', left_chemical_potential.inUnitsOf(eV), ' eV'
print 'right chemical potential = ', right_chemical_potential.inUnitsOf(eV), ' eV'