Computational Chemistry 2026
Aims to be an elective Master module, can be followed by Bachelor students. Developed at University of Kassel.
Slides
- Intro and Born-Oppenheimer Approximation
- Chemical Space (Notes)
- Potential Energy Surface
- Classical Force Fields
- Geometry Optimisation
Exercises
Exercise 1: Getting Started
Introduction to Python: Three without given solutions.
Exercise 2: Little Potential
Task 1: Free range atoms
An (overly simplistic) model is to estimate the energy of each atom to be \(-\frac{1}{2}Z^{7/3}\). Write a python function get_energy(list_of_elements: list[str]) -> float which returns the total energy for elements until \(Z=10\). For carbon monoxide, the function would be called like get_energy(['C', 'O']).
Optional: for those who are a bit more fluent in python, write the function to instead accept stoichiometries as strings, such as "C6H6", i.e. get_energy(elements: str) -> float.
Task 2: Harmonic co-existence
In task 1, there were no bonds. A simple model of bonds is a harmonic potential. Consider carbon monoxide this time. Assume a potential where the bond \(b\) has an equilibrium bond length of \(b_0\) and the energy depending on the actual bond length is \(a(b-b_0)^2\) with some constant \(a>0\). Write a function co_energy(b: float, a: float, b_0: float) -> float. Choose some values for both \(a\) and \(b_0\) and plot the potential energy surface if the central carbon atom is moved along the axis of a linear carbon dioxide molecule. You may use matplotlib for plotting:
import matplotlib.pyplot as plt
positions = ...
energies = ...
plt.plot(positions, energies, label="energy")
plt.xlabel(...)
plt.ylabel(...)
Task 3: Make it double
What could possibly go wrong in this harmonic potential model for a) dimers as above and b) more complex molecules. Find at least three situations where the model must yield unphysical results for any real system.