From aaa82d77eb112f9cfbe63a38c55f82afee13b7d1 Mon Sep 17 00:00:00 2001 From: Alon Grinberg Dana Date: Mon, 27 Oct 2025 08:46:08 +0200 Subject: [PATCH 1/2] Send the species multiplicity to Arkane's input file to allow it to process (and differentiate between) singlet and triplet forms of the same structure, see RMG-Py PR #2854 --- arc/statmech/arkane.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arc/statmech/arkane.py b/arc/statmech/arkane.py index 581676e25e..15b9eeed11 100644 --- a/arc/statmech/arkane.py +++ b/arc/statmech/arkane.py @@ -50,7 +50,7 @@ % for spc in species_list: % if spc['smiles']: species('${spc['label']}', '${spc['path']}'${spc['pdep_data'] if 'pdep_data' in spc else ''}, - structure=SMILES('${spc['smiles']}')) + structure=SMILES('${spc['smiles']}'), spinMultiplicity=${spc['multiplicity']}) % else: species('${spc['label']}', '${spc['path']}'${spc['pdep_data'] if 'pdep_data' in spc else ''}) % endif @@ -325,7 +325,9 @@ def render_arkane_input_template(self, if e0_only or spc.compute_thermo: species_list.append({'label': spc.label, 'path': spc.yml_path or os.path.join(statmech_dir, 'species', f'{spc.label}.py'), - 'smiles': spc.mol.copy(deep=True).to_smiles() if not spc.is_ts else ''}) + 'smiles': spc.mol.copy(deep=True).to_smiles() if not spc.is_ts else '', + 'multiplicity': spc.multiplicity, + }) ts_list = [{'label': rxn.ts_species.label, 'path': rxn.ts_species.yml_path or os.path.join(statmech_dir, 'TSs', f'{rxn.ts_species.label}.py')} for rxn in self.reactions] if self.reactions else list() From 470debc89717c3ca5a80d7560000e9a58bb052bc Mon Sep 17 00:00:00 2001 From: Alon Grinberg Dana Date: Tue, 30 Dec 2025 22:19:27 +0200 Subject: [PATCH 2/2] Tests: Adapted test_generate_arkane_input() --- arc/statmech/arkane_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arc/statmech/arkane_test.py b/arc/statmech/arkane_test.py index e4b10f92da..3e7bac2f22 100644 --- a/arc/statmech/arkane_test.py +++ b/arc/statmech/arkane_test.py @@ -154,8 +154,8 @@ def test_generate_arkane_input(self): input_path = os.path.join(statmech_dir, 'input.py') expected_lines = ["#!/usr/bin/env python", "title = 'Arkane kinetics calculation'", - " structure=SMILES('C[NH]'))", - " structure=SMILES('[CH2]N'))", + " structure=SMILES('C[NH]'), spinMultiplicity=2)", + " structure=SMILES('[CH2]N'), spinMultiplicity=2)", " label='CH3NH <=> CH2NH2',", " reactants=['CH3NH'],", " products=['CH2NH2'],",