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

Diskless/stateless MOPAC API #203

Merged
merged 35 commits into from
Aug 28, 2024
Merged

Diskless/stateless MOPAC API #203

merged 35 commits into from
Aug 28, 2024

Conversation

godotalgorithm
Copy link
Collaborator

This is an open PR for a new MOPAC API that is diskless and stateless. It exposes a limited set of core features: SCF calculations, geometry relaxation, and vibrational frequencies. Also, it gives access to the fast MOZYME solver for SCF calculations and geometry relaxation. Most inputs and outputs are collected and passed through Fortran types provided by the API, and the entire state of the calculation is described by that information. This API also completely avoids using the disk for input and output, which maybe be useful for high-throughput calculations on large, parallel computers with slow disks.

The intent of this API is to supersede #96, which was used as a starting point for the design of this API. All the features of that API are available in some form through this API.

The main features of the API are all implemented, but testing has just started. This open PR includes a simple unit testing system for the API, but there is only one test implemented so far and the testing criteria need to be expanded and refined to cover all the features and relevant data of the API. I expect bugs will be identified and fixed in the process of expanding the testing coverage of the API, and the PR won't be merged until all features are thoroughly tested by these unit tests.

Status

  • Ready for merge

Copy link

codecov bot commented May 29, 2024

Codecov Report

Attention: Patch coverage is 79.52899% with 339 lines in your changes missing coverage. Please review.

Project coverage is 67.22%. Comparing base (a22996f) to head (d6f24c8).
Report is 51 commits behind head on main.

Files with missing lines Patch % Lines
src/MOZYME/iter_for_MOZYME.F90 10.00% 126 Missing ⚠️
src/interface/mopac_api_saveload.F90 50.42% 59 Missing ⚠️
tests/mopac_api_test.F90 94.38% 40 Missing ⚠️
src/interface/mopac_api_operations.F90 65.38% 36 Missing ⚠️
src/models/switch.F90 82.87% 31 Missing ⚠️
src/interface/mopac_api_initialize.F90 87.66% 19 Missing ⚠️
src/utilities/seconds.F90 50.00% 7 Missing ⚠️
src/interface/mopac_api_finalize.F90 95.80% 6 Missing ⚠️
src/optimization/ef.F90 63.63% 4 Missing ⚠️
src/optimization/flepo.F90 25.00% 3 Missing ⚠️
... and 5 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #203      +/-   ##
==========================================
+ Coverage   66.75%   67.22%   +0.47%     
==========================================
  Files         332      336       +4     
  Lines       74082    75424    +1342     
==========================================
+ Hits        49456    50707    +1251     
- Misses      24626    24717      +91     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@thegodone
Copy link

This is a impressive stepm thanks for you effort. I guess when it will be ready we can move to python interaction more easily.

@godotalgorithm
Copy link
Collaborator Author

The API is now passing a minimal set of tests for all of the basic functionality. I still need to test some periodic systems and cases with COSMO enabled, and I need to perform more error handling, especially for malformed inputs. FORCETS does not presently support periodic systems, and this support needs to be added for the API to function correctly for vibrational calculations of periodic systems. Overall, the API is in good enough shape now to add to the development version, although it still needs more testing and work before the next production release.

@godotalgorithm godotalgorithm merged commit 5b901ee into main Aug 28, 2024
9 checks passed
@godotalgorithm godotalgorithm deleted the diskless-api branch August 28, 2024 20:24
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

Successfully merging this pull request may close these issues.

2 participants