Geometry optimization fails due to changing comp. point group


#1

As a testcase I am checking optimization of CH4 molecule with DFT and different basis sets.
Strangely, for def2-qz* bases the optimizatoin fails with the symmetry error. The code complains that the symmetry is changed. The end of output is

    Molecular point group: cs
    Full point group: Td
    Geometry (in Angstrom), charge = 0, multiplicity = 1:

    C
    H             1    1.095343
    H             1    1.095343      2         TDA
    H             1    1.095343      2         TDA      3  120.000000
    H             1    1.095343      2         TDA      4  120.000000

    TDA       =  109.4712211043
Traceback (most recent call last):
  File "CH4_error.py", line 12, in <module>
    e,wfn = psi4.optimize("PBE",molecule=geom, return_wfn="yes")
  File ".../psi4conda/lib/python2.7/site-packages/psi4/driver/driver.py", line 1098, in optimize
    (current_sym, initial_sym))
psi4.driver.p4util.exceptions.ValidationError: Point group changed! (cs <-- c2v) You should restart using the last geometry in the output, after carefully making sure all symmetry-dependent input, such as DOCC, is correct.

which seems perfectly correct to me, except the error and the fact that code thinks that best subgroup of Td is Cs.

How is this possible?
Other bases I tried are Ok.

psi4 1.2.1 (conda)

I am using python driver, the input is

    import psi4
    mol_string = """
         C
         H 1 %f
         H 1 %f 2 TDA
         H 1 %f 2 TDA 3 120
         H 1 %f 2 TDA 4 120
    """
    mol = lambda x: mol_string%(x,x,x,x)
    psi4.set_options({"BASIS": "def2-qzvppd", "scf_type": "df"})
    geom = psi4.geometry(mol(1.106))
    e,wfn = psi4.optimize("PBE",molecule=geom, return_wfn="yes")
    print("Total energy = %f"%e)
    dist_mat = wfn.molecule().distance_matrix().to_array()*psi4.constants.bohr2angstroms
    print("C-H distance = %f Angstrom"%(dist_mat[0,1]))

#2

I cleaned up your post. You can enclose text in triple backticks (the ` character) so it appears formatted like code.

What do you mean by “other bases I tried”? Other basis sets?

In terms of why this is happening, my intuition is that somehow, the molecular symmetry elements aren’t aligned with the coordinate system. I can investigate more when I know what you mean by “other bases”.


#3

Thank you for our reply. Yes, I mean other basis sets.
At least with STO-3G, cc-pvtz, 6-311pg_2df_2pd_, 6-311ppg_3df_3pd_, aug-cc-pvqz, def2-svp, def2-tzvp the code works as I expect.


#4

Thanks for the bug report. I’ve added it to our list. Unfortunately, my initial diagnosis looks spot on. There’s some tiny noise in the computation causing the molecule to no longer be oriented along the symmetry axes. Without that orientation, which is crucial for the molecular point group determination but irrelevant for the full point group determination, our symmetry adaptation won’t be right.

I don’t know when we will have time to get this one solved, sadly.

Let me know if I can do anything else.