AlexandriaChemistry / AlexandriaChemistry/ACT

Add relaxed torsion and angle scan mode to `alexandria simulate`

Open
#1,303 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
18
Forks
3
Avg merge
42m
Merged PRs (30d)
12

Description

For force-field analysis and validation, it would be useful if `alexandria simulate` could perform relaxed scans of internal coordinates directly from optimized structures already stored in a molprop XML file.

## Requested feature
Add a scan mode to `alexandria simulate` that reads a `.csv` file describing torsion and angle scans and executes all requested scans automatically.

For each scan entry, the program should:
- find the molecule by name in the input XML file,
- use the optimized structure from that XML entry as the starting geometry,
- perform a relaxed scan over the requested angle or torsion,
- constrain the scanned internal coordinate at each scan point while relaxing all remaining degrees of freedom,
- write energies, convergence status, and optimized coordinates for every scan point.

## Proposed scan definition file
Suggested format:
`molname|scan_type|atom_ids|start|stop|step`

Examples:
`acetone|torsion|2 3 4 5|0|360|15`
`water|angle|1 2 3|90|140|5`

Notes:
- `scan_type` should be `angle` or `torsion`.
- Atom numbering should be 1-based.
- Atom numbering should follow the same convention as other `simulate` options and ignore shells/virtual sites.
- Blank lines and lines starting with `#` should be ignored.

## Expected output
For each scan, write:
- a table (`.csv` and/or `.xvg`) with scan value, total energy, and relative energy,
- optimized coordinates for every scan point,
- a summary of failed or non-converged points,
- a machine-readable summary (`.json`) if requested.

## Integration with existing options
The scan mode should reuse the current minimization settings from `alexandria simulate`, including:
- minimizer choice,
- force tolerance,
- maximum iterations,
- retry settings.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.