Skip to content

Add atst examples in ASE interfaces examples#7608

Draft
QuantumMisaka wants to merge 2 commits into
deepmodeling:developfrom
QuantumMisaka:feat/atst_example
Draft

Add atst examples in ASE interfaces examples#7608
QuantumMisaka wants to merge 2 commits into
deepmodeling:developfrom
QuantumMisaka:feat/atst_example

Conversation

@QuantumMisaka

@QuantumMisaka QuantumMisaka commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Reminder

  • I have read AGENTS.md and docs/developers_guide/agent_governance.md.
  • I have linked an issue or explained why this PR does not need one.
  • I have added adequate unit tests and/or case tests, or explained why not.
  • I have listed the exact verification commands run and their results.
  • I have described user-visible behavior changes, including INPUT parameter changes.
  • I have explained core-module impact for ESolver, HSolver, ElecState, Hamilt, Operator, Psi, or other source/ changes.
  • No governance exception is requested.

Linked Issue

No linked issue. This PR only adds optional ATST-Tools workflow examples and a short README entry under the ASE interface examples.

Unit Tests and/or Case Tests for my changes

  • git diff --check -- interfaces/ASE_interface/README.md interfaces/ASE_interface/examples/atst_tools: passed.
  • Conflict-marker scan over interfaces/ASE_interface/README.md interfaces/ASE_interface/examples/atst_tools: passed.
  • conda run -n atst-dev atst config validate ... --print-normalized for all added YAML configs: passed.
  • conda run -n atst-dev atst run --dry-run ... for all added workflow configs: passed.
  • conda run -n atst-dev atst abacus prepare ... and atst abacus collect ... for the helper workflow: passed.
  • No upstream ABACUS case test is added because ATST-Tools remains an optional external workflow layer and no ABACUS core behavior is changed.

Exact Verification Performed

  • Commands run:
    • git diff --check -- interfaces/ASE_interface/README.md interfaces/ASE_interface/examples/atst_tools
    • conflict-marker scan over interfaces/ASE_interface/README.md interfaces/ASE_interface/examples/atst_tools
    • generated inputs with each added make_inputs.py
    • conda run -n atst-dev atst config validate <config> --print-normalized for relax_si, neb_si, sella_h2, ccqn_h2, both md_si configs, and abacus_helper
    • conda run -n atst-dev atst run --dry-run <config> for relax_si, neb_si, sella_h2, ccqn_h2, and both md_si configs
    • conda run -n atst-dev atst abacus prepare config.yaml --structure inputs/init.extxyz --output-dir prepared_abacus --force
    • conda run -n atst-dev atst abacus collect prepared_abacus --output abacus_results.json
  • Result summary: all listed checks completed successfully in the installed atst-tools environment.
  • Checks not run, with reason: full ABACUS numerical runs were not launched in CI because these examples are optional external workflow examples and require a configured ABACUS runtime environment.

What's changed?

  • Adds optional ATST-Tools examples for relax, NEB, Sella, CCQN, MD, and ABACUS input preparation under interfaces/ASE_interface/examples/atst_tools/.
  • Documents ATST-Tools as an optional workflow layer on top of abacuslite.
  • Does not add ATST-Tools as an abacuslite dependency and does not change ABACUS runtime behavior.

Governance Checklist

  • Global dependencies: no GlobalV, GlobalC, or PARAM code references are added.
  • Default parameters: no existing interface default arguments are changed.
  • Headers: no header dependencies are changed.
  • Line endings: changed text files use LF.
  • Build linkage: no new ABACUS source files are added, so no CMakeLists.txt update is needed.
  • Documentation: the ASE interface README and the new example README document the optional workflow usage.
  • CodeRabbit: automatic review can be requested by maintainers if needed.

INPUT Parameter Changes

  • Parameters added/removed/changed: none.
  • docs/parameters.yaml updated: not applicable.
  • docs/advanced/input_files/input-main.md updated: not applicable.
  • No INPUT documentation update is required because this PR only adds optional example YAML files for ATST-Tools and does not change ABACUS INPUT semantics.

