Physical Chemistry: The Simple Hückel Method (Part V)

In the previous four parts of this series of articles on the SHM (the links to the other parts are reported at the end of the article), we learned how to apply the Hückel method to conjugated linear and cyclic molecules containing only carbon atoms. However, an unsaturated molecular system can contain hetero atoms that can conjugate their electrons. The contribution of different theoretical chemists has extended the method by including semiempirical terms for the overlapping integrals that consider the presence of non-carbon atoms in the conjugated system. This effort has been summarized by the American chemist A. Streitwieser providing a set of parameters to approximate both Columb and bond integrals in the Hückel determinant [1]. The derivation of these parameters has been discussed in detail by Streiweiser [2] or by Lowe [2]. This article will teach us how to use these parameters to build up the Hückel determinant for this conjugated molecular system.


TABLE I: The extended set of parameters for molecules containing heteroatoms.

In Table I, a set of parameters for heteroatoms is listed. The parameter h is called electronegativity parameter, since it can be thought as a differentiating among different atoms in term of electronegativity differences and it is tabulated in the second column. The third column indicates the type of bond involving the heteroatom in the electronic state indicated by the symbol in column one. The type of bond affect the resonance integral by an amount given by the bond parameter k, listed in the third column.In addition, In addition, Streitweiser recommends a distinction between single, double and intermediated C-C bonds using the value of k_s = 0.9, k_i=1.0, and k_d=1.1.

The values of h and k are used to correct the value of \alpha and \beta in the original Hückel determinat as

\alpha '=\alpha+h\beta

\beta '=k\beta

Methyl groups attached to conjugated system can also be incorporated in the HMO method. There are threee different way  

  • Inductive method (h <0) electron from methyl group. In this approach, no center for the methyl group is added to the Hückel matrix but the effect is accounted on the conjugated atom bonded to it.
  • Heteroatom model. In this case, the methyl group is considered as an additional center with 2 electrons to be added to the Hückel matrix.
  • Conjugative model. In this case, also hydrogens are considered and an two additional center are added to the Hückel matrix.

Let see how applying the heteroatom parameters using the two typical exemples but before we need to extend our computational tools to deal with the calculation of large determinants.

A SHM solver using Python language

In the previous articles of this series, I have shown some simple programs in the Awk language to solve particular cases of linear and cyclic aromatic compounds. In general, we need to solve the determinantal equation to obtain both the eigenvalues (energy values) and the eigenvectors (eigenfunction coefficients) of the system. Although it is not a problem to implement such a function in Awk (I will probably show it in one of the following articles on the awk language), it is faster and easier to use libraries already implemented in commonly used programming languages such as Python. Therefore, I will show a simple Python program that uses the NumPy library. You can implement the program a Jupyter notebool or running it from a terminal.

First you need to import the NumPy library as

# Simple Hückel Method in Python
# by Danilo Roccatano (2022)

import numpy as np
from numpy import linalg as LA

You need to set for the molecular system the following variables:

  • moleculeName: Name of the molecule.
  • numberAtoms: Number of atoms.
  • atomTypes[]: Insert the chemical symbols of atom in the molecule in this array. Use the same order as in the the Hückel matrix.
  • HM[,]: Hückel matrix. Order the atoms as in the atomTypes list using the value of beta to indicate the connected atoms belonging to the pi-system.

Shall we see as an example how to set the variables for the benzene molecule.

numberAtoms =6
atomTypes = np.array(['C','C','C','C','C','C'])

HM=np.array( [[0., 1., 0., 0., 0., 1.],
                [1., 0., 1., 0., 0., 0.],
                [0., 1., 0., 1., 0., 0.],
                [0., 0., 1., 0., 1., 0.],
                [0., 0., 0., 1., 0., 1.],
                [1., 0., 0., 0., 1., 0.]])

We can now use the NumPy library to find the eigenvaleus and eigenvectors of HM as follow.

# Calculate the eigenvalues and eigenvectors of the adjoint matrix

w, v = LA.eig(AdjM) # calculate eigenvalues and eigenvectors of the seculat determinant
# Sort the eigenvalue from the highest to the lowest
sort_index = np.argsort(w)

