Benzoyl Peroxide O-O Bond Scan with UMA¶
Relative energies along the peroxide O-O bond scan.¶
Requires: AMS2026 or later
Related documentation
This report summarizes three AMS PES scans for benzoyl peroxide using the MLPotential engine with model UMA-S-1.2-OMol. The peroxide O-O bond was identified by looping over oxygen atoms and inspecting ChemicalSystem.bonds for an oxygen neighbor.
Provenance¶
spinpol_0loaded from01-benzoyl-peroxide-oo-scan_workdir/spinpol_0/ams.rkf. Closed-shell reference PES scan for the peroxide O-O cleavage.spinpol_1loaded from01-benzoyl-peroxide-oo-scan_workdir/spinpol_1/ams.rkf. Open-shell PES scan with one excess alpha electron.spinpol_2loaded from01-benzoyl-peroxide-oo-scan_workdir/spinpol_2/ams.rkf. Open-shell PES scan with two excess alpha electrons.
Energy Plot¶

Summary Table¶
spinpolarization |
min_distance_angstrom |
max_distance_angstrom |
minimum_energy_hartree |
minimum_relative_energy_kcal_per_mol |
|---|---|---|---|---|
0.000000 |
1.362770 |
3.000000 |
-840.394601 |
0.000000 |
1.000000 |
1.362770 |
3.000000 |
-840.370230 |
15.292577 |
2.000000 |
1.362770 |
3.000000 |
-840.339771 |
34.406324 |
Lowest-Energy Structures¶
The lowest-energy bonded state in the full scan set occurs at spinpolarization = 0 and d(O-O) = 1.465 angstrom. Here, ‘bonded’ means d(O-O) <= 2.0 angstrom.

The lowest-energy dissociated state was defined as the lowest-energy structure at the largest scanned O-O distance (d(O-O) = 3.000 angstrom). It occurs for spinpolarization = 2.

