horton_part.periodic.core module

Shared real-space engine for periodic stockholder partitioning.

class InterpolatedProAtom(number, states)

Bases: object

A Hirshfeld-I pro-atom interpolated between integer-charge states.

__init__(number, states)
cutoff(density_cutoff, include_inactive=False)
evaluate(radii)
interpolation_info(charge=None)
property parameter_labels
property parameters
property population
class LinearProAtom(shapes, coefficients, activation_scale)

Bases: object

A nonnegative linear expansion in normalized radial shapes.

__init__(shapes, coefficients, activation_scale)
basis_values(radii)
cutoff(density_cutoff, include_inactive=True)
evaluate(radii)
fit(density, radii, weights, threshold, maxiter, density_cutoff)

Fit nonnegative coefficients to an AIM density with a population constraint.

fit_basis(density, basis, weights, threshold, maxiter, density_cutoff)

Fit coefficients using fixed basis functions already evaluated on a grid.

property parameter_labels
property parameters
property population
class MBISProAtom(number)

Bases: object

Minimal Slater-shell pro-atom used by periodic MBIS.

__init__(number)
cutoff(density_cutoff, include_inactive=False)
evaluate(radii)
static evaluate_shell(population, exponent, radii)

Evaluate one normalized Slater shell.

fit(density, radii, weights, threshold, density_cutoff)
property parameter_labels
property parameters
property population
static shell_cutoff(population, exponent, density_cutoff)

Return the fixed local-grid radius for one shell.

static shell_derivatives(population, exponent, radii)

Return derivatives of one shell with respect to population and exponent.

class PeriodicPartitionResult(method, charges, populations, grid_populations, model_charges, model_populations, parameters, parameter_labels, promolecule, aim_weights, iterations, converged, history, reconstruction_error, solver='fixed')

Bases: object

Results returned by a periodic stockholder calculation.

__init__(method, charges, populations, grid_populations, model_charges, model_populations, parameters, parameter_labels, promolecule, aim_weights, iterations, converged, history, reconstruction_error, solver='fixed')
aim_weights: Optional[ndarray]
charges: ndarray
converged: bool
grid_populations: ndarray
history: ndarray
iterations: int
method: str
model_charges: ndarray
model_populations: ndarray
parameter_labels: tuple
parameters: tuple
populations: ndarray
promolecule: ndarray
reconstruction_error: float
solver: str = 'fixed'
to_dict()

Return arrays suitable for an NPZ result file.

class PeriodicStockholder(coordinates, numbers, grid, density, models, pseudo_numbers=None, density_cutoff=1e-10)

Bases: object

Common stockholder iteration on a grid supporting periodic local grids.

__init__(coordinates, numbers, grid, density, models, pseudo_numbers=None, density_cutoff=1e-10)
promolecule(include_inactive=False)
run_fixed(method, return_weights=True)
run_hirshfeld_i(threshold, maxiter, mixing=0.5, return_weights=True)
run_iterative(method, threshold, inner_threshold, maxiter, inner_maxiter, linear, return_weights=True, solver='iterative')
run_self_consistent_linear(method, threshold, maxiter, return_weights=True)

Optimize fixed-basis coefficients with the global SC fixed-point equations.

run_self_consistent_mbis(threshold, maxiter, return_weights=True)

Optimize MBIS shell populations and exponents by moment updates.

run_variational_linear(method, threshold, maxiter, return_weights=True)

Optimize all linear pro-atom coefficients through the global extended KLD.

run_variational_mbis(threshold, maxiter, return_weights=True)

Optimize all MBIS shells globally on fixed per-shell local grids.

stockholder_populations(promolecule)