Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automate running Psi4-based fits using default installation instructions #305

Open
mattwthompson opened this issue Dec 4, 2023 · 5 comments

Comments

@mattwthompson
Copy link
Member

Description

I don't think any of the tests run a full fit using the default QC spec (i.e. not using XTB as a shortcut). I could be wrong.

These fits are slow but important to ensure reliability - if something breaks, we ought to know about it prior a user report.

@mattwthompson
Copy link
Member Author

Quick thought in passing - the issues leading us to work on #308 arise from one of Psi4's dependencies not being installed, so safeguarding against that particular failure only requires enough walltime for the QC generation step to start, not actually complete.

@jthorton
Copy link
Contributor

jthorton commented Dec 6, 2023

It might be overly complicated but would a test which runs a fit but mocks the QC generation stage work? We could have it try and compute a dft single point using our default spec in psi4 (this uses a D3 correction) and if that works return some already computed DFT torsion profile and the fit can continue. The test would fail if the single point failed and that should catch install issues.

@mattwthompson
Copy link
Member Author

If a single-point energy would capture most "oops something is wrong in the Psi4 installation" errors - yeah I think that could work nicely.

In my limited experience, user issues happen either before QC generation (nothing is installed correctly) or in the first 0.1% of the QC generation step (current or past issues with Psi4 installation), so mocking the results of QC generation could be a nice balance of reliability testing and test duration.

@j-wags
Copy link
Member

j-wags commented Dec 6, 2023

My understanding of the QC generation call stack is:

  1. BespokeFit calls TorsionDrive
  2. TorsionDrive calls GeomeTRIC
  3. GeomeTRIC calls QCEngine
  4. QCEngine calls Psi4 or xTB
  5. xTB or Psi4 call a bunch of stuff, including dftd3

Our existing xTB-based integration test exercises 1-3 in a way that should apply to both xTB and Psi4. But for steps 4+5 it only tests the xTB-specific pathways. This means that we currently don't have coverage of QCEngine calling Psi4, and Psi4 calling stuff like dftd3. So I think we should end up with good coverage if we add a Psi4 single point calculation, called via QCengine.

@j-wags
Copy link
Member

j-wags commented Dec 6, 2023

Unrelated but the call stack reminds me of the star wars assassins-hiring-assassins video.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants