Theoretically yes, but the method that is currently implemented (Hartree Fock) is notoriously inaccurate for molecular interactions. For example it does not predict the Van Der Waals force between water molecules.
I’m planning to add support for an alternative method called density functional theory which gives better results for molecular interaction.
The short answer is yes, but either memory (if the electron integrals are cached) or runtime (if they are not cached) currently scales like O(n^4) where n is the number of atoms.
In cached mode, it can currently jit compile the graph for molecules of around 10 atoms in ~5 minutes on one T4 gpu. Once the graph is compiled, the actual geometry optimization only takes a few seconds.
I’m working on optimizations that improve the scaling behavior (such as density fitting) with the goal of achieving similar or even better performance for molecules with ~50 atoms.
In a nutshell, the only approximation in Hartree Fock is the assumption that the electronic wave function has a very specific form. Namely, that it is a Slater determinant of orbitals, and that each orbital is a linear combination of atomic orbitals from a fixed basis set.
The linear coefficients of the orbitals are then solved for via the (exact) variational method.
Of course, the true wave function is generally not a Slater determinant. In particular, electrons in a Slater determinant with different spins are uncorrelated.
The standard approach to resolving this is density functional theory. In that model, the main approximation is the choice of an “exchange correlation functional” which approximates the electron exchange and correlation energy. The choice of a functional is unfortunately a dark art in the sense that they can only be evaluated empirically rather than from first principles.
Hi, thanks for the recommendations.
I looked a little at the book, basically at the end we can compute some properties for small molecules sitting alone in space?
What about arbitrary molecules, interacting? Or computing reaction rates? In a solvent? My understanding is that there are some algorithms for all of these, and there is probably progress made, but I never seen (online) anyone complaining that we cannot compute even this basic chemistry. I feel like we should care more about this problem.
From my understanding, accurate simulations at the electron level (post Hartree Fock / DFT) are currently limited to 100 atoms (on a gpu cluster this can take hours or days). Maybe this can be pushed to 1000 atoms with aggressive optimization techniques like FMM.
So at this level of simulation it is currently only possible to simulate one medium size molecule or the interaction of a few small ones.
To simulate larger systems, it is necessary to work at a (semi-)classical level of abstraction that approximates quantum mechanics. For example using molecular dynamics to essentially simulate a fluid with a ball and springs model. In this case, electron level simulation can still be useful for deriving heuristics (conceptually, the spring tension).
I completely agree that it’s interesting to investigate how far the electron level simulation can be pushed.
Since the gradients are computed with jax, the library can be used to differentiate with respect to all inputs including nuclear charge and basis set parameters (exponents and contraction coefficients). I agree that computing gradients for the nuclear charges could be interesting in the context of molecular design.
But for the colab demo I thought that sticking to nuclear positions (i.e atomic forces) would be easier to visualize.
For example, you could use an additively homomorphic scheme to compute a sum of encrypted values. This could then be converted into an average assuming you knew the number of values.
I completely agree that it is possible to homomorphically evaluate b - <a,s> much more easily using homomorphic addition and multiplication. However, wouldn't we still need some sort of blind rotate magic to bound the output error?
I’m planning to add support for an alternative method called density functional theory which gives better results for molecular interaction.