Calculation Inputs¶
spinpol_0¶
PESScan
CalcPropertiesAtPESPoints yes
ScanCoordinate
Distance 9 10 1.362770 3.000000
nPoints 17
End
End
Task PESScan
System
Atoms
C -5.7853396399 -0.3775293408 0.0534624364
C -5.2739631081 -1.6580062127 -0.1693324182
C -3.8914954472 -1.8626507642 -0.2206186121
C -3.0051209562 -0.7825471751 -0.0485731184
C -3.5318256026 0.5027433484 0.1752200639
C -4.9152265407 0.7014132161 0.2255077074
C -1.5415025506 -0.9907446742 -0.1014385978
O -1.0682590904 -2.1425240610 -0.3020011407
O -0.6753399226 0.0875991932 0.0705568759
O 0.6753406192 -0.0876011042 0.0246319173
C 1.5415028692 0.9907428504 0.1966270716
O 1.0682589594 2.1425216033 0.3971938037
C 3.0051212579 0.7825461682 0.1437610029
C 3.8914945837 1.8626501390 0.3158080689
C 5.2739621418 1.6580070013 0.2645206976
C 5.7853400594 0.3775310800 0.0417224843
C 4.9152277561 -0.7014117837 -0.1303242755
C 3.5318266896 -0.5027431696 -0.0800346166
H -6.8556482602 -0.2213784496 0.0927828415
H -5.9492663902 -2.4933590925 -0.3025168635
H -3.5178200329 -2.8639890493 -0.3945270611
H -2.8770162470 1.3542663339 0.3113864878
H -5.3127831836 1.6932542256 0.3980989839
H 3.5178177234 2.8639876480 0.4897194499
H 5.9492634706 2.4933607184 0.3977065034
H 6.8556482458 0.2213806547 0.0024015641
H 5.3127847693 -1.6932521841 -0.3029171726
H 2.8770178270 -1.3542671195 -0.2162024114
End
BondOrders
1 2 1.5
1 6 1.5
1 19 1.0
2 3 1.5
2 20 1.0
3 4 1.5
3 21 1.0
4 5 1.5
4 7 1.0
5 6 1.5
5 22 1.0
6 23 1.0
7 8 2.0
7 9 1.0
9 10 1.0
10 11 1.0
11 12 2.0
11 13 1.0
13 14 1.5
13 18 1.5
14 15 1.5
14 24 1.0
15 16 1.5
15 25 1.0
16 17 1.5
16 26 1.0
17 18 1.5
17 27 1.0
18 28 1.0
End
End
Engine mlpotential
Model UMA-S-1.2-OMol
UnpairedElectrons 0
Unrestricted yes
EndEngine
spinpol_1¶
PESScan
CalcPropertiesAtPESPoints yes
ScanCoordinate
Distance 9 10 1.362770 3.000000
nPoints 17
End
End
Task PESScan
System
Atoms
C -5.7853396399 -0.3775293408 0.0534624364
C -5.2739631081 -1.6580062127 -0.1693324182
C -3.8914954472 -1.8626507642 -0.2206186121
C -3.0051209562 -0.7825471751 -0.0485731184
C -3.5318256026 0.5027433484 0.1752200639
C -4.9152265407 0.7014132161 0.2255077074
C -1.5415025506 -0.9907446742 -0.1014385978
O -1.0682590904 -2.1425240610 -0.3020011407
O -0.6753399226 0.0875991932 0.0705568759
O 0.6753406192 -0.0876011042 0.0246319173
C 1.5415028692 0.9907428504 0.1966270716
O 1.0682589594 2.1425216033 0.3971938037
C 3.0051212579 0.7825461682 0.1437610029
C 3.8914945837 1.8626501390 0.3158080689
C 5.2739621418 1.6580070013 0.2645206976
C 5.7853400594 0.3775310800 0.0417224843
C 4.9152277561 -0.7014117837 -0.1303242755
C 3.5318266896 -0.5027431696 -0.0800346166
H -6.8556482602 -0.2213784496 0.0927828415
H -5.9492663902 -2.4933590925 -0.3025168635
H -3.5178200329 -2.8639890493 -0.3945270611
H -2.8770162470 1.3542663339 0.3113864878
H -5.3127831836 1.6932542256 0.3980989839
H 3.5178177234 2.8639876480 0.4897194499
H 5.9492634706 2.4933607184 0.3977065034
H 6.8556482458 0.2213806547 0.0024015641
H 5.3127847693 -1.6932521841 -0.3029171726
H 2.8770178270 -1.3542671195 -0.2162024114
End
BondOrders
1 2 1.5
1 6 1.5
1 19 1.0
2 3 1.5
2 20 1.0
3 4 1.5
3 21 1.0
4 5 1.5
4 7 1.0
5 6 1.5
5 22 1.0
6 23 1.0
7 8 2.0
7 9 1.0
9 10 1.0
10 11 1.0
11 12 2.0
11 13 1.0
13 14 1.5
13 18 1.5
14 15 1.5
14 24 1.0
15 16 1.5
15 25 1.0
16 17 1.5
16 26 1.0
17 18 1.5
17 27 1.0
18 28 1.0
End
End
Engine mlpotential
Model UMA-S-1.2-OMol
UnpairedElectrons 1
Unrestricted yes
EndEngine
spinpol_2¶
PESScan
CalcPropertiesAtPESPoints yes
ScanCoordinate
Distance 9 10 1.362770 3.000000
nPoints 17
End
End
Task PESScan
System
Atoms
C -5.7853396399 -0.3775293408 0.0534624364
C -5.2739631081 -1.6580062127 -0.1693324182
C -3.8914954472 -1.8626507642 -0.2206186121
C -3.0051209562 -0.7825471751 -0.0485731184
C -3.5318256026 0.5027433484 0.1752200639
C -4.9152265407 0.7014132161 0.2255077074
C -1.5415025506 -0.9907446742 -0.1014385978
O -1.0682590904 -2.1425240610 -0.3020011407
O -0.6753399226 0.0875991932 0.0705568759
O 0.6753406192 -0.0876011042 0.0246319173
C 1.5415028692 0.9907428504 0.1966270716
O 1.0682589594 2.1425216033 0.3971938037
C 3.0051212579 0.7825461682 0.1437610029
C 3.8914945837 1.8626501390 0.3158080689
C 5.2739621418 1.6580070013 0.2645206976
C 5.7853400594 0.3775310800 0.0417224843
C 4.9152277561 -0.7014117837 -0.1303242755
C 3.5318266896 -0.5027431696 -0.0800346166
H -6.8556482602 -0.2213784496 0.0927828415
H -5.9492663902 -2.4933590925 -0.3025168635
H -3.5178200329 -2.8639890493 -0.3945270611
H -2.8770162470 1.3542663339 0.3113864878
H -5.3127831836 1.6932542256 0.3980989839
H 3.5178177234 2.8639876480 0.4897194499
H 5.9492634706 2.4933607184 0.3977065034
H 6.8556482458 0.2213806547 0.0024015641
H 5.3127847693 -1.6932521841 -0.3029171726
H 2.8770178270 -1.3542671195 -0.2162024114
End
BondOrders
1 2 1.5
1 6 1.5
1 19 1.0
2 3 1.5
2 20 1.0
3 4 1.5
3 21 1.0
4 5 1.5
4 7 1.0
5 6 1.5
5 22 1.0
6 23 1.0
7 8 2.0
7 9 1.0
9 10 1.0
10 11 1.0
11 12 2.0
11 13 1.0
13 14 1.5
13 18 1.5
14 15 1.5
14 24 1.0
15 16 1.5
15 25 1.0
16 17 1.5
16 26 1.0
17 18 1.5
17 27 1.0
18 28 1.0
End
End
Engine mlpotential
Model UMA-S-1.2-OMol
UnpairedElectrons 2
Unrestricted yes
EndEngine
Conclusion¶
Among the three scans, the global minimum is found for spinpolarization = 0. At the dissociation limit sampled here (~3.0 angstrom), the lowest-energy state is obtained for spinpolarization = 2.
Prompts and Python scripts¶
Prompt (instruction for AI agent)
Use $ams2026
Do O-O bond scans for benzoyl peroxide smiles: c1ccc(cc1)C(=O)OOC(=O)c2ccccc2
Find out which bond is the O-O bond by looping over the atoms and inspecting
the ChemicalSystem bonds
Set up a AMS PES Scan with MLPotential Model UMA-S-1.2-Omol. Run three
equivalent jobs with three different values for spinpolarization: 0, 1,
and 2. Run the bond scan until dissociation (distance 3 angstrom, with
approximately 0.1 angstrom steps)
Plot the energy vs bond length in all three cases (get_pesscan_results)
Include the graph in the report.
Include pictures of structures for the lowest-energy bonded state and
the lowest-energy dissociated state (and indicate the corresponding spin
polarization).
01-benzoyl-peroxide-oo-scan.py
#!/usr/bin/env amspython
from __future__ import annotations
from pathlib import Path
from scm.base import ChemicalSystem
from scm.input_classes import AMS
from scm.plams import AMSJob, Settings, finish, init
SMILES = "c1ccc(cc1)C(=O)OOC(=O)c2ccccc2"
MODEL = "UMA-S-1.2-OMol"
TARGET_DISTANCE_ANGSTROM = 3.0
STEP_ANGSTROM = 0.1
WORKDIR = "01-benzoyl-peroxide-oo-scan_workdir"
def build_system() -> ChemicalSystem:
system = ChemicalSystem.from_smiles(SMILES)
system.guess_bonds()
return system
def find_oo_bond(system: ChemicalSystem) -> tuple[int, int]:
for atom_index, atom in enumerate(system.atoms):
if atom.symbol != "O":
continue
for i, j, _bond in system.bonds.get_bonds_for_atom(atom_index):
other_index = j if i == atom_index else i
if system.atoms[other_index].symbol == "O":
return tuple(sorted((atom_index, other_index)))
raise RuntimeError("Could not locate an O-O bond in the ChemicalSystem")
def bond_distance_angstrom(system: ChemicalSystem, i: int, j: int) -> float:
return float(system.get_distance(i, j))
def build_settings(
atom_i: int,
atom_j: int,
start_distance: float,
spinpolarization: int,
) -> Settings:
settings = Settings()
settings.runscript.nproc = 1
settings.runscript.preamble_lines = ["export OMP_NUM_THREADS=1"]
settings.input.ams.task = "PESScan"
settings.input.ams.pesscan.scancoordinate = [Settings()]
settings.input.ams.pesscan.scancoordinate[0].distance = [
f"{atom_i + 1} {atom_j + 1} {start_distance:.6f} {TARGET_DISTANCE_ANGSTROM:.6f}"
]
npoints = int(round((TARGET_DISTANCE_ANGSTROM - start_distance) / STEP_ANGSTROM)) + 1
settings.input.ams.pesscan.scancoordinate[0].npoints = max(npoints, 2)
settings.input.ams.pesscan.calcpropertiesatpespoints = "Yes"
settings.input.mlpotential.model = MODEL
settings.input.mlpotential.unrestricted = "Yes"
settings.input.mlpotential.unpairedelectrons = spinpolarization
return settings
def validate_settings(settings: Settings) -> None:
AMS.from_settings(settings)
def run_scan(
base_system: ChemicalSystem,
atom_i: int,
atom_j: int,
spinpolarization: int,
) -> AMSJob:
system = base_system.copy()
start_distance = bond_distance_angstrom(system, atom_i, atom_j)
settings = build_settings(atom_i, atom_j, start_distance, spinpolarization)
validate_settings(settings)
job = AMSJob(
molecule=system,
settings=settings,
name=f"spinpol_{spinpolarization}",
)
result = job.run()
if not result.ok():
raise RuntimeError(f"Job {job.name} failed")
return job
def main() -> None:
init(folder=WORKDIR)
try:
system = build_system()
atom_i, atom_j = find_oo_bond(system)
start_distance = bond_distance_angstrom(system, atom_i, atom_j)
print(f"O-O bond found between atoms {atom_i} and {atom_j} (0-based indexing)")
print(f"O-O bond found between atoms {atom_i + 1} and {atom_j + 1} (AMS 1-based indexing)")
print(f"Starting O-O distance: {start_distance:.3f} angstrom")
for spinpolarization in (0, 1, 2):
job = run_scan(system, atom_i, atom_j, spinpolarization)
print(f"Finished {job.name}: {Path(job.path) / 'ams.rkf'}")
finally:
finish()
if __name__ == "__main__":
main()
report.py
#!/usr/bin/env amspython
from __future__ import annotations
from pathlib import Path
from typing import Any
import matplotlib.pyplot as plt
import pandas as pd
from scm.base import Units
from scm.plams import AMSJob, view
WORKDIR = Path("01-benzoyl-peroxide-oo-scan_workdir")
REPORT_PATH = Path("report.md")
PLOT_PATH = Path("pes_scan.png")
BONDED_IMAGE_PATH = Path("bonded_state.png")
DISSOCIATED_IMAGE_PATH = Path("dissociated_state.png")
BOND_CUTOFF_ANGSTROM = 2.0
JOB_METADATA = {
0: {
"path": WORKDIR / "spinpol_0" / "ams.rkf",
"why": "Closed-shell reference PES scan for the peroxide O-O cleavage.",
},
1: {
"path": WORKDIR / "spinpol_1" / "ams.rkf",
"why": "Open-shell PES scan with one excess alpha electron.",
},
2: {
"path": WORKDIR / "spinpol_2" / "ams.rkf",
"why": "Open-shell PES scan with two excess alpha electrons.",
},
}
def load_jobs() -> dict[int, AMSJob]:
jobs: dict[int, AMSJob] = {}
for spinpol, metadata in JOB_METADATA.items():
job = AMSJob.load_external(str(metadata["path"]))
print(f"Loaded spinpol={spinpol}: {metadata['why']}")
jobs[spinpol] = job
return jobs
def build_dataframe(jobs: dict[int, AMSJob]) -> pd.DataFrame:
rows: list[dict[str, Any]] = []
for spinpol, job in jobs.items():
results = job.results.get_pesscan_results(molecules=True)
conversion = Units.conversion_factor("bohr", "angstrom")
distances = [distance * conversion for distance in results["RaveledPESCoords"][0]]
energies = list(results["PES"])
for point_index, (distance, energy, converged, molecule) in enumerate(
zip(distances, energies, results["Converged"], results["Molecules"])
):
rows.append(
{
"spinpolarization": spinpol,
"point_index": point_index,
"distance_angstrom": float(distance),
"energy_hartree": float(energy),
"converged": bool(converged),
"molecule": molecule,
}
)
df = pd.DataFrame(rows)
global_min = float(df["energy_hartree"].min())
df["relative_energy_kcal_per_mol"] = (
df["energy_hartree"] - global_min
) * Units.conversion_factor("hartree", "kcal/mol")
return df
def plot_curves(df: pd.DataFrame) -> None:
fig, ax = plt.subplots(figsize=(6, 4))
for spinpol, subdf in df.groupby("spinpolarization"):
ordered = subdf.sort_values("distance_angstrom")
ax.plot(
ordered["distance_angstrom"],
ordered["relative_energy_kcal_per_mol"],
marker="o",
label=f"spinpolarization = {spinpol}",
)
ax.set_xlabel("O-O distance [angstrom]")
ax.set_ylabel("Relative energy [kcal/mol]")
ax.set_title("Benzoyl peroxide O-O bond PES scan with UMA-S-1.2-OMol")
ax.legend()
ax.grid(alpha=0.3)
fig.tight_layout()
fig.savefig(PLOT_PATH, dpi=200)
plt.close(fig)
def select_state_rows(df: pd.DataFrame) -> tuple[pd.Series, pd.Series]:
bonded_candidates = df[df["distance_angstrom"] <= BOND_CUTOFF_ANGSTROM]
if bonded_candidates.empty:
bonded_candidates = df
bonded_row = bonded_candidates.loc[bonded_candidates["energy_hartree"].idxmin()]
max_distance = float(df["distance_angstrom"].max())
dissociated_candidates = df[df["distance_angstrom"] >= max_distance - 1.0e-6]
dissociated_row = dissociated_candidates.loc[dissociated_candidates["energy_hartree"].idxmin()]
return bonded_row, dissociated_row
def render_state_images(bonded_row: pd.Series, dissociated_row: pd.Series) -> None:
view(
bonded_row["molecule"],
guess_bonds=True,
width=350,
height=260,
direction="along_pca3",
picture_path=str(BONDED_IMAGE_PATH),
)
view(
dissociated_row["molecule"],
guess_bonds=True,
width=350,
height=260,
direction="along_pca3",
picture_path=str(DISSOCIATED_IMAGE_PATH),
)
def build_summary_table(df: pd.DataFrame) -> pd.DataFrame:
summary = (
df.sort_values(["spinpolarization", "distance_angstrom"])
.groupby("spinpolarization", as_index=False)
.agg(
min_distance_angstrom=("distance_angstrom", "min"),
max_distance_angstrom=("distance_angstrom", "max"),
minimum_energy_hartree=("energy_hartree", "min"),
minimum_relative_energy_kcal_per_mol=("relative_energy_kcal_per_mol", "min"),
)
)
return summary
def write_report(
df: pd.DataFrame,
summary: pd.DataFrame,
bonded_row: pd.Series,
dissociated_row: pd.Series,
jobs: dict[int, AMSJob],
) -> None:
if REPORT_PATH.exists():
REPORT_PATH.replace(REPORT_PATH.with_suffix(".md.bk"))
intro = (
"# Benzoyl Peroxide O-O Bond Scan\n\n"
"This report summarizes three AMS PES scans for benzoyl peroxide "
"using the MLPotential engine with model `UMA-S-1.2-OMol`. "
"The peroxide O-O bond was identified by looping over oxygen atoms "
"and inspecting `ChemicalSystem.bonds` for an oxygen neighbor.\n\n"
)
provenance_lines = []
for spinpol, metadata in JOB_METADATA.items():
provenance_lines.append(
f"- `spinpol_{spinpol}` loaded from `{metadata['path']}`. {metadata['why']}"
)
summary_table = summary.to_markdown(index=False, floatfmt=".6f")
lowest_states = (
"## Lowest-Energy Structures\n\n"
f"The lowest-energy bonded state in the full scan set occurs at "
f"`spinpolarization = {int(bonded_row['spinpolarization'])}` and "
f"`d(O-O) = {bonded_row['distance_angstrom']:.3f}` angstrom. "
f"Here, 'bonded' means `d(O-O) <= {BOND_CUTOFF_ANGSTROM:.1f}` angstrom.\n\n"
f"\n\n"
f"The lowest-energy dissociated state was defined as the lowest-energy "
f"structure at the largest scanned O-O distance "
f"(`d(O-O) = {dissociated_row['distance_angstrom']:.3f}` angstrom). "
f"It occurs for `spinpolarization = {int(dissociated_row['spinpolarization'])}`.\n\n"
f"\n\n"
)
conclusion = (
"## Conclusion\n\n"
f"Among the three scans, the global minimum is found for "
f"`spinpolarization = {int(bonded_row['spinpolarization'])}`. "
f"At the dissociation limit sampled here (`~3.0` angstrom), the lowest-energy "
f"state is obtained for `spinpolarization = {int(dissociated_row['spinpolarization'])}`.\n"
)
inputs = []
for spinpol, job in jobs.items():
inputs.append(f"### spinpol_{spinpol}\n\n```text\n{job.get_input()}\n```\n")
report_text = (
intro
+ "## Provenance\n\n"
+ "\n".join(provenance_lines)
+ "\n\n## Energy Plot\n\n"
+ f"\n\n"
+ "## Summary Table\n\n"
+ summary_table
+ "\n\n"
+ lowest_states
+ "## Calculation Inputs\n\n"
+ "\n".join(inputs)
+ conclusion
)
REPORT_PATH.write_text(report_text)
def main() -> None:
jobs = load_jobs()
df = build_dataframe(jobs)
summary = build_summary_table(df)
plot_curves(df)
bonded_row, dissociated_row = select_state_rows(df)
render_state_images(bonded_row, dissociated_row)
write_report(df, summary, bonded_row, dissociated_row, jobs)
if __name__ == "__main__":
main()
Original Markdown report
# Benzoyl Peroxide O-O Bond Scan
This report summarizes three AMS PES scans for benzoyl peroxide using the MLPotential engine with model `UMA-S-1.2-OMol`. The peroxide O-O bond was identified by looping over oxygen atoms and inspecting `ChemicalSystem.bonds` for an oxygen neighbor.
## Provenance
- `spinpol_0` loaded from `01-benzoyl-peroxide-oo-scan_workdir/spinpol_0/ams.rkf`. Closed-shell reference PES scan for the peroxide O-O cleavage.
- `spinpol_1` loaded from `01-benzoyl-peroxide-oo-scan_workdir/spinpol_1/ams.rkf`. Open-shell PES scan with one excess alpha electron.
- `spinpol_2` loaded from `01-benzoyl-peroxide-oo-scan_workdir/spinpol_2/ams.rkf`. Open-shell PES scan with two excess alpha electrons.
## Energy Plot

