In terms of energy, The binding energy of water and C2 is about 70 Hartrees, where a Hartree is about twice the ionization energy of Hydrogen.
I managed to get to about 1 Hartree of the right answer, which is good enough to see that the process sort-of works, but not close enough to answer questions like "what is the minimum energy bond angle of water".
Instead of writing it up properly, which would take ages and not be all that interesting, I thought I'd produce a captioned image gallery instead.
The thing you're trying to model, when trying to get accurate energies for benzene, is its wavefunction. The wavefunction is a function that takes as input the 3D positions of the 42 electrons, and outputs one number.
As a kotlin function, for instance, its type is:
fun psi(x : Array<V3>, spins : Array<Boolean>) : DoubleIn general, the output can be complex, but I'm fairly sure that in the absence of a magnetic field, the minimum energy wavefunction can always be written as a purely real function, and therefore the return type can be just Double.
The image above is what happens if you plot a cross section through the wavefunction - varying the point you take a cross section through.
The wavefunction shown above is accurate enough to get the energy to about 1 or 2 % of the total binding energy.
In many ways to get chemical energies, the game is to pick a wavefunction, then calculate the energy for that wavefunction, and then keep trying variations of the wavefunction to try to minimise the energy.
When you're trying to work out the energy, if there's no bug in your code, and provided the wavefunction you've chosen's local energy is well behaved, and provided that the wavefunction is antisymmetric (if you swap any two inputs, you get a negated output) you cannot accidentally get too low an energy.
This means that you can add as many parameters as you want to your wavefunction, without worrying that you could get the right energy, but be completely wrong about the wavefunction.
How to simulate fractal ice crystal growth in PythonThis presents python code to draw snowflakes, simulating a diffusion process with Fourier transforms. |
Mars Re-EntryA ThreeJS simulation of Mars re-entry in a spaceship. |
© Hugo2015. Session @sessionNumber