Note that the eigenvalues are sorted from the smaller to the highest. Finally, we print both the eigenvalues, the eigenvectors (eigenfunction coefficients) and the eigenvectors squared.

print ('ENERGY LEVELS\n')
for i in range(numberAtoms-1,-1,-1):
    if i<numberAtoms-1:
        if (abs(w[i]-w[i-1])>0.1):
            print('%5.2f    ------' % round(w[i],2))
            print('%5.2f    ------' %round(w[i],2), "      ", end="")
         print('%5.2f    ------' %round(w[i],2))         
for i in range(0,numberAtoms,1):   
        print('%3i: ' %(numberAtoms-i),end="")
        for j in range(1,numberAtoms-1):        
            print('%5.2f ' %(v[j,k]),end="")

for i in range(0,numberAtoms,1): 
        print('%3i: ' %(numberAtoms-i),end="")
        for j in range(numberAtoms-1,-1,-1):
            print('%5.2f ' %(v[j,k]*v[j,k]),end="")

Running the program will give the follwing result. Youc an compare it with the results obtained in the preovious lesson with the semplified methods.

The program can be improved furthr but, for the moment, we can use this basic general tool to calculate Hückel energies and orbitals for any type of molecular systems.

Example: The pyridine molecule

Pyridine is a basic heterocyclic organic compound structurally related to benzene with one of the carbon in the benzene structure is sustituted by a nitrogen (see figure below).The substance was discovered in 1849 by the Scottish scientist Thomas Tompson oil extracted from aniaml bonds. The pure pyridine is highly inflammable substance and for this reason Thomson called it pyridine from the greek pyr (πῦρ) meaning fire.

This is an aromatic molecules and the bonds between the nitrogen (see chemical formula on the right side of the figure above) can be considered of the type reported in the second row of the Table 1. We are going to use h=0.5 and k=1.2 as by Pilar [3]. The numbering the atom in the ring with the nitrogen in position 1, the value of the parameter x’ for the first diagonal element (1,1) of the matrix of the Hückel determinant is corrected as follow

x'=\frac{\alpha'-E}{\beta} = \frac{(\alpha-0.5\beta-E)}{\beta}=\frac{(\alpha-E}{\beta}+0.5=x+0.5

The off diagonal element for the C-N bond have value of k=1.2 [3]. The resulting Hückel determinant equation is given below.

Another example: The Pyrrole molecule

The molecule of Pyrrole is a 5 member aromatic heterocycle. In 1834, the chemistry F. F. Runge detected it in the coal tar but it was isolated only 23 years later, in 1857, from pyrolysate of bone. Wood moisted with hydrochloric acid become red in contact with Pyrrole. The color of thiss reaction, used to detect its presence, gave also the name to the compound (from the Greek pyrrhos ,πυρρός, that means “reddish, fiery”).

In this molecule the electronic pair on the nitrogen is conjugated in the aromatic ring and we are going to use of the parameters reported in the third row of the Table 1(see chemical formula on the right side of the figure above). Therefore, we are going to use h=1.5 and k=0.8. The numbering the atom in the ring with the nitrogen in position 1, the value of the parameter x’ for the first diagonal element (1,1) of the matrix of the Hückel determinant is corrected as follow

giving the following determinant



If you have found interesting and useful my article, please press “Like it” and subscribe for updates!


  1. J.P. Lowe. Quantum Chemistry. 1993, Academic Press.
  2. A. Streitwieser. Molecular Orbital Theory for Organic Chemistry. John Wiley & Sons Inc, (1965). 
  3. F. L. Pilar. Elementary quantum chemistry. McGraw-Hill (1990).
  4. S.P. McGlynn; L.G. Vanquickenborne; M. Kinoshita; D.G. Carroll. Introduction to applied quantum chemistry. Holt, Rinehart & Winston of Canada Ltd (1 Feb. 1972).


One thought on “Physical Chemistry: The Simple Hückel Method (Part V)

  1. Pingback: Physical Chemistry: The Simple Hückel Method (Part VI): PREVIEW |

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.