am1-rs-python 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- am1_rs_python-0.1.3/CHANGELOG.md +49 -0
- am1_rs_python-0.1.3/Cargo.lock +1176 -0
- am1_rs_python-0.1.3/Cargo.toml +38 -0
- am1_rs_python-0.1.3/LICENSE +674 -0
- am1_rs_python-0.1.3/PKG-INFO +238 -0
- am1_rs_python-0.1.3/README.md +224 -0
- am1_rs_python-0.1.3/THIRD_PARTY_NOTICES.md +80 -0
- am1_rs_python-0.1.3/docs/python-api.md +182 -0
- am1_rs_python-0.1.3/docs/rust-api.md +221 -0
- am1_rs_python-0.1.3/docs/scope.md +26 -0
- am1_rs_python-0.1.3/docs/theory.md +105 -0
- am1_rs_python-0.1.3/examples/bench102.xyz +104 -0
- am1_rs_python-0.1.3/examples/ethanol.xyz +11 -0
- am1_rs_python-0.1.3/examples/methane.xyz +7 -0
- am1_rs_python-0.1.3/examples/water.xyz +5 -0
- am1_rs_python-0.1.3/pyproject.toml +21 -0
- am1_rs_python-0.1.3/python/am1_rs/__init__.py +27 -0
- am1_rs_python-0.1.3/python/am1_rs/ase.py +134 -0
- am1_rs_python-0.1.3/python/am1_rs/native.py +144 -0
- am1_rs_python-0.1.3/src/basis.rs +61 -0
- am1_rs_python-0.1.3/src/bcc.rs +304 -0
- am1_rs_python-0.1.3/src/bin/am1_rs.rs +283 -0
- am1_rs_python-0.1.3/src/constants.rs +47 -0
- am1_rs_python-0.1.3/src/data/am1_parameters.csv +115 -0
- am1_rs_python-0.1.3/src/data/bccparm.dat +405 -0
- am1_rs_python-0.1.3/src/data_tables.rs +123 -0
- am1_rs_python-0.1.3/src/dual.rs +268 -0
- am1_rs_python-0.1.3/src/dual2.rs +288 -0
- am1_rs_python-0.1.3/src/error.rs +49 -0
- am1_rs_python-0.1.3/src/fock.rs +161 -0
- am1_rs_python-0.1.3/src/gradient.rs +531 -0
- am1_rs_python-0.1.3/src/hamiltonian.rs +125 -0
- am1_rs_python-0.1.3/src/hessian.rs +1074 -0
- am1_rs_python-0.1.3/src/integrals.rs +473 -0
- am1_rs_python-0.1.3/src/lib.rs +54 -0
- am1_rs_python-0.1.3/src/linalg.rs +238 -0
- am1_rs_python-0.1.3/src/math.rs +136 -0
- am1_rs_python-0.1.3/src/optimizer.rs +253 -0
- am1_rs_python-0.1.3/src/overlap.rs +443 -0
- am1_rs_python-0.1.3/src/overlap_numeric.rs +206 -0
- am1_rs_python-0.1.3/src/params.rs +284 -0
- am1_rs_python-0.1.3/src/python.rs +282 -0
- am1_rs_python-0.1.3/src/repulsion.rs +297 -0
- am1_rs_python-0.1.3/src/scf.rs +887 -0
- am1_rs_python-0.1.3/src/system.rs +149 -0
- am1_rs_python-0.1.3/src/topology.rs +274 -0
- am1_rs_python-0.1.3/tests/molecules.rs +67 -0
- am1_rs_python-0.1.3/tests/test_python_api.py +207 -0
- am1_rs_python-0.1.3/third_party/antechamber/ATOMTYPE_BCC.DEF +154 -0
- am1_rs_python-0.1.3/third_party/pyseqm/LICENSE +37 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.3
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Explicit RHF/UHF reference selection**, independent of the spin multiplicity — a closed-shell
|
|
7
|
+
singlet can now be run either restricted or unrestricted (e.g. as a broken-symmetry starting
|
|
8
|
+
point):
|
|
9
|
+
- Rust: new `ScfReference` enum (`Auto` / `Restricted` / `Unrestricted`) and an
|
|
10
|
+
`Am1Options.reference` field (default `Auto`, preserving previous behavior). `run_am1` honors
|
|
11
|
+
it; `Restricted` on an open shell is rejected (no ROHF).
|
|
12
|
+
- Python native: every function (`single_point`, `gradient`, `optimize`, `frequencies`,
|
|
13
|
+
`hessian`) takes a `reference="auto"|"rhf"|"uhf"` keyword.
|
|
14
|
+
- ASE: `AM1(..., reference="auto")`, or per structure via `atoms.info["reference"]`; a change
|
|
15
|
+
invalidates cached results.
|
|
16
|
+
- CLI: `--reference auto|rhf|uhf`, with `--rhf` / `--uhf` shortcuts.
|
|
17
|
+
|
|
18
|
+
### Notes
|
|
19
|
+
- `Auto` reproduces the historical selection (RHF for a closed-shell singlet, UHF for an open
|
|
20
|
+
shell), so existing callers are unaffected. Forcing UHF on a symmetric singlet converges to the
|
|
21
|
+
RHF energy (zero spin density).
|
|
22
|
+
|
|
23
|
+
## 0.1.2
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **Hessian API for Python.** Both layers now expose the analytic (CPHF) Cartesian Hessian,
|
|
27
|
+
which previously was only reachable indirectly through `frequencies`:
|
|
28
|
+
- `am1_rs.hessian(numbers, positions, charge=0.0, multiplicity=1)` returns the full `3N × 3N`
|
|
29
|
+
matrix in **atomic units** (`hessian_hartree_per_bohr2`) and, for convenience, in eV/Ų
|
|
30
|
+
(`hessian_ev_per_angstrom2`), plus `ndof`. Row/column `3*i + k` is atom `i`, axis `k`.
|
|
31
|
+
- `am1_rs.ase.AM1.get_hessian(atoms=None)` returns the Hessian as a NumPy array in **eV/Ų**
|
|
32
|
+
(ASE convention). Closed-shell RHF and open-shell UHF are both supported.
|
|
33
|
+
- **Per-structure charge / multiplicity for the ASE calculator.** In addition to the constructor
|
|
34
|
+
arguments `AM1(charge=…, multiplicity=…)`, charge and spin multiplicity may now be supplied at
|
|
35
|
+
calculation time via `atoms.info["charge"]` / `atoms.info["multiplicity"]`. An `atoms.info`
|
|
36
|
+
entry overrides the constructor value for that structure, and a change in either invalidates
|
|
37
|
+
cached results (`check_state`).
|
|
38
|
+
|
|
39
|
+
### Verified
|
|
40
|
+
- Confirmed (with tests) that charge and spin multiplicity are received and actually used in
|
|
41
|
+
both the Python-native functions (per call) and the ASE calculator (at construction *and* at
|
|
42
|
+
calculation time): charge and multiplicity change the SCF energy, and an electron-count /
|
|
43
|
+
multiplicity parity mismatch raises. See `tests/test_python_api.py`.
|
|
44
|
+
|
|
45
|
+
### Notes
|
|
46
|
+
- Units are unchanged and follow each layer's convention: the native surface reports atomic
|
|
47
|
+
units (Hartree/Bohr²) with eV/Ų provided alongside; the ASE layer reports eV/Ų.
|
|
48
|
+
- No changes to the Rust crate's public API (the analytic Hessian was already available there as
|
|
49
|
+
`am1_rs::analytic_hessian`, eV/Bohr²).
|