Skip to content

Computational Chemistry 2026

Aims to be an elective Master module, can be followed by Bachelor students. Developed at University of Kassel.

Slides

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.