Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Density Fitting Incompatible with Frequencies #1093
Any computation that attempts to compute frequencies of a density fitted method will crash unless the symmetry is explicitly set to c1. Gradients do not have this problem. The below input file demonstrates the problem and has been taken from the test cases. The only modifications are changing gradients to frequencies and CCSD(T) to MP2. The bug is there with both methods, and also CCSD. I haven't checked other DF methods.
The crash gives the following error message:
My own investigations have partially uncovered the cause of this. During basis set construction, basis set labels are set on all atoms. This occurs by iterating over all atoms in full_atoms_ and setting basis set labels for them. However, there is a very subtle problem. The basis set is constructed from this labels here. The constructor sets the basis by calling atom_entry. The problem is that atom_entry is tied not to full_atoms_ but to atoms_. Setting the basis set labels for full_atoms_ atoms never set them for the atoms_ atoms, hence the error. I've confirmed directly this code sets the basis set label for the first atom of atoms_ in the non-bugged case of a gradient computation, but not in the case of a bugged frequency computation. In both cases, the first atom of full_atoms_ has its basis set labels properly submitted.
My hunch is that these two arrays are supposed to be synced up, modulo ghosts and dummies, so there was probably a problem with pointers somewhere that caused the objects in the two arrays to not be the same. Core devs, am I understanding atoms_ and full_atoms_ correctly?