Core Module Impact

  • Affected core modules: none.
  • Risk summary: examples and documentation only; no source/ files are changed.
  • Compatibility or performance impact: none expected for ABACUS core modules.

Governance Exception

  • Rule: none.
  • Reason: no exception is requested.
  • Scope: not applicable.
  • User or maintenance risk: not applicable.
  • Why the normal rule cannot be followed now: not applicable.
  • Follow-up cleanup plan: not applicable.
  • Requested approver: not applicable.

@QuantumMisaka QuantumMisaka marked this pull request as draft July 7, 2026 15:09
@QuantumMisaka QuantumMisaka requested a review from kirk0830 July 7, 2026 15:09
@QuantumMisaka QuantumMisaka marked this pull request as ready for review July 7, 2026 15:09
@QuantumMisaka QuantumMisaka changed the title feat/atst_example Add atst examples in ASE interfaces examples Jul 7, 2026
@QuantumMisaka QuantumMisaka added the Interfaces Interfaces with other packages label Jul 7, 2026

@kirk0830 kirk0830 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this PR tries to show the usage to interface with the ATST-Tools, which is the package collects some sophisticated algorithms that can widen the scope of ABACUS usage. However, the introduced dependency is unacceptable, the change proposed on the file structure is also to be corrected.

7. **constraintmd.py** - Constrained molecular dynamics simulation
8. **metadynamics.py** - Metadynamics simulation
9. **neb.py** - Nudged Elastic Band (NEB) calculation
10. **examples/atst_tools/README.md** - optional ATST-Tools workflow examples that use abacuslite for relax, NEB, Sella, CCQN, MD, and ABACUS input helpers

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may mess up the hierarchy of the file tree... I would suggest place two or at most three examples directly in this folder, illustrate the cooperative use with ATST-tools, rather than an individual directory...


| Case | Workflow | Purpose |
| --- | --- | --- |
| `relax_si` | `calculation.type: relax` | Basic geometry optimization through `atst run`. |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the atst run usage is beyond the scope of abacuslite which is the interface with ASE

| `sella_h2` | `calculation.type: sella` | Standalone single-ended saddle search syntax. |
| `ccqn_h2` | `calculation.type: ccqn` | CCQN with an explicit reactive bond. |
| `md_si` | `calculation.type: md` | ASE-driven MD and ABACUS-native MD templates. |
| `abacus_helper` | `atst abacus prepare/collect` | INPUT/KPT/STRU preparation and conservative output collection. |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not quite a relevant example because it is not about the extension of functionalities of ABACUS, although it is a good infrastructure and must be helpful for cases, but not suitable here. I would suggest remove it

Comment on lines +32 to +34
atst config validate config.yaml --print-normalized
atst run --dry-run config.yaml
atst run config.yaml

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again, the CLI usage of ATST-Tools is beyond the scope of the interface to ASE

atst run config.yaml
```

For SAI GPU runs, keep the same YAML structure but change

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commercial supercomputer is not planned to be specially discussed and treated in any place of ABACUS code, as far as I remember. @mohanchen

Comment on lines +46 to +47
atst abacus prepare config.yaml --structure inputs/init.extxyz --output-dir prepared_abacus --force
atst abacus collect prepared_abacus --output abacus_results.json

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

likewise, this would be better place into the manual of ATST-Tools itself, rather than in ABACUS, like there is no instruction of an air conditioner in the house when you buy it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please do not contain the files relevant with the CLI usage of ATST-Tools in ABACUS repository, this introduces the dependency on ATST-Tools into ABACUS.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the significance of this file?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please do not contain the input script of ATST-Tools, this brings about the unnecessary dependency on external software to ABACUS

@QuantumMisaka QuantumMisaka marked this pull request as draft July 8, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Interfaces Interfaces with other packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants