Skip to content

Very simple program to calculate the relative energies of molecules according to the Tight Binding model

Notifications You must be signed in to change notification settings

cationly/Huckel-Energy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HUCKEL
~~~~~~

The "Huckel" code is a collection (2) of tools for analysing systems according to the Tight Binding, or Hückel, model.

REPOSITORY CONTENTS
~~~~~~~~~~~~~~~~~~~

/ (root directory)
\
 |-- TODO (to-do list, for dev use only)
 |
 |-- makefile (file compatible with the GNU Make utility for easy compilation)
 |
 |-- examples/ (Directory of example hamiltonians for use with Huckel Energy)
 |
 |-- hamiltonians/ (Directory used by HuckelPlot for plot-file output (see docs)
 |
 |-- src/ (Directory containing the source for Huckel Energy
 |
 |-- scripts/ (Directory containing the HuckelPlot program and its dependencies,
 |             as well as some other useful scripts for use with Huckel Energy)



BACKGROUND
~~~~~~~~~~

Within the Tight Binding model we attempt to describe molecular wavefunctions by expressing them in terms of local atomic orbitals centred on the individual atoms in the given molecule. We approximate the Hamiltonian in this basis of localised orbitals by:

H_ij = -t_ij

Where t_ij = t when i & j are neighbouring sites and 0 otherwise.

e.g. for a chain of 4 hydrogen atoms: 

    H--H--H--H

    We would have a basis of atomic orbitals:

    phi_1, phi_2, phi_3, phi_4

    where phi_j is localised on the j^th H atom in the chain.

    Our Tight Binding hamiltonian in this basis 
    of localised orbitals would have the form:

    
          /0 1 0 0\
    Ĥ = -t|1 0 1 0|
          |0 1 0 1|
          \0 0 1 0/


THE CODES
~~~~~~~~~

The back-end code to this project is a Fortran90 code called "Huckel Energy", which calculates the eigenstate energies in terms of the parameter "t" and (optionally) the eigenstates themselves in the basis of atomic orbitals. This code is essentially a glorified matrix-diagonalisation program which uses the LAPACK and LBLAS libraries to do the computations fast. This code was originally written as an excercise in writing Fortran90 code, and as a proof of concept.

The source for Huckel Energy is found in the /src directory, as is the README specific for the compilation and running of Huckel Energy.

The "front-end" code is a python code called "HuckelPlot". It is, again, a fairly basic code which was written as a programming exercise but which nevertheless serves a useful purpose. HuckelPlot allows the user to specify a hamiltonian matrix to solve, but with variable parameters. Huckelplot then calculates the energies of the hamiltonian while varying the parameters between user defined limits. The output is an easily-graphable file which gives the user information about how the molecule's energy changes as the hamiltonian is altered. Coupled with knowledge of how the hamiltonian translates into real-space configuration of atoms then gives the user a tool to analyse molecules withing the Tight Binding approximation.

The source for HuckelPlot is in the /scripts directory, and its README is found at the top of the huckelPlot.py file.

About

Very simple program to calculate the relative energies of molecules according to the Tight Binding model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published