FluctuatingChargeResponse
For a model whose charges minimize E(q) = chi . q + q . J q / 2 subject to a fixed total
charge, the induced dipole and the dipole polarizability follow from the electronegativities
chi = dE/dq and hardness matrix J = d^2E/dq^2. Given those (and their nuclear-coordinate
derivatives), expand returns the coordinate expansions of both.
@classmethod
mu_factor(cls, total_charge, X, J_inv):
@classmethod
dipole_factor_expansion(cls, coords, total_charge, X, J_inv):
@classmethod
polarizability_factor(cls, coords, J_inv):
@classmethod
expand(cls, total_charge, coords, potential_by_charges_by_coords):
total_charge:Anythe total charge
coords:Anynuclear coordinates,
(..., natoms, 3)potential_by_charges_by_coords:Any[[E, dE/dx, ...], [chi, dchi/dx, ...], [J, dJ/dx, ...]](charge-derivative order outermost, coordinate-derivative order innermost):returns:list[list[np.ndarray]][dipole_expansion, polarizability_expansion](each a list over coordinate orders), truncated to the available charge-derivative orders
@classmethod
distorted_harmonic_polarizabilities(cls, charges, dipole_expansion, coords, hessians):