Hello Psi4-developers and expert-users,
I have a pretty large molecule with Td symmetry, which Psi4 detects correctly. However, Psi4 (release 1.11 installed via conda) chooses the C2v subgroup, while I would like D2, because in D2 the orbitals are much more evenly distributed over the irreps (in C2v A1 is always huge, and A2 is tiny).
Unfortunately, putting “Symmetry D2” into the molecule definition, gives an error message.
Here is a small demo of the issue:
This input
molecule mol {
0 1
C 0.00 0.00 0.00
H 0.64 0.64 0.64
H -0.64 -0.64 0.64
H 0.64 -0.64 -0.64
H -0.64 0.64 -0.64
}set basis cc-pVDZ
E, wfn = energy(‘scf’, return_wfn=True)
detects Td correctly:
==> Geometry <==
Molecular point group: c2v Full point group: Td Geometry (in Angstrom), charge = 0, multiplicity = 1:
And this input
molecule mol {
0 1
C 0.00 0.00 0.00
H 0.64 0.64 0.64
H -0.64 -0.64 0.64
H 0.64 -0.64 -0.64
H -0.64 0.64 -0.64Symmetry D2
}set basis cc-pVDZ
E, wfn = energy(‘scf’, return_wfn=True)
yields the following error message:
!----------------------------------------------------------------------------------!
! !
! Fatal Error: User specified point group (D2) is not a subgroup of the highest !
! detected point group (C2v(Z)). If this is because the symmetry increased, !
! try to start the calculation again from the last geometry, after checking !
! any symmetry-dependent input, such as DOCC. !
! Error occurred in file: /home/conda/feedstock_root/build_artifacts/psi4_17861632 !
! 11251/work/psi4/src/psi4/libmints/molecule.cc on line: 2011 !
! The most recent 5 function calls were: !
! psi::PsiException::PsiException(std::__cxx11::basic_string<char, !
! std::char_traits, std::allocator >, char const*, int) !
! psi::Molecule::update_geometry() !
! !
!----------------------------------------------------------------------------------!
Is there any trick to coax Psi4 into detecting D2 instead of C2v?