## Summary Table
| spinpolarization | min_distance_angstrom | max_distance_angstrom | minimum_energy_hartree | minimum_relative_energy_kcal_per_mol |
|-------------------:|------------------------:|------------------------:|-------------------------:|---------------------------------------:|
| 0.000000 | 1.362770 | 3.000000 | -840.394601 | 0.000000 |
| 1.000000 | 1.362770 | 3.000000 | -840.370230 | 15.292577 |
| 2.000000 | 1.362770 | 3.000000 | -840.339771 | 34.406324 |
## Lowest-Energy Structures
The lowest-energy bonded state in the full scan set occurs at `spinpolarization = 0` and `d(O-O) = 1.465` angstrom. Here, 'bonded' means `d(O-O) <= 2.0` angstrom.

The lowest-energy dissociated state was defined as the lowest-energy structure at the largest scanned O-O distance (`d(O-O) = 3.000` angstrom). It occurs for `spinpolarization = 2`.

## Calculation Inputs
### spinpol_0
```ams
PESScan
CalcPropertiesAtPESPoints yes
ScanCoordinate
Distance 9 10 1.362770 3.000000
nPoints 17
End
End
Task PESScan
System
Atoms
C -5.7853396399 -0.3775293408 0.0534624364
C -5.2739631081 -1.6580062127 -0.1693324182
C -3.8914954472 -1.8626507642 -0.2206186121
C -3.0051209562 -0.7825471751 -0.0485731184
C -3.5318256026 0.5027433484 0.1752200639
C -4.9152265407 0.7014132161 0.2255077074
C -1.5415025506 -0.9907446742 -0.1014385978
O -1.0682590904 -2.1425240610 -0.3020011407
O -0.6753399226 0.0875991932 0.0705568759
O 0.6753406192 -0.0876011042 0.0246319173
C 1.5415028692 0.9907428504 0.1966270716
O 1.0682589594 2.1425216033 0.3971938037
C 3.0051212579 0.7825461682 0.1437610029
C 3.8914945837 1.8626501390 0.3158080689
C 5.2739621418 1.6580070013 0.2645206976
C 5.7853400594 0.3775310800 0.0417224843
C 4.9152277561 -0.7014117837 -0.1303242755
C 3.5318266896 -0.5027431696 -0.0800346166
H -6.8556482602 -0.2213784496 0.0927828415
H -5.9492663902 -2.4933590925 -0.3025168635
H -3.5178200329 -2.8639890493 -0.3945270611
H -2.8770162470 1.3542663339 0.3113864878
H -5.3127831836 1.6932542256 0.3980989839
H 3.5178177234 2.8639876480 0.4897194499
H 5.9492634706 2.4933607184 0.3977065034
H 6.8556482458 0.2213806547 0.0024015641
H 5.3127847693 -1.6932521841 -0.3029171726
H 2.8770178270 -1.3542671195 -0.2162024114
End
BondOrders
1 2 1.5
1 6 1.5
1 19 1.0
2 3 1.5
2 20 1.0
3 4 1.5
3 21 1.0
4 5 1.5
4 7 1.0
5 6 1.5
5 22 1.0
6 23 1.0
7 8 2.0
7 9 1.0
9 10 1.0
10 11 1.0
11 12 2.0
11 13 1.0
13 14 1.5
13 18 1.5
14 15 1.5
14 24 1.0
15 16 1.5
15 25 1.0
16 17 1.5
16 26 1.0
17 18 1.5
17 27 1.0
18 28 1.0
End
End
Engine mlpotential
Model UMA-S-1.2-OMol
UnpairedElectrons 0
Unrestricted yes
EndEngine
```
### spinpol_1
```ams
PESScan
CalcPropertiesAtPESPoints yes
ScanCoordinate
Distance 9 10 1.362770 3.000000
nPoints 17
End
End
Task PESScan
System
Atoms
C -5.7853396399 -0.3775293408 0.0534624364
C -5.2739631081 -1.6580062127 -0.1693324182
C -3.8914954472 -1.8626507642 -0.2206186121
C -3.0051209562 -0.7825471751 -0.0485731184
C -3.5318256026 0.5027433484 0.1752200639
C -4.9152265407 0.7014132161 0.2255077074
C -1.5415025506 -0.9907446742 -0.1014385978
O -1.0682590904 -2.1425240610 -0.3020011407
O -0.6753399226 0.0875991932 0.0705568759
O 0.6753406192 -0.0876011042 0.0246319173
C 1.5415028692 0.9907428504 0.1966270716
O 1.0682589594 2.1425216033 0.3971938037
C 3.0051212579 0.7825461682 0.1437610029
C 3.8914945837 1.8626501390 0.3158080689
C 5.2739621418 1.6580070013 0.2645206976
C 5.7853400594 0.3775310800 0.0417224843
C 4.9152277561 -0.7014117837 -0.1303242755
C 3.5318266896 -0.5027431696 -0.0800346166
H -6.8556482602 -0.2213784496 0.0927828415
H -5.9492663902 -2.4933590925 -0.3025168635
H -3.5178200329 -2.8639890493 -0.3945270611
H -2.8770162470 1.3542663339 0.3113864878
H -5.3127831836 1.6932542256 0.3980989839
H 3.5178177234 2.8639876480 0.4897194499
H 5.9492634706 2.4933607184 0.3977065034
H 6.8556482458 0.2213806547 0.0024015641
H 5.3127847693 -1.6932521841 -0.3029171726
H 2.8770178270 -1.3542671195 -0.2162024114
End
BondOrders
1 2 1.5
1 6 1.5
1 19 1.0
2 3 1.5
2 20 1.0
3 4 1.5
3 21 1.0
4 5 1.5
4 7 1.0
5 6 1.5
5 22 1.0
6 23 1.0
7 8 2.0
7 9 1.0
9 10 1.0
10 11 1.0
11 12 2.0
11 13 1.0
13 14 1.5
13 18 1.5
14 15 1.5
14 24 1.0
15 16 1.5
15 25 1.0
16 17 1.5
16 26 1.0
17 18 1.5
17 27 1.0
18 28 1.0
End
End
Engine mlpotential
Model UMA-S-1.2-OMol
UnpairedElectrons 1
Unrestricted yes
EndEngine
```
### spinpol_2
```ams
PESScan
CalcPropertiesAtPESPoints yes
ScanCoordinate
Distance 9 10 1.362770 3.000000
nPoints 17
End
End
Task PESScan
System
Atoms
C -5.7853396399 -0.3775293408 0.0534624364
C -5.2739631081 -1.6580062127 -0.1693324182
C -3.8914954472 -1.8626507642 -0.2206186121
C -3.0051209562 -0.7825471751 -0.0485731184
C -3.5318256026 0.5027433484 0.1752200639
C -4.9152265407 0.7014132161 0.2255077074
C -1.5415025506 -0.9907446742 -0.1014385978
O -1.0682590904 -2.1425240610 -0.3020011407
O -0.6753399226 0.0875991932 0.0705568759
O 0.6753406192 -0.0876011042 0.0246319173
C 1.5415028692 0.9907428504 0.1966270716
O 1.0682589594 2.1425216033 0.3971938037
C 3.0051212579 0.7825461682 0.1437610029
C 3.8914945837 1.8626501390 0.3158080689
C 5.2739621418 1.6580070013 0.2645206976
C 5.7853400594 0.3775310800 0.0417224843
C 4.9152277561 -0.7014117837 -0.1303242755
C 3.5318266896 -0.5027431696 -0.0800346166
H -6.8556482602 -0.2213784496 0.0927828415
H -5.9492663902 -2.4933590925 -0.3025168635
H -3.5178200329 -2.8639890493 -0.3945270611
H -2.8770162470 1.3542663339 0.3113864878
H -5.3127831836 1.6932542256 0.3980989839
H 3.5178177234 2.8639876480 0.4897194499
H 5.9492634706 2.4933607184 0.3977065034
H 6.8556482458 0.2213806547 0.0024015641
H 5.3127847693 -1.6932521841 -0.3029171726
H 2.8770178270 -1.3542671195 -0.2162024114
End
BondOrders
1 2 1.5
1 6 1.5
1 19 1.0
2 3 1.5
2 20 1.0
3 4 1.5
3 21 1.0
4 5 1.5
4 7 1.0
5 6 1.5
5 22 1.0
6 23 1.0
7 8 2.0
7 9 1.0
9 10 1.0
10 11 1.0
11 12 2.0
11 13 1.0
13 14 1.5
13 18 1.5
14 15 1.5
14 24 1.0
15 16 1.5
15 25 1.0
16 17 1.5
16 26 1.0
17 18 1.5
17 27 1.0
18 28 1.0
End
End
Engine mlpotential
Model UMA-S-1.2-OMol
UnpairedElectrons 2
Unrestricted yes
EndEngine
```
## Conclusion
Among the three scans, the global minimum is found for `spinpolarization = 0`. At the dissociation limit sampled here (`~3.0` angstrom), the lowest-energy state is obtained for `spinpolarization = 2`.