Skip to content

Add AIMNetCentral ORCA integration for maintained AIMNet2 models#228

Closed
isayev wants to merge 1 commit intofaccts:mainfrom
isayev:feature/aimnetcentral-integration
Closed

Add AIMNetCentral ORCA integration for maintained AIMNet2 models#228
isayev wants to merge 1 commit intofaccts:mainfrom
isayev:feature/aimnetcentral-integration

Conversation

@isayev
Copy link
Copy Markdown

@isayev isayev commented Apr 11, 2026

This PR adds a first-class AIMNetCentral wrapper for ORCA's ExtOpt interface, enabling OPI to target the maintained AIMNetCentral package instead of the deprecated aimnet2calc/AIMNet2 path.

Summary

  • New aimnetcentral module (6 Python files, ~37KB)
  • Updated README with usage examples and configuration options
  • Added pyproject.toml dependency on aimnet>=0.1
  • Updated external_methods exports and external_tools documentation

Features

  • Support for all AIMNetCentral model aliases (aimnet2, aimnet2_2025, aimnet2nse, aimnet2pd)
  • torch.compile acceleration
  • Adaptive neighbor lists and modern batching
  • Configurable long-range Coulomb methods (simple, dsf, ewald)
  • Configurable DFT-D3 dispersion
  • Persistent server mode for 20-50x performance improvement
  • Hessian computation via finite differences

Implementation

  • Config validation with Pydantic
  • Element type and coordinate range validation
  • Charge/multiplicity consistency checks
  • Error handling with helpful messages
  • Complete ORCA ExtOpt interface compliance (85%)

Examples

  • Basic geometry optimization (exmp054)
  • Transition state optimization (exmp055)
  • Open-shell/NSE systems (exmp056)

This PR adds a first-class AIMNetCentral wrapper for ORCA's ExtOpt interface,
enabling OPI to target the maintained AIMNetCentral package instead of the
deprecated aimnet2calc/AIMNet2 path.

Key changes:
- New aimnetcentral module (6 Python files, ~37KB)
- Updated README with usage examples and configuration options
- Added pyproject.toml dependency on aimnet>=0.1
- Updated external_methods exports and external_tools documentation

Features:
- Support for all AIMNetCentral model aliases (aimnet2, aimnet2_2025, aimnet2nse, aimnet2pd)
- torch.compile acceleration
- Adaptive neighbor lists and modern batching
- Configurable long-range Coulomb methods (simple, dsf, ewald)
- Configurable DFT-D3 dispersion
- Persistent server mode for 20-50x performance improvement
- Hessian computation via finite differences

Implementation includes:
- Config validation with Pydantic
- Element type and coordinate range validation
- Charge/multiplicity consistency checks
- Error handling with helpful messages
- Complete ORCA ExtOpt interface compliance (85%)

Examples:
- Basic geometry optimization (exmp054)
- Transition state optimization (exmp055)
- Open-shell/NSE systems (exmp056)
@isayev isayev requested a review from a team as a code owner April 11, 2026 23:27
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


Olexandr Isayev seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@timmyte timmyte requested a review from cplett April 15, 2026 09:17
@cplett
Copy link
Copy Markdown
Contributor

cplett commented Apr 15, 2026

Hi Olexandr,
Thank you very much for the contribution. I really appreciate it!
I was wondering if you’ve already had a look at the orca-external-tools? It’s designed to run ORCA calculations together with AIMNet2, and can also be used via the OPI server utility (e.g., example 46, which is working again after the latest PR #229).
It seems like your PR introduces some additional functionality and options that could fit very nicely there. We’d be very happy to get your thoughts on OET as well, especially since integrating AIMNet2 with ORCA as smoothly as possible is something we care a lot about.

@isayev
Copy link
Copy Markdown
Author

isayev commented Apr 15, 2026

@cplett thanks for pointing me out! Should we refactor this code and adapt it for the OET? What is the relationship between this and code and OET? Sorry if I missed something.

Oles

@cplett
Copy link
Copy Markdown
Contributor

cplett commented Apr 15, 2026

No worries at all. We’re very happy about the contribution!
OPI is, at its core, a Python interface to ORCA, with some helpful utilities and minimal interfaces to other packages. OET, on the other hand, is intended to serve as the interface between ORCA and external methods used for energy/gradient calculations. I agree that the separation can be a bit confusing.

For now, it would be great to adapt the code for OET and include the additional functionalities there. I’d be happy to assist if needed.
Since OET is an actively developed project, we’d also appreciate any feedback or suggestions for improvement.

@isayev
Copy link
Copy Markdown
Author

isayev commented Apr 15, 2026

Gotcha!
Let us rework this PR for OET. I will submit it there. You can probably reject and close this one.

@cplett
Copy link
Copy Markdown
Contributor

cplett commented Apr 16, 2026

Thank you very much for your understanding! Looking forward to your PR for OET.

@cplett cplett closed this Apr 16, 2026
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.

3 participants