# 3.7.1. horton.meanfield.bond_order – Generic implementation of bond orders for mean-field wavefunctions¶

In the context bond orders and self-electron delocatization indices (SEDI’s) are always one an the same thing. For two AIM overlap perators, $$S_A$$ and $$S_B$$, the bond order is defined as:

$\text{BO}_{AB} = 2 \mathrm{Tr}\left[ (D^{\alpha} S^A)(D^{\alpha} S^B) + (D^{\beta} S^A)(D^{\beta} S^B) \right]$

where $$D^{\alpha}$$ and $$D^{\beta}$$ are the density matrices of the $$\alpha$$ and $$\beta$$ electrons, respectively. A related quantity is the valence of an atom. It is defined as:

$V_A = 2 N_A - \mathrm{Tr}\left[ (D S^A)(D S^A) \right]$

where $$D$$ is the sum of the $$\alpha$$ and $$\beta$$ electron density matrices, and $$N_A$$ is the population of atom $$A$$. The free valence is defined as:

$F_A = V_A - \sum_{B \neq A} \text{BO}_{AB}$
horton.meanfield.bond_order.compute_bond_orders_cs(dm_alpha, operators)

Compute bond orders, valences and free valences (closed-shell case)

Arguments:

dm_alpha
The density matrix of the alpha electrons
operators
A list of one-body operators.

Returns:

bond_orders
A symmetric N by N matrix with bond orders.
valences
A vector with atomic valences
free_valences
A vector with atomic free valences
horton.meanfield.bond_order.compute_bond_orders_os(dm_alpha, dm_beta, operators)

Compute bond orders, valences and free valences (open-shell case)

Arguments:

dm_alpha
The density matrix of the alpha electrons
operators
A list of one-body operators.

Returns:

bond_orders
A symmetric N by N matrix with bond orders.
valences
A vector with atomic valences
free_valences
A vector with atomic free valences