In the previous post, I plan to use some “novel” multireference methods that can treat huge active spaces (up to 50 active orbitals). I now decide to adopt the first baby: the variational two-electron reduced-density-matrix (2-RDM)-driven complete active space self consistent field (v2RDM-CASSCF). Why? Because
Fun fact: in the paper, DePrince wrote “the chemistry community has resisted adopting v2RDM-based approaches to the static correlation problem”. The chemistry community is a jerk.
Since I’m not a jerk, let me adopt this poor baby, no matter if he’s beautiful or ugly. I have a very low standard.
First step: install psi4
This code can be downloaded at github.com/psi4/psi4
Installing psi4 is easier than I expected. I managed to install psi4 and the plugin on the crappiest machine we have (no one is using it). Done.
Second step: learning psi4
Psi4 is an opensource code and is being actively developed. But this program should be improved, in particular the manual. I understand that writing manual is very boring, but this must be done properly for newbies like me. Since the manual is not very clear, preparing an input file is rather cumbersome with many trials & errors.
OK, done with psi4. Now back to the baby v2RDM-CASSCF.
Let me first explain how the baby looks like, just a little bit of math. I suppose you, the reader of this blog, know perfectly DFT (I mean the real DFT not the fake KS-DFT). Basically in DFT, the electron density determines everything, including the total energy and the wavefunction. The task is to find the correct density. Similarly in v2RDM-CASSCF, the two-electron reduced-density-matrix (layman’s term: matrix) determines the CASSCF energy and wavefunction. The task is to find the optimal 2RDM that truly represents the wavefunction. That’s it! You want more math, please check the paper.
So, I will give a toy for this baby to play, a tiny molecule: Cu2O22+. The task of the baby is to calculate the isomerization energy between the bis(μ–oxo) and peroxo isomers. Sound simple right? Wrong! It’s a one big challenge for multireference methods.
The baby v2RDM-CASSCF will play with Cu2O22+ with the following rules (inspired by the work of G. K-L. Chan):
- Basis set: Stuttgart basis set and the corresponding pseudopotential for the Cu atoms [6s5p3d]; ANO basis set for O [4s3p2d]
- Active space: 28 electrons in 32 active orbitals. This active space contains Cu 3d and 4d orbitals, O 2p and 3p orbitals. It’s huge, I haven’t done anything like this and I’m afraid that I cannot manage it properly ;). I hope that with the help of the baby, we can manage it.
- For v2RDM, I keep many options default. I used the so-called “DQG approximation”. Yep! Every cheap thing comes with a hidden price. There is an approximation in the method, surprise! Basically, you will not have the exact CASSCF energy, but it should be close (how close?). Notice that this is not the best approximation, but it’s cheap, and it’s the default of the code.
The input files are prepared. I submit the calculation. Now wait!
My calculations crashed with error “Fatal Error: v2RDM did not converge”. This is so sad. More over the best result I have is E(bis) – E(per) = -0.8 kcal/mol. The best results by G. K-L. Chan is 25.6 kcal/mol. What??? The difference is humongous.
So what’s wrong with the calculations? Why do they fail?
- I cannot control the active space. There is no option (as far as I see) to manually choose the active space. Everything is so black-box and there is no way I can check the active space is correct.
- The calculations crashed and they didn’t produce me any output orbitals. How can I know if I have the correct active space?
It’s time to annoy the developers!