QuadratureProjectionIntegrals#

class abtem.integrals.QuadratureProjectionIntegrals(parametrization='lobato', cutoff_tolerance=0.0001, taper=0.85, integration_step=0.02, quad_order=8)[source]#

Bases: FieldIntegrator

Projection integration plan for calculating finite projection integrals based on Gaussian quadrature rule.

Parameters:
  • parametrization (str or Parametrization, optional) – The potential parametrization describing the radial dependence of the potential. Default is ‘lobato’.

  • cutoff_tolerance (float, optional) – The error tolerance used for deciding the radial cutoff distance of the potential [eV / e]. Default is 1e-3.

  • taper (float, optional) – The fraction from the cutoff of the radial distance from the core where the atomic potential starts tapering to zero. Default is 0.85.

  • integration_step (float, optional) – The step size between integration limits used for calculating the integral table. Default is 0.02.

  • quad_order (int, optional) – Order of quadrature integration passed to scipy.integrate.fixed_quad. Default is 8.

__init__(parametrization='lobato', cutoff_tolerance=0.0001, taper=0.85, integration_step=0.02, quad_order=8)[source]#

Methods

__init__([parametrization, ...])

copy()

Make a copy.

cutoff(symbol)

Radial cutoff of the potential for the given chemical symbol.

get_integral_table(symbol, sampling)

Build table of projection integrals of the radial atomic potential.

integrate_on_grid(atoms, a, b, gpts, sampling)

Integrate radial potential between two limits at the given 2D positions on a grid.

Attributes

cutoff_tolerance

The error tolerance used for deciding the radial cutoff distance of the potential [eV / e].

finite

True indicates that the created projection integrators are implemented only for infinite potential projections.

integration_step

The step size between integration limits used for calculating the integral table.

parametrization

The potential parametrization describing the radial dependence of the potential.

periodic

True indicates that the created projection integrators are implemented only for periodic potentials.

quad_order

Order of quadrature integration.

tables

copy()#

Make a copy.

cutoff(symbol)[source]#

Radial cutoff of the potential for the given chemical symbol.

Return type:

float

property cutoff_tolerance: float#

The error tolerance used for deciding the radial cutoff distance of the potential [eV / e].

property finite: bool#

True indicates that the created projection integrators are implemented only for infinite potential projections.

get_integral_table(symbol, sampling)[source]#

Build table of projection integrals of the radial atomic potential.

Parameters:
  • symbol (str) – Chemical symbol to build the integral table.

  • inner_limit (float, optional) – Smallest radius from the core at which to calculate the projection integral [Å].

Returns:

ProjectionIntegralTable

Return type:

projection_integral_table

integrate_on_grid(atoms, a, b, gpts, sampling, device='cpu')[source]#

Integrate radial potential between two limits at the given 2D positions on a grid. The integration limits are only used when the integration method is finite.

Parameters:
  • positions (np.ndarray) – 2D array of xy-positions of the centers of each radial function [Å].

  • a (np.ndarray) – Lower integration limit of the pr ojection integrals along z for each position [Å]. The limit is given relative to the center of the radial function.

  • b (np.ndarray) – Upper integration limit of the projection integrals along z for each position [Å]. The limit is given relative to the center of the radial function.

  • gpts (two int) – Number of grid points in x and y describing each slice of the potential.

  • sampling (two float) – Sampling of the potential in x and y [1 / Å].

  • device (str, optional) – The device used for calculating the potential, ‘cpu’ or ‘gpu’. The default is determined by the user configuration file.

Return type:

ndarray

property integration_step: float#

The step size between integration limits used for calculating the integral table.

property parametrization#

The potential parametrization describing the radial dependence of the potential.

property periodic: bool#

True indicates that the created projection integrators are implemented only for periodic potentials.

property quad_order#

Order of quadrature integration.