symmetry in qca
Is your feature request related to a problem? Please describe.
Opening for long-term consideration. Issue is more appropriate for QCEngine but sol'n would probably be in QCElemental.
There are procedures that need a bit of symmetry help, and their numbers are growing. Presently, they tend to be tied to Psi4's libmints by a line or two.
- SALC
- finite difference, a possible future procedure in qcng, needs SALCs https://github.com/psi4/psi4/blob/master/psi4/driver/driver_findif.py#L127
- optking, an upcoming procedure in qcng, needs totally symmetric SALCs to correct the Hessian for numerical noise after the backtransformation
- vibrational analysis, which function could fit into qca somewhere, needs SALCs to assign irrep labels to modes https://github.com/psi4/psi4/blob/master/psi4/driver/qcdb/vib.py#L414
- Point Group Symmetry
- vibrational analysis needs symmetry info for the sigma/rotation number and for symmetrizing the Hessian https://github.com/psi4/psi4/blob/master/psi4/driver/qcdb/vib.py#L144
- findif wants symmetry labels and character table for derivative assembly, https://github.com/psi4/psi4/blob/master/psi4/driver/driver_findif.py#L655
Describe the solution you'd like
As far as at-hand solutions, I do have the point group analysis from psi4 (from psi3, from NIH) in python, from whence it could be detached from the qcdb.Molecule class where it resides. The SALCs, iirc from last check, need an extra file or two translated from libmints. These could be cleaned up for qcel. Symmetry identification is all PG. SALCs are Abelian only.
Non-QCA alternative is that I do the SALC libmints to py translation sometime and these procedures still derive from qcng.ProcedureHarness but have a qcdb dependence.
Describe alternatives you've considered
Additional context
fyi, @psi-rking @AlexHeide