How to run a Td molecule in the D2 subgroup?

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.64

Symmetry 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?

I think if you just set noreorientin your geometry specification then Psi4 will identify the point group as D2 instead of C2v. Without that keyword, the default is to re-orient the molecule so that its principal axes of rotation line up with the Cartesian axes.

It does indeed. Thank you so much. Greatly appreciated.