class chemtools.toolbox.conceptualglobal.GeneralGlobalTool(expr, n0, n_energies, n_symbol=None, n0_symbol=None, guess=None, opts=None)[source]

Class of global conceptual DFT reactivity descriptors based on the user-specified energy model.

The energy model is approximated as a symbolic function of the number of electrons, and the unknown parameters are obtained by interpolating to the given values of energy; i.e. the number of parameters in the model should equal the number of given energy values and the corresponding number of electrons.

The \(n^{\text{th}}\)-order derivative of the symbolic energy model with respect to the number of electrons at fixed external potential is calculated symbolically.

Initialize class.

  • expr (sp.Exp) – The energy expression representing the dependence of energy on the number of electrons.
  • n0 (float) – Reference number of electrons, i.e. \(N_0\).
  • n_energies (dict) – The energy values of expr at different electron-numbers. The dict has int (electron-number) keys, float (energy) values.
  • n_symbol (sp.Symbol, default=sp.symbols('N')) – The symbol in expr that represents the number of electrons.
  • n0_symbol (sp.Symbol, optional) – The symbol in expr that represents the electron-number at which to evaluate expr. If not specified, assume that it is already expressed numerically in expr.
  • guess (dict, optional) – Guesses at the values of the parameters of expr. The dict has sp.Symbol keys, float values.
  • opts (dict, optional) – Optional keyword arguments to pass to the scipy.optimize.root() solver that is used to solve for the parameters in the model.

Parameter dictionary of energy model.


Symbol used to denote the number of electrons.


Energy expression as a function of number of electrons, \(E(N)\).


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.