diff --git a/pyscf/gto/test/test_mole.py b/pyscf/gto/test/test_mole.py index b0ffeb993c..ac3057d231 100644 --- a/pyscf/gto/test/test_mole.py +++ b/pyscf/gto/test/test_mole.py @@ -736,6 +736,13 @@ def test_input_symmetry1(self): mol1.build() self.assertAlmostEqual(abs(mol1._symm_axes - numpy.eye(3)[[1,2,0]]).max(), 0, 9) + mol1 = gto.M( + atom='He 0 0 0', + basis='aug-cc-pvdz', + symmetry='SO3' + ) + self.assertEqual(mol.groupname, 'SO3') + def test_symm_orb(self): rs = numpy.array([[.1, -.3, -.2], [.3, .1, .8]]) diff --git a/pyscf/symm/geom.py b/pyscf/symm/geom.py index c066b985a4..89d2b44144 100644 --- a/pyscf/symm/geom.py +++ b/pyscf/symm/geom.py @@ -517,6 +517,9 @@ def check_symm(gpname, atoms, basis=None): elif gpname == 'Coov': coords = numpy.array([a[1] for a in atoms], dtype=float) return numpy.allclose(coords[:,:2], 0, atol=TOLERANCE) + elif gpname == 'SO3': + coords = numpy.array([a[1] for a in atoms], dtype=float) + return abs(coords).max() < TOLERANCE opdic = symm_ops(gpname) ops = [opdic[op] for op in OPERATOR_TABLE[gpname]]