# ElectronLocalizationFunction¶

class ElectronLocalizationFunction(configuration)

A class for calculating the electron localization function for a configuration.

Parameters: configuration (MoleculeConfiguration | BulkConfiguration | DeviceConfiguration | SurfaceConfiguration) – The configuration for which the electron localization function should be calculated.
axisProjection(projection_type=None, axis=None, spin=None, projection_point=None, coordinate_type=None)

Project a 3D Grid onto one of the cartesian axes.

Parameters: projection_type ('sum' | 'average' | 'avg' | 'line') – Which type of projection to perform. Default: 'sum' axis ('a' | 'b' | 'c') – Onto which axis to project the data. Default: 'c' spin (Spin.Up | Spin.Down | Spin.RealUpDown | Spin.ImagUpDown) – Which spin component to project. Default: Spin.Up projection_point (numpy.array) – Coordinates of the point through which to take a lineout. Default: numpy.array([0.0, 0.0, 0.0]) A 2-tuple of 1D numpy.arrays containing the axis values and the projected data. tuple of numpy arrays
derivatives(x, y, z, spin=None)

Calculate the derivative in the point (x, y, z).

Parameters: x (PhysicalQuantity of type length.) – The Cartesian x coordinate. y (PhysicalQuantity of type length.) – The Cartesian y coordinate. z (PhysicalQuantity of type length.) – The Cartesian z coordinate. spin (Spin.All | Spin.Up | Spin.Down | Spin.RealUpDown | Spin.ImagUpDown | Spin.UpUp | Spin.DownDown) – The spin component to project on. Default: Spin.All The gradient at the specified point for the given spin. For Spin.All, a tuple with (Spin.Up, Spin.Down, Spin.RealUpDown, Spin.ImagUpDown) components is returned. PhysicalQuantity of type unitless
evaluate(x, y, z, spin=None)

Evaluate in the point (x, y, z).

Parameters: x (PhysicalQuantity of type length) – The Cartesian x coordinate. y (PhysicalQuantity of type length) – The Cartesian y coordinate. z (PhysicalQuantity of type length) – The Cartesian z coordinate. spin (Spin.Up | Spin.Down | Spin.RealUpDown | Spin.All | Spin.ImagUpDown | Spin.UpUp | Spin.DownDown) – The spin component to project on. Default: The spin this object was calculated for. The value at the specified point for the given spin. For Spin.All, a tuple with (Spin.Up, Spin.Down, Spin.RealUpDown, Spin.ImagUpDown) components is returned. PhysicalQuantity of type unitless
gridCoordinate(i, j, k)

Return the coordinate for a given grid index.

Parameters: i (int) – The grid index in the A direction. j (int) – The grid index in the B direction. k (int) – The grid index in the C direction. The Cartesian coordinate of the given grid index. PhysicalQuantity of type length.
metatext()
Returns: The metatext of the object or None if no metatext is present. str | unicode | None
nlprint(stream=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()
primitiveVectors()
Returns: The primitive vectors of the grid. PhysicalQuantity of type length.
scale(scale)

Scale the field with a float.

Parameters: scale (float) – The parameter to scale with.
setMetatext(metatext)

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.
shape()
Returns: The number of grid points in each direction. tuple of three int.
spin()
Returns: The spin the electron localization function is calculated for, always Spin.All. Spin.All
spinProjection(spin=None)

Query method to get a spin component of the ElectronLocalizationFunction object.

Parameters: spin (Spin.Up | Spin.Down | Spin.RealUpDown | Spin.ImagUpDown) – The spin component for which to return the electron localization function object. Default: Spin.Up
toArray()
Returns: The values of the grid as a numpy array slicing off any units. numpy.array
unit()
Returns: The unit of the data in the grid. A physical unit.
unitCell()
Returns: The unit cell of the grid. PhysicalQuantity of type length.
volumeElement()
Returns: The volume element of the grid represented by three vectors. PhysicalQuantity of type length.

## Usage Examples¶

Calculate the electron localization function and save it to a file:

# Set up configuration
molecule_configuration = MoleculeConfiguration(
elements=[Nitrogen, Hydrogen, Hydrogen, Hydrogen],
cartesian_coordinates=[[ 6.13508 ,  5.790587,  2.75    ],
[ 6.13508 ,  6.73176 ,  2.336663],
[ 6.95016 ,  5.32    ,  2.336663],
[ 5.32    ,  5.32    ,  2.336663]]*Angstrom
)

# Define the calculator
calculator = LCAOCalculator()
molecule_configuration.setCalculator(calculator)

# Calculate and save the effective potential
elf = ElectronLocalizationFunction(molecule_configuration)
nlsave('results.nc', molecule_configuration)
nlsave('results.nc', elf)


nh3_elf.py

For examples on working with 3D grids, see HartreePotential and ElectronDensity.

## Notes¶

 [BE90] A. D. Becke and K. E. Edgecombe. A simple measure of electron localization in atomic and molecular systems. J. Chem. Phys., 1990.