class chemtools.toolbox.conceptualglobal.RationalGlobalTool(energy_zero, energy_plus, energy_minus, n0)[source]

Class of global conceptual DFT reactivity descriptors based on the rational energy model.

The energy is approximated as a 3-parameter rational function of the number of electrons,

\[E(N) = \frac{a_0 + a_1 N}{1 + b_1 N}\]

Given \(E(N_0 - 1)\), \(E(N_0)\) and \(E(N_0 + 1)\) values, the unknown parameters of the energy model are obtained by interpolation.

The \(n^{\text{th}}\)-order derivatives of the rational energy model with respect to the number of electrons at fixed external potential is given by:

\[\left(\frac{\partial^n E}{\partial N^n} \right)_{v(\mathbf{r})} = \frac{b_1^{n - 1} (a_1 - a_0 b_1) n!}{(1 + b_1 N)^{2n}}\]

Initialize class.

  • energy_zero (float) – Energy of the \(N_0\) -electron system, i.e. \(E(N_0)\).
  • energy_plus (float) – Energy of the \((N_0 + 1)\) -electron system, i.e. \(E(N_0 + 1)\).
  • energy_minus (float) – Energy of the \((N_0 - 1)\) -electron system, i.e. \(E(N_0 - 1)\).
  • n0 (float) – Reference number of electrons, i.e. \(N_0\).

Parameter \(a_0\), \(a_1\) and \(b_1\) of energy model.


Return the energy model \(E(N)\) evaluated for the specified number of electrons.

Parameters:n_elec (float) – Number of electrons, \(N_{\text{elec}}\).
energy_derivative(n_elec, order=1)[source]

Return the \(n^{\text{th}}\)-order derivative of energy w.r.t. the number of electrons.

This returns the \(n^{\text{th}}\)-order derivative of energy model \(E(N)\) w.r.t. to the number of electrons, at fixed chemical potential, evaluated for the specified number of electrons.

\[\left. \left(\frac{\partial^n E}{\partial N^n} \right)_{v(\mathbf{r})}\right|_{N = N_{\text{elec}}}\]
  • n_elec (float) – Number of electrons, \(N_{\text{elec}}\).
  • order (int, default=1) – The order of derivative denoted by \(n\) in the formula.


For \(N_{\text{elec}} = N_0\) the first, second and higher order derivatives are equal to the BaseGlobalTool.chemical_potential, BaseGlobalTool.chemical_hardness and BaseGlobalTool.hyper_hardness, respectively.