From 7b59511692ded45484f940df52f3287a6da2e8c1 Mon Sep 17 00:00:00 2001 From: Richard West Date: Wed, 9 Aug 2023 14:48:25 -0400 Subject: [PATCH 01/88] Instruct Docker, Github Actions, and users to use 'for_rmg' branch of RMS. The "main" branch of ReactionMechanismSimulator.jl is temporarily incompatible with RMG. For now, there is a dedicated "for_rmg" branch, which we can use. Hopefully they don't need to be maintained as separate things. --- .github/workflows/CI.yml | 2 +- Dockerfile | 2 +- .../source/users/rmg/installation/anacondaDeveloper.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f13f4cdb54..bf3617bf81 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -154,7 +154,7 @@ jobs: timeout-minutes: 120 # this usually takes 20-45 minutes (or hangs for 6+ hours). run: | python -c "import julia; julia.install(); import diffeqpy; diffeqpy.install()" || true - julia -e 'using Pkg; Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="main")); using ReactionMechanismSimulator' || true + julia -e 'using Pkg; Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="for_rmg")); using ReactionMechanismSimulator' || true # non-regression testing - name: Unit tests diff --git a/Dockerfile b/Dockerfile index 803374c02a..ab9792b3ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,7 +62,7 @@ ENV PATH="$RUNNER_CWD/RMG-Py:$PATH" # 1. Build RMG # 2. Install and link Julia dependencies for RMS RUN make && \ - julia -e 'using Pkg; Pkg.add(PackageSpec(name="PyCall",rev="master")); Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="main")); using ReactionMechanismSimulator' && \ + julia -e 'using Pkg; Pkg.add(PackageSpec(name="PyCall",rev="master")); Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="for_rmg")); using ReactionMechanismSimulator' && \ python -c "import julia; julia.install(); import diffeqpy; diffeqpy.install()" # RMG-Py should now be installed and ready - trigger precompilation and test run diff --git a/documentation/source/users/rmg/installation/anacondaDeveloper.rst b/documentation/source/users/rmg/installation/anacondaDeveloper.rst index eedc86ae1c..1840df7cd4 100644 --- a/documentation/source/users/rmg/installation/anacondaDeveloper.rst +++ b/documentation/source/users/rmg/installation/anacondaDeveloper.rst @@ -136,7 +136,7 @@ Installation by Source Using Anaconda Environment for Unix-based Systems: Linux #. Install and Link Julia dependencies: :: - julia -e 'using Pkg; Pkg.add("PyCall");Pkg.build("PyCall");Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="main")); using ReactionMechanismSimulator;' + julia -e 'using Pkg; Pkg.add("PyCall");Pkg.build("PyCall");Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="for_rmg")); using ReactionMechanismSimulator;' python -c "import julia; julia.install(); import diffeqpy; diffeqpy.install()" From e45239f08cd35656f702d49c846ed49469755533 Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 09:16:12 -0400 Subject: [PATCH 02/88] remove deprecated rule from makefile phony list --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 7ec4bae352..5ed7241e6d 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # ################################################################################ -.PHONY : all minimal main solver check pycheck arkane clean install decython documentation mopac_travis test +.PHONY : all minimal main solver check pycheck arkane clean install decython documentation test all: pycheck main solver check From c35fd63fc2e104ede03d234aaac186c4f7bf732d Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 09:34:58 -0400 Subject: [PATCH 03/88] move testing files to test dir --- {arkane => test/arkane}/commonTest.py | 0 {arkane => test/arkane}/encorr/aeTest.py | 0 {arkane => test/arkane}/encorr/bacTest.py | 0 {arkane => test/arkane}/encorr/corrTest.py | 0 {arkane => test/arkane}/encorr/dataTest.py | 0 {arkane => test/arkane}/encorr/decompTest.py | 0 {arkane => test/arkane}/encorr/isodesmicTest.py | 0 {arkane => test/arkane}/encorr/referenceTest.py | 0 {arkane => test/arkane}/ess/factoryTest.py | 0 {arkane => test/arkane}/ess/gaussianTest.py | 0 {arkane => test/arkane}/ess/molproTest.py | 0 {arkane => test/arkane}/ess/orcaTest.py | 0 {arkane => test/arkane}/ess/psi4Test.py | 0 {arkane => test/arkane}/ess/qchemTest.py | 0 {arkane => test/arkane}/ess/terachemTest.py | 0 {arkane => test/arkane}/explorerTest.py | 0 {arkane => test/arkane}/inputTest.py | 0 {arkane => test/arkane}/kineticsTest.py | 0 {arkane => test/arkane}/mainTest.py | 0 {arkane => test/arkane}/modelchemTest.py | 0 {arkane => test/arkane}/outputTest.py | 0 {arkane => test/arkane}/pdepTest.py | 0 {arkane => test/arkane}/statmechTest.py | 0 {arkane => test/arkane}/thermoTest.py | 0 {rmgpy => test/rmgpy}/chemkinTest.py | 0 {rmgpy => test/rmgpy}/constantsTest.py | 0 {rmgpy => test/rmgpy}/constraintsTest.py | 0 {rmgpy => test/rmgpy}/data/baseTest.py | 0 {rmgpy => test/rmgpy}/data/kinetics/familyTest.py | 0 {rmgpy => test/rmgpy}/data/kinetics/kineticsTest.py | 0 {rmgpy => test/rmgpy}/data/kinetics/libraryTest.py | 0 {rmgpy => test/rmgpy}/data/solvationTest.py | 0 {rmgpy => test/rmgpy}/data/surfaceTest.py | 0 {rmgpy => test/rmgpy}/data/thermoTest.py | 0 {rmgpy => test/rmgpy}/data/transportTest.py | 0 {rmgpy => test/rmgpy}/kinetics/arrheniusTest.py | 0 {rmgpy => test/rmgpy}/kinetics/chebyshevTest.py | 0 {rmgpy => test/rmgpy}/kinetics/diffusionLimitedTest.py | 0 {rmgpy => test/rmgpy}/kinetics/falloffTest.py | 0 {rmgpy => test/rmgpy}/kinetics/kineticsdataTest.py | 0 {rmgpy => test/rmgpy}/kinetics/modelTest.py | 0 {rmgpy => test/rmgpy}/kinetics/surfaceTest.py | 0 {rmgpy => test/rmgpy}/kinetics/tunnelingTest.py | 0 {rmgpy => test/rmgpy}/kinetics/uncertaintiesTest.py | 0 {rmgpy => test/rmgpy}/molecule/adjlistTest.py | 0 {rmgpy => test/rmgpy}/molecule/atomtypeTest.py | 0 {rmgpy => test/rmgpy}/molecule/converterTest.py | 0 {rmgpy => test/rmgpy}/molecule/drawTest.py | 0 {rmgpy => test/rmgpy}/molecule/elementTest.py | 0 {rmgpy => test/rmgpy}/molecule/filtrationTest.py | 0 {rmgpy => test/rmgpy}/molecule/graphTest.py | 0 {rmgpy => test/rmgpy}/molecule/groupTest.py | 0 {rmgpy => test/rmgpy}/molecule/inchiTest.py | 0 {rmgpy => test/rmgpy}/molecule/isomorphismTest.py | 0 {rmgpy => test/rmgpy}/molecule/kekulizeTest.py | 0 {rmgpy => test/rmgpy}/molecule/moleculeTest.py | 0 {rmgpy => test/rmgpy}/molecule/pathfinderTest.py | 0 {rmgpy => test/rmgpy}/molecule/resonanceTest.py | 0 {rmgpy => test/rmgpy}/molecule/symmetryTest.py | 0 {rmgpy => test/rmgpy}/molecule/translatorTest.py | 0 {rmgpy => test/rmgpy}/molecule/utilTest.py | 0 {rmgpy => test/rmgpy}/molecule/vf2Test.py | 0 {rmgpy => test/rmgpy}/pdep/collisionTest.py | 0 {rmgpy => test/rmgpy}/pdep/configurationTest.py | 0 {rmgpy => test/rmgpy}/pdep/networkTest.py | 0 {rmgpy => test/rmgpy}/qm/gaussianTest.py | 0 {rmgpy => test/rmgpy}/qm/mainTest.py | 0 {rmgpy => test/rmgpy}/qm/moleculeTest.py | 0 {rmgpy => test/rmgpy}/qm/mopacTest.py | 0 {rmgpy => test/rmgpy}/quantityTest.py | 0 {rmgpy => test/rmgpy}/reactionTest.py | 0 {rmgpy => test/rmgpy}/rmg/inputTest.py | 0 {rmgpy => test/rmgpy}/rmg/mainTest.py | 0 {rmgpy => test/rmgpy}/rmg/modelTest.py | 0 {rmgpy => test/rmgpy}/rmg/outputTest.py | 0 {rmgpy => test/rmgpy}/rmg/pdepTest.py | 0 {rmgpy => test/rmgpy}/rmg/reactTest.py | 0 {rmgpy => test/rmgpy}/rmg/rmgTest.py | 0 {rmgpy => test/rmgpy}/rmgobjectTest.py | 0 {rmgpy => test/rmgpy}/solver/baseTest.py | 0 {rmgpy => test/rmgpy}/solver/liquidTest.py | 0 {rmgpy => test/rmgpy}/solver/simpleTest.py | 0 {rmgpy => test/rmgpy}/solver/surfaceTest.py | 0 {rmgpy => test/rmgpy}/speciesTest.py | 0 {rmgpy => test/rmgpy}/statmech/conformerTest.py | 0 {rmgpy => test/rmgpy}/statmech/ndTorsionsTest.py | 0 {rmgpy => test/rmgpy}/statmech/rotationTest.py | 0 {rmgpy => test/rmgpy}/statmech/schrodingerTest.py | 0 {rmgpy => test/rmgpy}/statmech/torsionTest.py | 0 {rmgpy => test/rmgpy}/statmech/translationTest.py | 0 {rmgpy => test/rmgpy}/statmech/vibrationTest.py | 0 {rmgpy => test/rmgpy}/statsTest.py | 0 {rmgpy => test/rmgpy}/test_data/arkane/tst1/pdep_sa.py | 0 {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/NC/chem.inp | 0 .../rmgpy}/test_data/chemkin/chemkin_py/NC/species_dictionary.txt | 0 .../rmgpy}/test_data/chemkin/chemkin_py/minimal/chem.inp | 0 .../test_data/chemkin/chemkin_py/minimal/species_dictionary.txt | 0 {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/pdd/chem.inp | 0 .../test_data/chemkin/chemkin_py/pdd/species_dictionary.txt | 0 .../rmgpy}/test_data/chemkin/chemkin_py/surface/chem-surface.inp | 0 .../test_data/chemkin/chemkin_py/surface/species_dictionary.txt | 0 {rmgpy => test/rmgpy}/test_data/parsing_data/chem_annotated.inp | 0 .../rmgpy}/test_data/parsing_data/species_dictionary.txt | 0 .../rmgpy}/test_data/testing_database/forbiddenStructures.py | 0 .../testing_database/kinetics/families/1,2_shiftC/groups.py | 0 .../testing_database/kinetics/families/1,2_shiftC/rules.py | 0 .../kinetics/families/1,2_shiftC/training/dictionary.txt | 0 .../kinetics/families/1,2_shiftC/training/reactions.py | 0 .../kinetics/families/6_membered_central_C-C_shift/groups.py | 0 .../kinetics/families/6_membered_central_C-C_shift/rules.py | 0 .../families/6_membered_central_C-C_shift/training/dictionary.txt | 0 .../families/6_membered_central_C-C_shift/training/reactions.py | 0 .../kinetics/families/Baeyer-Villiger_step1_cat/groups.py | 0 .../kinetics/families/Baeyer-Villiger_step1_cat/rules.py | 0 .../families/Baeyer-Villiger_step1_cat/training/dictionary.txt | 0 .../families/Baeyer-Villiger_step1_cat/training/reactions.py | 0 .../kinetics/families/Disproportionation/groups.py | 0 .../kinetics/families/Disproportionation/rules.py | 0 .../kinetics/families/Disproportionation/training/dictionary.txt | 0 .../kinetics/families/Disproportionation/training/reactions.py | 0 .../testing_database/kinetics/families/H_Abstraction/groups.py | 0 .../testing_database/kinetics/families/H_Abstraction/rules.py | 0 .../kinetics/families/H_Abstraction/training/dictionary.txt | 0 .../kinetics/families/H_Abstraction/training/reactions.py | 0 .../kinetics/families/Intra_R_Add_Exo_scission/groups.py | 0 .../kinetics/families/Intra_R_Add_Exo_scission/rules.py | 0 .../families/Intra_R_Add_Exo_scission/training/dictionary.txt | 0 .../families/Intra_R_Add_Exo_scission/training/reactions.py | 0 .../kinetics/families/Intra_ene_reaction/groups.py | 0 .../kinetics/families/Intra_ene_reaction/rules.py | 0 .../kinetics/families/Intra_ene_reaction/training/dictionary.txt | 0 .../kinetics/families/Intra_ene_reaction/training/reactions.py | 0 .../testing_database/kinetics/families/R_Addition_COm/groups.py | 0 .../testing_database/kinetics/families/R_Addition_COm/rules.py | 0 .../kinetics/families/R_Addition_COm/training/dictionary.txt | 0 .../kinetics/families/R_Addition_COm/training/reactions.py | 0 .../kinetics/families/R_Addition_MultipleBond/groups.py | 0 .../kinetics/families/R_Addition_MultipleBond/rules.py | 0 .../families/R_Addition_MultipleBond/training/dictionary.txt | 0 .../families/R_Addition_MultipleBond/training/reactions.py | 0 .../testing_database/kinetics/families/R_Recombination/groups.py | 0 .../testing_database/kinetics/families/R_Recombination/rules.py | 0 .../kinetics/families/R_Recombination/training/dictionary.txt | 0 .../kinetics/families/R_Recombination/training/reactions.py | 0 .../families/Singlet_Carbene_Intra_Disproportionation/groups.py | 0 .../families/Singlet_Carbene_Intra_Disproportionation/rules.py | 0 .../training/dictionary.txt | 0 .../training/reactions.py | 0 .../kinetics/families/Singlet_Val6_to_triplet/groups.py | 0 .../kinetics/families/Singlet_Val6_to_triplet/rules.py | 0 .../families/Singlet_Val6_to_triplet/training/dictionary.txt | 0 .../families/Singlet_Val6_to_triplet/training/reactions.py | 0 .../kinetics/families/Surface_Abstraction_vdW/groups.py | 0 .../kinetics/families/Surface_Abstraction_vdW/rules.py | 0 .../families/Surface_Abstraction_vdW/training/dictionary.txt | 0 .../families/Surface_Abstraction_vdW/training/reactions.py | 0 .../kinetics/families/Surface_Adsorption_Dissociative/groups.py | 0 .../kinetics/families/Surface_Adsorption_Dissociative/rules.py | 0 .../Surface_Adsorption_Dissociative/training/dictionary.txt | 0 .../Surface_Adsorption_Dissociative/training/reactions.py | 0 .../kinetics/families/Surface_Dissociation_vdW/groups.py | 0 .../kinetics/families/Surface_Dissociation_vdW/rules.py | 0 .../kinetics/families/intra_H_migration/groups.py | 0 .../testing_database/kinetics/families/intra_H_migration/rules.py | 0 .../kinetics/families/intra_H_migration/training/dictionary.txt | 0 .../kinetics/families/intra_H_migration/training/reactions.py | 0 .../kinetics/families/intra_substitutionS_isomerization/groups.py | 0 .../kinetics/families/intra_substitutionS_isomerization/rules.py | 0 .../intra_substitutionS_isomerization/training/dictionary.txt | 0 .../intra_substitutionS_isomerization/training/reactions.py | 0 .../test_data/testing_database/kinetics/families/recommended.py | 0 .../kinetics/libraries/GRI-Mech3.0/dictionary.txt | 0 .../testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py | 0 .../kinetics/libraries/ethane-oxidation/dictionary.txt | 0 .../kinetics/libraries/ethane-oxidation/reactions.py | 0 .../testing_database/kinetics/libraries/lib_net/dictionary.txt | 0 .../testing_database/kinetics/libraries/lib_net/reactions.py | 0 .../kinetics/libraries/surface-example/dictionary.txt | 0 .../kinetics/libraries/surface-example/reactions.py | 0 .../rmgpy}/test_data/testing_database/solvation/groups/group.py | 0 .../rmgpy}/test_data/testing_database/solvation/groups/halogen.py | 0 .../solvation/groups/longDistanceInteraction_cyclic.py | 0 .../solvation/groups/longDistanceInteraction_noncyclic.py | 0 .../test_data/testing_database/solvation/groups/polycyclic.py | 0 .../rmgpy}/test_data/testing_database/solvation/groups/radical.py | 0 .../rmgpy}/test_data/testing_database/solvation/groups/ring.py | 0 .../test_data/testing_database/solvation/libraries/solute.py | 0 .../test_data/testing_database/solvation/libraries/solvent.py | 0 .../test_data/testing_database/statmech/depository/depository.py | 0 .../rmgpy}/test_data/testing_database/statmech/groups/groups.py | 0 .../test_data/testing_database/thermo/depository/radical.py | 0 .../rmgpy}/test_data/testing_database/thermo/depository/stable.py | 0 .../test_data/testing_database/thermo/groups/adsorptionPt111.py | 0 .../rmgpy}/test_data/testing_database/thermo/groups/gauche.py | 0 .../rmgpy}/test_data/testing_database/thermo/groups/group.py | 0 .../thermo/groups/longDistanceInteraction_cyclic.py | 0 .../thermo/groups/longDistanceInteraction_noncyclic.py | 0 .../rmgpy}/test_data/testing_database/thermo/groups/other.py | 0 .../rmgpy}/test_data/testing_database/thermo/groups/polycyclic.py | 0 .../rmgpy}/test_data/testing_database/thermo/groups/radical.py | 0 .../rmgpy}/test_data/testing_database/thermo/groups/ring.py | 0 .../testing_database/thermo/libraries/primaryThermoLibrary.py | 0 .../rmgpy}/test_data/testing_database/transport/groups/nonring.py | 0 .../rmgpy}/test_data/testing_database/transport/groups/ring.py | 0 {rmgpy => test/rmgpy}/thermo/convertTest.py | 0 {rmgpy => test/rmgpy}/thermo/nasaTest.py | 0 {rmgpy => test/rmgpy}/thermo/thermodataTest.py | 0 {rmgpy => test/rmgpy}/thermo/wilhoitTest.py | 0 {rmgpy => test/rmgpy}/tools/canteramodelTest.py | 0 {rmgpy => test/rmgpy}/tools/diffmodelsTest.py | 0 {rmgpy => test/rmgpy}/tools/fluxdiagramTest.py | 0 {rmgpy => test/rmgpy}/tools/generatereactionsTest.py | 0 {rmgpy => test/rmgpy}/tools/isotopesTest.py | 0 {rmgpy => test/rmgpy}/tools/mergemodelsTest.py | 0 {rmgpy => test/rmgpy}/tools/regressionTest.py | 0 {rmgpy => test/rmgpy}/tools/simulateTest.py | 0 {rmgpy => test/rmgpy}/tools/uncertaintyTest.py | 0 {rmgpy => test/rmgpy}/transportDataTest.py | 0 218 files changed, 0 insertions(+), 0 deletions(-) rename {arkane => test/arkane}/commonTest.py (100%) rename {arkane => test/arkane}/encorr/aeTest.py (100%) rename {arkane => test/arkane}/encorr/bacTest.py (100%) rename {arkane => test/arkane}/encorr/corrTest.py (100%) rename {arkane => test/arkane}/encorr/dataTest.py (100%) rename {arkane => test/arkane}/encorr/decompTest.py (100%) rename {arkane => test/arkane}/encorr/isodesmicTest.py (100%) rename {arkane => test/arkane}/encorr/referenceTest.py (100%) rename {arkane => test/arkane}/ess/factoryTest.py (100%) rename {arkane => test/arkane}/ess/gaussianTest.py (100%) rename {arkane => test/arkane}/ess/molproTest.py (100%) rename {arkane => test/arkane}/ess/orcaTest.py (100%) rename {arkane => test/arkane}/ess/psi4Test.py (100%) rename {arkane => test/arkane}/ess/qchemTest.py (100%) rename {arkane => test/arkane}/ess/terachemTest.py (100%) rename {arkane => test/arkane}/explorerTest.py (100%) rename {arkane => test/arkane}/inputTest.py (100%) rename {arkane => test/arkane}/kineticsTest.py (100%) rename {arkane => test/arkane}/mainTest.py (100%) rename {arkane => test/arkane}/modelchemTest.py (100%) rename {arkane => test/arkane}/outputTest.py (100%) rename {arkane => test/arkane}/pdepTest.py (100%) rename {arkane => test/arkane}/statmechTest.py (100%) rename {arkane => test/arkane}/thermoTest.py (100%) rename {rmgpy => test/rmgpy}/chemkinTest.py (100%) rename {rmgpy => test/rmgpy}/constantsTest.py (100%) rename {rmgpy => test/rmgpy}/constraintsTest.py (100%) rename {rmgpy => test/rmgpy}/data/baseTest.py (100%) rename {rmgpy => test/rmgpy}/data/kinetics/familyTest.py (100%) rename {rmgpy => test/rmgpy}/data/kinetics/kineticsTest.py (100%) rename {rmgpy => test/rmgpy}/data/kinetics/libraryTest.py (100%) rename {rmgpy => test/rmgpy}/data/solvationTest.py (100%) rename {rmgpy => test/rmgpy}/data/surfaceTest.py (100%) rename {rmgpy => test/rmgpy}/data/thermoTest.py (100%) rename {rmgpy => test/rmgpy}/data/transportTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/arrheniusTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/chebyshevTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/diffusionLimitedTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/falloffTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/kineticsdataTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/modelTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/surfaceTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/tunnelingTest.py (100%) rename {rmgpy => test/rmgpy}/kinetics/uncertaintiesTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/adjlistTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/atomtypeTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/converterTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/drawTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/elementTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/filtrationTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/graphTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/groupTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/inchiTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/isomorphismTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/kekulizeTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/moleculeTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/pathfinderTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/resonanceTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/symmetryTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/translatorTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/utilTest.py (100%) rename {rmgpy => test/rmgpy}/molecule/vf2Test.py (100%) rename {rmgpy => test/rmgpy}/pdep/collisionTest.py (100%) rename {rmgpy => test/rmgpy}/pdep/configurationTest.py (100%) rename {rmgpy => test/rmgpy}/pdep/networkTest.py (100%) rename {rmgpy => test/rmgpy}/qm/gaussianTest.py (100%) rename {rmgpy => test/rmgpy}/qm/mainTest.py (100%) rename {rmgpy => test/rmgpy}/qm/moleculeTest.py (100%) rename {rmgpy => test/rmgpy}/qm/mopacTest.py (100%) rename {rmgpy => test/rmgpy}/quantityTest.py (100%) rename {rmgpy => test/rmgpy}/reactionTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/inputTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/mainTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/modelTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/outputTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/pdepTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/reactTest.py (100%) rename {rmgpy => test/rmgpy}/rmg/rmgTest.py (100%) rename {rmgpy => test/rmgpy}/rmgobjectTest.py (100%) rename {rmgpy => test/rmgpy}/solver/baseTest.py (100%) rename {rmgpy => test/rmgpy}/solver/liquidTest.py (100%) rename {rmgpy => test/rmgpy}/solver/simpleTest.py (100%) rename {rmgpy => test/rmgpy}/solver/surfaceTest.py (100%) rename {rmgpy => test/rmgpy}/speciesTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/conformerTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/ndTorsionsTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/rotationTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/schrodingerTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/torsionTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/translationTest.py (100%) rename {rmgpy => test/rmgpy}/statmech/vibrationTest.py (100%) rename {rmgpy => test/rmgpy}/statsTest.py (100%) rename {rmgpy => test/rmgpy}/test_data/arkane/tst1/pdep_sa.py (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/NC/chem.inp (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/NC/species_dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/minimal/chem.inp (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/minimal/species_dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/pdd/chem.inp (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/pdd/species_dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/surface/chem-surface.inp (100%) rename {rmgpy => test/rmgpy}/test_data/chemkin/chemkin_py/surface/species_dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/parsing_data/chem_annotated.inp (100%) rename {rmgpy => test/rmgpy}/test_data/parsing_data/species_dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/forbiddenStructures.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/1,2_shiftC/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Disproportionation/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Disproportionation/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Disproportionation/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/H_Abstraction/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/H_Abstraction/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/H_Abstraction/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/H_Abstraction/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_COm/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_COm/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Recombination/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Recombination/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Recombination/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/R_Recombination/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_H_migration/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_H_migration/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_H_migration/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_H_migration/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/rules.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/families/recommended.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/ethane-oxidation/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/lib_net/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/lib_net/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/surface-example/dictionary.txt (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/kinetics/libraries/surface-example/reactions.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/group.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/halogen.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/polycyclic.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/radical.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/groups/ring.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/libraries/solute.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/solvation/libraries/solvent.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/statmech/depository/depository.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/statmech/groups/groups.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/depository/radical.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/depository/stable.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/adsorptionPt111.py (100%) mode change 100755 => 100644 rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/gauche.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/group.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/other.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/polycyclic.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/radical.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/groups/ring.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/transport/groups/nonring.py (100%) rename {rmgpy => test/rmgpy}/test_data/testing_database/transport/groups/ring.py (100%) rename {rmgpy => test/rmgpy}/thermo/convertTest.py (100%) rename {rmgpy => test/rmgpy}/thermo/nasaTest.py (100%) rename {rmgpy => test/rmgpy}/thermo/thermodataTest.py (100%) rename {rmgpy => test/rmgpy}/thermo/wilhoitTest.py (100%) rename {rmgpy => test/rmgpy}/tools/canteramodelTest.py (100%) rename {rmgpy => test/rmgpy}/tools/diffmodelsTest.py (100%) rename {rmgpy => test/rmgpy}/tools/fluxdiagramTest.py (100%) rename {rmgpy => test/rmgpy}/tools/generatereactionsTest.py (100%) rename {rmgpy => test/rmgpy}/tools/isotopesTest.py (100%) rename {rmgpy => test/rmgpy}/tools/mergemodelsTest.py (100%) rename {rmgpy => test/rmgpy}/tools/regressionTest.py (100%) rename {rmgpy => test/rmgpy}/tools/simulateTest.py (100%) rename {rmgpy => test/rmgpy}/tools/uncertaintyTest.py (100%) rename {rmgpy => test/rmgpy}/transportDataTest.py (100%) diff --git a/arkane/commonTest.py b/test/arkane/commonTest.py similarity index 100% rename from arkane/commonTest.py rename to test/arkane/commonTest.py diff --git a/arkane/encorr/aeTest.py b/test/arkane/encorr/aeTest.py similarity index 100% rename from arkane/encorr/aeTest.py rename to test/arkane/encorr/aeTest.py diff --git a/arkane/encorr/bacTest.py b/test/arkane/encorr/bacTest.py similarity index 100% rename from arkane/encorr/bacTest.py rename to test/arkane/encorr/bacTest.py diff --git a/arkane/encorr/corrTest.py b/test/arkane/encorr/corrTest.py similarity index 100% rename from arkane/encorr/corrTest.py rename to test/arkane/encorr/corrTest.py diff --git a/arkane/encorr/dataTest.py b/test/arkane/encorr/dataTest.py similarity index 100% rename from arkane/encorr/dataTest.py rename to test/arkane/encorr/dataTest.py diff --git a/arkane/encorr/decompTest.py b/test/arkane/encorr/decompTest.py similarity index 100% rename from arkane/encorr/decompTest.py rename to test/arkane/encorr/decompTest.py diff --git a/arkane/encorr/isodesmicTest.py b/test/arkane/encorr/isodesmicTest.py similarity index 100% rename from arkane/encorr/isodesmicTest.py rename to test/arkane/encorr/isodesmicTest.py diff --git a/arkane/encorr/referenceTest.py b/test/arkane/encorr/referenceTest.py similarity index 100% rename from arkane/encorr/referenceTest.py rename to test/arkane/encorr/referenceTest.py diff --git a/arkane/ess/factoryTest.py b/test/arkane/ess/factoryTest.py similarity index 100% rename from arkane/ess/factoryTest.py rename to test/arkane/ess/factoryTest.py diff --git a/arkane/ess/gaussianTest.py b/test/arkane/ess/gaussianTest.py similarity index 100% rename from arkane/ess/gaussianTest.py rename to test/arkane/ess/gaussianTest.py diff --git a/arkane/ess/molproTest.py b/test/arkane/ess/molproTest.py similarity index 100% rename from arkane/ess/molproTest.py rename to test/arkane/ess/molproTest.py diff --git a/arkane/ess/orcaTest.py b/test/arkane/ess/orcaTest.py similarity index 100% rename from arkane/ess/orcaTest.py rename to test/arkane/ess/orcaTest.py diff --git a/arkane/ess/psi4Test.py b/test/arkane/ess/psi4Test.py similarity index 100% rename from arkane/ess/psi4Test.py rename to test/arkane/ess/psi4Test.py diff --git a/arkane/ess/qchemTest.py b/test/arkane/ess/qchemTest.py similarity index 100% rename from arkane/ess/qchemTest.py rename to test/arkane/ess/qchemTest.py diff --git a/arkane/ess/terachemTest.py b/test/arkane/ess/terachemTest.py similarity index 100% rename from arkane/ess/terachemTest.py rename to test/arkane/ess/terachemTest.py diff --git a/arkane/explorerTest.py b/test/arkane/explorerTest.py similarity index 100% rename from arkane/explorerTest.py rename to test/arkane/explorerTest.py diff --git a/arkane/inputTest.py b/test/arkane/inputTest.py similarity index 100% rename from arkane/inputTest.py rename to test/arkane/inputTest.py diff --git a/arkane/kineticsTest.py b/test/arkane/kineticsTest.py similarity index 100% rename from arkane/kineticsTest.py rename to test/arkane/kineticsTest.py diff --git a/arkane/mainTest.py b/test/arkane/mainTest.py similarity index 100% rename from arkane/mainTest.py rename to test/arkane/mainTest.py diff --git a/arkane/modelchemTest.py b/test/arkane/modelchemTest.py similarity index 100% rename from arkane/modelchemTest.py rename to test/arkane/modelchemTest.py diff --git a/arkane/outputTest.py b/test/arkane/outputTest.py similarity index 100% rename from arkane/outputTest.py rename to test/arkane/outputTest.py diff --git a/arkane/pdepTest.py b/test/arkane/pdepTest.py similarity index 100% rename from arkane/pdepTest.py rename to test/arkane/pdepTest.py diff --git a/arkane/statmechTest.py b/test/arkane/statmechTest.py similarity index 100% rename from arkane/statmechTest.py rename to test/arkane/statmechTest.py diff --git a/arkane/thermoTest.py b/test/arkane/thermoTest.py similarity index 100% rename from arkane/thermoTest.py rename to test/arkane/thermoTest.py diff --git a/rmgpy/chemkinTest.py b/test/rmgpy/chemkinTest.py similarity index 100% rename from rmgpy/chemkinTest.py rename to test/rmgpy/chemkinTest.py diff --git a/rmgpy/constantsTest.py b/test/rmgpy/constantsTest.py similarity index 100% rename from rmgpy/constantsTest.py rename to test/rmgpy/constantsTest.py diff --git a/rmgpy/constraintsTest.py b/test/rmgpy/constraintsTest.py similarity index 100% rename from rmgpy/constraintsTest.py rename to test/rmgpy/constraintsTest.py diff --git a/rmgpy/data/baseTest.py b/test/rmgpy/data/baseTest.py similarity index 100% rename from rmgpy/data/baseTest.py rename to test/rmgpy/data/baseTest.py diff --git a/rmgpy/data/kinetics/familyTest.py b/test/rmgpy/data/kinetics/familyTest.py similarity index 100% rename from rmgpy/data/kinetics/familyTest.py rename to test/rmgpy/data/kinetics/familyTest.py diff --git a/rmgpy/data/kinetics/kineticsTest.py b/test/rmgpy/data/kinetics/kineticsTest.py similarity index 100% rename from rmgpy/data/kinetics/kineticsTest.py rename to test/rmgpy/data/kinetics/kineticsTest.py diff --git a/rmgpy/data/kinetics/libraryTest.py b/test/rmgpy/data/kinetics/libraryTest.py similarity index 100% rename from rmgpy/data/kinetics/libraryTest.py rename to test/rmgpy/data/kinetics/libraryTest.py diff --git a/rmgpy/data/solvationTest.py b/test/rmgpy/data/solvationTest.py similarity index 100% rename from rmgpy/data/solvationTest.py rename to test/rmgpy/data/solvationTest.py diff --git a/rmgpy/data/surfaceTest.py b/test/rmgpy/data/surfaceTest.py similarity index 100% rename from rmgpy/data/surfaceTest.py rename to test/rmgpy/data/surfaceTest.py diff --git a/rmgpy/data/thermoTest.py b/test/rmgpy/data/thermoTest.py similarity index 100% rename from rmgpy/data/thermoTest.py rename to test/rmgpy/data/thermoTest.py diff --git a/rmgpy/data/transportTest.py b/test/rmgpy/data/transportTest.py similarity index 100% rename from rmgpy/data/transportTest.py rename to test/rmgpy/data/transportTest.py diff --git a/rmgpy/kinetics/arrheniusTest.py b/test/rmgpy/kinetics/arrheniusTest.py similarity index 100% rename from rmgpy/kinetics/arrheniusTest.py rename to test/rmgpy/kinetics/arrheniusTest.py diff --git a/rmgpy/kinetics/chebyshevTest.py b/test/rmgpy/kinetics/chebyshevTest.py similarity index 100% rename from rmgpy/kinetics/chebyshevTest.py rename to test/rmgpy/kinetics/chebyshevTest.py diff --git a/rmgpy/kinetics/diffusionLimitedTest.py b/test/rmgpy/kinetics/diffusionLimitedTest.py similarity index 100% rename from rmgpy/kinetics/diffusionLimitedTest.py rename to test/rmgpy/kinetics/diffusionLimitedTest.py diff --git a/rmgpy/kinetics/falloffTest.py b/test/rmgpy/kinetics/falloffTest.py similarity index 100% rename from rmgpy/kinetics/falloffTest.py rename to test/rmgpy/kinetics/falloffTest.py diff --git a/rmgpy/kinetics/kineticsdataTest.py b/test/rmgpy/kinetics/kineticsdataTest.py similarity index 100% rename from rmgpy/kinetics/kineticsdataTest.py rename to test/rmgpy/kinetics/kineticsdataTest.py diff --git a/rmgpy/kinetics/modelTest.py b/test/rmgpy/kinetics/modelTest.py similarity index 100% rename from rmgpy/kinetics/modelTest.py rename to test/rmgpy/kinetics/modelTest.py diff --git a/rmgpy/kinetics/surfaceTest.py b/test/rmgpy/kinetics/surfaceTest.py similarity index 100% rename from rmgpy/kinetics/surfaceTest.py rename to test/rmgpy/kinetics/surfaceTest.py diff --git a/rmgpy/kinetics/tunnelingTest.py b/test/rmgpy/kinetics/tunnelingTest.py similarity index 100% rename from rmgpy/kinetics/tunnelingTest.py rename to test/rmgpy/kinetics/tunnelingTest.py diff --git a/rmgpy/kinetics/uncertaintiesTest.py b/test/rmgpy/kinetics/uncertaintiesTest.py similarity index 100% rename from rmgpy/kinetics/uncertaintiesTest.py rename to test/rmgpy/kinetics/uncertaintiesTest.py diff --git a/rmgpy/molecule/adjlistTest.py b/test/rmgpy/molecule/adjlistTest.py similarity index 100% rename from rmgpy/molecule/adjlistTest.py rename to test/rmgpy/molecule/adjlistTest.py diff --git a/rmgpy/molecule/atomtypeTest.py b/test/rmgpy/molecule/atomtypeTest.py similarity index 100% rename from rmgpy/molecule/atomtypeTest.py rename to test/rmgpy/molecule/atomtypeTest.py diff --git a/rmgpy/molecule/converterTest.py b/test/rmgpy/molecule/converterTest.py similarity index 100% rename from rmgpy/molecule/converterTest.py rename to test/rmgpy/molecule/converterTest.py diff --git a/rmgpy/molecule/drawTest.py b/test/rmgpy/molecule/drawTest.py similarity index 100% rename from rmgpy/molecule/drawTest.py rename to test/rmgpy/molecule/drawTest.py diff --git a/rmgpy/molecule/elementTest.py b/test/rmgpy/molecule/elementTest.py similarity index 100% rename from rmgpy/molecule/elementTest.py rename to test/rmgpy/molecule/elementTest.py diff --git a/rmgpy/molecule/filtrationTest.py b/test/rmgpy/molecule/filtrationTest.py similarity index 100% rename from rmgpy/molecule/filtrationTest.py rename to test/rmgpy/molecule/filtrationTest.py diff --git a/rmgpy/molecule/graphTest.py b/test/rmgpy/molecule/graphTest.py similarity index 100% rename from rmgpy/molecule/graphTest.py rename to test/rmgpy/molecule/graphTest.py diff --git a/rmgpy/molecule/groupTest.py b/test/rmgpy/molecule/groupTest.py similarity index 100% rename from rmgpy/molecule/groupTest.py rename to test/rmgpy/molecule/groupTest.py diff --git a/rmgpy/molecule/inchiTest.py b/test/rmgpy/molecule/inchiTest.py similarity index 100% rename from rmgpy/molecule/inchiTest.py rename to test/rmgpy/molecule/inchiTest.py diff --git a/rmgpy/molecule/isomorphismTest.py b/test/rmgpy/molecule/isomorphismTest.py similarity index 100% rename from rmgpy/molecule/isomorphismTest.py rename to test/rmgpy/molecule/isomorphismTest.py diff --git a/rmgpy/molecule/kekulizeTest.py b/test/rmgpy/molecule/kekulizeTest.py similarity index 100% rename from rmgpy/molecule/kekulizeTest.py rename to test/rmgpy/molecule/kekulizeTest.py diff --git a/rmgpy/molecule/moleculeTest.py b/test/rmgpy/molecule/moleculeTest.py similarity index 100% rename from rmgpy/molecule/moleculeTest.py rename to test/rmgpy/molecule/moleculeTest.py diff --git a/rmgpy/molecule/pathfinderTest.py b/test/rmgpy/molecule/pathfinderTest.py similarity index 100% rename from rmgpy/molecule/pathfinderTest.py rename to test/rmgpy/molecule/pathfinderTest.py diff --git a/rmgpy/molecule/resonanceTest.py b/test/rmgpy/molecule/resonanceTest.py similarity index 100% rename from rmgpy/molecule/resonanceTest.py rename to test/rmgpy/molecule/resonanceTest.py diff --git a/rmgpy/molecule/symmetryTest.py b/test/rmgpy/molecule/symmetryTest.py similarity index 100% rename from rmgpy/molecule/symmetryTest.py rename to test/rmgpy/molecule/symmetryTest.py diff --git a/rmgpy/molecule/translatorTest.py b/test/rmgpy/molecule/translatorTest.py similarity index 100% rename from rmgpy/molecule/translatorTest.py rename to test/rmgpy/molecule/translatorTest.py diff --git a/rmgpy/molecule/utilTest.py b/test/rmgpy/molecule/utilTest.py similarity index 100% rename from rmgpy/molecule/utilTest.py rename to test/rmgpy/molecule/utilTest.py diff --git a/rmgpy/molecule/vf2Test.py b/test/rmgpy/molecule/vf2Test.py similarity index 100% rename from rmgpy/molecule/vf2Test.py rename to test/rmgpy/molecule/vf2Test.py diff --git a/rmgpy/pdep/collisionTest.py b/test/rmgpy/pdep/collisionTest.py similarity index 100% rename from rmgpy/pdep/collisionTest.py rename to test/rmgpy/pdep/collisionTest.py diff --git a/rmgpy/pdep/configurationTest.py b/test/rmgpy/pdep/configurationTest.py similarity index 100% rename from rmgpy/pdep/configurationTest.py rename to test/rmgpy/pdep/configurationTest.py diff --git a/rmgpy/pdep/networkTest.py b/test/rmgpy/pdep/networkTest.py similarity index 100% rename from rmgpy/pdep/networkTest.py rename to test/rmgpy/pdep/networkTest.py diff --git a/rmgpy/qm/gaussianTest.py b/test/rmgpy/qm/gaussianTest.py similarity index 100% rename from rmgpy/qm/gaussianTest.py rename to test/rmgpy/qm/gaussianTest.py diff --git a/rmgpy/qm/mainTest.py b/test/rmgpy/qm/mainTest.py similarity index 100% rename from rmgpy/qm/mainTest.py rename to test/rmgpy/qm/mainTest.py diff --git a/rmgpy/qm/moleculeTest.py b/test/rmgpy/qm/moleculeTest.py similarity index 100% rename from rmgpy/qm/moleculeTest.py rename to test/rmgpy/qm/moleculeTest.py diff --git a/rmgpy/qm/mopacTest.py b/test/rmgpy/qm/mopacTest.py similarity index 100% rename from rmgpy/qm/mopacTest.py rename to test/rmgpy/qm/mopacTest.py diff --git a/rmgpy/quantityTest.py b/test/rmgpy/quantityTest.py similarity index 100% rename from rmgpy/quantityTest.py rename to test/rmgpy/quantityTest.py diff --git a/rmgpy/reactionTest.py b/test/rmgpy/reactionTest.py similarity index 100% rename from rmgpy/reactionTest.py rename to test/rmgpy/reactionTest.py diff --git a/rmgpy/rmg/inputTest.py b/test/rmgpy/rmg/inputTest.py similarity index 100% rename from rmgpy/rmg/inputTest.py rename to test/rmgpy/rmg/inputTest.py diff --git a/rmgpy/rmg/mainTest.py b/test/rmgpy/rmg/mainTest.py similarity index 100% rename from rmgpy/rmg/mainTest.py rename to test/rmgpy/rmg/mainTest.py diff --git a/rmgpy/rmg/modelTest.py b/test/rmgpy/rmg/modelTest.py similarity index 100% rename from rmgpy/rmg/modelTest.py rename to test/rmgpy/rmg/modelTest.py diff --git a/rmgpy/rmg/outputTest.py b/test/rmgpy/rmg/outputTest.py similarity index 100% rename from rmgpy/rmg/outputTest.py rename to test/rmgpy/rmg/outputTest.py diff --git a/rmgpy/rmg/pdepTest.py b/test/rmgpy/rmg/pdepTest.py similarity index 100% rename from rmgpy/rmg/pdepTest.py rename to test/rmgpy/rmg/pdepTest.py diff --git a/rmgpy/rmg/reactTest.py b/test/rmgpy/rmg/reactTest.py similarity index 100% rename from rmgpy/rmg/reactTest.py rename to test/rmgpy/rmg/reactTest.py diff --git a/rmgpy/rmg/rmgTest.py b/test/rmgpy/rmg/rmgTest.py similarity index 100% rename from rmgpy/rmg/rmgTest.py rename to test/rmgpy/rmg/rmgTest.py diff --git a/rmgpy/rmgobjectTest.py b/test/rmgpy/rmgobjectTest.py similarity index 100% rename from rmgpy/rmgobjectTest.py rename to test/rmgpy/rmgobjectTest.py diff --git a/rmgpy/solver/baseTest.py b/test/rmgpy/solver/baseTest.py similarity index 100% rename from rmgpy/solver/baseTest.py rename to test/rmgpy/solver/baseTest.py diff --git a/rmgpy/solver/liquidTest.py b/test/rmgpy/solver/liquidTest.py similarity index 100% rename from rmgpy/solver/liquidTest.py rename to test/rmgpy/solver/liquidTest.py diff --git a/rmgpy/solver/simpleTest.py b/test/rmgpy/solver/simpleTest.py similarity index 100% rename from rmgpy/solver/simpleTest.py rename to test/rmgpy/solver/simpleTest.py diff --git a/rmgpy/solver/surfaceTest.py b/test/rmgpy/solver/surfaceTest.py similarity index 100% rename from rmgpy/solver/surfaceTest.py rename to test/rmgpy/solver/surfaceTest.py diff --git a/rmgpy/speciesTest.py b/test/rmgpy/speciesTest.py similarity index 100% rename from rmgpy/speciesTest.py rename to test/rmgpy/speciesTest.py diff --git a/rmgpy/statmech/conformerTest.py b/test/rmgpy/statmech/conformerTest.py similarity index 100% rename from rmgpy/statmech/conformerTest.py rename to test/rmgpy/statmech/conformerTest.py diff --git a/rmgpy/statmech/ndTorsionsTest.py b/test/rmgpy/statmech/ndTorsionsTest.py similarity index 100% rename from rmgpy/statmech/ndTorsionsTest.py rename to test/rmgpy/statmech/ndTorsionsTest.py diff --git a/rmgpy/statmech/rotationTest.py b/test/rmgpy/statmech/rotationTest.py similarity index 100% rename from rmgpy/statmech/rotationTest.py rename to test/rmgpy/statmech/rotationTest.py diff --git a/rmgpy/statmech/schrodingerTest.py b/test/rmgpy/statmech/schrodingerTest.py similarity index 100% rename from rmgpy/statmech/schrodingerTest.py rename to test/rmgpy/statmech/schrodingerTest.py diff --git a/rmgpy/statmech/torsionTest.py b/test/rmgpy/statmech/torsionTest.py similarity index 100% rename from rmgpy/statmech/torsionTest.py rename to test/rmgpy/statmech/torsionTest.py diff --git a/rmgpy/statmech/translationTest.py b/test/rmgpy/statmech/translationTest.py similarity index 100% rename from rmgpy/statmech/translationTest.py rename to test/rmgpy/statmech/translationTest.py diff --git a/rmgpy/statmech/vibrationTest.py b/test/rmgpy/statmech/vibrationTest.py similarity index 100% rename from rmgpy/statmech/vibrationTest.py rename to test/rmgpy/statmech/vibrationTest.py diff --git a/rmgpy/statsTest.py b/test/rmgpy/statsTest.py similarity index 100% rename from rmgpy/statsTest.py rename to test/rmgpy/statsTest.py diff --git a/rmgpy/test_data/arkane/tst1/pdep_sa.py b/test/rmgpy/test_data/arkane/tst1/pdep_sa.py similarity index 100% rename from rmgpy/test_data/arkane/tst1/pdep_sa.py rename to test/rmgpy/test_data/arkane/tst1/pdep_sa.py diff --git a/rmgpy/test_data/chemkin/chemkin_py/NC/chem.inp b/test/rmgpy/test_data/chemkin/chemkin_py/NC/chem.inp similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/NC/chem.inp rename to test/rmgpy/test_data/chemkin/chemkin_py/NC/chem.inp diff --git a/rmgpy/test_data/chemkin/chemkin_py/NC/species_dictionary.txt b/test/rmgpy/test_data/chemkin/chemkin_py/NC/species_dictionary.txt similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/NC/species_dictionary.txt rename to test/rmgpy/test_data/chemkin/chemkin_py/NC/species_dictionary.txt diff --git a/rmgpy/test_data/chemkin/chemkin_py/minimal/chem.inp b/test/rmgpy/test_data/chemkin/chemkin_py/minimal/chem.inp similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/minimal/chem.inp rename to test/rmgpy/test_data/chemkin/chemkin_py/minimal/chem.inp diff --git a/rmgpy/test_data/chemkin/chemkin_py/minimal/species_dictionary.txt b/test/rmgpy/test_data/chemkin/chemkin_py/minimal/species_dictionary.txt similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/minimal/species_dictionary.txt rename to test/rmgpy/test_data/chemkin/chemkin_py/minimal/species_dictionary.txt diff --git a/rmgpy/test_data/chemkin/chemkin_py/pdd/chem.inp b/test/rmgpy/test_data/chemkin/chemkin_py/pdd/chem.inp similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/pdd/chem.inp rename to test/rmgpy/test_data/chemkin/chemkin_py/pdd/chem.inp diff --git a/rmgpy/test_data/chemkin/chemkin_py/pdd/species_dictionary.txt b/test/rmgpy/test_data/chemkin/chemkin_py/pdd/species_dictionary.txt similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/pdd/species_dictionary.txt rename to test/rmgpy/test_data/chemkin/chemkin_py/pdd/species_dictionary.txt diff --git a/rmgpy/test_data/chemkin/chemkin_py/surface/chem-surface.inp b/test/rmgpy/test_data/chemkin/chemkin_py/surface/chem-surface.inp similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/surface/chem-surface.inp rename to test/rmgpy/test_data/chemkin/chemkin_py/surface/chem-surface.inp diff --git a/rmgpy/test_data/chemkin/chemkin_py/surface/species_dictionary.txt b/test/rmgpy/test_data/chemkin/chemkin_py/surface/species_dictionary.txt similarity index 100% rename from rmgpy/test_data/chemkin/chemkin_py/surface/species_dictionary.txt rename to test/rmgpy/test_data/chemkin/chemkin_py/surface/species_dictionary.txt diff --git a/rmgpy/test_data/parsing_data/chem_annotated.inp b/test/rmgpy/test_data/parsing_data/chem_annotated.inp similarity index 100% rename from rmgpy/test_data/parsing_data/chem_annotated.inp rename to test/rmgpy/test_data/parsing_data/chem_annotated.inp diff --git a/rmgpy/test_data/parsing_data/species_dictionary.txt b/test/rmgpy/test_data/parsing_data/species_dictionary.txt similarity index 100% rename from rmgpy/test_data/parsing_data/species_dictionary.txt rename to test/rmgpy/test_data/parsing_data/species_dictionary.txt diff --git a/rmgpy/test_data/testing_database/forbiddenStructures.py b/test/rmgpy/test_data/testing_database/forbiddenStructures.py similarity index 100% rename from rmgpy/test_data/testing_database/forbiddenStructures.py rename to test/rmgpy/test_data/testing_database/forbiddenStructures.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/rules.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/rules.py rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/rules.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/training/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/families/recommended.py b/test/rmgpy/test_data/testing_database/kinetics/families/recommended.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/families/recommended.py rename to test/rmgpy/test_data/testing_database/kinetics/families/recommended.py diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/lib_net/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/dictionary.txt b/test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/dictionary.txt similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/surface-example/dictionary.txt rename to test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/dictionary.txt diff --git a/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py similarity index 100% rename from rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py rename to test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/group.py b/test/rmgpy/test_data/testing_database/solvation/groups/group.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/group.py rename to test/rmgpy/test_data/testing_database/solvation/groups/group.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/halogen.py b/test/rmgpy/test_data/testing_database/solvation/groups/halogen.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/halogen.py rename to test/rmgpy/test_data/testing_database/solvation/groups/halogen.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py b/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py rename to test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py b/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py rename to test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py b/test/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/polycyclic.py rename to test/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/radical.py b/test/rmgpy/test_data/testing_database/solvation/groups/radical.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/radical.py rename to test/rmgpy/test_data/testing_database/solvation/groups/radical.py diff --git a/rmgpy/test_data/testing_database/solvation/groups/ring.py b/test/rmgpy/test_data/testing_database/solvation/groups/ring.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/groups/ring.py rename to test/rmgpy/test_data/testing_database/solvation/groups/ring.py diff --git a/rmgpy/test_data/testing_database/solvation/libraries/solute.py b/test/rmgpy/test_data/testing_database/solvation/libraries/solute.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/libraries/solute.py rename to test/rmgpy/test_data/testing_database/solvation/libraries/solute.py diff --git a/rmgpy/test_data/testing_database/solvation/libraries/solvent.py b/test/rmgpy/test_data/testing_database/solvation/libraries/solvent.py similarity index 100% rename from rmgpy/test_data/testing_database/solvation/libraries/solvent.py rename to test/rmgpy/test_data/testing_database/solvation/libraries/solvent.py diff --git a/rmgpy/test_data/testing_database/statmech/depository/depository.py b/test/rmgpy/test_data/testing_database/statmech/depository/depository.py similarity index 100% rename from rmgpy/test_data/testing_database/statmech/depository/depository.py rename to test/rmgpy/test_data/testing_database/statmech/depository/depository.py diff --git a/rmgpy/test_data/testing_database/statmech/groups/groups.py b/test/rmgpy/test_data/testing_database/statmech/groups/groups.py similarity index 100% rename from rmgpy/test_data/testing_database/statmech/groups/groups.py rename to test/rmgpy/test_data/testing_database/statmech/groups/groups.py diff --git a/rmgpy/test_data/testing_database/thermo/depository/radical.py b/test/rmgpy/test_data/testing_database/thermo/depository/radical.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/depository/radical.py rename to test/rmgpy/test_data/testing_database/thermo/depository/radical.py diff --git a/rmgpy/test_data/testing_database/thermo/depository/stable.py b/test/rmgpy/test_data/testing_database/thermo/depository/stable.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/depository/stable.py rename to test/rmgpy/test_data/testing_database/thermo/depository/stable.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py b/test/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py old mode 100755 new mode 100644 similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py rename to test/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/gauche.py b/test/rmgpy/test_data/testing_database/thermo/groups/gauche.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/gauche.py rename to test/rmgpy/test_data/testing_database/thermo/groups/gauche.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/group.py b/test/rmgpy/test_data/testing_database/thermo/groups/group.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/group.py rename to test/rmgpy/test_data/testing_database/thermo/groups/group.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py b/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py rename to test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py b/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py rename to test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/other.py b/test/rmgpy/test_data/testing_database/thermo/groups/other.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/other.py rename to test/rmgpy/test_data/testing_database/thermo/groups/other.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py b/test/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/polycyclic.py rename to test/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/radical.py b/test/rmgpy/test_data/testing_database/thermo/groups/radical.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/radical.py rename to test/rmgpy/test_data/testing_database/thermo/groups/radical.py diff --git a/rmgpy/test_data/testing_database/thermo/groups/ring.py b/test/rmgpy/test_data/testing_database/thermo/groups/ring.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/groups/ring.py rename to test/rmgpy/test_data/testing_database/thermo/groups/ring.py diff --git a/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py b/test/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py similarity index 100% rename from rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py rename to test/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py diff --git a/rmgpy/test_data/testing_database/transport/groups/nonring.py b/test/rmgpy/test_data/testing_database/transport/groups/nonring.py similarity index 100% rename from rmgpy/test_data/testing_database/transport/groups/nonring.py rename to test/rmgpy/test_data/testing_database/transport/groups/nonring.py diff --git a/rmgpy/test_data/testing_database/transport/groups/ring.py b/test/rmgpy/test_data/testing_database/transport/groups/ring.py similarity index 100% rename from rmgpy/test_data/testing_database/transport/groups/ring.py rename to test/rmgpy/test_data/testing_database/transport/groups/ring.py diff --git a/rmgpy/thermo/convertTest.py b/test/rmgpy/thermo/convertTest.py similarity index 100% rename from rmgpy/thermo/convertTest.py rename to test/rmgpy/thermo/convertTest.py diff --git a/rmgpy/thermo/nasaTest.py b/test/rmgpy/thermo/nasaTest.py similarity index 100% rename from rmgpy/thermo/nasaTest.py rename to test/rmgpy/thermo/nasaTest.py diff --git a/rmgpy/thermo/thermodataTest.py b/test/rmgpy/thermo/thermodataTest.py similarity index 100% rename from rmgpy/thermo/thermodataTest.py rename to test/rmgpy/thermo/thermodataTest.py diff --git a/rmgpy/thermo/wilhoitTest.py b/test/rmgpy/thermo/wilhoitTest.py similarity index 100% rename from rmgpy/thermo/wilhoitTest.py rename to test/rmgpy/thermo/wilhoitTest.py diff --git a/rmgpy/tools/canteramodelTest.py b/test/rmgpy/tools/canteramodelTest.py similarity index 100% rename from rmgpy/tools/canteramodelTest.py rename to test/rmgpy/tools/canteramodelTest.py diff --git a/rmgpy/tools/diffmodelsTest.py b/test/rmgpy/tools/diffmodelsTest.py similarity index 100% rename from rmgpy/tools/diffmodelsTest.py rename to test/rmgpy/tools/diffmodelsTest.py diff --git a/rmgpy/tools/fluxdiagramTest.py b/test/rmgpy/tools/fluxdiagramTest.py similarity index 100% rename from rmgpy/tools/fluxdiagramTest.py rename to test/rmgpy/tools/fluxdiagramTest.py diff --git a/rmgpy/tools/generatereactionsTest.py b/test/rmgpy/tools/generatereactionsTest.py similarity index 100% rename from rmgpy/tools/generatereactionsTest.py rename to test/rmgpy/tools/generatereactionsTest.py diff --git a/rmgpy/tools/isotopesTest.py b/test/rmgpy/tools/isotopesTest.py similarity index 100% rename from rmgpy/tools/isotopesTest.py rename to test/rmgpy/tools/isotopesTest.py diff --git a/rmgpy/tools/mergemodelsTest.py b/test/rmgpy/tools/mergemodelsTest.py similarity index 100% rename from rmgpy/tools/mergemodelsTest.py rename to test/rmgpy/tools/mergemodelsTest.py diff --git a/rmgpy/tools/regressionTest.py b/test/rmgpy/tools/regressionTest.py similarity index 100% rename from rmgpy/tools/regressionTest.py rename to test/rmgpy/tools/regressionTest.py diff --git a/rmgpy/tools/simulateTest.py b/test/rmgpy/tools/simulateTest.py similarity index 100% rename from rmgpy/tools/simulateTest.py rename to test/rmgpy/tools/simulateTest.py diff --git a/rmgpy/tools/uncertaintyTest.py b/test/rmgpy/tools/uncertaintyTest.py similarity index 100% rename from rmgpy/tools/uncertaintyTest.py rename to test/rmgpy/tools/uncertaintyTest.py diff --git a/rmgpy/transportDataTest.py b/test/rmgpy/transportDataTest.py similarity index 100% rename from rmgpy/transportDataTest.py rename to test/rmgpy/transportDataTest.py From b3f2a93993d750f08abb10a0413492370b3b1709 Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 09:35:57 -0400 Subject: [PATCH 04/88] MOVE arkane tests, move database test Richard removed from this commit the file test/arkane/data/two_parameter_arrhenius_fit/chem.inp which is an output from the test. --- .../arkane/data}/two_parameter_arrhenius_fit/CH3OO.py | 0 .../arkane/data}/two_parameter_arrhenius_fit/CH3OOH.py | 0 .../arkane => test/arkane/data}/two_parameter_arrhenius_fit/TS.py | 0 .../arkane/data}/two_parameter_arrhenius_fit/ch3oo_freq.log | 0 .../arkane/data}/two_parameter_arrhenius_fit/ch3oo_sp.log | 0 .../arkane/data}/two_parameter_arrhenius_fit/ch3ooh_freq.log | 0 .../arkane/data}/two_parameter_arrhenius_fit/ch3ooh_sp.log | 0 .../arkane/data}/two_parameter_arrhenius_fit/imipramine.py | 0 .../arkane/data}/two_parameter_arrhenius_fit/imipramine_freq.log | 0 .../arkane/data}/two_parameter_arrhenius_fit/imipramine_sp.log | 0 .../arkane/data}/two_parameter_arrhenius_fit/imipraminerad.py | 0 .../data}/two_parameter_arrhenius_fit/imipraminerad_freq.out | 0 .../arkane/data}/two_parameter_arrhenius_fit/imipraminerad_sp.out | 0 .../arkane/data}/two_parameter_arrhenius_fit/input.py | 0 .../arkane/data}/two_parameter_arrhenius_fit/ts_freq.out | 0 .../arkane/data}/two_parameter_arrhenius_fit/ts_sp.out | 0 {testing => test/database}/databaseTest.py | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/CH3OO.py (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/CH3OOH.py (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/TS.py (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/ch3oo_freq.log (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/ch3oo_sp.log (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/ch3ooh_freq.log (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/ch3ooh_sp.log (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/imipramine.py (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/imipramine_freq.log (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/imipramine_sp.log (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/imipraminerad.py (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/imipraminerad_freq.out (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/imipraminerad_sp.out (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/input.py (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/ts_freq.out (100%) rename {testing/arkane => test/arkane/data}/two_parameter_arrhenius_fit/ts_sp.out (100%) rename {testing => test/database}/databaseTest.py (100%) diff --git a/testing/arkane/two_parameter_arrhenius_fit/CH3OO.py b/test/arkane/data/two_parameter_arrhenius_fit/CH3OO.py similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/CH3OO.py rename to test/arkane/data/two_parameter_arrhenius_fit/CH3OO.py diff --git a/testing/arkane/two_parameter_arrhenius_fit/CH3OOH.py b/test/arkane/data/two_parameter_arrhenius_fit/CH3OOH.py similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/CH3OOH.py rename to test/arkane/data/two_parameter_arrhenius_fit/CH3OOH.py diff --git a/testing/arkane/two_parameter_arrhenius_fit/TS.py b/test/arkane/data/two_parameter_arrhenius_fit/TS.py similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/TS.py rename to test/arkane/data/two_parameter_arrhenius_fit/TS.py diff --git a/testing/arkane/two_parameter_arrhenius_fit/ch3oo_freq.log b/test/arkane/data/two_parameter_arrhenius_fit/ch3oo_freq.log similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/ch3oo_freq.log rename to test/arkane/data/two_parameter_arrhenius_fit/ch3oo_freq.log diff --git a/testing/arkane/two_parameter_arrhenius_fit/ch3oo_sp.log b/test/arkane/data/two_parameter_arrhenius_fit/ch3oo_sp.log similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/ch3oo_sp.log rename to test/arkane/data/two_parameter_arrhenius_fit/ch3oo_sp.log diff --git a/testing/arkane/two_parameter_arrhenius_fit/ch3ooh_freq.log b/test/arkane/data/two_parameter_arrhenius_fit/ch3ooh_freq.log similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/ch3ooh_freq.log rename to test/arkane/data/two_parameter_arrhenius_fit/ch3ooh_freq.log diff --git a/testing/arkane/two_parameter_arrhenius_fit/ch3ooh_sp.log b/test/arkane/data/two_parameter_arrhenius_fit/ch3ooh_sp.log similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/ch3ooh_sp.log rename to test/arkane/data/two_parameter_arrhenius_fit/ch3ooh_sp.log diff --git a/testing/arkane/two_parameter_arrhenius_fit/imipramine.py b/test/arkane/data/two_parameter_arrhenius_fit/imipramine.py similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/imipramine.py rename to test/arkane/data/two_parameter_arrhenius_fit/imipramine.py diff --git a/testing/arkane/two_parameter_arrhenius_fit/imipramine_freq.log b/test/arkane/data/two_parameter_arrhenius_fit/imipramine_freq.log similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/imipramine_freq.log rename to test/arkane/data/two_parameter_arrhenius_fit/imipramine_freq.log diff --git a/testing/arkane/two_parameter_arrhenius_fit/imipramine_sp.log b/test/arkane/data/two_parameter_arrhenius_fit/imipramine_sp.log similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/imipramine_sp.log rename to test/arkane/data/two_parameter_arrhenius_fit/imipramine_sp.log diff --git a/testing/arkane/two_parameter_arrhenius_fit/imipraminerad.py b/test/arkane/data/two_parameter_arrhenius_fit/imipraminerad.py similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/imipraminerad.py rename to test/arkane/data/two_parameter_arrhenius_fit/imipraminerad.py diff --git a/testing/arkane/two_parameter_arrhenius_fit/imipraminerad_freq.out b/test/arkane/data/two_parameter_arrhenius_fit/imipraminerad_freq.out similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/imipraminerad_freq.out rename to test/arkane/data/two_parameter_arrhenius_fit/imipraminerad_freq.out diff --git a/testing/arkane/two_parameter_arrhenius_fit/imipraminerad_sp.out b/test/arkane/data/two_parameter_arrhenius_fit/imipraminerad_sp.out similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/imipraminerad_sp.out rename to test/arkane/data/two_parameter_arrhenius_fit/imipraminerad_sp.out diff --git a/testing/arkane/two_parameter_arrhenius_fit/input.py b/test/arkane/data/two_parameter_arrhenius_fit/input.py similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/input.py rename to test/arkane/data/two_parameter_arrhenius_fit/input.py diff --git a/testing/arkane/two_parameter_arrhenius_fit/ts_freq.out b/test/arkane/data/two_parameter_arrhenius_fit/ts_freq.out similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/ts_freq.out rename to test/arkane/data/two_parameter_arrhenius_fit/ts_freq.out diff --git a/testing/arkane/two_parameter_arrhenius_fit/ts_sp.out b/test/arkane/data/two_parameter_arrhenius_fit/ts_sp.out similarity index 100% rename from testing/arkane/two_parameter_arrhenius_fit/ts_sp.out rename to test/arkane/data/two_parameter_arrhenius_fit/ts_sp.out diff --git a/testing/databaseTest.py b/test/database/databaseTest.py similarity index 100% rename from testing/databaseTest.py rename to test/database/databaseTest.py From a6fc1fa004f8f8488a5298c0c3bdd6e3bb2db3bc Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 09:39:43 -0400 Subject: [PATCH 05/88] move and rename files not following the naming convention --- rmgpy/ml/estimator_test.py => test/rmgpy/ml/estimatorTest.py | 0 .../fragment_test.py => test/rmgpy/molecule/fragmentTest.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename rmgpy/ml/estimator_test.py => test/rmgpy/ml/estimatorTest.py (100%) rename rmgpy/molecule/fragment_test.py => test/rmgpy/molecule/fragmentTest.py (100%) diff --git a/rmgpy/ml/estimator_test.py b/test/rmgpy/ml/estimatorTest.py similarity index 100% rename from rmgpy/ml/estimator_test.py rename to test/rmgpy/ml/estimatorTest.py diff --git a/rmgpy/molecule/fragment_test.py b/test/rmgpy/molecule/fragmentTest.py similarity index 100% rename from rmgpy/molecule/fragment_test.py rename to test/rmgpy/molecule/fragmentTest.py From 6db3924099bd9dcae5713dee51b0669108942e0c Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 10:46:21 -0400 Subject: [PATCH 06/88] fix conflicting test file names --- pytest.ini | 3 + .../{inputTest.py => arkaneInputTest.py} | 0 ...{kineticsTest.py => arkaneKineticsTest.py} | 37 +- .../arkane/{mainTest.py => arkaneMainTest.py} | 0 .../{outputTest.py => arkaneOutputTest.py} | 0 .../{thermoTest.py => arkaneThermoTest.py} | 19 +- test/arkane/ess/arkaneGaussianTest.py | 389 ++++++++++ test/arkane/ess/gaussianTest.py | 253 ------ test/rmgpy/chemkinTest.py | 734 ++++++++++++------ .../{modelTest.py => kineticsModelTest.py} | 0 ...{surfaceTest.py => kineticsSurfaceTest.py} | 0 .../qm/{moleculeTest.py => qmMoleculeTest.py} | 0 .../solver/{baseTest.py => solverBaseTest.py} | 0 .../{surfaceTest.py => solverSurfaceTest.py} | 0 14 files changed, 916 insertions(+), 519 deletions(-) create mode 100644 pytest.ini rename test/arkane/{inputTest.py => arkaneInputTest.py} (100%) rename test/arkane/{kineticsTest.py => arkaneKineticsTest.py} (79%) rename test/arkane/{mainTest.py => arkaneMainTest.py} (100%) rename test/arkane/{outputTest.py => arkaneOutputTest.py} (100%) rename test/arkane/{thermoTest.py => arkaneThermoTest.py} (86%) create mode 100644 test/arkane/ess/arkaneGaussianTest.py delete mode 100644 test/arkane/ess/gaussianTest.py rename test/rmgpy/kinetics/{modelTest.py => kineticsModelTest.py} (100%) rename test/rmgpy/kinetics/{surfaceTest.py => kineticsSurfaceTest.py} (100%) rename test/rmgpy/qm/{moleculeTest.py => qmMoleculeTest.py} (100%) rename test/rmgpy/solver/{baseTest.py => solverBaseTest.py} (100%) rename test/rmgpy/solver/{surfaceTest.py => solverSurfaceTest.py} (100%) diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000000..4febe07d5b --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +testpaths = test +python_files = *Test.py \ No newline at end of file diff --git a/test/arkane/inputTest.py b/test/arkane/arkaneInputTest.py similarity index 100% rename from test/arkane/inputTest.py rename to test/arkane/arkaneInputTest.py diff --git a/test/arkane/kineticsTest.py b/test/arkane/arkaneKineticsTest.py similarity index 79% rename from test/arkane/kineticsTest.py rename to test/arkane/arkaneKineticsTest.py index c9ed4be55d..71f4a729c7 100644 --- a/test/arkane/kineticsTest.py +++ b/test/arkane/arkaneKineticsTest.py @@ -41,7 +41,7 @@ ################################################################################ -class KineticsTest(unittest.TestCase): +class ArkaneKineticsTest(unittest.TestCase): """ Contains unit tests for the Arkane Kinetics module """ @@ -52,7 +52,7 @@ def test_give_tlist_for_kineticsjob(self): """ rxn = Reaction(transition_state=TransitionState()) t_list = [50.7, 100, 300, 800, 1255] - kjob = KineticsJob(rxn, Tlist=(t_list, 'K')) + kjob = KineticsJob(rxn, Tlist=(t_list, "K")) self.assertEqual(min(t_list), kjob.Tmin.value_si) self.assertEqual(max(t_list), kjob.Tmax.value_si) self.assertEqual(len(t_list), kjob.Tcount) @@ -62,16 +62,20 @@ def test_give_temperature_range_for_kineticsjob(self): Ensures that Tlist is set when a range of temperatures is specified """ rxn = Reaction(transition_state=TransitionState()) - kjob = KineticsJob(rxn, Tmin=(50, 'K'), Tmax=(4000, 'K'), Tcount=5) + kjob = KineticsJob(rxn, Tmin=(50, "K"), Tmax=(4000, "K"), Tcount=5) self.assertEqual(5, len(kjob.Tlist.value_si)) self.assertEqual(50, min(kjob.Tlist.value_si)) self.assertAlmostEqual(4000, max(kjob.Tlist.value_si)) inverse_tlist = 1 / kjob.Tlist.value_si - self.assertAlmostEqual(inverse_tlist[1] - inverse_tlist[0], - inverse_tlist[-1] - inverse_tlist[-2], - msg='The points for fitting do not appear 1/T spaced. ' - 'Obtained values of {0} and {1}'.format(inverse_tlist[1] - inverse_tlist[0], - inverse_tlist[-1] - inverse_tlist[-2])) + self.assertAlmostEqual( + inverse_tlist[1] - inverse_tlist[0], + inverse_tlist[-1] - inverse_tlist[-2], + msg="The points for fitting do not appear 1/T spaced. " + "Obtained values of {0} and {1}".format( + inverse_tlist[1] - inverse_tlist[0], + inverse_tlist[-1] - inverse_tlist[-2], + ), + ) def test_get_tlist_for_kineticsjob(self): """ @@ -86,14 +90,19 @@ def test_get_tlist_for_kineticsjob(self): self.assertAlmostEqual(298, min(kjob.Tlist.value_si)) self.assertAlmostEqual(2500, max(kjob.Tlist.value_si)) inverse_tlist = 1 / kjob.Tlist.value_si - self.assertAlmostEqual(inverse_tlist[1] - inverse_tlist[0], - inverse_tlist[-1] - inverse_tlist[-2], - msg='The points for fitting do not appear 1/T spaced. ' - 'Obtained values of {0} and {1}'.format(inverse_tlist[1] - inverse_tlist[0], - inverse_tlist[-1] - inverse_tlist[-2])) + self.assertAlmostEqual( + inverse_tlist[1] - inverse_tlist[0], + inverse_tlist[-1] - inverse_tlist[-2], + msg="The points for fitting do not appear 1/T spaced. " + "Obtained values of {0} and {1}".format( + inverse_tlist[1] - inverse_tlist[0], + inverse_tlist[-1] - inverse_tlist[-2], + ), + ) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/mainTest.py b/test/arkane/arkaneMainTest.py similarity index 100% rename from test/arkane/mainTest.py rename to test/arkane/arkaneMainTest.py diff --git a/test/arkane/outputTest.py b/test/arkane/arkaneOutputTest.py similarity index 100% rename from test/arkane/outputTest.py rename to test/arkane/arkaneOutputTest.py diff --git a/test/arkane/thermoTest.py b/test/arkane/arkaneThermoTest.py similarity index 86% rename from test/arkane/thermoTest.py rename to test/arkane/arkaneThermoTest.py index 8d1bab3520..e521161aa9 100644 --- a/test/arkane/thermoTest.py +++ b/test/arkane/arkaneThermoTest.py @@ -42,7 +42,7 @@ ################################################################################ -class TestThermo(unittest.TestCase): +class ArkaneTestThermo(unittest.TestCase): """ Contains unit tests of the ThermoJob class. """ @@ -50,22 +50,25 @@ class TestThermo(unittest.TestCase): @classmethod def setUp(cls): """A method that is run before each unit test in this class""" - spc = Species().from_smiles('CCO') - log = GaussianLog(os.path.join(os.path.dirname(__file__), 'data', 'gaussian', 'ethylene.log')) + spc = Species().from_smiles("CCO") + log = GaussianLog( + os.path.join(os.path.dirname(__file__), "data", "gaussian", "ethylene.log") + ) spc.conformer = log.load_conformer()[0] coords, numbers, masses = log.load_geometry() - spc.conformer.coordinates = coords, 'angstroms' + spc.conformer.coordinates = coords, "angstroms" spc.conformer.number = numbers - spc.conformer.mass = masses, 'amu' - cls.thermo_job = ThermoJob(species=spc, thermo_class='NASA') + spc.conformer.mass = masses, "amu" + cls.thermo_job = ThermoJob(species=spc, thermo_class="NASA") def test_element_count_from_conformer(self): """Test Getting an element count dictionary from the species.conformer attribute""" element_count = self.thermo_job.element_count_from_conformer() - self.assertEqual(element_count, {'H': 4, 'C': 2}) + self.assertEqual(element_count, {"H": 4, "C": 2}) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/arkaneGaussianTest.py b/test/arkane/ess/arkaneGaussianTest.py new file mode 100644 index 0000000000..680429268a --- /dev/null +++ b/test/arkane/ess/arkaneGaussianTest.py @@ -0,0 +1,389 @@ +#!/usr/bin/env python3 + +############################################################################### +# # +# RMG - Reaction Mechanism Generator # +# # +# Copyright (c) 2002-2021 Prof. William H. Green (whgreen@mit.edu), # +# Prof. Richard H. West (r.west@neu.edu) and the RMG Team (rmg_dev@mit.edu) # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the 'Software'), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, sublicense, # +# and/or sell copies of the Software, and to permit persons to whom the # +# Software is furnished to do so, subject to the following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +############################################################################### + +""" +This module contains unit tests of the :mod:`arkane.ess.gaussian` module. +""" + +import os +import unittest + +import numpy as np + +import rmgpy.constants as constants +from external.wip import work_in_progress +from rmgpy.statmech import ( + IdealGasTranslation, + LinearRotor, + NonlinearRotor, + HarmonicOscillator, + HinderedRotor, +) + +from arkane.ess.gaussian import GaussianLog +from arkane.exceptions import LogError + +################################################################################ + + +class ArkaneGaussianLogTest(unittest.TestCase): + """ + Contains unit tests for the gaussian module, used for parsing Gaussian log files. + """ + + @classmethod + def setUpClass(cls): + """ + A method that is run before all unit tests in this class. + """ + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "data", "gaussian" + ) + + def test_check_for_errors(self): + """ + Uses Gaussian log files that had various errors + to test if errors are properly parsed. + """ + with self.assertRaises(LogError): + GaussianLog(os.path.join(self.data_path, "l913.out")) + with self.assertRaises(LogError): + GaussianLog(os.path.join(self.data_path, "l9999.out")) + with self.assertRaises(LogError): + GaussianLog(os.path.join(self.data_path, "error_termination.out")) + + @work_in_progress + def test_load_ethylene_from_gaussian_log_cbsqb3(self): + """ + Uses a Gaussian03 log file for ethylene (C2H4) to test that its + molecular degrees of freedom can be properly read. + """ + + log = GaussianLog(os.path.join(self.data_path, "ethylene.log")) + conformer, unscaled_frequencies = log.load_conformer() + e0 = log.load_energy() + + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) + == 0 + ) + + trans = [ + mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation) + ][0] + rot = [mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)][0] + vib = [ + mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator) + ][0] + t_list = np.array([298.15], np.float64) + self.assertAlmostEqual( + trans.get_partition_function(t_list), 5.83338e6, delta=1e1 + ) + self.assertAlmostEqual( + rot.get_partition_function(t_list), 2.59622e3, delta=1e-2 + ) + self.assertAlmostEqual(vib.get_partition_function(t_list), 1.0481e0, delta=1e-4) + + self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -78.467452, 4) + self.assertEqual(conformer.spin_multiplicity, 1) + self.assertEqual(conformer.optical_isomers, 1) + + def test_gaussian_energies(self): + """ + test parsing double hydride, MP2, CCSD, CCSD(T), cbs-qb3, cbs-4m, g4, g4mp2 form Gaussian log + """ + log_doublehybrid = GaussianLog(os.path.join(self.data_path, "B2PLYP.LOG")) + log_mp2 = GaussianLog(os.path.join(self.data_path, "UMP2_C_ATOM.LOG")) + log_ccsd = GaussianLog(os.path.join(self.data_path, "UCCSD_C_ATOM.LOG")) + log_ccsdt = GaussianLog(os.path.join(self.data_path, "UCCSDT_C_ATOM.LOG")) + log_qb3 = GaussianLog( + os.path.join( + os.path.dirname(os.path.dirname(__file__)), + "../examples/arkane/species/C2H5/", + "ethyl_cbsqb3.log", + ) + ) + log_cbs4m = GaussianLog(os.path.join(self.data_path, "cbs-4m_85_methanol.out")) + log_g4 = GaussianLog(os.path.join(self.data_path, "g4_85_methanol.out")) + log_g4mp2 = GaussianLog(os.path.join(self.data_path, "g4mp2_85_methanol.out")) + log_rocbsqb3 = GaussianLog( + os.path.join(self.data_path, "rocbs-qb3_85_methanol.out") + ) + + self.assertAlmostEqual( + log_doublehybrid.load_energy() / constants.Na / constants.E_h, + -0.40217794572194e02, + delta=1e-6, + ) + self.assertAlmostEqual( + log_mp2.load_energy() / constants.Na / constants.E_h, + -0.37504683723025e02, + delta=1e-6, + ) + self.assertAlmostEqual( + log_ccsd.load_energy() / constants.Na / constants.E_h, + -37.517151426, + delta=1e-6, + ) + self.assertAlmostEqual( + log_ccsdt.load_energy() / constants.Na / constants.E_h, + -0.37517454469e02, + delta=1e-6, + ) + self.assertAlmostEqual( + log_qb3.load_energy() / constants.Na / constants.E_h, -79.029798, delta=1e-6 + ) + self.assertAlmostEqual( + log_cbs4m.load_energy() / constants.Na / constants.E_h, + -115.613180, + delta=1e-6, + ) + self.assertAlmostEqual( + log_g4.load_energy() / constants.Na / constants.E_h, -115.698896, delta=1e-6 + ) + self.assertAlmostEqual( + log_g4mp2.load_energy() / constants.Na / constants.E_h, + -115.617241, + delta=1e-6, + ) + self.assertAlmostEqual( + log_rocbsqb3.load_energy() / constants.Na / constants.E_h, + -115.590540, + delta=1e-6, + ) + + def test_load_oxygen_from_gaussian_log(self): + """ + Uses a Gaussian03 log file for oxygen (O2) to test that its + molecular degrees of freedom can be properly read. + """ + + log = GaussianLog(os.path.join(self.data_path, "oxygen.log")) + conformer, unscaled_frequencies = log.load_conformer() + e0 = log.load_energy() + + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, LinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) + == 0 + ) + + trans = [ + mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation) + ][0] + rot = [mode for mode in conformer.modes if isinstance(mode, LinearRotor)][0] + vib = [ + mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator) + ][0] + t_list = np.array([298.15], np.float64) + self.assertAlmostEqual( + trans.get_partition_function(t_list), 7.11169e6, delta=1e1 + ) + self.assertAlmostEqual( + rot.get_partition_function(t_list), 7.13316e1, delta=1e-4 + ) + self.assertAlmostEqual( + vib.get_partition_function(t_list), 1.00037e0, delta=1e-4 + ) + + self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -150.3784877, 4) + self.assertEqual(conformer.spin_multiplicity, 3) + self.assertEqual(conformer.optical_isomers, 1) + + @work_in_progress + def test_load_ethylene_from_gaussian_log_g3(self): + """ + Uses a Gaussian03 log file for ethylene (C2H4) to test that its + molecular degrees of freedom can be properly read. + """ + + log = GaussianLog(os.path.join(self.data_path, "ethylene_G3.log")) + conformer, unscaled_frequencies = log.load_conformer() + e0 = log.load_energy() + + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) + == 0 + ) + + trans = [ + mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation) + ][0] + rot = [mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)][0] + vib = [ + mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator) + ][0] + t_list = np.array([298.15], np.float64) + + self.assertAlmostEqual( + trans.get_partition_function(t_list), 5.83338e6, delta=1e1 + ) + self.assertAlmostEqual( + rot.get_partition_function(t_list), 2.53410e3, delta=1e-2 + ) + self.assertAlmostEqual(vib.get_partition_function(t_list), 1.0304e0, delta=1e-4) + + self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -78.562189, 4) + self.assertEqual(conformer.spin_multiplicity, 1) + self.assertEqual(conformer.optical_isomers, 1) + + def test_load_symmetry_and_optics(self): + """ + Uses a Gaussian03 log file for oxygen (O2) to test that its + molecular degrees of freedom can be properly read. + """ + + log = GaussianLog(os.path.join(self.data_path, "oxygen.log")) + optical, symmetry, _ = log.get_symmetry_properties() + self.assertEqual(optical, 1) + self.assertEqual(symmetry, 2) + + conf = log.load_conformer()[0] + self.assertEqual(conf.optical_isomers, 1) + found_rotor = False + for mode in conf.modes: + if isinstance(mode, LinearRotor): + self.assertEqual(mode.symmetry, 2) + found_rotor = True + self.assertTrue(found_rotor) + + def test_load_scan_angle(self): + """ + Ensures proper scan angle found in Gaussian scan job + """ + log = GaussianLog(os.path.join(self.data_path, "isobutanolQOOH_scan.log")) + self.assertAlmostEqual(log._load_scan_angle(), 10.0) + + def test_load_number_scans(self): + """ + Ensures proper scan angle found in Gaussian scan job + """ + log = GaussianLog(os.path.join(self.data_path, "isobutanolQOOH_scan.log")) + self.assertAlmostEqual(log._load_number_scans(), 36) + + def test_load_scan_with_freq(self): + """ + Ensures that the length of enegies with hr scans and freq calc is correct + """ + log = GaussianLog(os.path.join(self.data_path, "hr_scan_with_freq.log")) + self.assertAlmostEqual(log._load_number_scans(), 36) + self.assertAlmostEqual(log._load_scan_angle(), 10.0) + vlist, _ = log.load_scan_energies() + self.assertEqual(len(vlist), 37) + + def test_load_negative_frequency(self): + """ + Load an imaginary frequency from a Gaussian output file. + """ + log = GaussianLog(os.path.join(self.data_path, "hr_scan_with_freq.log")) + imaginary_freq = log.load_negative_frequency() + self.assertEqual(imaginary_freq, -556.0124) + + # verify that an error is raised if there are no negative frequencies + with self.assertRaises(LogError): + log = GaussianLog(os.path.join(self.data_path, "rocbs-qb3_85_methanol.out")) + imaginary_freq = log.load_negative_frequency() + + +################################################################################ + + +if __name__ == "__main__": + unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/gaussianTest.py b/test/arkane/ess/gaussianTest.py deleted file mode 100644 index 1aa5c8f2e0..0000000000 --- a/test/arkane/ess/gaussianTest.py +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/env python3 - -############################################################################### -# # -# RMG - Reaction Mechanism Generator # -# # -# Copyright (c) 2002-2023 Prof. William H. Green (whgreen@mit.edu), # -# Prof. Richard H. West (r.west@neu.edu) and the RMG Team (rmg_dev@mit.edu) # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the 'Software'), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, sublicense, # -# and/or sell copies of the Software, and to permit persons to whom the # -# Software is furnished to do so, subject to the following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -############################################################################### - -""" -This module contains unit tests of the :mod:`arkane.ess.gaussian` module. -""" - -import os -import unittest - -import numpy as np - -import rmgpy.constants as constants -from external.wip import work_in_progress -from rmgpy.statmech import IdealGasTranslation, LinearRotor, NonlinearRotor, HarmonicOscillator, HinderedRotor - -from arkane.ess.gaussian import GaussianLog -from arkane.exceptions import LogError - -################################################################################ - - -class GaussianLogTest(unittest.TestCase): - """ - Contains unit tests for the gaussian module, used for parsing Gaussian log files. - """ - @classmethod - def setUpClass(cls): - """ - A method that is run before all unit tests in this class. - """ - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data', 'gaussian') - - def test_check_for_errors(self): - """ - Uses Gaussian log files that had various errors - to test if errors are properly parsed. - """ - with self.assertRaises(LogError): - GaussianLog(os.path.join(self.data_path, 'l913.out')) - with self.assertRaises(LogError): - GaussianLog(os.path.join(self.data_path, 'l9999.out')) - with self.assertRaises(LogError): - GaussianLog(os.path.join(self.data_path, 'error_termination.out')) - - @work_in_progress - def test_load_ethylene_from_gaussian_log_cbsqb3(self): - """ - Uses a Gaussian03 log file for ethylene (C2H4) to test that its - molecular degrees of freedom can be properly read. - """ - - log = GaussianLog(os.path.join(self.data_path, 'ethylene.log')) - conformer, unscaled_frequencies = log.load_conformer() - e0 = log.load_energy() - - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) == 0) - - trans = [mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)][0] - rot = [mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)][0] - vib = [mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)][0] - t_list = np.array([298.15], np.float64) - self.assertAlmostEqual(trans.get_partition_function(t_list), 5.83338e6, delta=1e1) - self.assertAlmostEqual(rot.get_partition_function(t_list), 2.59622e3, delta=1e-2) - self.assertAlmostEqual(vib.get_partition_function(t_list), 1.0481e0, delta=1e-4) - - self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -78.467452, 4) - self.assertEqual(conformer.spin_multiplicity, 1) - self.assertEqual(conformer.optical_isomers, 1) - - def test_gaussian_energies(self): - """ - test parsing double hydride, MP2, CCSD, CCSD(T), cbs-qb3, cbs-4m, g4, g4mp2 form Gaussian log - """ - log_doublehybrid = GaussianLog(os.path.join(self.data_path, 'B2PLYP.LOG')) - log_mp2 = GaussianLog(os.path.join(self.data_path, 'UMP2_C_ATOM.LOG')) - log_ccsd = GaussianLog(os.path.join(self.data_path, 'UCCSD_C_ATOM.LOG')) - log_ccsdt = GaussianLog(os.path.join(self.data_path, 'UCCSDT_C_ATOM.LOG')) - log_qb3 = GaussianLog(os.path.join(os.path.dirname(os.path.dirname(__file__)), - '../examples/arkane/species/C2H5/', 'ethyl_cbsqb3.log')) - log_cbs4m = GaussianLog(os.path.join(self.data_path, 'cbs-4m_85_methanol.out')) - log_g4 = GaussianLog(os.path.join(self.data_path, 'g4_85_methanol.out')) - log_g4mp2 = GaussianLog(os.path.join(self.data_path, 'g4mp2_85_methanol.out')) - log_rocbsqb3 = GaussianLog(os.path.join(self.data_path, 'rocbs-qb3_85_methanol.out')) - - - self.assertAlmostEqual(log_doublehybrid.load_energy() / constants.Na / constants.E_h, -0.40217794572194e+02, - delta=1e-6) - self.assertAlmostEqual(log_mp2.load_energy() / constants.Na / constants.E_h, -0.37504683723025e+02, - delta=1e-6) - self.assertAlmostEqual(log_ccsd.load_energy() / constants.Na / constants.E_h, -37.517151426, - delta=1e-6) - self.assertAlmostEqual(log_ccsdt.load_energy() / constants.Na / constants.E_h, -0.37517454469e+02, - delta=1e-6) - self.assertAlmostEqual(log_qb3.load_energy() / constants.Na / constants.E_h, -79.029798, - delta=1e-6) - self.assertAlmostEqual(log_cbs4m.load_energy() / constants.Na / constants.E_h, -115.613180, - delta=1e-6) - self.assertAlmostEqual(log_g4.load_energy() / constants.Na / constants.E_h, -115.698896, - delta=1e-6) - self.assertAlmostEqual(log_g4mp2.load_energy() / constants.Na / constants.E_h, -115.617241, - delta=1e-6) - self.assertAlmostEqual(log_rocbsqb3.load_energy() / constants.Na / constants.E_h, -115.590540, - delta=1e-6) - - def test_load_oxygen_from_gaussian_log(self): - """ - Uses a Gaussian03 log file for oxygen (O2) to test that its - molecular degrees of freedom can be properly read. - """ - - log = GaussianLog(os.path.join(self.data_path, 'oxygen.log')) - conformer, unscaled_frequencies = log.load_conformer() - e0 = log.load_energy() - - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, LinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) == 0) - - trans = [mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)][0] - rot = [mode for mode in conformer.modes if isinstance(mode, LinearRotor)][0] - vib = [mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)][0] - t_list = np.array([298.15], np.float64) - self.assertAlmostEqual(trans.get_partition_function(t_list), 7.11169e6, delta=1e1) - self.assertAlmostEqual(rot.get_partition_function(t_list), 7.13316e1, delta=1e-4) - self.assertAlmostEqual(vib.get_partition_function(t_list), 1.00037e0, delta=1e-4) - - self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -150.3784877, 4) - self.assertEqual(conformer.spin_multiplicity, 3) - self.assertEqual(conformer.optical_isomers, 1) - - @work_in_progress - def test_load_ethylene_from_gaussian_log_g3(self): - """ - Uses a Gaussian03 log file for ethylene (C2H4) to test that its - molecular degrees of freedom can be properly read. - """ - - log = GaussianLog(os.path.join(self.data_path, 'ethylene_G3.log')) - conformer, unscaled_frequencies = log.load_conformer() - e0 = log.load_energy() - - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) == 0) - - trans = [mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)][0] - rot = [mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)][0] - vib = [mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)][0] - t_list = np.array([298.15], np.float64) - - self.assertAlmostEqual(trans.get_partition_function(t_list), 5.83338e6, delta=1e1) - self.assertAlmostEqual(rot.get_partition_function(t_list), 2.53410e3, delta=1e-2) - self.assertAlmostEqual(vib.get_partition_function(t_list), 1.0304e0, delta=1e-4) - - self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -78.562189, 4) - self.assertEqual(conformer.spin_multiplicity, 1) - self.assertEqual(conformer.optical_isomers, 1) - - def test_load_symmetry_and_optics(self): - """ - Uses a Gaussian03 log file for oxygen (O2) to test that its - molecular degrees of freedom can be properly read. - """ - - log = GaussianLog(os.path.join(self.data_path, 'oxygen.log')) - optical, symmetry, _ = log.get_symmetry_properties() - self.assertEqual(optical, 1) - self.assertEqual(symmetry, 2) - - conf = log.load_conformer()[0] - self.assertEqual(conf.optical_isomers, 1) - found_rotor = False - for mode in conf.modes: - if isinstance(mode, LinearRotor): - self.assertEqual(mode.symmetry, 2) - found_rotor = True - self.assertTrue(found_rotor) - - def test_load_scan_angle(self): - """ - Ensures proper scan angle found in Gaussian scan job - """ - log = GaussianLog(os.path.join(self.data_path, 'isobutanolQOOH_scan.log')) - self.assertAlmostEqual(log._load_scan_angle(), 10.0) - - def test_load_number_scans(self): - """ - Ensures proper scan angle found in Gaussian scan job - """ - log = GaussianLog(os.path.join(self.data_path, 'isobutanolQOOH_scan.log')) - self.assertAlmostEqual(log._load_number_scans(), 36) - - def test_load_scan_with_freq(self): - """ - Ensures that the length of enegies with hr scans and freq calc is correct - """ - log = GaussianLog(os.path.join(self.data_path, 'hr_scan_with_freq.log')) - self.assertAlmostEqual(log._load_number_scans(), 36) - self.assertAlmostEqual(log._load_scan_angle(), 10.0) - vlist, _ = log.load_scan_energies() - self.assertEqual(len(vlist), 37) - - def test_load_negative_frequency(self): - """ - Load an imaginary frequency from a Gaussian output file. - """ - log = GaussianLog(os.path.join(self.data_path, 'hr_scan_with_freq.log')) - imaginary_freq = log.load_negative_frequency() - self.assertEqual(imaginary_freq, -556.0124) - - # verify that an error is raised if there are no negative frequencies - with self.assertRaises(LogError): - log = GaussianLog(os.path.join(self.data_path, 'rocbs-qb3_85_methanol.out')) - imaginary_freq = log.load_negative_frequency() - - -################################################################################ - - -if __name__ == '__main__': - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/chemkinTest.py b/test/rmgpy/chemkinTest.py index b500cc2a6c..8165636702 100644 --- a/test/rmgpy/chemkinTest.py +++ b/test/rmgpy/chemkinTest.py @@ -32,9 +32,20 @@ from unittest import mock import rmgpy -from rmgpy.chemkin import get_species_identifier, load_chemkin_file, load_transport_file, mark_duplicate_reactions, \ - read_kinetics_entry, read_reaction_comments, read_thermo_entry, save_chemkin_file, save_chemkin_surface_file, \ - save_species_dictionary, save_transport_file, write_thermo_entry +from rmgpy.chemkin import ( + get_species_identifier, + load_chemkin_file, + load_transport_file, + mark_duplicate_reactions, + read_kinetics_entry, + read_reaction_comments, + read_thermo_entry, + save_chemkin_file, + save_chemkin_surface_file, + save_species_dictionary, + save_transport_file, + write_thermo_entry, +) from rmgpy.chemkin import _remove_line_breaks, _process_duplicate_reactions from rmgpy.data.kinetics import LibraryReaction from rmgpy.exceptions import ChemkinError @@ -50,8 +61,9 @@ ################################################### + class ChemkinTest(unittest.TestCase): - @mock.patch('rmgpy.chemkin.logging') + @mock.patch("rmgpy.chemkin.logging") def test_read_thermo_entry_bad_element_count(self, mock_logging): """ Test that invalid element count logs the appropriate warning. @@ -71,9 +83,10 @@ def test_read_thermo_entry_bad_element_count(self, mock_logging): read_thermo_entry(entry) mock_logging.info.assert_called_with( - "Trouble reading line 'C2H6 H XC X L 100.000 5000.000 827.28 1' element segment 'H X'") + "Trouble reading line 'C2H6 H XC X L 100.000 5000.000 827.28 1' element segment 'H X'" + ) - @mock.patch('rmgpy.chemkin.logging') + @mock.patch("rmgpy.chemkin.logging") def test_read_thermo_entry_not_gas_phase(self, mock_logging): """ Test that non gas phase data logs the appropriate warning. @@ -91,12 +104,14 @@ def test_read_thermo_entry_not_gas_phase(self, mock_logging): """ species, thermo, formula = read_thermo_entry(entry) - mock_logging.warning.assert_called_with("Was expecting gas phase thermo data for C2H6. Skipping thermo data.") - self.assertEqual(species, 'C2H6') + mock_logging.warning.assert_called_with( + "Was expecting gas phase thermo data for C2H6. Skipping thermo data." + ) + self.assertEqual(species, "C2H6") self.assertIsNone(formula) self.assertIsNone(thermo) - @mock.patch('rmgpy.chemkin.logging') + @mock.patch("rmgpy.chemkin.logging") def test_read_thermo_entry_not_float(self, mock_logging): """ Test that non-float parameters log the appropriate warning. @@ -114,8 +129,10 @@ def test_read_thermo_entry_not_float(self, mock_logging): """ species, thermo, formula = read_thermo_entry(entry) - mock_logging.warning.assert_called_with("could not convert string to float: 'X.44813916E+00'") - self.assertEqual(species, 'C2H6') + mock_logging.warning.assert_called_with( + "could not convert string to float: 'X.44813916E+00'" + ) + self.assertEqual(species, "C2H6") self.assertIsNone(formula) self.assertIsNone(thermo) @@ -126,10 +143,12 @@ def test_read_thermo_entry_no_temperature_range(self): -1.19655244E+04 8.07917520E+00 3.50507145E+00-3.65219841E-03 6.32200490E-05 3 -8.01049582E-08 3.19734088E-11-1.15627878E+04 6.67152939E+00 4 """ - species, thermo, formula = read_thermo_entry(entry, Tmin=100.0, Tint=827.28, Tmax=5000.0) + species, thermo, formula = read_thermo_entry( + entry, Tmin=100.0, Tint=827.28, Tmax=5000.0 + ) - self.assertEqual(species, 'C2H6') - self.assertEqual(formula, {'H': 6, 'C': 2}) + self.assertEqual(species, "C2H6") + self.assertEqual(formula, {"H": 6, "C": 2}) self.assertTrue(isinstance(thermo, NASA)) def test_read_and_write_and_read_template_reaction_family_for_minimal_example(self): @@ -137,10 +156,12 @@ def test_read_and_write_and_read_template_reaction_family_for_minimal_example(se This example tests if family and templates info can be correctly parsed from comments like '!Template reaction: R_Recombination'. """ - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data/chemkin/chemkin_py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data/chemkin/chemkin_py" + ) - chemkin_path = os.path.join(folder, 'minimal', 'chem.inp') - dictionary_path = os.path.join(folder, 'minimal', 'species_dictionary.txt') + chemkin_path = os.path.join(folder, "minimal", "chem.inp") + dictionary_path = os.path.join(folder, "minimal", "species_dictionary.txt") # read original chemkin file species, reactions = load_chemkin_file(chemkin_path, dictionary_path) @@ -148,15 +169,27 @@ def test_read_and_write_and_read_template_reaction_family_for_minimal_example(se # ensure correct reading reaction1 = reactions[0] self.assertEqual(reaction1.family, "R_Recombination") - self.assertEqual(frozenset('C_methyl;C_methyl'.split(';')), frozenset(reaction1.template)) + self.assertEqual( + frozenset("C_methyl;C_methyl".split(";")), frozenset(reaction1.template) + ) reaction2 = reactions[1] self.assertEqual(reaction2.family, "H_Abstraction") - self.assertEqual(frozenset('C/H3/Cs\H3;C_methyl'.split(';')), frozenset(reaction2.template)) + self.assertEqual( + frozenset("C/H3/Cs\H3;C_methyl".split(";")), frozenset(reaction2.template) + ) # save_chemkin_file - chemkin_save_path = os.path.join(folder, 'minimal', 'chem_new.inp') - dictionary_save_path = os.path.join(folder, 'minimal', 'species_dictionary_new.txt') + chemkin_save_path = os.path.join(folder, "minimal", "chem_new.inp") + dictionary_save_path = os.path.join( + folder, "minimal", "species_dictionary_new.txt" + ) - save_chemkin_file(chemkin_save_path, species, reactions, verbose=True, check_for_duplicates=True) + save_chemkin_file( + chemkin_save_path, + species, + reactions, + verbose=True, + check_for_duplicates=True, + ) save_species_dictionary(dictionary_save_path, species, old_style=False) self.assertTrue(os.path.isfile(chemkin_save_path)) @@ -187,10 +220,12 @@ def test_read_and_write_template_reaction_family_for_pdd_example(self): an entry in H_Abstraction, the other was just an estimate.' won't interfere reaction family info retrival. """ - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data/chemkin/chemkin_py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data/chemkin/chemkin_py" + ) - chemkin_path = os.path.join(folder, 'pdd', 'chem.inp') - dictionary_path = os.path.join(folder, 'pdd', 'species_dictionary.txt') + chemkin_path = os.path.join(folder, "pdd", "chem.inp") + dictionary_path = os.path.join(folder, "pdd", "species_dictionary.txt") # load_chemkin_file species, reactions = load_chemkin_file(chemkin_path, dictionary_path) @@ -202,10 +237,18 @@ def test_read_and_write_template_reaction_family_for_pdd_example(self): self.assertEqual(reaction2.family, "H_Abstraction") # save_chemkin_file - chemkin_save_path = os.path.join(folder, 'minimal', 'chem_new.inp') - dictionary_save_path = os.path.join(folder, 'minimal', 'species_dictionary_new.txt') + chemkin_save_path = os.path.join(folder, "minimal", "chem_new.inp") + dictionary_save_path = os.path.join( + folder, "minimal", "species_dictionary_new.txt" + ) - save_chemkin_file(chemkin_save_path, species, reactions, verbose=False, check_for_duplicates=False) + save_chemkin_file( + chemkin_save_path, + species, + reactions, + verbose=False, + check_for_duplicates=False, + ) save_species_dictionary(dictionary_save_path, species, old_style=False) self.assertTrue(os.path.isfile(chemkin_save_path)) @@ -219,18 +262,26 @@ def test_transport_data_read_and_write(self): """ Test that we can write to chemkin and recreate the same transport object """ - Ar = Species(label="Ar", - transport_data=TransportData(shapeIndex=0, epsilon=(1134.93, 'J/mol'), sigma=(3.33, 'angstrom'), - dipoleMoment=(0, 'De'), polarizability=(0, 'angstrom^3'), - rotrelaxcollnum=0.0, comment="""GRI-Mech""")) + Ar = Species( + label="Ar", + transport_data=TransportData( + shapeIndex=0, + epsilon=(1134.93, "J/mol"), + sigma=(3.33, "angstrom"), + dipoleMoment=(0, "De"), + polarizability=(0, "angstrom^3"), + rotrelaxcollnum=0.0, + comment="""GRI-Mech""", + ), + ) Ar_write = Species(label="Ar") - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data') + folder = os.path.join(os.path.dirname(rmgpy.__file__), "test_data") - temp_transport_path = os.path.join(folder, 'tran_temp.dat') + temp_transport_path = os.path.join(folder, "tran_temp.dat") save_transport_file(temp_transport_path, [Ar]) - species_dict = {'Ar': Ar_write} + species_dict = {"Ar": Ar_write} load_transport_file(temp_transport_path, species_dict) self.assertEqual(repr(Ar), repr(Ar_write)) @@ -241,24 +292,19 @@ def test_use_chemkin_names(self): Test that the official chemkin names are used as labels for the created Species objects. """ - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data/chemkin/chemkin_py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data/chemkin/chemkin_py" + ) - chemkin_path = os.path.join(folder, 'minimal', 'chem.inp') - dictionary_path = os.path.join(folder, 'minimal', 'species_dictionary.txt') + chemkin_path = os.path.join(folder, "minimal", "chem.inp") + dictionary_path = os.path.join(folder, "minimal", "species_dictionary.txt") # load_chemkin_file - species, reactions = load_chemkin_file(chemkin_path, dictionary_path, use_chemkin_names=True) - - expected = [ - 'Ar', - 'He', - 'Ne', - 'N2', - 'ethane', - 'CH3', - 'C2H5', - 'C' - ] + species, reactions = load_chemkin_file( + chemkin_path, dictionary_path, use_chemkin_names=True + ) + + expected = ["Ar", "He", "Ne", "N2", "ethane", "CH3", "C2H5", "C"] for spc, label in zip(species, expected): self.assertEqual(spc.label, label) @@ -269,20 +315,24 @@ def test_reactant_n2_is_reactive_and_gets_right_species_identifier(self): inert list of RMG, should be treated as reactive species and given right species Identifier when it's reacting in reactions. """ - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data/chemkin/chemkin_py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data/chemkin/chemkin_py" + ) - chemkin_path = os.path.join(folder, 'NC', 'chem.inp') - dictionary_path = os.path.join(folder, 'NC', 'species_dictionary.txt') + chemkin_path = os.path.join(folder, "NC", "chem.inp") + dictionary_path = os.path.join(folder, "NC", "species_dictionary.txt") # load_chemkin_file - species, reactions = load_chemkin_file(chemkin_path, dictionary_path, use_chemkin_names=True) + species, reactions = load_chemkin_file( + chemkin_path, dictionary_path, use_chemkin_names=True + ) for n2 in species: - if n2.label == 'N2': + if n2.label == "N2": break self.assertTrue(n2.reactive) - self.assertEqual(get_species_identifier(n2), 'N2(35)') + self.assertEqual(get_species_identifier(n2), "N2(35)") def test_read_specific_collider(self): """ @@ -291,56 +341,99 @@ def test_read_specific_collider(self): """ entry = """O2(4)+H(5)(+N2(5))<=>HO2(10)(+N2(5)) 4.651e+12 0.440 0.000""" species_dict = {} - s1 = Species().from_adjacency_list("""O2(4) + s1 = Species().from_adjacency_list( + """O2(4) multiplicity 3 1 O u1 p2 c0 {2,S} - 2 O u1 p2 c0 {1,S}""") - s2 = Species().from_adjacency_list("""H(5) + 2 O u1 p2 c0 {1,S}""" + ) + s2 = Species().from_adjacency_list( + """H(5) multiplicity 2 - 1 H u1 p0 c0""") - s3 = Species().from_adjacency_list("""N2(5) + 1 H u1 p0 c0""" + ) + s3 = Species().from_adjacency_list( + """N2(5) 1 N u0 p1 c0 {2,T} - 2 N u0 p1 c0 {1,T}""") - s4 = Species().from_adjacency_list("""HO2(10) + 2 N u0 p1 c0 {1,T}""" + ) + s4 = Species().from_adjacency_list( + """HO2(10) multiplicity 2 1 O u0 p2 c0 {2,S} {3,S} 2 O u1 p2 c0 {1,S} - 3 H u0 p0 c0 {1,S}""") - species_dict['O2(4)'] = s1 - species_dict['H(5)'] = s2 - species_dict['N2(5)'] = s3 - species_dict['HO2(10)'] = s4 - A_units = ['', 's^-1', 'cm^3/(mol*s)', 'cm^6/(mol^2*s)', 'cm^9/(mol^3*s)'] + 3 H u0 p0 c0 {1,S}""" + ) + species_dict["O2(4)"] = s1 + species_dict["H(5)"] = s2 + species_dict["N2(5)"] = s3 + species_dict["HO2(10)"] = s4 + A_units = ["", "s^-1", "cm^3/(mol*s)", "cm^6/(mol^2*s)", "cm^9/(mol^3*s)"] A_units_surf = [] - E_units = 'kcal/mol' - reaction = read_kinetics_entry(entry, species_dict, A_units, A_units_surf, E_units) + E_units = "kcal/mol" + reaction = read_kinetics_entry( + entry, species_dict, A_units, A_units_surf, E_units + ) - self.assertEqual(reaction.specific_collider.label, 'N2(5)') + self.assertEqual(reaction.specific_collider.label, "N2(5)") def test_process_duplicate_reactions(self): """ Test that duplicate reactions are handled correctly when loading a Chemkin file. """ - s1 = Species().from_smiles('CC') - s2 = Species().from_smiles('[CH3]') - s3 = Species().from_smiles('[OH]') - s4 = Species().from_smiles('C[CH2]') - s5 = Species().from_smiles('O') - r1 = Reaction(reactants=[s1], products=[s2, s2], duplicate=False, kinetics=Arrhenius()) - r2 = Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, kinetics=Arrhenius()) - r3 = Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, kinetics=Arrhenius()) - r4 = Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=False, kinetics=Arrhenius()) - r5 = LibraryReaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, - kinetics=Arrhenius(), library='lib1') - r6 = LibraryReaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, - kinetics=Arrhenius(), library='lib2') - r7 = LibraryReaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, - kinetics=Chebyshev(), library='lib1') - r8 = LibraryReaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, - kinetics=Arrhenius(), library='lib1') - r9 = LibraryReaction(reactants=[s1, s3], products=[s4, s5], duplicate=False, - kinetics=MultiArrhenius(arrhenius=[Arrhenius(), Arrhenius()]), library='lib1') + s1 = Species().from_smiles("CC") + s2 = Species().from_smiles("[CH3]") + s3 = Species().from_smiles("[OH]") + s4 = Species().from_smiles("C[CH2]") + s5 = Species().from_smiles("O") + r1 = Reaction( + reactants=[s1], products=[s2, s2], duplicate=False, kinetics=Arrhenius() + ) + r2 = Reaction( + reactants=[s1, s3], products=[s4, s5], duplicate=True, kinetics=Arrhenius() + ) + r3 = Reaction( + reactants=[s1, s3], products=[s4, s5], duplicate=True, kinetics=Arrhenius() + ) + r4 = Reaction( + reactants=[s1, s3], products=[s4, s5], duplicate=False, kinetics=Arrhenius() + ) + r5 = LibraryReaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=True, + kinetics=Arrhenius(), + library="lib1", + ) + r6 = LibraryReaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=True, + kinetics=Arrhenius(), + library="lib2", + ) + r7 = LibraryReaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=True, + kinetics=Chebyshev(), + library="lib1", + ) + r8 = LibraryReaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=True, + kinetics=Arrhenius(), + library="lib1", + ) + r9 = LibraryReaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=False, + kinetics=MultiArrhenius(arrhenius=[Arrhenius(), Arrhenius()]), + library="lib1", + ) reaction_list_with_duplicate = [r1, r2, r3] reaction_list_with_duplicate2 = [r1, r2, r3] reaction_list_unmarked_duplicate = [r1, r2, r4] @@ -355,23 +448,29 @@ def test_process_duplicate_reactions(self): # Test that unmarked duplicate reactions are detected if both # reactions are p-dep or p-indep - self.assertRaisesRegexp(ChemkinError, - 'Encountered unmarked duplicate reaction', - _process_duplicate_reactions, - reaction_list_unmarked_duplicate) + self.assertRaisesRegexp( + ChemkinError, + "Encountered unmarked duplicate reaction", + _process_duplicate_reactions, + reaction_list_unmarked_duplicate, + ) # Test that unequal libraries are recognized - self.assertRaisesRegexp(ChemkinError, - 'from different libraries', - _process_duplicate_reactions, - reaction_list_unequal_libraries) + self.assertRaisesRegexp( + ChemkinError, + "from different libraries", + _process_duplicate_reactions, + reaction_list_unequal_libraries, + ) # Test that an error is raised for reactions with kinetics # that cannot be merged - self.assertRaisesRegexp(ChemkinError, - 'Mixed kinetics for duplicate reaction', - _process_duplicate_reactions, - reaction_list_mixed_kinetics) + self.assertRaisesRegexp( + ChemkinError, + "Mixed kinetics for duplicate reaction", + _process_duplicate_reactions, + reaction_list_mixed_kinetics, + ) # Test that duplicate library reactions are merged successfully _process_duplicate_reactions(reaction_list_mergeable) @@ -388,23 +487,61 @@ def test_process_duplicate_reactions(self): def test_mark_duplicate_reactions(self): """Test that we can properly mark duplicate reactions for Chemkin.""" - s1 = Species().from_smiles('CC') - s2 = Species().from_smiles('[CH3]') - s3 = Species().from_smiles('[OH]') - s4 = Species().from_smiles('C[CH2]') - s5 = Species().from_smiles('O') - s6 = Species().from_smiles('[H]') + s1 = Species().from_smiles("CC") + s2 = Species().from_smiles("[CH3]") + s3 = Species().from_smiles("[OH]") + s4 = Species().from_smiles("C[CH2]") + s5 = Species().from_smiles("O") + s6 = Species().from_smiles("[H]") # Try initializing with duplicate=False reaction_list = [ - Reaction(reactants=[s1], products=[s2, s2], duplicate=False, kinetics=Arrhenius()), - Reaction(reactants=[s1], products=[s2, s2], duplicate=False, kinetics=Arrhenius()), - Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=False, kinetics=Arrhenius()), - Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=False, kinetics=Chebyshev()), - Reaction(reactants=[s1], products=[s4, s6], duplicate=False, kinetics=Arrhenius(), reversible=False), - Reaction(reactants=[s1], products=[s4, s6], duplicate=False, kinetics=Arrhenius(), reversible=False), - Reaction(reactants=[s5], products=[s3, s6], duplicate=False, kinetics=Arrhenius(), reversible=False), - Reaction(reactants=[s3, s6], products=[s5], duplicate=False, kinetics=Arrhenius(), reversible=False), + Reaction( + reactants=[s1], products=[s2, s2], duplicate=False, kinetics=Arrhenius() + ), + Reaction( + reactants=[s1], products=[s2, s2], duplicate=False, kinetics=Arrhenius() + ), + Reaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=False, + kinetics=Arrhenius(), + ), + Reaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=False, + kinetics=Chebyshev(), + ), + Reaction( + reactants=[s1], + products=[s4, s6], + duplicate=False, + kinetics=Arrhenius(), + reversible=False, + ), + Reaction( + reactants=[s1], + products=[s4, s6], + duplicate=False, + kinetics=Arrhenius(), + reversible=False, + ), + Reaction( + reactants=[s5], + products=[s3, s6], + duplicate=False, + kinetics=Arrhenius(), + reversible=False, + ), + Reaction( + reactants=[s3, s6], + products=[s5], + duplicate=False, + kinetics=Arrhenius(), + reversible=False, + ), ] expected_flags = [True, True, False, False, True, True, False, False] @@ -416,14 +553,52 @@ def test_mark_duplicate_reactions(self): # Try initializing with duplicate=True reaction_list = [ - Reaction(reactants=[s1], products=[s2, s2], duplicate=True, kinetics=Arrhenius()), - Reaction(reactants=[s1], products=[s2, s2], duplicate=True, kinetics=Arrhenius()), - Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, kinetics=Arrhenius()), - Reaction(reactants=[s1, s3], products=[s4, s5], duplicate=True, kinetics=Chebyshev()), - Reaction(reactants=[s1], products=[s4, s6], duplicate=True, kinetics=Arrhenius(), reversible=False), - Reaction(reactants=[s1], products=[s4, s6], duplicate=True, kinetics=Arrhenius(), reversible=False), - Reaction(reactants=[s5], products=[s3, s6], duplicate=True, kinetics=Arrhenius(), reversible=False), - Reaction(reactants=[s3, s6], products=[s5], duplicate=True, kinetics=Arrhenius(), reversible=False), + Reaction( + reactants=[s1], products=[s2, s2], duplicate=True, kinetics=Arrhenius() + ), + Reaction( + reactants=[s1], products=[s2, s2], duplicate=True, kinetics=Arrhenius() + ), + Reaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=True, + kinetics=Arrhenius(), + ), + Reaction( + reactants=[s1, s3], + products=[s4, s5], + duplicate=True, + kinetics=Chebyshev(), + ), + Reaction( + reactants=[s1], + products=[s4, s6], + duplicate=True, + kinetics=Arrhenius(), + reversible=False, + ), + Reaction( + reactants=[s1], + products=[s4, s6], + duplicate=True, + kinetics=Arrhenius(), + reversible=False, + ), + Reaction( + reactants=[s5], + products=[s3, s6], + duplicate=True, + kinetics=Arrhenius(), + reversible=False, + ), + Reaction( + reactants=[s3, s6], + products=[s5], + duplicate=True, + kinetics=Arrhenius(), + reversible=False, + ), ] mark_duplicate_reactions(reaction_list) @@ -434,7 +609,9 @@ def test_mark_duplicate_reactions(self): def test_read_write_coverage_dependence(self): """Test that we can properly read and write coverage dependent parameters""" - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data/chemkin/chemkin_py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data/chemkin/chemkin_py" + ) s_x_entry = """X X 1 G 100.000 5000.000 1554.80 1 1.60299900E-01-2.52235409E-04 1.14181275E-07-1.21471653E-11 3.85790025E-16 2 @@ -456,16 +633,16 @@ def test_read_write_coverage_dependence(self): 1.89893631E+00 2.03295404E-03-1.19976562E-06 2.32680628E-10-1.53508256E-14 2 -2.21111565E+04-9.64104147E+00-7.59013115E-01 1.89868504E-02-3.82473769E-05 3 3.43558429E-08-1.13974388E-11-2.18356104E+04 1.76017413E+00 4""" - + s_h2 = Species().from_smiles("[H][H]") s_x = Species().from_adjacency_list("1 X u0 p0") - s_x.label = 'X' + s_x.label = "X" s_hx = Species().from_adjacency_list("1 H u0 p0 {2,S} \n 2 X u0 p0 {1,S}") - s_hx.label = 'HX' + s_hx.label = "HX" s_ohx = Species().from_smiles("O[*]") - s_ohx.label = 'OHX' + s_ohx.label = "OHX" s_ox = Species().from_smiles("O=[*]") - s_ox.label = 'OX' + s_ox.label = "OX" species, thermo, formula = read_thermo_entry(s_x_entry) s_x.thermo = thermo @@ -478,7 +655,6 @@ def test_read_write_coverage_dependence(self): species, thermo, formula = read_thermo_entry(s_ox_entry) s_ox.thermo = thermo - species = [s_h2, s_x, s_hx, s_ohx, s_ox] # test a coverage dependent arrhenius and a coverage dependent sticking coefficient @@ -489,35 +665,45 @@ def test_read_write_coverage_dependence(self): rxn2_entry = """X+OH*=O*+H* 7.390000e+19 0.000 18.475 COV / O* 0 0 -17.500 /""" - species_dict = {} - species_dict['H2'] = s_h2 - species_dict['X'] = s_x - species_dict['H*'] = s_hx - species_dict['OH*'] = s_ohx - species_dict['O*'] = s_ox + species_dict = {} + species_dict["H2"] = s_h2 + species_dict["X"] = s_x + species_dict["H*"] = s_hx + species_dict["OH*"] = s_ohx + species_dict["O*"] = s_ox - A_units = ['', 's^-1', 'cm^3/(mol*s)', - 'cm^6/(mol^2*s)', 'cm^9/(mol^3*s)'] - A_units_surf = ['', 's^-1', 'cm^2/(mol*s)', - 'cm^4/(mol^2*s)', 'cm^6/(mol^3*s)'] + A_units = ["", "s^-1", "cm^3/(mol*s)", "cm^6/(mol^2*s)", "cm^9/(mol^3*s)"] + A_units_surf = ["", "s^-1", "cm^2/(mol*s)", "cm^4/(mol^2*s)", "cm^6/(mol^3*s)"] - E_units = 'kcal/mol' + E_units = "kcal/mol" self.rxn1 = read_kinetics_entry( - rxn1_entry, species_dict, A_units, A_units_surf, E_units) + rxn1_entry, species_dict, A_units, A_units_surf, E_units + ) self.rxn2 = read_kinetics_entry( - rxn2_entry, species_dict, A_units, A_units_surf, E_units) + rxn2_entry, species_dict, A_units, A_units_surf, E_units + ) reactions = [self.rxn1, self.rxn2] # save_chemkin_file - chemkin_save_path = os.path.join(folder, 'surface', 'chem-surface_new.inp') - dictionary_save_path = os.path.join(folder, 'surface', 'species_dictionary_new.txt') - save_chemkin_file(chemkin_save_path, species, reactions, verbose=True, check_for_duplicates=True) + chemkin_save_path = os.path.join(folder, "surface", "chem-surface_new.inp") + dictionary_save_path = os.path.join( + folder, "surface", "species_dictionary_new.txt" + ) + save_chemkin_file( + chemkin_save_path, + species, + reactions, + verbose=True, + check_for_duplicates=True, + ) save_species_dictionary(dictionary_save_path, species, old_style=False) # load chemkin file - species_load, reactions_load = load_chemkin_file(chemkin_save_path, dictionary_save_path) + species_load, reactions_load = load_chemkin_file( + chemkin_save_path, dictionary_save_path + ) # compare only labels because the objects are different species_label = [] @@ -531,9 +717,14 @@ def test_read_write_coverage_dependence(self): for r in range(len(reactions)): for s in range(len(reactions[r].products)): - self.assertEqual(reactions[r].products[s].label,reactions_load[r].products[s].label) + self.assertEqual( + reactions[r].products[s].label, reactions_load[r].products[s].label + ) for s in range(len(reactions[r].reactants)): - self.assertEqual(reactions[r].reactants[s].label, reactions_load[r].reactants[s].label) + self.assertEqual( + reactions[r].reactants[s].label, + reactions_load[r].reactants[s].label, + ) self.assertIsNotNone(reactions[r].kinetics.coverage_dependence) self.assertIsNotNone(reactions_load[r].kinetics.coverage_dependence) @@ -541,16 +732,32 @@ def test_read_write_coverage_dependence(self): os.remove(chemkin_save_path) os.remove(dictionary_save_path) -class TestThermoReadWrite(unittest.TestCase): +class TestThermoReadWrite(unittest.TestCase): def setUp(self): """This method is run once before each test.""" - coeffs_low = [4.03055, -0.00214171, 4.90611e-05, -5.99027e-08, 2.38945e-11, -11257.6, 3.5613] - coeffs_high = [-0.307954, 0.0245269, -1.2413e-05, 3.07724e-09, -3.01467e-13, -10693, 22.628] - Tmin = 300. - Tmax = 3000. + coeffs_low = [ + 4.03055, + -0.00214171, + 4.90611e-05, + -5.99027e-08, + 2.38945e-11, + -11257.6, + 3.5613, + ] + coeffs_high = [ + -0.307954, + 0.0245269, + -1.2413e-05, + 3.07724e-09, + -3.01467e-13, + -10693, + 22.628, + ] + Tmin = 300.0 + Tmax = 3000.0 Tint = 650.73 - E0 = -782292. # J/mol. + E0 = -782292.0 # J/mol. comment = "C2H6" self.nasa = NASA( polynomials=[ @@ -586,7 +793,7 @@ def setUp(self): def test_write_thermo_block(self): """Test that we can write a normal thermo block""" - species = Species(smiles='CC') + species = Species(smiles="CC") species.thermo = self.nasa result = write_thermo_entry(species, verbose=False) @@ -597,13 +804,14 @@ def test_read_thermo_block(self): """Test that we can read a normal thermo block""" species, thermo, formula = read_thermo_entry(self.entry1) - self.assertEqual(species, 'C2H6') - self.assertEqual(formula, {'H': 6, 'C': 2}) + self.assertEqual(species, "C2H6") + self.assertEqual(formula, {"H": 6, "C": 2}) self.assertTrue(self.nasa.is_identical_to(thermo)) def test_write_thermo_block_5_elem(self): """Test that we can write a thermo block for a species with 5 elements""" - species = Species().from_adjacency_list(""" + species = Species().from_adjacency_list( + """ 1 O u0 p3 c-1 {3,S} 2 O u0 p2 c0 {3,D} 3 N u0 p0 c+1 {1,S} {2,D} {4,S} @@ -612,7 +820,8 @@ def test_write_thermo_block_5_elem(self): 6 H u0 p0 c0 {4,S} 7 H u0 p0 c0 {4,S} 8 X u0 p0 c0 -""") +""" + ) species.thermo = self.nasa result = write_thermo_entry(species, verbose=False) @@ -623,13 +832,14 @@ def test_read_thermo_block_5_elem(self): """Test that we can read a thermo block with 5 elements""" species, thermo, formula = read_thermo_entry(self.entry2) - self.assertEqual(species, 'CH3NO2X') - self.assertEqual(formula, {'X': 1, 'C': 1, 'O': 2, 'H': 3, 'N': 1}) + self.assertEqual(species, "CH3NO2X") + self.assertEqual(formula, {"X": 1, "C": 1, "O": 2, "H": 3, "N": 1}) self.assertTrue(self.nasa.is_identical_to(thermo)) def test_write_thermo_block_6_elem(self): """Test that we can write a thermo block for a species with 6 elements""" - species = Species().from_adjacency_list(""" + species = Species().from_adjacency_list( + """ 1 O u0 p3 c-1 {2,S} 2 N u0 p0 c+1 {1,S} {3,D} {4,S} 3 O u0 p2 c0 {2,D} @@ -639,7 +849,8 @@ def test_write_thermo_block_6_elem(self): 7 H u0 p0 c0 {4,S} 8 H u0 p0 c0 {5,S} 9 X u0 p0 c0 -""") +""" + ) species.thermo = self.nasa result = write_thermo_entry(species, verbose=False) @@ -650,25 +861,33 @@ def test_read_thermo_block_6_elem(self): """Test that we can read a thermo block with 6 elements""" species, thermo, formula = read_thermo_entry(self.entry3) - self.assertEqual(species, 'CH3NO2SX') - self.assertEqual(formula, {'X': 1, 'C': 1, 'O': 2, 'H': 3, 'N': 1, 'S': 1}) + self.assertEqual(species, "CH3NO2SX") + self.assertEqual(formula, {"X": 1, "C": 1, "O": 2, "H": 3, "N": 1, "S": 1}) self.assertTrue(self.nasa.is_identical_to(thermo)) - + def test_write_bidentate_species(self): """Test that species with 2 or more surface sites get proper formatting""" - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data/chemkin/chemkin_py') - chemkin_path = os.path.join(folder, 'surface', 'chem-surface.inp') - dictionary_path = os.path.join(folder, 'surface', 'species_dictionary.txt') - chemkin_save_path = os.path.join(folder, 'surface', 'chem-surface-test.inp') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data/chemkin/chemkin_py" + ) + chemkin_path = os.path.join(folder, "surface", "chem-surface.inp") + dictionary_path = os.path.join(folder, "surface", "species_dictionary.txt") + chemkin_save_path = os.path.join(folder, "surface", "chem-surface-test.inp") species, reactions = load_chemkin_file(chemkin_path, dictionary_path) - surface_atom_count = species[3].molecule[0].get_num_atoms('X') + surface_atom_count = species[3].molecule[0].get_num_atoms("X") self.assertEqual(surface_atom_count, 3) - save_chemkin_surface_file(chemkin_save_path, species, reactions, verbose=False, check_for_duplicates=False) - + save_chemkin_surface_file( + chemkin_save_path, + species, + reactions, + verbose=False, + check_for_duplicates=False, + ) + bidentate_test = " CH2OX2(52)/2/ \n" - tridentate_test = " CHOX3(61)/3/ \n" + tridentate_test = " CHOX3(61)/3/ \n" with open(chemkin_save_path, "r") as f: for i, line in enumerate(f): if i == 3: @@ -678,50 +897,53 @@ def test_write_bidentate_species(self): self.assertEqual(bidentate_test.strip(), bidentate_read.strip()) self.assertEqual(tridentate_test.strip(), tridentate_read.strip()) - + os.remove(chemkin_save_path) + class TestReadReactionComments(unittest.TestCase): @classmethod def setUpClass(cls): - r = Species().from_smiles('[CH3]') - r.label = '[CH3]' - p = Species().from_smiles('CC') - p.label = 'CC' - - cls.reaction = Reaction(reactants=[r, r], - products=[p], - kinetics=Arrhenius(A=(8.26e+17, 'cm^3/(mol*s)'), - n=-1.4, - Ea=(1, 'kcal/mol'), T0=(1, 'K')) - ) - cls.comments_list = [""" + r = Species().from_smiles("[CH3]") + r.label = "[CH3]" + p = Species().from_smiles("CC") + p.label = "CC" + + cls.reaction = Reaction( + reactants=[r, r], + products=[p], + kinetics=Arrhenius( + A=(8.26e17, "cm^3/(mol*s)"), n=-1.4, Ea=(1, "kcal/mol"), T0=(1, "K") + ), + ) + cls.comments_list = [ + """ Reaction index: Chemkin #1; RMG #1 Template reaction: R_Recombination Exact match found for rate rule (C_methyl;C_methyl) Multiplied by reaction path degeneracy 0.5 """, - """ + """ Reaction index: Chemkin #2; RMG #4 Template reaction: H_Abstraction Estimated using template (C/H3/Cs;C_methyl) for rate rule (C/H3/Cs\H3;C_methyl) Multiplied by reaction path degeneracy 6 """, - """ + """ Reaction index: Chemkin #13; RMG #8 Template reaction: H_Abstraction Flux pairs: [CH3], CC; [CH3], CC; Estimated using an average for rate rule [C/H3/Cs\H3;C_rad/H2/Cs] Multiplied by reaction path degeneracy 6.0 """, - """ + """ Reaction index: Chemkin #17; RMG #31 Template reaction: H_Abstraction Flux pairs: [CH3], CC; [CH3], CC; Estimated using average of templates [C/H3/Cs;H_rad] + [C/H3/Cs\H3;Y_rad] for rate rule [C/H3/Cs\H3;H_rad] Multiplied by reaction path degeneracy 6.0 """, - """ + """ Reaction index: Chemkin #69; RMG #171 Template reaction: intra_H_migration Flux pairs: [CH3], CC; [CH3], CC; @@ -729,7 +951,7 @@ def setUpClass(cls): [R3H_SS_Cs;O_rad_out;Cs_H_out_2H] Multiplied by reaction path degeneracy 3.0 """, - """ + """ Reaction index: Chemkin #3; RMG #243 Template reaction: Disproportionation Flux pairs: [CH3], CC; [CH3], CC; @@ -739,13 +961,13 @@ def setUpClass(cls): of [C_rad/H/NonDeC;O_Csrad] + Average of [Average of [C_rad/Cs3;O_Csrad]]] + H_rad;O_Csrad]] Estimated using template [Y_rad_birad_trirad_quadrad;O_Csrad] for rate rule [CH_quartet;O_Csrad] """, - """ + """ Reaction index: Chemkin #4; RMG #303 Template reaction: Disproportionation Flux pairs: [CH3], CC; [CH3], CC; Matched reaction 0 C2H + CH3O <=> C2H2 + CH2O in Disproportionation/training """, - """ + """ Reaction index: Chemkin #51; RMG #136 Template reaction: H_Abstraction Flux pairs: [CH3], CC; [CH3], CC; @@ -753,51 +975,47 @@ def setUpClass(cls): Euclidian distance = 0 Multiplied by reaction path degeneracy 3.0 """, - """ + """ Reaction index: Chemkin #32; RMG #27 Template reaction: R_Recombination Flux pairs: [CH3], CC; [CH3], CC; Matched reaction 20 CH3 + CH3 <=> C2H6 in R_Recombination/training This reaction matched rate rule [C_methyl;C_methyl] """, - """ + """ Reaction index: Chemkin #2; RMG #4 Template reaction: R_Recombination Flux pairs: [CH3], CC; [CH3], CC; From training reaction 21 used for C_rad/H2/Cs;C_methyl Exact match found for rate rule [C_rad/H2/Cs;C_methyl] Euclidian distance = 0 - """] - cls.template_list = [['C_methyl', 'C_methyl'], - ['C/H3/Cs\H3', 'C_methyl'], - ['C/H3/Cs\H3', 'C_rad/H2/Cs'], - ['C/H3/Cs\H3', 'H_rad'], - ['R3H_SS_Cs', 'O_rad_out', 'Cs_H_out_2H'], - ['CH_quartet', 'O_Csrad'], - None, - ['C/H3/Cd\H_Cd\H2', 'C_rad/H2/Cs'], - ['C_methyl', 'C_methyl'], - ['C_rad/H2/Cs', 'C_methyl']] - cls.family_list = ['R_Recombination', - 'H_Abstraction', - 'H_Abstraction', - 'H_Abstraction', - 'intra_H_migration', - 'Disproportionation', - 'Disproportionation', - 'H_Abstraction', - 'R_Recombination', - 'R_Recombination', ] - cls.degeneracy_list = [0.5, - 6, - 6, - 6, - 3, - 1, - 1, - 3, - 1, - 1] + """, + ] + cls.template_list = [ + ["C_methyl", "C_methyl"], + ["C/H3/Cs\H3", "C_methyl"], + ["C/H3/Cs\H3", "C_rad/H2/Cs"], + ["C/H3/Cs\H3", "H_rad"], + ["R3H_SS_Cs", "O_rad_out", "Cs_H_out_2H"], + ["CH_quartet", "O_Csrad"], + None, + ["C/H3/Cd\H_Cd\H2", "C_rad/H2/Cs"], + ["C_methyl", "C_methyl"], + ["C_rad/H2/Cs", "C_methyl"], + ] + cls.family_list = [ + "R_Recombination", + "H_Abstraction", + "H_Abstraction", + "H_Abstraction", + "intra_H_migration", + "Disproportionation", + "Disproportionation", + "H_Abstraction", + "R_Recombination", + "R_Recombination", + ] + cls.degeneracy_list = [0.5, 6, 6, 6, 3, 1, 1, 3, 1, 1] cls.expected_lines = [4, 4, 5, 5, 5, 5, 4, 6, 5, 6] def test_read_reaction_comments_template(self): @@ -809,10 +1027,17 @@ def test_read_reaction_comments_template(self): # only check template if meant to find one if self.template_list[index]: - self.assertTrue(new_rxn.template, - 'The template was not saved from the reaction comment {}'.format(comment)) - self.assertEqual(frozenset(new_rxn.template), frozenset(self.template_list[index]), - 'The reaction template does not match') + self.assertTrue( + new_rxn.template, + "The template was not saved from the reaction comment {}".format( + comment + ), + ) + self.assertEqual( + frozenset(new_rxn.template), + frozenset(self.template_list[index]), + "The reaction template does not match", + ) else: self.assertFalse(new_rxn.template) @@ -823,7 +1048,9 @@ def test_read_reaction_comments_family(self): for index, comment in enumerate(self.comments_list): new_rxn = read_reaction_comments(self.reaction, comment) - self.assertEqual(new_rxn.family, self.family_list[index], 'wrong reaction family stored') + self.assertEqual( + new_rxn.family, self.family_list[index], "wrong reaction family stored" + ) def test_read_reaction_comments_degeneracy(self): """ @@ -833,21 +1060,34 @@ def test_read_reaction_comments_degeneracy(self): """ for index, comment in enumerate(self.comments_list): # Clear any leftover kinetics comments - self.reaction.kinetics.comment = '' + self.reaction.kinetics.comment = "" previous_rate = self.reaction.kinetics.A.value_si new_rxn = read_reaction_comments(self.reaction, comment) new_rate = new_rxn.kinetics.A.value_si - self.assertEqual(new_rxn.degeneracy, self.degeneracy_list[index], 'wrong degeneracy was stored') + self.assertEqual( + new_rxn.degeneracy, + self.degeneracy_list[index], + "wrong degeneracy was stored", + ) self.assertEqual(previous_rate, new_rate) # Check that the comment only appears once in the kinetics comment if new_rxn.degeneracy != 1: - self.assertEqual(new_rxn.kinetics.comment.count( - 'Multiplied by reaction path degeneracy {}'.format(new_rxn.degeneracy)), 1, - 'Reaction degeneracy comment duplicated while reading Chemkin comments') + self.assertEqual( + new_rxn.kinetics.comment.count( + "Multiplied by reaction path degeneracy {}".format( + new_rxn.degeneracy + ) + ), + 1, + "Reaction degeneracy comment duplicated while reading Chemkin comments", + ) else: - self.assertTrue('Multiplied by reaction path degeneracy' not in new_rxn.kinetics.comment) + self.assertTrue( + "Multiplied by reaction path degeneracy" + not in new_rxn.kinetics.comment + ) def test_remove_line_breaks(self): """ @@ -856,6 +1096,12 @@ def test_remove_line_breaks(self): for index, comment in enumerate(self.comments_list): new_comment = _remove_line_breaks(comment) new_comment_lines = len(new_comment.strip().splitlines()) - self.assertEqual(new_comment_lines, self.expected_lines[index], - 'Found {} more lines than expected for comment \n\n""{}""\n\n which converted to \n\n""{}""'.format( - new_comment_lines - self.expected_lines[index], comment.strip(), new_comment.strip())) + self.assertEqual( + new_comment_lines, + self.expected_lines[index], + 'Found {} more lines than expected for comment \n\n""{}""\n\n which converted to \n\n""{}""'.format( + new_comment_lines - self.expected_lines[index], + comment.strip(), + new_comment.strip(), + ), + ) diff --git a/test/rmgpy/kinetics/modelTest.py b/test/rmgpy/kinetics/kineticsModelTest.py similarity index 100% rename from test/rmgpy/kinetics/modelTest.py rename to test/rmgpy/kinetics/kineticsModelTest.py diff --git a/test/rmgpy/kinetics/surfaceTest.py b/test/rmgpy/kinetics/kineticsSurfaceTest.py similarity index 100% rename from test/rmgpy/kinetics/surfaceTest.py rename to test/rmgpy/kinetics/kineticsSurfaceTest.py diff --git a/test/rmgpy/qm/moleculeTest.py b/test/rmgpy/qm/qmMoleculeTest.py similarity index 100% rename from test/rmgpy/qm/moleculeTest.py rename to test/rmgpy/qm/qmMoleculeTest.py diff --git a/test/rmgpy/solver/baseTest.py b/test/rmgpy/solver/solverBaseTest.py similarity index 100% rename from test/rmgpy/solver/baseTest.py rename to test/rmgpy/solver/solverBaseTest.py diff --git a/test/rmgpy/solver/surfaceTest.py b/test/rmgpy/solver/solverSurfaceTest.py similarity index 100% rename from test/rmgpy/solver/surfaceTest.py rename to test/rmgpy/solver/solverSurfaceTest.py From b78090ad086253aefa1f3263231c1532328c02e6 Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 10:47:29 -0400 Subject: [PATCH 07/88] black formatting for all test files --- test/arkane/arkaneInputTest.py | 344 +- test/arkane/arkaneMainTest.py | 83 +- test/arkane/arkaneOutputTest.py | 78 +- test/arkane/commonTest.py | 413 +- test/arkane/encorr/aeTest.py | 22 +- test/arkane/encorr/bacTest.py | 168 +- test/arkane/encorr/corrTest.py | 68 +- test/arkane/encorr/dataTest.py | 134 +- test/arkane/encorr/decompTest.py | 57 +- test/arkane/encorr/isodesmicTest.py | 350 +- test/arkane/encorr/referenceTest.py | 183 +- test/arkane/ess/factoryTest.py | 65 +- test/arkane/ess/molproTest.py | 97 +- test/arkane/ess/orcaTest.py | 77 +- test/arkane/ess/psi4Test.py | 629 +- test/arkane/ess/qchemTest.py | 121 +- test/arkane/ess/terachemTest.py | 1521 +- test/arkane/explorerTest.py | 21 +- test/arkane/modelchemTest.py | 153 +- test/arkane/pdepTest.py | 118 +- test/arkane/statmechTest.py | 560 +- test/database/databaseTest.py | 1475 +- test/rmgpy/constantsTest.py | 55 +- test/rmgpy/constraintsTest.py | 109 +- test/rmgpy/data/baseTest.py | 73 +- test/rmgpy/data/kinetics/familyTest.py | 650 +- test/rmgpy/data/kinetics/kineticsTest.py | 934 +- test/rmgpy/data/kinetics/libraryTest.py | 102 +- test/rmgpy/data/solvationTest.py | 372 +- test/rmgpy/data/surfaceTest.py | 70 +- test/rmgpy/data/thermoTest.py | 2006 +- test/rmgpy/data/transportTest.py | 180 +- test/rmgpy/kinetics/arrheniusTest.py | 926 +- test/rmgpy/kinetics/chebyshevTest.py | 137 +- test/rmgpy/kinetics/diffusionLimitedTest.py | 339 +- test/rmgpy/kinetics/falloffTest.py | 425 +- test/rmgpy/kinetics/kineticsModelTest.py | 99 +- test/rmgpy/kinetics/kineticsSurfaceTest.py | 121 +- test/rmgpy/kinetics/kineticsdataTest.py | 169 +- test/rmgpy/kinetics/tunnelingTest.py | 34 +- test/rmgpy/ml/estimatorTest.py | 12 +- test/rmgpy/molecule/adjlistTest.py | 259 +- test/rmgpy/molecule/atomtypeTest.py | 766 +- test/rmgpy/molecule/converterTest.py | 103 +- test/rmgpy/molecule/drawTest.py | 43 +- test/rmgpy/molecule/elementTest.py | 34 +- test/rmgpy/molecule/filtrationTest.py | 41 +- test/rmgpy/molecule/fragmentTest.py | 652 +- test/rmgpy/molecule/graphTest.py | 121 +- test/rmgpy/molecule/groupTest.py | 606 +- test/rmgpy/molecule/inchiTest.py | 106 +- test/rmgpy/molecule/isomorphismTest.py | 251 +- test/rmgpy/molecule/kekulizeTest.py | 16 +- test/rmgpy/molecule/moleculeTest.py | 1024 +- test/rmgpy/molecule/pathfinderTest.py | 49 +- test/rmgpy/molecule/resonanceTest.py | 361 +- test/rmgpy/molecule/symmetryTest.py | 248 +- test/rmgpy/molecule/translatorTest.py | 596 +- test/rmgpy/molecule/utilTest.py | 31 +- test/rmgpy/molecule/vf2Test.py | 24 +- test/rmgpy/pdep/collisionTest.py | 61 +- test/rmgpy/pdep/configurationTest.py | 236 +- test/rmgpy/pdep/networkTest.py | 323 +- test/rmgpy/qm/qmMoleculeTest.py | 52 +- test/rmgpy/quantityTest.py | 386 +- test/rmgpy/reactionTest.py | 2210 +- test/rmgpy/rmg/inputTest.py | 222 +- test/rmgpy/rmg/mainTest.py | 217 +- test/rmgpy/rmg/modelTest.py | 907 +- test/rmgpy/rmg/outputTest.py | 12 +- test/rmgpy/rmg/pdepTest.py | 301 +- test/rmgpy/rmg/reactTest.py | 80 +- test/rmgpy/rmg/rmgTest.py | 72 +- test/rmgpy/rmgobjectTest.py | 361 +- test/rmgpy/solver/liquidTest.py | 391 +- test/rmgpy/solver/simpleTest.py | 638 +- test/rmgpy/solver/solverBaseTest.py | 97 +- test/rmgpy/solver/solverSurfaceTest.py | 598 +- test/rmgpy/speciesTest.py | 439 +- test/rmgpy/statmech/conformerTest.py | 184 +- test/rmgpy/statmech/ndTorsionsTest.py | 63 +- test/rmgpy/statmech/rotationTest.py | 131 +- test/rmgpy/statmech/schrodingerTest.py | 48 +- test/rmgpy/statmech/torsionTest.py | 121 +- test/rmgpy/statmech/translationTest.py | 21 +- test/rmgpy/statmech/vibrationTest.py | 56 +- test/rmgpy/statsTest.py | 5 +- test/rmgpy/test_data/arkane/tst1/pdep_sa.py | 267 +- .../kinetics/families/1,2_shiftC/groups.py | 242 +- .../kinetics/families/1,2_shiftC/rules.py | 1 - .../families/1,2_shiftC/training/reactions.py | 2 - .../6_membered_central_C-C_shift/groups.py | 63 +- .../6_membered_central_C-C_shift/rules.py | 1 - .../training/reactions.py | 1 - .../Baeyer-Villiger_step1_cat/groups.py | 76 +- .../training/reactions.py | 80 +- .../families/Disproportionation/groups.py | 1997 +- .../families/Disproportionation/rules.py | 3554 +- .../Disproportionation/training/reactions.py | 28 +- .../kinetics/families/H_Abstraction/groups.py | 328 +- .../kinetics/families/H_Abstraction/rules.py | 26 +- .../Intra_R_Add_Exo_scission/groups.py | 94 +- .../training/reactions.py | 1 - .../families/Intra_ene_reaction/groups.py | 358 +- .../families/Intra_ene_reaction/rules.py | 25 +- .../families/R_Addition_COm/groups.py | 620 +- .../kinetics/families/R_Addition_COm/rules.py | 318 +- .../R_Addition_MultipleBond/groups.py | 398 +- .../families/R_Addition_MultipleBond/rules.py | 23 +- .../families/R_Recombination/groups.py | 54 +- .../families/R_Recombination/rules.py | 23 +- .../groups.py | 281 +- .../training/reactions.py | 70 +- .../Singlet_Val6_to_triplet/groups.py | 50 +- .../families/Singlet_Val6_to_triplet/rules.py | 13 +- .../training/reactions.py | 17 +- .../Surface_Abstraction_vdW/groups.py | 363 +- .../families/Surface_Abstraction_vdW/rules.py | 30 +- .../training/reactions.py | 160 +- .../Surface_Adsorption_Dissociative/groups.py | 103 +- .../Surface_Adsorption_Dissociative/rules.py | 27 +- .../training/reactions.py | 13 +- .../Surface_Dissociation_vdW/groups.py | 37 +- .../Surface_Dissociation_vdW/rules.py | 29 +- .../families/intra_H_migration/groups.py | 273 +- .../families/intra_H_migration/rules.py | 38 +- .../groups.py | 405 +- .../kinetics/families/recommended.py | 16 +- .../libraries/GRI-Mech3.0/reactions.py | 3092 +- .../libraries/ethane-oxidation/reactions.py | 401 +- .../kinetics/libraries/lib_net/reactions.py | 195 +- .../libraries/surface-example/reactions.py | 163 +- .../solvation/groups/group.py | 316 +- .../solvation/groups/halogen.py | 347 +- .../groups/longDistanceInteraction_cyclic.py | 606 +- .../longDistanceInteraction_noncyclic.py | 900 +- .../solvation/groups/polycyclic.py | 125 +- .../solvation/groups/radical.py | 99 +- .../testing_database/solvation/groups/ring.py | 152 +- .../solvation/libraries/solute.py | 100 +- .../solvation/libraries/solvent.py | 212 +- .../thermo/groups/adsorptionPt111.py | 1470 +- .../testing_database/thermo/groups/gauche.py | 2225 +- .../testing_database/thermo/groups/group.py | 33598 +++++++--------- .../groups/longDistanceInteraction_cyclic.py | 2 - .../longDistanceInteraction_noncyclic.py | 2 - .../testing_database/thermo/groups/other.py | 135 +- .../thermo/groups/polycyclic.py | 1 - .../testing_database/thermo/groups/radical.py | 7083 ++-- .../testing_database/thermo/groups/ring.py | 3 - .../thermo/libraries/primaryThermoLibrary.py | 864 +- .../testing_database/transport/groups/ring.py | 1 - test/rmgpy/thermo/convertTest.py | 50 +- test/rmgpy/thermo/nasaTest.py | 242 +- test/rmgpy/thermo/thermodataTest.py | 109 +- test/rmgpy/thermo/wilhoitTest.py | 170 +- test/rmgpy/tools/canteramodelTest.py | 56 +- test/rmgpy/tools/diffmodelsTest.py | 58 +- test/rmgpy/tools/fluxdiagramTest.py | 72 +- test/rmgpy/tools/generatereactionsTest.py | 55 +- test/rmgpy/tools/isotopesTest.py | 728 +- test/rmgpy/tools/mergemodelsTest.py | 32 +- test/rmgpy/tools/regressionTest.py | 12 +- test/rmgpy/tools/simulateTest.py | 54 +- test/rmgpy/tools/uncertaintyTest.py | 152 +- test/rmgpy/transportDataTest.py | 106 +- 166 files changed, 49484 insertions(+), 42122 deletions(-) diff --git a/test/arkane/arkaneInputTest.py b/test/arkane/arkaneInputTest.py index c2e2671414..2a22ea7c75 100644 --- a/test/arkane/arkaneInputTest.py +++ b/test/arkane/arkaneInputTest.py @@ -44,7 +44,14 @@ from rmgpy.thermo.nasa import NASAPolynomial, NASA from rmgpy.transport import TransportData -from arkane.input import species, transitionState, reaction, SMILES, load_input_file, process_model_chemistry +from arkane.input import ( + species, + transitionState, + reaction, + SMILES, + load_input_file, + process_model_chemistry, +) from arkane.modelchem import LevelOfTheory, CompositeLevelOfTheory ################################################################################ @@ -59,22 +66,37 @@ def test_species(self): """ Test loading a species from input file-like kew word arguments """ - label0 = 'CH2O' - kwargs = {'E0': (28.69, 'kcal/mol'), - 'structure': SMILES('C=O'), - 'collisionModel': TransportData(sigma=(3.69e-10, 'm'), epsilon=(4.0, 'kJ/mol')), - 'energyTransferModel': SingleExponentialDown(alpha0=(0.956, 'kJ/mol'), T0=(300, 'K'), n=0.95), - 'spinMultiplicity': 1, - 'opticalIsomers': 1, - 'modes': [HarmonicOscillator(frequencies=([1180, 1261, 1529, 1764, 2931, 2999], 'cm^-1')), - NonlinearRotor(rotationalConstant=([1.15498821005263, 1.3156969584727, 9.45570474524524], - "cm^-1"), symmetry=2, quantum=False), - IdealGasTranslation(mass=(30.0106, "g/mol")), - ]} + label0 = "CH2O" + kwargs = { + "E0": (28.69, "kcal/mol"), + "structure": SMILES("C=O"), + "collisionModel": TransportData( + sigma=(3.69e-10, "m"), epsilon=(4.0, "kJ/mol") + ), + "energyTransferModel": SingleExponentialDown( + alpha0=(0.956, "kJ/mol"), T0=(300, "K"), n=0.95 + ), + "spinMultiplicity": 1, + "opticalIsomers": 1, + "modes": [ + HarmonicOscillator( + frequencies=([1180, 1261, 1529, 1764, 2931, 2999], "cm^-1") + ), + NonlinearRotor( + rotationalConstant=( + [1.15498821005263, 1.3156969584727, 9.45570474524524], + "cm^-1", + ), + symmetry=2, + quantum=False, + ), + IdealGasTranslation(mass=(30.0106, "g/mol")), + ], + } spc0 = species(label0, **kwargs) - self.assertEqual(spc0.label, 'CH2O') - self.assertEqual(spc0.smiles, 'C=O') + self.assertEqual(spc0.label, "CH2O") + self.assertEqual(spc0.smiles, "C=O") self.assertAlmostEqual(spc0.conformer.E0.value_si, 120038.96) self.assertEqual(spc0.conformer.spin_multiplicity, 1) self.assertEqual(spc0.conformer.optical_isomers, 1) @@ -87,54 +109,112 @@ def test_species_atomic_nasa_polynomial(self): Test loading a atom with NASA polynomials """ label0 = "H(1)" - kwargs = {"structure": SMILES('[H]'), - "thermo": NASA(polynomials=[ - NASAPolynomial(coeffs=[2.5, 0, 0, 0, 0, 25473.7, -0.446683], Tmin=(200, 'K'), Tmax=(1000, 'K')), - NASAPolynomial(coeffs=[2.5, 0, 0, 0, 0, 25473.7, -0.446683], Tmin=(1000, 'K'), Tmax=(6000, 'K'))], - Tmin=(200, 'K'), Tmax=(6000, 'K'), comment="""Thermo library: FFCM1(-)"""), - "energyTransferModel": SingleExponentialDown(alpha0=(3.5886, 'kJ/mol'), T0=(300, 'K'), n=0.85)} + kwargs = { + "structure": SMILES("[H]"), + "thermo": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, 25473.7, -0.446683], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, 25473.7, -0.446683], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + comment="""Thermo library: FFCM1(-)""", + ), + "energyTransferModel": SingleExponentialDown( + alpha0=(3.5886, "kJ/mol"), T0=(300, "K"), n=0.85 + ), + } spc0 = species(label0, **kwargs) self.assertEqual(spc0.label, label0) - self.assertEqual(spc0.smiles, '[H]') + self.assertEqual(spc0.smiles, "[H]") self.assertTrue(spc0.has_statmech()) - self.assertEqual(spc0.thermo, kwargs['thermo']) + self.assertEqual(spc0.thermo, kwargs["thermo"]) def test_species_polyatomic_nasa_polynomial(self): """ Test loading a species with NASA polynomials """ label0 = "benzyl" - kwargs = {"structure": SMILES('[c]1ccccc1'), - "thermo": NASA(polynomials=[NASAPolynomial( - coeffs=[2.78632, 0.00784632, 7.97887e-05, -1.11617e-07, 4.39429e-11, 39695, 11.5114], - Tmin=(100, 'K'), Tmax=(943.73, 'K')), - NASAPolynomial( - coeffs=[13.2455, 0.0115667, -2.49996e-06, 4.66496e-10, -4.12376e-14, - 35581.1, -49.6793], Tmin=(943.73, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), - comment="""Thermo library: Fulvene_H + radical(CbJ)"""), - "energyTransferModel": SingleExponentialDown(alpha0=(3.5886, 'kJ/mol'), T0=(300, 'K'), n=0.85)} + kwargs = { + "structure": SMILES("[c]1ccccc1"), + "thermo": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 2.78632, + 0.00784632, + 7.97887e-05, + -1.11617e-07, + 4.39429e-11, + 39695, + 11.5114, + ], + Tmin=(100, "K"), + Tmax=(943.73, "K"), + ), + NASAPolynomial( + coeffs=[ + 13.2455, + 0.0115667, + -2.49996e-06, + 4.66496e-10, + -4.12376e-14, + 35581.1, + -49.6793, + ], + Tmin=(943.73, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""Thermo library: Fulvene_H + radical(CbJ)""", + ), + "energyTransferModel": SingleExponentialDown( + alpha0=(3.5886, "kJ/mol"), T0=(300, "K"), n=0.85 + ), + } spc0 = species(label0, **kwargs) self.assertEqual(spc0.label, label0) self.assertTrue(spc0.has_statmech()) - self.assertEqual(spc0.thermo, kwargs['thermo']) + self.assertEqual(spc0.thermo, kwargs["thermo"]) def test_transition_state(self): """ Test loading a transition state from input file-like kew word arguments """ - label0 = 'TS1' - kwargs = {'E0': (39.95, 'kcal/mol'), - 'spinMultiplicity': 2, - 'opticalIsomers': 1, - 'frequency': (-1934, 'cm^-1'), - 'modes': [HarmonicOscillator(frequencies=([792, 987, 1136, 1142, 1482, 2441, 3096, 3183], 'cm^-1')), - NonlinearRotor(rotationalConstant=([0.928, 0.962, 5.807], "cm^-1"), symmetry=1, - quantum=False), - IdealGasTranslation(mass=(31.01843, "g/mol"))]} + label0 = "TS1" + kwargs = { + "E0": (39.95, "kcal/mol"), + "spinMultiplicity": 2, + "opticalIsomers": 1, + "frequency": (-1934, "cm^-1"), + "modes": [ + HarmonicOscillator( + frequencies=( + [792, 987, 1136, 1142, 1482, 2441, 3096, 3183], + "cm^-1", + ) + ), + NonlinearRotor( + rotationalConstant=([0.928, 0.962, 5.807], "cm^-1"), + symmetry=1, + quantum=False, + ), + IdealGasTranslation(mass=(31.01843, "g/mol")), + ], + } ts0 = transitionState(label0, **kwargs) - self.assertEqual(ts0.label, 'TS1') + self.assertEqual(ts0.label, "TS1") self.assertAlmostEqual(ts0.conformer.E0.value_si, 167150.8) self.assertEqual(ts0.conformer.spin_multiplicity, 2) self.assertEqual(ts0.conformer.optical_isomers, 1) @@ -147,58 +227,107 @@ def test_reaction(self): """ species( - label='methoxy', - structure=SMILES('C[O]'), - E0=(9.44, 'kcal/mol'), + label="methoxy", + structure=SMILES("C[O]"), + E0=(9.44, "kcal/mol"), modes=[ - HarmonicOscillator(frequencies=([758, 960, 1106, 1393, 1403, 1518, 2940, 3019, 3065], 'cm^-1')), - NonlinearRotor(rotationalConstant=([0.916, 0.921, 5.251], "cm^-1"), symmetry=3, quantum=False), - IdealGasTranslation(mass=(31.01843, "g/mol"))], + HarmonicOscillator( + frequencies=( + [758, 960, 1106, 1393, 1403, 1518, 2940, 3019, 3065], + "cm^-1", + ) + ), + NonlinearRotor( + rotationalConstant=([0.916, 0.921, 5.251], "cm^-1"), + symmetry=3, + quantum=False, + ), + IdealGasTranslation(mass=(31.01843, "g/mol")), + ], spinMultiplicity=2, opticalIsomers=1, - molecularWeight=(31.01843, 'amu'), - collisionModel=TransportData(sigma=(3.69e-10, 'm'), epsilon=(4.0, 'kJ/mol')), - energyTransferModel=SingleExponentialDown(alpha0=(0.956, 'kJ/mol'), T0=(300, 'K'), n=0.95)) + molecularWeight=(31.01843, "amu"), + collisionModel=TransportData( + sigma=(3.69e-10, "m"), epsilon=(4.0, "kJ/mol") + ), + energyTransferModel=SingleExponentialDown( + alpha0=(0.956, "kJ/mol"), T0=(300, "K"), n=0.95 + ), + ) species( - label='formaldehyde', - E0=(28.69, 'kcal/mol'), + label="formaldehyde", + E0=(28.69, "kcal/mol"), molecularWeight=(30.0106, "g/mol"), - collisionModel=TransportData(sigma=(3.69e-10, 'm'), epsilon=(4.0, 'kJ/mol')), - energyTransferModel=SingleExponentialDown(alpha0=(0.956, 'kJ/mol'), T0=(300, 'K'), n=0.95), + collisionModel=TransportData( + sigma=(3.69e-10, "m"), epsilon=(4.0, "kJ/mol") + ), + energyTransferModel=SingleExponentialDown( + alpha0=(0.956, "kJ/mol"), T0=(300, "K"), n=0.95 + ), spinMultiplicity=1, opticalIsomers=1, - modes=[HarmonicOscillator(frequencies=([1180, 1261, 1529, 1764, 2931, 2999], 'cm^-1')), - NonlinearRotor(rotationalConstant=([1.15498821005263, 1.3156969584727, 9.45570474524524], "cm^-1"), - symmetry=2, quantum=False), - IdealGasTranslation(mass=(30.0106, "g/mol"))]) + modes=[ + HarmonicOscillator( + frequencies=([1180, 1261, 1529, 1764, 2931, 2999], "cm^-1") + ), + NonlinearRotor( + rotationalConstant=( + [1.15498821005263, 1.3156969584727, 9.45570474524524], + "cm^-1", + ), + symmetry=2, + quantum=False, + ), + IdealGasTranslation(mass=(30.0106, "g/mol")), + ], + ) species( - label='H', - E0=(0.000, 'kcal/mol'), + label="H", + E0=(0.000, "kcal/mol"), molecularWeight=(1.00783, "g/mol"), - collisionModel=TransportData(sigma=(3.69e-10, 'm'), epsilon=(4.0, 'kJ/mol')), - energyTransferModel=SingleExponentialDown(alpha0=(0.956, 'kJ/mol'), T0=(300, 'K'), n=0.95), + collisionModel=TransportData( + sigma=(3.69e-10, "m"), epsilon=(4.0, "kJ/mol") + ), + energyTransferModel=SingleExponentialDown( + alpha0=(0.956, "kJ/mol"), T0=(300, "K"), n=0.95 + ), modes=[IdealGasTranslation(mass=(1.00783, "g/mol"))], spinMultiplicity=2, - opticalIsomers=1) + opticalIsomers=1, + ) transitionState( - label='TS3', - E0=(34.1, 'kcal/mol'), + label="TS3", + E0=(34.1, "kcal/mol"), spinMultiplicity=2, opticalIsomers=1, - frequency=(-967, 'cm^-1'), - modes=[HarmonicOscillator(frequencies=([466, 581, 1169, 1242, 1499, 1659, 2933, 3000], 'cm^-1')), - NonlinearRotor(rotationalConstant=([0.970, 1.029, 3.717], "cm^-1"), symmetry=1, quantum=False), - IdealGasTranslation(mass=(31.01843, "g/mol"))]) - - reactants = ['formaldehyde', 'H'] - products = ['methoxy'] - tunneling = 'Eckart' - - rxn = reaction('CH2O+H=Methoxy', reactants, products, 'TS3', tunneling=tunneling) - self.assertEqual(rxn.label, 'CH2O+H=Methoxy') + frequency=(-967, "cm^-1"), + modes=[ + HarmonicOscillator( + frequencies=( + [466, 581, 1169, 1242, 1499, 1659, 2933, 3000], + "cm^-1", + ) + ), + NonlinearRotor( + rotationalConstant=([0.970, 1.029, 3.717], "cm^-1"), + symmetry=1, + quantum=False, + ), + IdealGasTranslation(mass=(31.01843, "g/mol")), + ], + ) + + reactants = ["formaldehyde", "H"] + products = ["methoxy"] + tunneling = "Eckart" + + rxn = reaction( + "CH2O+H=Methoxy", reactants, products, "TS3", tunneling=tunneling + ) + self.assertEqual(rxn.label, "CH2O+H=Methoxy") self.assertEqual(len(rxn.reactants), 2) self.assertEqual(len(rxn.products), 1) self.assertAlmostEqual(rxn.reactants[0].conformer.E0.value_si, 0) @@ -210,27 +339,39 @@ def test_reaction(self): def test_load_input_file(self): """Test loading an Arkane input file""" - path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'examples', 'arkane', 'networks', - 'acetyl+O2', 'input.py') - job_list, reaction_dict, species_dict, transition_state_dict, network_dict, model_chemistry \ - = load_input_file(path) + path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), + "examples", + "arkane", + "networks", + "acetyl+O2", + "input.py", + ) + ( + job_list, + reaction_dict, + species_dict, + transition_state_dict, + network_dict, + model_chemistry, + ) = load_input_file(path) self.assertEqual(len(job_list), 1) self.assertEqual(len(reaction_dict), 5) - self.assertTrue('entrance1' in reaction_dict) - self.assertTrue('exit2' in reaction_dict) + self.assertTrue("entrance1" in reaction_dict) + self.assertTrue("exit2" in reaction_dict) self.assertEqual(len(species_dict), 9) - self.assertTrue('acetyl' in species_dict) - self.assertTrue('hydroperoxyl' in species_dict) + self.assertTrue("acetyl" in species_dict) + self.assertTrue("hydroperoxyl" in species_dict) self.assertEqual(len(transition_state_dict), 5) - self.assertTrue('entrance1' in transition_state_dict) - self.assertTrue('isom1' in transition_state_dict) + self.assertTrue("entrance1" in transition_state_dict) + self.assertTrue("isom1" in transition_state_dict) self.assertEqual(len(network_dict), 1) - self.assertTrue('acetyl + O2' in network_dict) + self.assertTrue("acetyl + O2" in network_dict) self.assertIsNone(model_chemistry) @@ -238,31 +379,34 @@ def test_process_model_chemistry(self): """ Test processing the model chemistry to derive the sp and freq levels """ - mc = 'ccsd(t)-f12a/aug-cc-pvtz//b3lyp/6-311++g(3df,3pd)' + mc = "ccsd(t)-f12a/aug-cc-pvtz//b3lyp/6-311++g(3df,3pd)" lot = process_model_chemistry(mc) self.assertIsInstance(lot, CompositeLevelOfTheory) - self.assertEqual(lot.energy, LevelOfTheory('ccsd(t)-f12a', 'aug-cc-pvtz')) - self.assertEqual(lot.freq, LevelOfTheory('b3lyp', '6-311++g(3df,3pd)')) + self.assertEqual(lot.energy, LevelOfTheory("ccsd(t)-f12a", "aug-cc-pvtz")) + self.assertEqual(lot.freq, LevelOfTheory("b3lyp", "6-311++g(3df,3pd)")) - mc = 'b3lyp-d3/def2-tzvp' + mc = "b3lyp-d3/def2-tzvp" lot = process_model_chemistry(mc) self.assertIsInstance(lot, LevelOfTheory) - self.assertEqual(lot, LevelOfTheory('b3lyp-d3', 'def2-tzvp')) + self.assertEqual(lot, LevelOfTheory("b3lyp-d3", "def2-tzvp")) - mc = 'cbs-qb3' + mc = "cbs-qb3" lot = process_model_chemistry(mc) self.assertIsInstance(lot, LevelOfTheory) - self.assertEqual(lot, LevelOfTheory('cbs-qb3')) + self.assertEqual(lot, LevelOfTheory("cbs-qb3")) - mc = LevelOfTheory('test') + mc = LevelOfTheory("test") lot = process_model_chemistry(mc) self.assertIs(mc, lot) with self.assertRaises(InputError): - process_model_chemistry('CCSD(T)-F12a/aug-cc-pVTZ//CCSD(T)-F12a/aug-cc-pVTZ//B3LYP/6-311++G(3df,3pd)') + process_model_chemistry( + "CCSD(T)-F12a/aug-cc-pVTZ//CCSD(T)-F12a/aug-cc-pVTZ//B3LYP/6-311++G(3df,3pd)" + ) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/arkaneMainTest.py b/test/arkane/arkaneMainTest.py index c7c9fe3c7e..bed972c85a 100644 --- a/test/arkane/arkaneMainTest.py +++ b/test/arkane/arkaneMainTest.py @@ -46,7 +46,7 @@ ################################################################################ -@attr('functional') +@attr("functional") class TestArkaneExamples(unittest.TestCase): """ Run all of Arkane's examples, and report which one failed @@ -55,80 +55,103 @@ class TestArkaneExamples(unittest.TestCase): @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" - cls.base_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'examples', 'arkane') - cls.test_base_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'testing', 'arkane') + cls.base_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), "examples", "arkane" + ) + cls.test_base_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), "testing", "arkane" + ) cls.failed = [] - cls.example_types = ['species', 'reactions', 'explorer', 'networks', 'bac'] + cls.example_types = ["species", "reactions", "explorer", "networks", "bac"] def test_arkane_examples(self): for example_type in self.example_types: example_type_path = os.path.join(self.base_path, example_type) for example in sorted(os.listdir(example_type_path)): path = os.path.join(example_type_path, example) - arkane = Arkane(input_file=os.path.join(path, 'input.py'), output_directory=path) - arkane.plot = example_type != 'bac' # Don't plot BAC examples because they require a lot of memory + arkane = Arkane( + input_file=os.path.join(path, "input.py"), output_directory=path + ) + arkane.plot = ( + example_type != "bac" + ) # Don't plot BAC examples because they require a lot of memory logging.info("running {}".format(example)) arkane.execute() - with open(os.path.join(path, 'arkane.log'), 'r') as f: + with open(os.path.join(path, "arkane.log"), "r") as f: log = f.readlines() for line in log[::-1]: - if 'execution terminated' in line: + if "execution terminated" in line: break else: self.failed.append([example_type, example]) - error_message = 'Arkane example(s) failed: ' + error_message = "Arkane example(s) failed: " for example_type, example_name in self.failed: - error_message += '{1} in {0}; '.format(example_name, example_type) + error_message += "{1} in {0}; ".format(example_name, example_type) self.assertFalse(self.failed, error_message) def test_arkane_two_parameter_arrhenius_fit(self): - test_path = os.path.join(self.test_base_path, 'two_parameter_arrhenius_fit') - file_to_remove = ['output.py', 'chem.inp', 'supporting_information.csv'] + test_path = os.path.join(self.test_base_path, "two_parameter_arrhenius_fit") + file_to_remove = ["output.py", "chem.inp", "supporting_information.csv"] for file in file_to_remove: if os.path.exists(os.path.join(test_path, file)): os.remove(os.path.join(test_path, file)) - arkane = Arkane(input_file=os.path.join(test_path, 'input.py'), output_directory=test_path) + arkane = Arkane( + input_file=os.path.join(test_path, "input.py"), output_directory=test_path + ) arkane.plot = False arkane.save_rmg_libraries = False arkane.execute() - with open(os.path.join(test_path, 'output.py'), 'r') as f: + with open(os.path.join(test_path, "output.py"), "r") as f: output = f.readlines() reverse_output = output[::-1] for i, line in enumerate(reverse_output): - if 'kinetics fitted using' in line: + if "kinetics fitted using" in line: msg_output = line.rstrip() - n_output = reverse_output[i-5].split('=')[1].strip().replace(',', '') + n_output = reverse_output[i - 5].split("=")[1].strip().replace(",", "") break - msg_expected = '# kinetics fitted using the two-parameter Arrhenius equation k = A * exp(-Ea/RT)' + msg_expected = "# kinetics fitted using the two-parameter Arrhenius equation k = A * exp(-Ea/RT)" self.assertEqual(msg_output, msg_expected) - n_expected = '0' + n_expected = "0" self.assertEqual(n_output, n_expected) @classmethod def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" - cls.extensions_to_delete = ['pdf', 'csv', 'txt', 'inp'] - cls.files_to_delete = ['arkane.log', 'output.py', 'supporting_information.csv'] - cls.files_to_keep = ['README.txt'] # files to keep that have extensions marked for deletion - cls.base_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'examples', 'arkane') + cls.extensions_to_delete = ["pdf", "csv", "txt", "inp"] + cls.files_to_delete = ["arkane.log", "output.py", "supporting_information.csv"] + cls.files_to_keep = [ + "README.txt" + ] # files to keep that have extensions marked for deletion + cls.base_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), "examples", "arkane" + ) for example_type in cls.example_types: example_type_path = os.path.join(cls.base_path, example_type) for example in os.listdir(example_type_path): # clean working folder from all previous test output example_path = os.path.join(example_type_path, example) - clean_dir(base_dir_path=example_path, files_to_delete=cls.files_to_delete, - file_extensions_to_delete=cls.extensions_to_delete, files_to_keep=cls.files_to_keep, - sub_dir_to_keep=['r0']) - cls.test_base_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'testing', 'arkane') - tests = ['two_parameter_arrhenius_fit'] + clean_dir( + base_dir_path=example_path, + files_to_delete=cls.files_to_delete, + file_extensions_to_delete=cls.extensions_to_delete, + files_to_keep=cls.files_to_keep, + sub_dir_to_keep=["r0"], + ) + cls.test_base_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), "testing", "arkane" + ) + tests = ["two_parameter_arrhenius_fit"] for test in tests: test_path = os.path.join(cls.test_base_path, test) - clean_dir(base_dir_path=test_path, files_to_delete=cls.files_to_delete, - file_extensions_to_delete=cls.extensions_to_delete) + clean_dir( + base_dir_path=test_path, + files_to_delete=cls.files_to_delete, + file_extensions_to_delete=cls.extensions_to_delete, + ) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/arkaneOutputTest.py b/test/arkane/arkaneOutputTest.py index 56de190017..8eaba16b6f 100644 --- a/test/arkane/arkaneOutputTest.py +++ b/test/arkane/arkaneOutputTest.py @@ -47,41 +47,55 @@ ################################################################################ -@attr('functional') +@attr("functional") class OutputTest(unittest.TestCase): """ Contains functional tests for Arkane's output module. """ + def test_prettify(self): """Test that the prettify function works for an Arkane job""" - benzyl_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), - 'examples', 'arkane', 'species', 'Benzyl') - - arkane = Arkane(input_file=os.path.join(benzyl_path, 'input.py'), output_directory=benzyl_path) + benzyl_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), + "examples", + "arkane", + "species", + "Benzyl", + ) + + arkane = Arkane( + input_file=os.path.join(benzyl_path, "input.py"), + output_directory=benzyl_path, + ) arkane.plot = False arkane.execute() - with open(os.path.join(benzyl_path, 'output.py'), 'r') as f: + with open(os.path.join(benzyl_path, "output.py"), "r") as f: lines = f.readlines() - self.assertIn('conformer(\n', lines) + self.assertIn("conformer(\n", lines) self.assertIn(" E0 = (193.749, 'kJ/mol'),\n", lines) - self.assertIn('thermo(\n', lines) + self.assertIn("thermo(\n", lines) self.assertIn(" Cp0 = (33.2579, 'J/(mol*K)'),\n", lines) @classmethod def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" - benzyl_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), - 'examples', 'arkane', 'species', 'Benzyl') - extensions_to_delete = ['pdf', 'csv', 'txt', 'inp'] - files_to_delete = ['arkane.log', 'output.py'] + benzyl_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), + "examples", + "arkane", + "species", + "Benzyl", + ) + extensions_to_delete = ["pdf", "csv", "txt", "inp"] + files_to_delete = ["arkane.log", "output.py"] for name in os.listdir(benzyl_path): item_path = os.path.join(benzyl_path, name) if os.path.isfile(item_path): - extension = name.split('.')[-1] + extension = name.split(".")[-1] if name in files_to_delete or extension in extensions_to_delete: os.remove(item_path) else: - if os.path.split(item_path)[-1] in ['r0']: + if os.path.split(item_path)[-1] in ["r0"]: continue # This is a sub-directory. remove. shutil.rmtree(item_path) @@ -91,24 +105,27 @@ class OutputUnitTest(unittest.TestCase): """ Contains unit tests for the Arkane's output module. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.join(os.path.dirname(__file__), 'data') + cls.data_path = os.path.join(os.path.dirname(__file__), "data") def test_prettify(self): """Test that ``prettify`` returns the expected result""" - input_str = ("conformer(label='C7H7', E0=(193.749,'kJ/mol'), modes=[IdealGasTranslation(mass=(91.0548,'amu')), " - "NonlinearRotor(inertia=([91.0567,186.675,277.733],'amu*angstrom^2'), symmetry=2), " - "HarmonicOscillator(frequencies=([199.381,360.536,413.795,480.347,536.285,630.723,687.118,709.613," - "776.662,830.404,834.386,901.841,973.498,975.148,993.349,998.606,1040.14,1120.69,1179.22,1189.07," - "1292.86,1332.91,1357.18,1479.46,1495.36,1507.91,1583.14,1604.63,3156.85,3170.22,3172.78,3185.05," - "3189.8,3203.23,3253.99],'cm^-1')), HinderedRotor(inertia=(1.70013,'amu*angstrom^2'), symmetry=2, " - "fourier=([[-0.315923,-27.7665,0.177678,3.2437,0.0509515],[-0.00164953,-0.0021925,-0.00386396," - "-0.000912068,0.00274206]],'kJ/mol'), quantum=True, semiclassical=False)], spin_multiplicity=2, " - "optical_isomers=1)") + input_str = ( + "conformer(label='C7H7', E0=(193.749,'kJ/mol'), modes=[IdealGasTranslation(mass=(91.0548,'amu')), " + "NonlinearRotor(inertia=([91.0567,186.675,277.733],'amu*angstrom^2'), symmetry=2), " + "HarmonicOscillator(frequencies=([199.381,360.536,413.795,480.347,536.285,630.723,687.118,709.613," + "776.662,830.404,834.386,901.841,973.498,975.148,993.349,998.606,1040.14,1120.69,1179.22,1189.07," + "1292.86,1332.91,1357.18,1479.46,1495.36,1507.91,1583.14,1604.63,3156.85,3170.22,3172.78,3185.05," + "3189.8,3203.23,3253.99],'cm^-1')), HinderedRotor(inertia=(1.70013,'amu*angstrom^2'), symmetry=2, " + "fourier=([[-0.315923,-27.7665,0.177678,3.2437,0.0509515],[-0.00164953,-0.0021925,-0.00386396," + "-0.000912068,0.00274206]],'kJ/mol'), quantum=True, semiclassical=False)], spin_multiplicity=2, " + "optical_isomers=1)" + ) expected_output = """conformer( label = 'C7H7', E0 = (193.749, 'kJ/mol'), @@ -142,11 +159,15 @@ def test_prettify(self): def test_get_str_xyz(self): """Test generating an xyz string from the species.conformer object""" - log = GaussianLog(os.path.join(self.data_path, 'gaussian', 'ethylene_G3.log')) + log = GaussianLog(os.path.join(self.data_path, "gaussian", "ethylene_G3.log")) conformer = log.load_conformer()[0] coords, number, mass = log.load_geometry() - conformer.coordinates, conformer.number, conformer.mass = (coords, "angstroms"), number, (mass, "amu") - spc1 = Species(smiles='C=C') + conformer.coordinates, conformer.number, conformer.mass = ( + (coords, "angstroms"), + number, + (mass, "amu"), + ) + spc1 = Species(smiles="C=C") spc1.conformer = conformer xyz_str = get_str_xyz(spc1) expected_xyz_str = """C 0.00545100 0.00000000 0.00339700 @@ -157,8 +178,9 @@ def test_get_str_xyz(self): H -2.09943900 0.00000000 -0.22075700""" self.assertEqual(xyz_str, expected_xyz_str) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/commonTest.py b/test/arkane/commonTest.py index 3a1af6e27f..8f61e2201a 100644 --- a/test/arkane/commonTest.py +++ b/test/arkane/commonTest.py @@ -46,13 +46,14 @@ from rmgpy.thermo import NASA, ThermoData from arkane import Arkane, input -from arkane.common import (ArkaneSpecies, - convert_imaginary_freq_to_negative_float, - get_element_mass, - get_center_of_mass, - get_moment_of_inertia_tensor, - get_principal_moments_of_inertia, - ) +from arkane.common import ( + ArkaneSpecies, + convert_imaginary_freq_to_negative_float, + get_element_mass, + get_center_of_mass, + get_moment_of_inertia_tensor, + get_principal_moments_of_inertia, +) from arkane.input import job_list from arkane.modelchem import LevelOfTheory from arkane.statmech import InputError, StatMechJob @@ -69,10 +70,31 @@ def test_check_conformer_energy(self): """ test the check_conformer_energy function with an list of energies. """ - v_list = [-272.2779012225, -272.2774933703, -272.2768397635, -272.2778432059, -272.278645477, -272.2789602654, - -272.2788749196, -272.278496709, -272.2779350675, -272.2777008843, -272.2777167286, -272.2780937643, - -272.2784838846, -272.2788050464, -272.2787865352, -272.2785091607, -272.2779977452, -272.2777957743, - -272.2779134906, -272.2781827547, -272.278443339, -272.2788244214, -272.2787748749] + v_list = [ + -272.2779012225, + -272.2774933703, + -272.2768397635, + -272.2778432059, + -272.278645477, + -272.2789602654, + -272.2788749196, + -272.278496709, + -272.2779350675, + -272.2777008843, + -272.2777167286, + -272.2780937643, + -272.2784838846, + -272.2788050464, + -272.2787865352, + -272.2785091607, + -272.2779977452, + -272.2777957743, + -272.2779134906, + -272.2781827547, + -272.278443339, + -272.2788244214, + -272.2787748749, + ] v_list = np.array(v_list, np.float64) v_diff = (v_list[0] - np.min(v_list)) * constants.E_h * constants.Na / 1000 self.assertAlmostEqual(v_diff / 2.7805169838282797, 1, 5) @@ -87,8 +109,11 @@ class TestArkaneJob(unittest.TestCase): def setUp(cls): """A method that is run before each unit test in this class""" arkane = Arkane() - job_list = arkane.load_input_file(os.path.join(os.path.dirname(os.path.abspath(__file__)), - 'data', 'methoxy.py')) + job_list = arkane.load_input_file( + os.path.join( + os.path.dirname(os.path.abspath(__file__)), "data", "methoxy.py" + ) + ) pdepjob = job_list[-1] cls.kineticsjob = job_list[0] pdepjob.active_j_rotor = True @@ -140,14 +165,14 @@ def test_path_reactions(self): """ Test a path reaction label """ - self.assertEqual(str(self.PathReaction2), 'CH2OH <=> methoxy') + self.assertEqual(str(self.PathReaction2), "CH2OH <=> methoxy") # test Arkane's interactions with the pdep module def test_temperatures_units(self): """ Test the Temperature Units. """ - self.assertEqual(str(self.TmaxUnits), 'K') + self.assertEqual(str(self.TmaxUnits), "K") def test_temperatures_value(self): """ @@ -183,7 +208,9 @@ def test_pressure_list(self): """ Test the pressure list. """ - self.assertTrue(np.array_equal(self.PlistValue, np.array([0.01, 0.1, 1, 3, 10, 100, 1000]))) + self.assertTrue( + np.array_equal(self.PlistValue, np.array([0.01, 0.1, 1, 3, 10, 100, 1000])) + ) def test_generate_temperature_list(self): """ @@ -201,7 +228,7 @@ def test_method(self): """ Test the master equation solution method chosen. """ - self.assertEqual(self.method, 'modified strong collision') + self.assertEqual(self.method, "modified strong collision") def test_rmg_mode(self): """ @@ -214,10 +241,16 @@ def test_calculate_tst_rate_coefficient(self): """ Test the calculation of the high-pressure limit rate coef for one of the kinetics jobs at Tmin and Tmax. """ - self.assertEqual("%0.7f" % self.kineticsjob.reaction.calculate_tst_rate_coefficient(self.TminValue), - str(46608.5904933)) - self.assertEqual("%0.5f" % self.kineticsjob.reaction.calculate_tst_rate_coefficient(self.Tmaxvalue), - str(498796.64535)) + self.assertEqual( + "%0.7f" + % self.kineticsjob.reaction.calculate_tst_rate_coefficient(self.TminValue), + str(46608.5904933), + ) + self.assertEqual( + "%0.5f" + % self.kineticsjob.reaction.calculate_tst_rate_coefficient(self.Tmaxvalue), + str(498796.64535), + ) def test_tunneling(self): """ @@ -234,7 +267,9 @@ class TestArkaneInput(unittest.TestCase): @classmethod def setUp(cls): """Preparation for all unit tests in this class.""" - cls.directory = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'examples', 'arkane') + cls.directory = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), "examples", "arkane" + ) cls.level_of_theory = LevelOfTheory("cbs-qb3") cls.frequencyScaleFactor = 0.99 cls.useHinderedRotors = False @@ -242,7 +277,9 @@ def setUp(cls): def test_species(self): """Test loading of species input file.""" - spec = input.species('C2H4', os.path.join(self.directory, 'species', 'C2H4', 'ethene.py')) + spec = input.species( + "C2H4", os.path.join(self.directory, "species", "C2H4", "ethene.py") + ) self.assertTrue(isinstance(spec, Species)) self.assertEqual(len(spec.molecule), 0) @@ -255,24 +292,26 @@ def test_species_statmech(self): job.includeHinderedRotors = self.useHinderedRotors job.applyBondEnergyCorrections = self.useBondCorrections job.load() - self.assertTrue(isinstance(job.species.props['element_counts'], dict)) - self.assertEqual(job.species.props['element_counts']['C'], 2) - self.assertEqual(job.species.props['element_counts']['H'], 4) + self.assertTrue(isinstance(job.species.props["element_counts"], dict)) + self.assertEqual(job.species.props["element_counts"]["C"], 2) + self.assertEqual(job.species.props["element_counts"]["H"], 4) def test_species_thermo(self): """Test thermo job execution for species from separate input file.""" - input.thermo('C2H4', 'NASA') + input.thermo("C2H4", "NASA") job = job_list[-1] - filepath = os.path.join(self.directory, 'reactions', 'H+C2H4=C2H5') + filepath = os.path.join(self.directory, "reactions", "H+C2H4=C2H5") job.execute(output_directory=filepath) - self.assertTrue(os.path.isfile(os.path.join(filepath, 'output.py'))) - self.assertTrue(os.path.isfile(os.path.join(filepath, 'chem.inp'))) - os.remove(os.path.join(filepath, 'output.py')) - os.remove(os.path.join(filepath, 'chem.inp')) + self.assertTrue(os.path.isfile(os.path.join(filepath, "output.py"))) + self.assertTrue(os.path.isfile(os.path.join(filepath, "chem.inp"))) + os.remove(os.path.join(filepath, "output.py")) + os.remove(os.path.join(filepath, "chem.inp")) def test_transition_state(self): """Test loading of transition state input file.""" - ts = input.transitionState('TS', os.path.join(self.directory, 'reactions', 'H+C2H4=C2H5', 'TS.py')) + ts = input.transitionState( + "TS", os.path.join(self.directory, "reactions", "H+C2H4=C2H5", "TS.py") + ) self.assertTrue(isinstance(ts, TransitionState)) def test_transition_state_statmech(self): @@ -295,8 +334,11 @@ class TestStatmech(unittest.TestCase): def setUp(cls): """A method that is run before each unit test in this class""" arkane = Arkane() - cls.job_list = arkane.load_input_file(os.path.join(os.path.dirname(os.path.abspath(__file__)), - 'data', 'Benzyl', 'input.py')) + cls.job_list = arkane.load_input_file( + os.path.join( + os.path.dirname(os.path.abspath(__file__)), "data", "Benzyl", "input.py" + ) + ) def test_gaussian_log_file_error(self): """Test that the proper error is raised if gaussian geometry and frequency file paths are the same""" @@ -317,21 +359,31 @@ def setUpClass(cls): A method that is run ONCE before all unit tests in this class. """ cls.arkane = Arkane() - path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), - 'examples', 'arkane', 'species') - cls.dump_path = os.path.join(path, 'C2H6') - cls.dump_input_path = os.path.join(cls.dump_path, 'input.py') - cls.dump_output_file = os.path.join(cls.dump_path, 'output.py') - cls.dump_yaml_file = os.path.join(cls.dump_path, 'species', 'C2H6.yml') - - cls.load_path = os.path.join(path, 'C2H6_from_yaml') - cls.load_input_path = os.path.join(cls.load_path, 'input.py') - cls.load_output_file = os.path.join(cls.load_path, 'output.py') - - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), 'arkane', 'data') + path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), + "examples", + "arkane", + "species", + ) + cls.dump_path = os.path.join(path, "C2H6") + cls.dump_input_path = os.path.join(cls.dump_path, "input.py") + cls.dump_output_file = os.path.join(cls.dump_path, "output.py") + cls.dump_yaml_file = os.path.join(cls.dump_path, "species", "C2H6.yml") + + cls.load_path = os.path.join(path, "C2H6_from_yaml") + cls.load_input_path = os.path.join(cls.load_path, "input.py") + cls.load_output_file = os.path.join(cls.load_path, "output.py") + + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), "arkane", "data" + ) if os.path.exists(cls.dump_yaml_file): - logging.debug('removing existing yaml file {0} before running tests'.format(cls.dump_yaml_file)) + logging.debug( + "removing existing yaml file {0} before running tests".format( + cls.dump_yaml_file + ) + ) os.remove(cls.dump_yaml_file) def test_dump_yaml(self): @@ -355,23 +407,29 @@ def test_create_and_load_yaml(self): # Load in newly created YAML file arkane_spc_old = job_list[0].arkane_species arkane_spc = ArkaneSpecies.__new__(ArkaneSpecies) - arkane_spc.load_yaml(path=os.path.join(self.dump_path, 'species', arkane_spc_old.label + '.yml')) + arkane_spc.load_yaml( + path=os.path.join(self.dump_path, "species", arkane_spc_old.label + ".yml") + ) self.assertIsInstance(arkane_spc, ArkaneSpecies) # checks make_object self.assertIsInstance(arkane_spc.molecular_weight, ScalarQuantity) self.assertIsInstance(arkane_spc.thermo, NASA) - self.assertNotEqual(arkane_spc.author, '') - self.assertEqual(arkane_spc.inchi, 'InChI=1S/C2H6/c1-2/h1-2H3') - self.assertEqual(arkane_spc.inchi_key, 'OTMSDBZUPAUEDD-UHFFFAOYSA-N') - self.assertEqual(arkane_spc.smiles, 'CC') - self.assertTrue('8 H u0 p0 c0 {2,S}' in arkane_spc.adjacency_list) - self.assertEqual(arkane_spc.label, 'C2H6') - self.assertEqual(arkane_spc.frequency_scale_factor, 0.99 * 1.014) # checks float conversion + self.assertNotEqual(arkane_spc.author, "") + self.assertEqual(arkane_spc.inchi, "InChI=1S/C2H6/c1-2/h1-2H3") + self.assertEqual(arkane_spc.inchi_key, "OTMSDBZUPAUEDD-UHFFFAOYSA-N") + self.assertEqual(arkane_spc.smiles, "CC") + self.assertTrue("8 H u0 p0 c0 {2,S}" in arkane_spc.adjacency_list) + self.assertEqual(arkane_spc.label, "C2H6") + self.assertEqual( + arkane_spc.frequency_scale_factor, 0.99 * 1.014 + ) # checks float conversion self.assertFalse(arkane_spc.use_bond_corrections) - self.assertAlmostEqual(arkane_spc.conformer.modes[2].frequencies.value_si[0], 830.38202, 4) # HarmonicOsc. + self.assertAlmostEqual( + arkane_spc.conformer.modes[2].frequencies.value_si[0], 830.38202, 4 + ) # HarmonicOsc. self.assertIsInstance(arkane_spc.energy_transfer_model, SingleExponentialDown) self.assertFalse(arkane_spc.is_ts) - self.assertEqual(arkane_spc.level_of_theory, LevelOfTheory('cbs-qb3')) + self.assertEqual(arkane_spc.level_of_theory, LevelOfTheory("cbs-qb3")) self.assertIsInstance(arkane_spc.thermo_data, ThermoData) self.assertTrue(arkane_spc.use_hindered_rotors) self.assertIsInstance(arkane_spc.chemkin_thermo_string, str) @@ -393,35 +451,43 @@ def test_load_existing_yaml(self): """ # Load in YAML file arkane_spc = ArkaneSpecies.__new__(ArkaneSpecies) - arkane_spc.load_yaml(path=os.path.join(self.load_path, 'C2H6.yml')) + arkane_spc.load_yaml(path=os.path.join(self.load_path, "C2H6.yml")) self.assertIsInstance(arkane_spc, ArkaneSpecies) # checks make_object self.assertIsInstance(arkane_spc.molecular_weight, ScalarQuantity) self.assertIsInstance(arkane_spc.thermo, NASA) - self.assertNotEqual(arkane_spc.author, '') - self.assertEqual(arkane_spc.inchi, 'InChI=1S/C2H6/c1-2/h1-2H3') - self.assertEqual(arkane_spc.inchi_key, 'OTMSDBZUPAUEDD-UHFFFAOYSA-N') - self.assertEqual(arkane_spc.smiles, 'CC') - self.assertTrue('8 H u0 p0 c0 {2,S}' in arkane_spc.adjacency_list) - self.assertEqual(arkane_spc.label, 'C2H6') - self.assertEqual(arkane_spc.frequency_scale_factor, 0.99) # checks float conversion + self.assertNotEqual(arkane_spc.author, "") + self.assertEqual(arkane_spc.inchi, "InChI=1S/C2H6/c1-2/h1-2H3") + self.assertEqual(arkane_spc.inchi_key, "OTMSDBZUPAUEDD-UHFFFAOYSA-N") + self.assertEqual(arkane_spc.smiles, "CC") + self.assertTrue("8 H u0 p0 c0 {2,S}" in arkane_spc.adjacency_list) + self.assertEqual(arkane_spc.label, "C2H6") + self.assertEqual( + arkane_spc.frequency_scale_factor, 0.99 + ) # checks float conversion self.assertFalse(arkane_spc.use_bond_corrections) - self.assertAlmostEqual(arkane_spc.conformer.modes[2].frequencies.value_si[0], 818.91718, 4) # HarmonicOsc. + self.assertAlmostEqual( + arkane_spc.conformer.modes[2].frequencies.value_si[0], 818.91718, 4 + ) # HarmonicOsc. self.assertIsInstance(arkane_spc.energy_transfer_model, SingleExponentialDown) self.assertFalse(arkane_spc.is_ts) self.assertTrue(arkane_spc.use_hindered_rotors) - self.assertTrue('C 7.54e-14 1.193e-13 5.52e-14' in arkane_spc.xyz) + self.assertTrue("C 7.54e-14 1.193e-13 5.52e-14" in arkane_spc.xyz) self.assertIsInstance(arkane_spc.chemkin_thermo_string, str) def test_loading_different_versions_of_yaml(self): """Test loading a YAML file generated by RMG v 2.4.1 and by a more recent version""" arkane_spc_v_241 = ArkaneSpecies.__new__(ArkaneSpecies) - arkane_spc_v_241.load_yaml(path=os.path.join(self.data_path, 'vinoxy_v_2.4.1.yml')) + arkane_spc_v_241.load_yaml( + path=os.path.join(self.data_path, "vinoxy_v_2.4.1.yml") + ) self.assertIsInstance(arkane_spc_v_241, ArkaneSpecies) # checks make_object self.assertEqual(arkane_spc_v_241.conformer.spin_multiplicity, 2) arkane_current = ArkaneSpecies.__new__(ArkaneSpecies) - arkane_current.load_yaml(path=os.path.join(self.data_path, 'vinoxy_current.yml')) + arkane_current.load_yaml( + path=os.path.join(self.data_path, "vinoxy_current.yml") + ) self.assertIsInstance(arkane_current, ArkaneSpecies) # checks make_object self.assertEqual(arkane_current.conformer.spin_multiplicity, 2) @@ -430,20 +496,26 @@ def tearDownClass(cls): """ A method that is run ONCE after all unit tests in this class. """ - path = os.path.join(os.path.dirname(os.path.dirname(rmgpy.__file__)), - 'examples', 'arkane', 'species') - cls.dump_path = os.path.join(path, 'C2H6') - cls.load_path = os.path.join(path, 'C2H6_from_yaml') - cls.extensions_to_delete = ['pdf', 'txt', 'inp', 'csv'] - cls.files_to_delete = ['arkane.log', 'output.py'] - cls.files_to_keep = ['C2H6.yml'] + path = os.path.join( + os.path.dirname(os.path.dirname(rmgpy.__file__)), + "examples", + "arkane", + "species", + ) + cls.dump_path = os.path.join(path, "C2H6") + cls.load_path = os.path.join(path, "C2H6_from_yaml") + cls.extensions_to_delete = ["pdf", "txt", "inp", "csv"] + cls.files_to_delete = ["arkane.log", "output.py"] + cls.files_to_keep = ["C2H6.yml"] for path in [cls.dump_path, cls.load_path]: for name in os.listdir(path): item_path = os.path.join(path, name) if os.path.isfile(item_path): - extension = name.split('.')[-1] - if name in cls.files_to_delete or \ - (extension in cls.extensions_to_delete and name not in cls.files_to_keep): + extension = name.split(".")[-1] + if name in cls.files_to_delete or ( + extension in cls.extensions_to_delete + and name not in cls.files_to_keep + ): os.remove(item_path) else: # This is a sub-directory. remove. @@ -457,49 +529,74 @@ class TestMomentOfInertia(unittest.TestCase): def test_get_mass(self): """Test that the correct mass/number/isotope is returned from get_element_mass""" - self.assertEqual(get_element_mass(1), (1.00782503224, 1)) # test input by integer - self.assertEqual(get_element_mass('Si'), (27.97692653465, 14)) # test string input and most common isotope - self.assertEqual(get_element_mass('SI'), (27.97692653465, 14)) # test string in all caps - self.assertEqual(get_element_mass('C', 13), (13.00335483507, 6)) # test specific isotope - self.assertEqual(get_element_mass('Bk'), (247.0703073, 97)) # test a two-element array (no isotope data) + self.assertEqual( + get_element_mass(1), (1.00782503224, 1) + ) # test input by integer + self.assertEqual( + get_element_mass("Si"), (27.97692653465, 14) + ) # test string input and most common isotope + self.assertEqual( + get_element_mass("SI"), (27.97692653465, 14) + ) # test string in all caps + self.assertEqual( + get_element_mass("C", 13), (13.00335483507, 6) + ) # test specific isotope + self.assertEqual( + get_element_mass("Bk"), (247.0703073, 97) + ) # test a two-element array (no isotope data) def test_get_center_of_mass(self): """Test attaining the center of mass""" - symbols = ['C', 'H', 'H', 'H', 'H'] - coords = np.array([[0.0000000, 0.0000000, 0.0000000], - [0.6269510, 0.6269510, 0.6269510], - [-0.6269510, -0.6269510, 0.6269510], - [-0.6269510, 0.6269510, -0.6269510], - [0.6269510, -0.6269510, -0.6269510]], np.float64) + symbols = ["C", "H", "H", "H", "H"] + coords = np.array( + [ + [0.0000000, 0.0000000, 0.0000000], + [0.6269510, 0.6269510, 0.6269510], + [-0.6269510, -0.6269510, 0.6269510], + [-0.6269510, 0.6269510, -0.6269510], + [0.6269510, -0.6269510, -0.6269510], + ], + np.float64, + ) center_of_mass = get_center_of_mass(coords=coords, symbols=symbols) for cm_coord in center_of_mass: self.assertEqual(cm_coord, 0.0) - symbols = ['O', 'C', 'C', 'H', 'H', 'H', 'H', 'H', 'H'] - coords = np.array([[1.28706525, 0.52121353, 0.04219198], - [0.39745682, -0.35265044, -0.63649234], - [0.36441173, -1.68197093, 0.08682400], - [-0.59818222, 0.10068325, -0.65235399], - [0.74799641, -0.48357798, -1.66461710], - [0.03647269, -1.54932006, 1.12314420], - [-0.31340646, -2.38081353, -0.41122551], - [1.36475837, -2.12581592, 0.12433596], - [2.16336803, 0.09985803, 0.03295192]], np.float64) + symbols = ["O", "C", "C", "H", "H", "H", "H", "H", "H"] + coords = np.array( + [ + [1.28706525, 0.52121353, 0.04219198], + [0.39745682, -0.35265044, -0.63649234], + [0.36441173, -1.68197093, 0.08682400], + [-0.59818222, 0.10068325, -0.65235399], + [0.74799641, -0.48357798, -1.66461710], + [0.03647269, -1.54932006, 1.12314420], + [-0.31340646, -2.38081353, -0.41122551], + [1.36475837, -2.12581592, 0.12433596], + [2.16336803, 0.09985803, 0.03295192], + ], + np.float64, + ) center_of_mass = get_center_of_mass(coords=coords, symbols=symbols) self.assertAlmostEqual(center_of_mass[0], 0.7201, 3) self.assertAlmostEqual(center_of_mass[1], -0.4880, 3) self.assertAlmostEqual(center_of_mass[2], -0.1603, 3) numbers = [6, 6, 8, 1, 1, 1, 1, 1, 1] - coords = np.array([[1.1714680, -0.4048940, 0.0000000], - [0.0000000, 0.5602500, 0.0000000], - [-1.1945070, -0.2236470, 0.0000000], - [-1.9428910, 0.3834580, 0.0000000], - [2.1179810, 0.1394450, 0.0000000], - [1.1311780, -1.0413680, 0.8846660], - [1.1311780, -1.0413680, -0.8846660], - [0.0448990, 1.2084390, 0.8852880], - [0.0448990, 1.2084390, -0.8852880]], np.float64) + coords = np.array( + [ + [1.1714680, -0.4048940, 0.0000000], + [0.0000000, 0.5602500, 0.0000000], + [-1.1945070, -0.2236470, 0.0000000], + [-1.9428910, 0.3834580, 0.0000000], + [2.1179810, 0.1394450, 0.0000000], + [1.1311780, -1.0413680, 0.8846660], + [1.1311780, -1.0413680, -0.8846660], + [0.0448990, 1.2084390, 0.8852880], + [0.0448990, 1.2084390, -0.8852880], + ], + np.float64, + ) center_of_mass = get_center_of_mass(coords=coords, numbers=numbers) self.assertAlmostEqual(center_of_mass[0], -0.0540, 3) self.assertAlmostEqual(center_of_mass[1], -0.0184, 3) @@ -507,49 +604,74 @@ def test_get_center_of_mass(self): def test_get_moment_of_inertia_tensor(self): """Test calculating the moment of inertia tensor""" - symbols = ['O', 'C', 'C', 'H', 'H', 'H', 'H', 'H', 'H'] - coords = np.array([[1.28706525, 0.52121353, 0.04219198], - [0.39745682, -0.35265044, -0.63649234], - [0.36441173, -1.68197093, 0.08682400], - [-0.59818222, 0.10068325, -0.65235399], - [0.74799641, -0.48357798, -1.66461710], - [0.03647269, -1.54932006, 1.12314420], - [-0.31340646, -2.38081353, -0.41122551], - [1.36475837, -2.12581592, 0.12433596], - [2.16336803, 0.09985803, 0.03295192]], np.float64) + symbols = ["O", "C", "C", "H", "H", "H", "H", "H", "H"] + coords = np.array( + [ + [1.28706525, 0.52121353, 0.04219198], + [0.39745682, -0.35265044, -0.63649234], + [0.36441173, -1.68197093, 0.08682400], + [-0.59818222, 0.10068325, -0.65235399], + [0.74799641, -0.48357798, -1.66461710], + [0.03647269, -1.54932006, 1.12314420], + [-0.31340646, -2.38081353, -0.41122551], + [1.36475837, -2.12581592, 0.12433596], + [2.16336803, 0.09985803, 0.03295192], + ], + np.float64, + ) tensor = get_moment_of_inertia_tensor(coords=coords, symbols=symbols) - expected_tensor = [[50.24197604, -15.43600683, -3.07977736], - [-15.43600683, 22.20416597, 2.5935549], - [-3.07977736, 2.5935549, 55.49144794]] + expected_tensor = [ + [50.24197604, -15.43600683, -3.07977736], + [-15.43600683, 22.20416597, 2.5935549], + [-3.07977736, 2.5935549, 55.49144794], + ] np.testing.assert_almost_equal(tensor, expected_tensor) def test_get_principal_moments_of_inertia(self): """Test calculating the principal moments of inertia""" numbers = [6, 6, 8, 1, 1, 1, 1, 1, 1] - coords = np.array([[1.235366, -0.257231, -0.106315], - [0.083698, 0.554942, 0.046628], - [-1.210594, -0.239505, -0.021674], - [0.132571, 1.119728, 0.987719], - [0.127795, 1.278999, -0.769346], - [-1.272620, -0.962700, 0.798216], - [-2.074974, 0.426198, 0.055846], - [-1.275744, -0.785745, -0.965493], - [1.241416, -0.911257, 0.593856]], np.float64) - principal_moments_of_inertia = get_principal_moments_of_inertia(coords=coords, numbers=numbers)[0] + coords = np.array( + [ + [1.235366, -0.257231, -0.106315], + [0.083698, 0.554942, 0.046628], + [-1.210594, -0.239505, -0.021674], + [0.132571, 1.119728, 0.987719], + [0.127795, 1.278999, -0.769346], + [-1.272620, -0.962700, 0.798216], + [-2.074974, 0.426198, 0.055846], + [-1.275744, -0.785745, -0.965493], + [1.241416, -0.911257, 0.593856], + ], + np.float64, + ) + principal_moments_of_inertia = get_principal_moments_of_inertia( + coords=coords, numbers=numbers + )[0] expected_principal_moments_of_inertia = [60.98026894, 53.83156297, 14.48858465] - for moment, expected_moment in zip(principal_moments_of_inertia, expected_principal_moments_of_inertia): + for moment, expected_moment in zip( + principal_moments_of_inertia, expected_principal_moments_of_inertia + ): self.assertAlmostEqual(moment, expected_moment) - symbols = ['N', 'O', 'O'] # test a linear molecule - coords = np.array([[0.000000, 0.000000, 1.106190], - [0.000000, 0.000000, -0.072434], - [0.000000, 0.000000, -1.191782]], np.float64) + symbols = ["N", "O", "O"] # test a linear molecule + coords = np.array( + [ + [0.000000, 0.000000, 1.106190], + [0.000000, 0.000000, -0.072434], + [0.000000, 0.000000, -1.191782], + ], + np.float64, + ) with self.assertRaises(InputError): get_principal_moments_of_inertia(coords=coords, numbers=numbers) - principal_moments_of_inertia, axes = get_principal_moments_of_inertia(coords=coords, symbols=symbols) + principal_moments_of_inertia, axes = get_principal_moments_of_inertia( + coords=coords, symbols=symbols + ) expected_principal_moments_of_inertia = [39.4505153, 39.4505153, 0.0] expected_axes = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] - for moment, expected_moment in zip(principal_moments_of_inertia, expected_principal_moments_of_inertia): + for moment, expected_moment in zip( + principal_moments_of_inertia, expected_principal_moments_of_inertia + ): self.assertAlmostEqual(moment, expected_moment) for axis, expected_axis in zip(axes, expected_axes): for entry, expected_entry in zip(axis, expected_axis): @@ -560,13 +682,14 @@ def test_get_principal_moments_of_inertia(self): def test_convert_imaginary_freq_to_negative_float(self): self.assertEqual(convert_imaginary_freq_to_negative_float(1), 1) self.assertEqual(convert_imaginary_freq_to_negative_float(-5.2), -5.2) - self.assertEqual(convert_imaginary_freq_to_negative_float('-5.2'), -5.2) - self.assertEqual(convert_imaginary_freq_to_negative_float('5.2'), 5.2) - self.assertEqual(convert_imaginary_freq_to_negative_float('5.2i'), -5.2) - self.assertEqual(convert_imaginary_freq_to_negative_float('635.8i'), -635.8) + self.assertEqual(convert_imaginary_freq_to_negative_float("-5.2"), -5.2) + self.assertEqual(convert_imaginary_freq_to_negative_float("5.2"), 5.2) + self.assertEqual(convert_imaginary_freq_to_negative_float("5.2i"), -5.2) + self.assertEqual(convert_imaginary_freq_to_negative_float("635.8i"), -635.8) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/aeTest.py b/test/arkane/encorr/aeTest.py index d736ad3bf3..dc54f80658 100644 --- a/test/arkane/encorr/aeTest.py +++ b/test/arkane/encorr/aeTest.py @@ -47,7 +47,7 @@ class TestAE(unittest.TestCase): @classmethod def setUpClass(cls): - cls.species_energies = {lbl: i+1 for i, lbl in enumerate(SPECIES_LABELS)} + cls.species_energies = {lbl: i + 1 for i, lbl in enumerate(SPECIES_LABELS)} cls.ae = AE(cls.species_energies) def test_load_refdata(self): @@ -83,20 +83,22 @@ def test_write_to_database(self): # Check that error is raised when no energies are available self.ae.atom_energies = None with self.assertRaises(ValueError) as e: - self.ae.write_to_database('test') - self.assertIn('No atom energies', str(e.exception)) + self.ae.write_to_database("test") + self.assertIn("No atom energies", str(e.exception)) # Check that error is raised if energies already exist - self.ae.atom_energies = {'H': 1.0, 'C': 2.0} - tmp_datafile_fd, tmp_datafile_path = tempfile.mkstemp(suffix='.py') + self.ae.atom_energies = {"H": 1.0, "C": 2.0} + tmp_datafile_fd, tmp_datafile_path = tempfile.mkstemp(suffix=".py") - lot = LevelOfTheory(method='wb97m-v', basis='def2-tzvpd', software='Q-Chem') + lot = LevelOfTheory(method="wb97m-v", basis="def2-tzvpd", software="Q-Chem") with self.assertRaises(ValueError) as e: self.ae.write_to_database(lot, alternate_path=tmp_datafile_path) - self.assertIn('overwrite', str(e.exception)) + self.assertIn("overwrite", str(e.exception)) # Dynamically set data file as module - spec = importlib.util.spec_from_file_location(os.path.basename(tmp_datafile_path), tmp_datafile_path) + spec = importlib.util.spec_from_file_location( + os.path.basename(tmp_datafile_path), tmp_datafile_path + ) module = importlib.util.module_from_spec(spec) # Check that existing energies can be overwritten @@ -105,7 +107,7 @@ def test_write_to_database(self): self.assertEqual(self.ae.atom_energies, module.atom_energies[repr(lot)]) # Check that new energies can be written - lot = LevelOfTheory('test') + lot = LevelOfTheory("test") self.ae.write_to_database(lot, alternate_path=tmp_datafile_path) spec.loader.exec_module(module) # Reload data module self.assertEqual(self.ae.atom_energies, module.atom_energies[repr(lot)]) @@ -114,5 +116,5 @@ def test_write_to_database(self): os.remove(tmp_datafile_path) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/bacTest.py b/test/arkane/encorr/bacTest.py index 54c23313b2..2c67c0adff 100644 --- a/test/arkane/encorr/bacTest.py +++ b/test/arkane/encorr/bacTest.py @@ -58,31 +58,68 @@ class TestBAC(unittest.TestCase): @classmethod def setUpClass(cls): - cls.lot_get = LevelOfTheory(method='CCSD(T)-F12', basis='cc-pVTZ-F12', software='Molpro') - cls.lot_get_composite = CompositeLevelOfTheory(freq=LevelOfTheory(method='wb97xd3',basis='def2tzvp',software='qchem'),energy=LevelOfTheory(method='ccsd(t)f12',basis='ccpvtzf12',software='molpro')) - cls.lot_fit = LevelOfTheory(method='wB97M-V', basis='def2-TZVPD', software='Q-Chem') - cls.lot_nonexisting = LevelOfTheory('notamethod') + cls.lot_get = LevelOfTheory( + method="CCSD(T)-F12", basis="cc-pVTZ-F12", software="Molpro" + ) + cls.lot_get_composite = CompositeLevelOfTheory( + freq=LevelOfTheory(method="wb97xd3", basis="def2tzvp", software="qchem"), + energy=LevelOfTheory( + method="ccsd(t)f12", basis="ccpvtzf12", software="molpro" + ), + ) + cls.lot_fit = LevelOfTheory( + method="wB97M-V", basis="def2-TZVPD", software="Q-Chem" + ) + cls.lot_nonexisting = LevelOfTheory("notamethod") cls.bac = BAC(cls.lot_get) cls.tmp_melius_params = { - 'atom_corr': {'H': 1.0, 'C': 2.0, 'N': 3.0, 'O': 4.0, 'S': 5.0, 'F': 6.0, 'Cl': 7.0, 'Br': 8.0}, - 'bond_corr_length': {'H': 1.0, 'C': 2.0, 'N': 3.0, 'O': 4.0, 'S': 5.0, 'F': 6.0, 'Cl': 7.0, 'Br': 8.0}, - 'bond_corr_neighbor': {'H': 1.0, 'C': 2.0, 'N': 3.0, 'O': 4.0, 'S': 5.0, 'F': 6.0, 'Cl': 7.0, 'Br': 8.0}, - 'mol_corr': 1.0 + "atom_corr": { + "H": 1.0, + "C": 2.0, + "N": 3.0, + "O": 4.0, + "S": 5.0, + "F": 6.0, + "Cl": 7.0, + "Br": 8.0, + }, + "bond_corr_length": { + "H": 1.0, + "C": 2.0, + "N": 3.0, + "O": 4.0, + "S": 5.0, + "F": 6.0, + "Cl": 7.0, + "Br": 8.0, + }, + "bond_corr_neighbor": { + "H": 1.0, + "C": 2.0, + "N": 3.0, + "O": 4.0, + "S": 5.0, + "F": 6.0, + "Cl": 7.0, + "Br": 8.0, + }, + "mol_corr": 1.0, } - cls.tmp_petersson_params = {'C-H': 1.0, 'C-C': 2.0, 'C=C': 3.0, 'C-O': 4.0} + cls.tmp_petersson_params = {"C-H": 1.0, "C-C": 2.0, "C=C": 3.0, "C-O": 4.0} # Set molecule, bonds, nums, and coords for testing Petersson and Melius BACs cls.multiplicity = 1 - smi = 'C=C(OSC=S)C#CC1C(=O)N=CNC1SSC(O)C#N' + smi = "C=C(OSC=S)C#CC1C(=O)N=CNC1SSC(O)C#N" mol = Molecule(smiles=smi, multiplicity=cls.multiplicity) cls.bonds = Counter( - f'{b.atom1.element.symbol}{BOND_SYMBOLS[b.order]}{b.atom2.element.symbol}' for b in mol.get_all_edges() + f"{b.atom1.element.symbol}{BOND_SYMBOLS[b.order]}{b.atom2.element.symbol}" + for b in mol.get_all_edges() ) - pybel_mol = pybel.readstring('smi', smi) + pybel_mol = pybel.readstring("smi", smi) pybel_mol.addh() pybel_mol.make3D() mol_3d = _pybel_to_rmg(pybel_mol) @@ -95,22 +132,24 @@ def test_loading_parameters(self): correctly and that errors are raised otherwise. """ self.bac.level_of_theory = self.lot_get - self.bac.bac_type = 'p' + self.bac.bac_type = "p" self.assertIsInstance(self.bac.bacs, dict) self.bac.level_of_theory = self.lot_nonexisting - self.bac.bac_type = 'm' + self.bac.bac_type = "m" self.assertIsNone(self.bac.bacs) with self.assertRaises(BondAdditivityCorrectionError): - self.bac.bac_type = '' + self.bac.bac_type = "" def test_load_database(self): """ Test that reference database can be loaded. """ - key = self.bac.load_database(names='main') - expected_key = (os.path.join(settings['database.directory'], 'reference_sets', 'main'),) + key = self.bac.load_database(names="main") + expected_key = ( + os.path.join(settings["database.directory"], "reference_sets", "main"), + ) self.assertEqual(key, expected_key) self.assertIsInstance(self.bac.ref_databases[key], ReferenceDatabase) @@ -123,17 +162,23 @@ def test_get_correction(self): Test that BAC corrections can be obtained. """ self.bac.level_of_theory = self.lot_get - self.bac.bac_type = 'p' + self.bac.bac_type = "p" corr = self.bac.get_correction(bonds=self.bonds) self.assertIsInstance(corr, ScalarQuantity) # Can use actual Melius parameters once they're available in database - self.bac.bac_type = 'm' + self.bac.bac_type = "m" with self.assertRaises(BondAdditivityCorrectionError): # No multiplicity specified - self.bac._get_melius_correction(coords=self.coords, nums=self.nums, params=self.tmp_melius_params) - corr1 = self.bac._get_melius_correction(coords=self.coords, nums=self.nums, multiplicity=self.multiplicity, - params=self.tmp_melius_params) + self.bac._get_melius_correction( + coords=self.coords, nums=self.nums, params=self.tmp_melius_params + ) + corr1 = self.bac._get_melius_correction( + coords=self.coords, + nums=self.nums, + multiplicity=self.multiplicity, + params=self.tmp_melius_params, + ) self.assertIsInstance(corr1, ScalarQuantity) self.bac.level_of_theory = self.lot_nonexisting @@ -142,26 +187,30 @@ def test_get_correction(self): def _clear_bac_data(self): self.bac.bacs = None - self.bac.species = self.bac.ref_data = self.bac.calc_data = self.bac.bac_data = None + self.bac.species = ( + self.bac.ref_data + ) = self.bac.calc_data = self.bac.bac_data = None def _check_bac_data(self): self.assertIsInstance(self.bac.bacs, dict) self.assertIsInstance(self.bac.dataset, BACDataset) self.assertIsNotNone(self.bac.database_key) - self.assertLess(self.bac.dataset.calculate_stats(for_bac_data=True).rmse, - self.bac.dataset.calculate_stats().rmse) + self.assertLess( + self.bac.dataset.calculate_stats(for_bac_data=True).rmse, + self.bac.dataset.calculate_stats().rmse, + ) def test_fit_petersson(self): """ Test that Petersson BAC parameters can be derived. """ self.bac.level_of_theory = self.lot_fit - self.bac.bac_type = 'p' + self.bac.bac_type = "p" self._clear_bac_data() self.bac.fit() self._check_bac_data() - self.assertIn('C-H', self.bac.bacs) + self.assertIn("C-H", self.bac.bacs) self.bac.level_of_theory = self.lot_nonexisting with self.assertRaises(BondAdditivityCorrectionError): @@ -172,21 +221,25 @@ def test_fit_melius(self): Test that Melius BAC parameters can be derived. """ self.bac.level_of_theory = self.lot_fit - self.bac.bac_type = 'm' + self.bac.bac_type = "m" self._clear_bac_data() # With molecular correction, no global opt self.bac.fit(fit_mol_corr=True, global_opt=False, lsq_max_nfev=50) self._check_bac_data() - self.assertSetEqual(set(self.bac.bacs.keys()), - {'atom_corr', 'bond_corr_length', 'bond_corr_neighbor', 'mol_corr'}) - self.assertNotAlmostEqual(self.bac.bacs['mol_corr'], 0.0) + self.assertSetEqual( + set(self.bac.bacs.keys()), + {"atom_corr", "bond_corr_length", "bond_corr_neighbor", "mol_corr"}, + ) + self.assertNotAlmostEqual(self.bac.bacs["mol_corr"], 0.0) # Without molecular correction, with global opt self._clear_bac_data() - self.bac.fit(fit_mol_corr=False, global_opt=True, global_opt_iter=1, lsq_max_nfev=50) + self.bac.fit( + fit_mol_corr=False, global_opt=True, global_opt_iter=1, lsq_max_nfev=50 + ) self._check_bac_data() - self.assertAlmostEqual(self.bac.bacs['mol_corr'], 0.0) + self.assertAlmostEqual(self.bac.bacs["mol_corr"], 0.0) def test_test(self): """ @@ -194,20 +247,21 @@ def test_test(self): """ with self.assertRaises(BondAdditivityCorrectionError) as e: self.bac.test(species=[], db_names=[]) - self.assertIn('several data sources', str(e.exception)) + self.assertIn("several data sources", str(e.exception)) with self.assertRaises(BondAdditivityCorrectionError) as e: self.bac.test(species=[]) - self.assertIn('No data', str(e.exception)) + self.assertIn("No data", str(e.exception)) self.bac.level_of_theory = self.lot_fit - self.bac.bac_type = 'm' + self.bac.bac_type = "m" self.bac.bacs = self.tmp_melius_params # Get a few species to test on - key = self.bac.load_database(names='main') - species = self.bac.ref_databases[key].extract_level_of_theory(self.bac.level_of_theory, - as_error_canceling_species=False)[:10] + key = self.bac.load_database(names="main") + species = self.bac.ref_databases[key].extract_level_of_theory( + self.bac.level_of_theory, as_error_canceling_species=False + )[:10] dataset = self.bac.test(species=species) self.assertIsInstance(dataset, BACDataset) @@ -221,21 +275,23 @@ def test_write_to_database(self): self.bac.bacs = None with self.assertRaises(BondAdditivityCorrectionError) as e: self.bac.write_to_database() - self.assertIn('No BACs', str(e.exception)) + self.assertIn("No BACs", str(e.exception)) self.bac.level_of_theory = self.lot_get - self.bac.bac_type = 'p' + self.bac.bac_type = "p" self.bac.bacs = self.tmp_petersson_params - tmp_datafile_fd, tmp_datafile_path = tempfile.mkstemp(suffix='.py') + tmp_datafile_fd, tmp_datafile_path = tempfile.mkstemp(suffix=".py") # Check that error is raised if BACs already exist and overwrite is False with self.assertRaises(IOError) as e: self.bac.write_to_database(alternate_path=tmp_datafile_path) - self.assertIn('overwrite', str(e.exception)) + self.assertIn("overwrite", str(e.exception)) # Dynamically set data file as module - spec = importlib.util.spec_from_file_location(os.path.basename(tmp_datafile_path), tmp_datafile_path) + spec = importlib.util.spec_from_file_location( + os.path.basename(tmp_datafile_path), tmp_datafile_path + ) module = importlib.util.module_from_spec(spec) # Check that existing Petersson BACs can be overwritten @@ -257,7 +313,7 @@ def test_write_to_database(self): self.assertEqual(self.bac.bacs, module.pbac[repr(self.bac.level_of_theory)]) # Check that new Melius BACs can be written - self.bac.bac_type = 'm' + self.bac.bac_type = "m" self.bac.bacs = self.tmp_melius_params self.bac.write_to_database(alternate_path=tmp_datafile_path) spec.loader.exec_module(module) @@ -272,13 +328,13 @@ def test_save_correlation_mat(self): """ self.bac.correlation = None with self.assertRaises(BondAdditivityCorrectionError): - self.bac.save_correlation_mat('') + self.bac.save_correlation_mat("") self.bac.bacs = self.tmp_melius_params self.bac.correlation = np.random.uniform(size=(24, 24)) with tempfile.TemporaryDirectory() as tmpdirname: - tmp_corr_path = os.path.join(tmpdirname, 'corr.pdf') + tmp_corr_path = os.path.join(tmpdirname, "corr.pdf") self.bac.save_correlation_mat(tmp_corr_path) self.assertTrue(os.path.exists(tmp_corr_path)) @@ -289,7 +345,7 @@ class TestCrossVal(unittest.TestCase): """ def setUp(self): - lot = LevelOfTheory(method='wB97M-V', basis='def2-TZVPD', software='Q-Chem') + lot = LevelOfTheory(method="wB97M-V", basis="def2-TZVPD", software="Q-Chem") self.cross_val = CrossVal(lot) def test_init(self): @@ -297,7 +353,7 @@ def test_init(self): Test that CrossVal is initialized correctly. """ self.assertIsInstance(self.cross_val.level_of_theory, LevelOfTheory) - self.assertEqual(self.cross_val.bac_type, 'p') + self.assertEqual(self.cross_val.bac_type, "p") self.assertEqual(self.cross_val.n_folds, -1) self.assertIsNone(self.cross_val.dataset) self.assertIsNone(self.cross_val.bacs) @@ -336,10 +392,14 @@ def test_kfold(self): self.assertIsNotNone(self.cross_val.dataset.bac_data) self.assertEqual(len(self.cross_val.bacs), 2) - train_folds = [[0, 1], [0, 2], [0, 3], - [1, 2], [1, 3], - [2, 3], - ] + train_folds = [ + [0, 1], + [0, 2], + [0, 3], + [1, 2], + [1, 3], + [2, 3], + ] for i, bac in enumerate(self.cross_val.bacs): self.assertIsInstance(bac, BAC) self.assertEqual(len(bac.dataset), 2) @@ -347,5 +407,5 @@ def test_kfold(self): self.assertNotEqual(d.spc.index, train_folds[i]) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/corrTest.py b/test/arkane/encorr/corrTest.py index 32bf52806a..0fb602bb01 100644 --- a/test/arkane/encorr/corrTest.py +++ b/test/arkane/encorr/corrTest.py @@ -35,10 +35,11 @@ import numpy as np -from arkane.encorr.corr import (assign_frequency_scale_factor, - get_atom_correction, - get_bac, - ) +from arkane.encorr.corr import ( + assign_frequency_scale_factor, + get_atom_correction, + get_bac, +) from arkane.exceptions import AtomEnergyCorrectionError from arkane.modelchem import LevelOfTheory, CompositeLevelOfTheory @@ -50,25 +51,31 @@ class TestCorr(unittest.TestCase): @classmethod def setUpClass(cls): - cls.freq_lot = LevelOfTheory(method='wb97X-D3', basis='def2-TZVP', software='Q-Chem') - cls.energy_lot = LevelOfTheory(method='CCSD(T)-F12', basis='cc-pVDZ-F12', software='MOLPRO') - cls.composite_lot = CompositeLevelOfTheory(freq=cls.freq_lot, energy=cls.energy_lot) - cls.lot_nonexisting = LevelOfTheory('notamethod') + cls.freq_lot = LevelOfTheory( + method="wb97X-D3", basis="def2-TZVP", software="Q-Chem" + ) + cls.energy_lot = LevelOfTheory( + method="CCSD(T)-F12", basis="cc-pVDZ-F12", software="MOLPRO" + ) + cls.composite_lot = CompositeLevelOfTheory( + freq=cls.freq_lot, energy=cls.energy_lot + ) + cls.lot_nonexisting = LevelOfTheory("notamethod") def test_get_atom_correction(self): """ Test that AECs can be assigned. It's possible these values are refit in the future so a loose tolerance - is used to just test that the values can be queried. + is used to just test that the values can be queried. """ - atoms = {'H': 1} + atoms = {"H": 1} aec = get_atom_correction(level_of_theory=self.freq_lot, atoms=atoms) # test value is obtained by (atom_hf['H'] - atom_thermal['H']) * 4184 - H atom_energy * 4.35974394e-18 * rmgpy.constants.Na test_value = 1524327 self.assertAlmostEqual(aec, test_value, places=None, delta=1000) with self.assertRaises(AtomEnergyCorrectionError): - aec = get_atom_correction(level_of_theory=self.freq_lot, atoms={'X': 1}) + aec = get_atom_correction(level_of_theory=self.freq_lot, atoms={"X": 1}) def test_get_bac(self): """ @@ -76,28 +83,37 @@ def test_get_bac(self): It's possible these values are refit in the future so a loose tolerance is used to just test that the values can be queried. """ - bonds = {'H-H': 1} + bonds = {"H-H": 1} # https://github.com/ReactionMechanismGenerator/RMG-database/blob/main/input/reference_sets/main/Dihydrogen.yml#L153 - CCCBDB_coords = np.array([[0, 0, 0], - [0, 0, 0.7414], - ]) + CCCBDB_coords = np.array( + [ + [0, 0, 0], + [0, 0, 0.7414], + ] + ) nums = (1, 1) # test Petersson BACs - bac_type = 'p' - bac = get_bac(level_of_theory=self.freq_lot, bonds=bonds, - coords=CCCBDB_coords, nums=nums, - bac_type=bac_type, + bac_type = "p" + bac = get_bac( + level_of_theory=self.freq_lot, + bonds=bonds, + coords=CCCBDB_coords, + nums=nums, + bac_type=bac_type, ) - # test value is obtained by BAC(self.freq_lot, bac_type=bac_type).get_correction(bonds=bonds, coords=CCCBDB_coords, nums=nums).value_si + # test value is obtained by BAC(self.freq_lot, bac_type=bac_type).get_correction(bonds=bonds, coords=CCCBDB_coords, nums=nums).value_si test_value = 700 self.assertAlmostEqual(bac, test_value, places=None, delta=100) # test Melius BACs - bac_type = 'm' - bac = get_bac(level_of_theory=self.freq_lot, bonds=bonds, - coords=CCCBDB_coords, nums=nums, - bac_type=bac_type, + bac_type = "m" + bac = get_bac( + level_of_theory=self.freq_lot, + bonds=bonds, + coords=CCCBDB_coords, + nums=nums, + bac_type=bac_type, ) # test value is obtained by BAC(self.freq_lot, bac_type=bac_type).get_correction(bonds=bonds, coords=CCCBDB_coords, nums=nums).value_si test_value = 949 @@ -122,8 +138,8 @@ def test_assign_frequency_scale_factor(self): self.assertAlmostEqual(freq_scale_factor, 0.997, places=1) freq_scale_factor = assign_frequency_scale_factor(self.composite_lot) - self.assertAlmostEqual(freq_scale_factor, 0.984, places=1) + self.assertAlmostEqual(freq_scale_factor, 0.984, places=1) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/dataTest.py b/test/arkane/encorr/dataTest.py index ffe70861a9..9cb00eb535 100644 --- a/test/arkane/encorr/dataTest.py +++ b/test/arkane/encorr/dataTest.py @@ -40,15 +40,23 @@ from rmgpy.molecule import Molecule as RMGMolecule import arkane.encorr.data as data -from arkane.encorr.data import (Molecule, Stats, BACDatapoint, DatasetProperty, BACDataset, - extract_dataset, geo_to_mol, _pybel_to_rmg) +from arkane.encorr.data import ( + Molecule, + Stats, + BACDatapoint, + DatasetProperty, + BACDataset, + extract_dataset, + geo_to_mol, + _pybel_to_rmg, +) from arkane.encorr.reference import ReferenceDatabase from arkane.exceptions import BondAdditivityCorrectionError from arkane.modelchem import LOT, LevelOfTheory DATABASE = ReferenceDatabase() DATABASE.load() -LEVEL_OF_THEORY = LevelOfTheory(method='wb97m-v', basis='def2-tzvpd', software='qchem') +LEVEL_OF_THEORY = LevelOfTheory(method="wb97m-v", basis="def2-tzvpd", software="qchem") class TestDataLoading(unittest.TestCase): @@ -61,13 +69,13 @@ def test_contains_data(self): """ Test that the necessary dictionaries are available. """ - self.assertTrue(hasattr(data, 'atom_hf')) - self.assertTrue(hasattr(data, 'atom_thermal')) - self.assertTrue(hasattr(data, 'SOC')) - self.assertTrue(hasattr(data, 'atom_energies')) - self.assertTrue(hasattr(data, 'pbac')) - self.assertTrue(hasattr(data, 'mbac')) - self.assertTrue(hasattr(data, 'freq_dict')) + self.assertTrue(hasattr(data, "atom_hf")) + self.assertTrue(hasattr(data, "atom_thermal")) + self.assertTrue(hasattr(data, "SOC")) + self.assertTrue(hasattr(data, "atom_energies")) + self.assertTrue(hasattr(data, "pbac")) + self.assertTrue(hasattr(data, "mbac")) + self.assertTrue(hasattr(data, "freq_dict")) def test_level_of_theory(self): """ @@ -93,11 +101,11 @@ def test_molecule(self): """ Test that a Molecule contains the `id` attribute. """ - rmg_mol = RMGMolecule(smiles='C') - mol = Molecule(smiles='C') + rmg_mol = RMGMolecule(smiles="C") + mol = Molecule(smiles="C") self.assertIsInstance(mol, RMGMolecule) - self.assertTrue(hasattr(mol, 'id')) - self.assertFalse(hasattr(rmg_mol, 'id')) + self.assertTrue(hasattr(mol, "id")) + self.assertFalse(hasattr(rmg_mol, "id")) class TestStats(unittest.TestCase): @@ -110,8 +118,8 @@ def test_stats(self): Test that a Stats instance contains the correct attributes. """ stats = Stats(1.0, 2.0) - self.assertTrue(hasattr(stats, 'rmse')) - self.assertTrue(hasattr(stats, 'mae')) + self.assertTrue(hasattr(stats, "rmse")) + self.assertTrue(hasattr(stats, "mae")) class TestBACDatapoint(unittest.TestCase): @@ -159,7 +167,7 @@ def test_mol(self): mol_geo = self.datapoint.to_mol(from_geo=True) self.assertIsNot(mol_geo, mol_adj) # Check that cached molecule is NOT used coords_spc = np.vstack(tuple(a.coords for a in mol_geo.atoms)) - coords_dp = self.spc.calculated_data[LEVEL_OF_THEORY].xyz_dict['coords'] + coords_dp = self.spc.calculated_data[LEVEL_OF_THEORY].xyz_dict["coords"] self.assertIsNone(np.testing.assert_allclose(coords_dp, coords_spc)) self.assertIsInstance(mol_geo, Molecule) self.assertIs(mol_geo, self.datapoint.mol) @@ -208,11 +216,17 @@ def test_substructs(self): # Check that exactly one of 'neutral', 'cation', or 'anion' is set # and same for 'singlet', 'doublet', 'triplet+'. - self.assertEqual(sum(substructs[k] for k in ('neutral', 'cation', 'anion')), 1) # Can only be one of these - self.assertEqual(sum(substructs[k] for k in ('singlet', 'doublet', 'triplet+')), 1) + self.assertEqual( + sum(substructs[k] for k in ("neutral", "cation", "anion")), 1 + ) # Can only be one of these + self.assertEqual( + sum(substructs[k] for k in ("singlet", "doublet", "triplet+")), 1 + ) substructs2 = self.datapoint.substructs - self.assertIs(substructs, substructs2) # Check that cached substructures are used + self.assertIs( + substructs, substructs2 + ) # Check that cached substructures are used class TestDatasetProperty(unittest.TestCase): @@ -235,8 +249,8 @@ def __init__(self): def __len__(self): return len(self.data) - val = DatasetProperty('val', asarray=asarray, settable=settable) - val2 = DatasetProperty('val2', asarray=asarray, settable=settable) + val = DatasetProperty("val", asarray=asarray, settable=settable) + val2 = DatasetProperty("val2", asarray=asarray, settable=settable) return Set() @@ -245,10 +259,10 @@ def test_init(self): Test that the descriptor is initialized properly. """ s = self.make_set() - dset_prop = type(s).__dict__['val'] + dset_prop = type(s).__dict__["val"] self.assertIsInstance(dset_prop, DatasetProperty) - self.assertEqual(dset_prop.pub_attr, 'val') - self.assertEqual(dset_prop.priv_attr, '_val') + self.assertEqual(dset_prop.pub_attr, "val") + self.assertEqual(dset_prop.priv_attr, "_val") self.assertFalse(dset_prop.asarray) self.assertFalse(dset_prop.settable) @@ -294,7 +308,9 @@ def setUpClass(cls): cls.species = list(DATABASE.reference_sets.values())[0][:5] def setUp(self): - self.dataset = BACDataset([BACDatapoint(spc, level_of_theory=LEVEL_OF_THEORY) for spc in self.species]) + self.dataset = BACDataset( + [BACDatapoint(spc, level_of_theory=LEVEL_OF_THEORY) for spc in self.species] + ) def test_append(self): """ @@ -332,7 +348,9 @@ def test_attrs(self): self.assertEqual(len(self.dataset.bac_data), len(self.species)) self.assertIsInstance(self.dataset.weight, np.ndarray) - self.assertTrue(all(w1 == w2 for w1, w2 in zip(self.dataset.weight, self.dataset.weights))) + self.assertTrue( + all(w1 == w2 for w1, w2 in zip(self.dataset.weight, self.dataset.weights)) + ) self.assertEqual(len(self.dataset.weights), len(self.species)) def test_get_mols(self): @@ -363,7 +381,7 @@ def test_compute_weights(self): Test that weights can be computed. """ with self.assertRaises(NotImplementedError): - self.dataset.compute_weights(weight_type='') + self.dataset.compute_weights(weight_type="") self.dataset.compute_weights() self.assertTrue(all(0 <= w < 1 for w in self.dataset.weights)) @@ -403,17 +421,17 @@ def test_extract_dataset(self): self.assertTrue(d.spc.index not in {211, 362}) # Test excluding elements - elements = 'N' + elements = "N" dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, exclude_elements=elements) for d in dataset: self.assertFalse(elements in d.spc.formula) - elements = ['N', 'O'] + elements = ["N", "O"] dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, exclude_elements=elements) for d in dataset: self.assertFalse(any(e in d.spc.formula for e in elements)) # Test specifying charge - charges = 'negative' + charges = "negative" dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, charge=charges) for d in dataset: self.assertTrue(d.spc.charge < 0) @@ -421,22 +439,26 @@ def test_extract_dataset(self): dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, charge=charges) for d in dataset: self.assertTrue(d.spc.charge == 1) - charges = ['positive', 'neutral'] + charges = ["positive", "neutral"] dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, charge=charges) for d in dataset: self.assertTrue(d.spc.charge >= 0) - charges = [-1, 'positive'] + charges = [-1, "positive"] dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, charge=charges) for d in dataset: self.assertTrue(d.spc.charge > 0 or d.spc.charge == -1) # Test specifying multiplicity multiplicities = 2 - dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, multiplicity=multiplicities) + dataset = extract_dataset( + DATABASE, LEVEL_OF_THEORY, multiplicity=multiplicities + ) for d in dataset: self.assertTrue(d.spc.multiplicity == 2) multiplicities = [2, 3] - dataset = extract_dataset(DATABASE, LEVEL_OF_THEORY, multiplicity=multiplicities) + dataset = extract_dataset( + DATABASE, LEVEL_OF_THEORY, multiplicity=multiplicities + ) for d in dataset: self.assertTrue(d.spc.multiplicity in {2, 3}) @@ -449,32 +471,46 @@ def test_geo_to_mol(self): coords = np.array([[0, 0, 0], [0, 0, 0.74]]) mol = geo_to_mol(coords, nums=nums) self.assertIsInstance(mol, Molecule) - self.assertTrue(mol.to_single_bonds().is_isomorphic(Molecule(smiles='[H][H]').to_single_bonds())) + self.assertTrue( + mol.to_single_bonds().is_isomorphic( + Molecule(smiles="[H][H]").to_single_bonds() + ) + ) # Methane - symbols = ('H', 'C', 'H', 'H', 'H') - coords = np.array([ - [0.5288, 0.1610, 0.9359], - [0.0000, 0.0000, 0.0000], - [0.2051, 0.8240, -0.6786], - [0.3345, -0.9314, -0.4496], - [-1.0685, -0.0537, 0.1921] - ]) + symbols = ("H", "C", "H", "H", "H") + coords = np.array( + [ + [0.5288, 0.1610, 0.9359], + [0.0000, 0.0000, 0.0000], + [0.2051, 0.8240, -0.6786], + [0.3345, -0.9314, -0.4496], + [-1.0685, -0.0537, 0.1921], + ] + ) mol = geo_to_mol(coords, symbols=symbols) self.assertIsInstance(mol, Molecule) - self.assertTrue(mol.to_single_bonds().is_isomorphic(Molecule(smiles='C').to_single_bonds())) + self.assertTrue( + mol.to_single_bonds().is_isomorphic(Molecule(smiles="C").to_single_bonds()) + ) def test_pybel_to_rmg(self): """ Test that a Pybel molecule can be converted to an RMG molecule. """ - pybel_mol = pybel.readstring('smi', 'O=CCN') + pybel_mol = pybel.readstring("smi", "O=CCN") pybel_mol.addh() pybel_mol.make3D() mol = _pybel_to_rmg(pybel_mol) for atom, pybel_atom in zip(mol.atoms, pybel_mol.atoms): self.assertEqual(atom.number, pybel_atom.atomicnum) - self.assertIsNone(np.testing.assert_allclose(atom.coords, pybel_atom.coords)) - self.assertEqual(Counter(a.number for a in atom.bonds), - Counter(a.GetAtomicNum() for a in pybel.ob.OBAtomAtomIter(pybel_atom.OBAtom))) + self.assertIsNone( + np.testing.assert_allclose(atom.coords, pybel_atom.coords) + ) + self.assertEqual( + Counter(a.number for a in atom.bonds), + Counter( + a.GetAtomicNum() for a in pybel.ob.OBAtomAtomIter(pybel_atom.OBAtom) + ), + ) diff --git a/test/arkane/encorr/decompTest.py b/test/arkane/encorr/decompTest.py index ee38701ee3..48ca124fef 100644 --- a/test/arkane/encorr/decompTest.py +++ b/test/arkane/encorr/decompTest.py @@ -44,10 +44,14 @@ class TestBAC(unittest.TestCase): @classmethod def setUpClass(cls): - cls.smi = ('[CH3:1][O:2][C:3](=[C:4]1[CH:5]2[O:6][CH:7]3[N:8]1[CH:9]=[CH:10][CH:11]23)' - '[S:12](=[O:13])(=[O:14])[Cl:15]') + cls.smi = ( + "[CH3:1][O:2][C:3](=[C:4]1[CH:5]2[O:6][CH:7]3[N:8]1[CH:9]=[CH:10][CH:11]23)" + "[S:12](=[O:13])(=[O:14])[Cl:15]" + ) cls.mol = _smi_to_mol(cls.smi) - cls.idx_map = {atom.GetIdx(): atom.GetAtomMapNum() for atom in cls.mol.GetAtoms()} + cls.idx_map = { + atom.GetIdx(): atom.GetAtomMapNum() for atom in cls.mol.GetAtoms() + } def test_substruct_decomp(self): """ @@ -56,22 +60,23 @@ def test_substruct_decomp(self): substructure. """ map_num_list_sorted = [ - [1, 2], # C-O bond - [2], # O center with 2 neighbors - [2, 3], # O-C bond - [3], # C center with 3 neigbors - [3, 4], # C=C bond - [3, 12], # C-S bond + [1, 2], # C-O bond + [2], # O center with 2 neighbors + [2, 3], # O-C bond + [3], # C center with 3 neigbors + [3, 4], # C=C bond + [3, 12], # C-S bond [4, 5, 6, 7, 8, 9, 10, 11], # Bridged 3-ring complex - [12], # S center with 4 neighbors - [12, 13], # S=O bond - [12, 14], # S=O bond - [12, 15], # S-Cl bond + [12], # S center with 4 neighbors + [12, 13], # S=O bond + [12, 14], # S=O bond + [12, 15], # S-Cl bond ] substruct_idxs = substruct_decomp(self.mol) substruct_map_nums_sorted = sorted( - sorted(self.idx_map[idx] for idx in substruct) for substruct in substruct_idxs + sorted(self.idx_map[idx] for idx in substruct) + for substruct in substruct_idxs ) self.assertListEqual(substruct_map_nums_sorted, map_num_list_sorted) @@ -81,16 +86,18 @@ def test_get_substructs(self): Test that the correct substructure counts are returned by get_substructs. """ - substruct_counts = Counter({ # Canonical RDKit SMILES - 'O=S': 2, - 'CO': 2, - 'SCl': 1, - 'CS': 1, - 'C=C': 1, - 'C1=CN2CC3OC2C13': 1, - 'CS(=O)(=O)Cl': 1, - 'C=C(O)S': 1, - 'COC': 1 - }) + substruct_counts = Counter( + { # Canonical RDKit SMILES + "O=S": 2, + "CO": 2, + "SCl": 1, + "CS": 1, + "C=C": 1, + "C1=CN2CC3OC2C13": 1, + "CS(=O)(=O)Cl": 1, + "C=C(O)S": 1, + "COC": 1, + } + ) self.assertEqual(get_substructs(self.smi), substruct_counts) diff --git a/test/arkane/encorr/isodesmicTest.py b/test/arkane/encorr/isodesmicTest.py index 0cae224ca7..973bcc602c 100644 --- a/test/arkane/encorr/isodesmicTest.py +++ b/test/arkane/encorr/isodesmicTest.py @@ -38,8 +38,13 @@ from rmgpy.molecule import Molecule from rmgpy.species import Species -from arkane.encorr.isodesmic import ErrorCancelingScheme, ErrorCancelingSpecies, ErrorCancelingReaction, \ - IsodesmicScheme, SpeciesConstraints +from arkane.encorr.isodesmic import ( + ErrorCancelingScheme, + ErrorCancelingSpecies, + ErrorCancelingReaction, + IsodesmicScheme, + SpeciesConstraints, +) from arkane.modelchem import LevelOfTheory ################################################################################ @@ -55,21 +60,25 @@ def setUpClass(cls): """ A method called before each unit test in this class. """ - cls.molecule1 = Molecule(smiles='CC') - cls.molecule2 = Molecule(smiles='[CH3]') - cls.species = Species(smiles='CC') + cls.molecule1 = Molecule(smiles="CC") + cls.molecule2 = Molecule(smiles="[CH3]") + cls.species = Species(smiles="CC") def test_error_canceling_species(self): """ Test that ErrorCancelingSpecies can be created properly """ - lot = LevelOfTheory('test') - error_canceling_species = ErrorCancelingSpecies(self.molecule1, (123.4, 'kcal/mol'), lot, (100.0, 'kJ/mol')) + lot = LevelOfTheory("test") + error_canceling_species = ErrorCancelingSpecies( + self.molecule1, (123.4, "kcal/mol"), lot, (100.0, "kJ/mol") + ) self.assertIsInstance(error_canceling_species, ErrorCancelingSpecies) - self.assertAlmostEqual(error_canceling_species.low_level_hf298.value_si, 123.4*4184) + self.assertAlmostEqual( + error_canceling_species.low_level_hf298.value_si, 123.4 * 4184 + ) # For target species the high level data is not given - target_species = ErrorCancelingSpecies(self.molecule2, (10.1, 'J/mol'), lot) + target_species = ErrorCancelingSpecies(self.molecule2, (10.1, "J/mol"), lot) self.assertIs(target_species.high_level_hf298, None) def test_molecule_input_in_error_canceling_species(self): @@ -77,29 +86,40 @@ def test_molecule_input_in_error_canceling_species(self): Test that an exception is raised if an rmgpy Molecule object is not passed to an ErrorCancelingSpecies """ with self.assertRaises(ValueError): - ErrorCancelingSpecies(self.species, (100.0, 'J/mol'), LevelOfTheory('test')) + ErrorCancelingSpecies(self.species, (100.0, "J/mol"), LevelOfTheory("test")) def test_error_canceling_reactions(self): """ Test that ErrorCancelingReaction object can be created and that hf298 can be calculated for the target """ # Take ethane as the target - lot = LevelOfTheory('test') - ethane = ErrorCancelingSpecies(self.molecule1, (100.0, 'kJ/mol'), lot) - methyl = ErrorCancelingSpecies(self.molecule2, (20.0, 'kcal/mol'), lot, (21000.0, 'cal/mol')) + lot = LevelOfTheory("test") + ethane = ErrorCancelingSpecies(self.molecule1, (100.0, "kJ/mol"), lot) + methyl = ErrorCancelingSpecies( + self.molecule2, (20.0, "kcal/mol"), lot, (21000.0, "cal/mol") + ) # This reaction is not an isodesmic reaction, but that does not matter for the unit test rxn = ErrorCancelingReaction(ethane, {methyl: 2}) - self.assertAlmostEqual(rxn.calculate_target_thermo().value_si, 2*21000.0*4.184-(2*20.0*4184-100.0*1000)) + self.assertAlmostEqual( + rxn.calculate_target_thermo().value_si, + 2 * 21000.0 * 4.184 - (2 * 20.0 * 4184 - 100.0 * 1000), + ) def test_level_of_theory_consistency(self): """ Test that ErrorCancelingReaction objects properly check that all species use the same level of theory """ # Take ethane as the target - ethane = ErrorCancelingSpecies(self.molecule1, (100.0, 'kJ/mol'), LevelOfTheory('test_A')) - methyl = ErrorCancelingSpecies(self.molecule2, (20.0, 'kcal/mol'), LevelOfTheory('test_B'), - (21000.0, 'cal/mol')) + ethane = ErrorCancelingSpecies( + self.molecule1, (100.0, "kJ/mol"), LevelOfTheory("test_A") + ) + methyl = ErrorCancelingSpecies( + self.molecule2, + (20.0, "kcal/mol"), + LevelOfTheory("test_B"), + (21000.0, "cal/mol"), + ) # This should throw an exception because the model chemistry is different with self.assertRaises(ValueError): @@ -117,44 +137,91 @@ def setUpClass(cls): A method called before each unit test in this class. """ # Give all species a low level Hf298 of 100 J/mol--this is not important for this test - hf = (100.0, 'J/mol') + hf = (100.0, "J/mol") - lot = LevelOfTheory('test') - cls.propene = ErrorCancelingSpecies(Molecule(smiles='CC=C'), hf, lot) - cls.butane = ErrorCancelingSpecies(Molecule(smiles='CCCC'), hf, lot) - cls.benzene = ErrorCancelingSpecies(Molecule(smiles='c1ccccc1'), hf, lot) - cls.caffeine = ErrorCancelingSpecies(Molecule(smiles='CN1C=NC2=C1C(=O)N(C(=O)N2C)C'), hf, lot) - cls.ethyne = ErrorCancelingSpecies(Molecule(smiles='C#C'), hf, lot) + lot = LevelOfTheory("test") + cls.propene = ErrorCancelingSpecies(Molecule(smiles="CC=C"), hf, lot) + cls.butane = ErrorCancelingSpecies(Molecule(smiles="CCCC"), hf, lot) + cls.benzene = ErrorCancelingSpecies(Molecule(smiles="c1ccccc1"), hf, lot) + cls.caffeine = ErrorCancelingSpecies( + Molecule(smiles="CN1C=NC2=C1C(=O)N(C(=O)N2C)C"), hf, lot + ) + cls.ethyne = ErrorCancelingSpecies(Molecule(smiles="C#C"), hf, lot) def test_initializing_constraint_map(self): """ Test that the constraint map is properly initialized when a SpeciesConstraints object is initialized """ caffeine_consts = SpeciesConstraints(self.caffeine, [self.butane, self.benzene]) - self.assertEqual(set(caffeine_consts.constraint_map.keys()), {'H', 'C', 'O', 'N', - 'C=O', 'C-N', 'C-H', 'C=C', 'C=N', 'C-C', - '5_ring', '6_ring'}) - - no_rings = SpeciesConstraints(self.caffeine, [self.butane, self.benzene], conserve_ring_size=False) - self.assertEqual(set(no_rings.constraint_map.keys()), {'H', 'C', 'O', 'N', - 'C=O', 'C-N', 'C-H', 'C=C', 'C=N', 'C-C'}) - - atoms_only = SpeciesConstraints(self.caffeine, [self.butane], conserve_ring_size=False, conserve_bonds=False) - self.assertEqual(set(atoms_only.constraint_map.keys()), {'H', 'C', 'O', 'N'}) + self.assertEqual( + set(caffeine_consts.constraint_map.keys()), + { + "H", + "C", + "O", + "N", + "C=O", + "C-N", + "C-H", + "C=C", + "C=N", + "C-C", + "5_ring", + "6_ring", + }, + ) + + no_rings = SpeciesConstraints( + self.caffeine, [self.butane, self.benzene], conserve_ring_size=False + ) + self.assertEqual( + set(no_rings.constraint_map.keys()), + {"H", "C", "O", "N", "C=O", "C-N", "C-H", "C=C", "C=N", "C-C"}, + ) + + atoms_only = SpeciesConstraints( + self.caffeine, [self.butane], conserve_ring_size=False, conserve_bonds=False + ) + self.assertEqual(set(atoms_only.constraint_map.keys()), {"H", "C", "O", "N"}) def test_enumerating_constraints(self): """ Test that a SpeciesConstraints object can properly enumerate the constraints of a given ErrorCancelingSpecies """ spcs_consts = SpeciesConstraints(self.benzene, []) - self.assertEqual(set(spcs_consts.constraint_map.keys()), {'C', 'H', 'C=C', 'C-C', 'C-H', '6_ring'}) + self.assertEqual( + set(spcs_consts.constraint_map.keys()), + {"C", "H", "C=C", "C-C", "C-H", "6_ring"}, + ) # Now that we have confirmed that the correct keys are present, overwrite the constraint map to set the order - spcs_consts.constraint_map = {'H': 0, 'C': 1, 'C=C': 2, 'C-C': 3, 'C-H': 4, '6_ring': 5} - - self.assertTrue(np.array_equal(spcs_consts._enumerate_constraints(self.propene), np.array([6, 3, 1, 1, 6, 0]))) - self.assertTrue(np.array_equal(spcs_consts._enumerate_constraints(self.butane), np.array([10, 4, 0, 3, 10, 0]))) - self.assertTrue(np.array_equal(spcs_consts._enumerate_constraints(self.benzene), np.array([6, 6, 3, 3, 6, 1]))) + spcs_consts.constraint_map = { + "H": 0, + "C": 1, + "C=C": 2, + "C-C": 3, + "C-H": 4, + "6_ring": 5, + } + + self.assertTrue( + np.array_equal( + spcs_consts._enumerate_constraints(self.propene), + np.array([6, 3, 1, 1, 6, 0]), + ) + ) + self.assertTrue( + np.array_equal( + spcs_consts._enumerate_constraints(self.butane), + np.array([10, 4, 0, 3, 10, 0]), + ) + ) + self.assertTrue( + np.array_equal( + spcs_consts._enumerate_constraints(self.benzene), + np.array([6, 6, 3, 3, 6, 1]), + ) + ) # Caffeine and ethyne should return None since they have features not found in benzene self.assertIs(spcs_consts._enumerate_constraints(self.caffeine), None) @@ -164,25 +231,68 @@ def test_calculating_constraints(self): """ Test that a SpeciesConstraints object can properly return the target constraint vector and the constraint matrix """ - spcs_consts = SpeciesConstraints(self.caffeine, [self.propene, self.butane, self.benzene, self.ethyne]) - self.assertEqual(set(spcs_consts.constraint_map.keys()), {'H', 'C', 'O', 'N', 'C=O', 'C-N', 'C-H', 'C=C', 'C=N', - 'C-C', '5_ring', '6_ring'}) + spcs_consts = SpeciesConstraints( + self.caffeine, [self.propene, self.butane, self.benzene, self.ethyne] + ) + self.assertEqual( + set(spcs_consts.constraint_map.keys()), + { + "H", + "C", + "O", + "N", + "C=O", + "C-N", + "C-H", + "C=C", + "C=N", + "C-C", + "5_ring", + "6_ring", + }, + ) # Now that we have confirmed that the correct keys are present, overwrite the constraint map to set the order - spcs_consts.constraint_map = ({'H': 0, 'C': 1, 'O': 2, 'N': 3, - 'C=O': 4, 'C-N': 5, 'C-H': 6, 'C=C': 7, 'C=N': 8, 'C-C': 9, - '5_ring': 10, '6_ring': 11}) + spcs_consts.constraint_map = { + "H": 0, + "C": 1, + "O": 2, + "N": 3, + "C=O": 4, + "C-N": 5, + "C-H": 6, + "C=C": 7, + "C=N": 8, + "C-C": 9, + "5_ring": 10, + "6_ring": 11, + } target_consts, consts_matrix = spcs_consts.calculate_constraints() # First, test that ethyne is not included in the reference set - self.assertEqual(spcs_consts.reference_species, [self.propene, self.butane, self.benzene]) + self.assertEqual( + spcs_consts.reference_species, [self.propene, self.butane, self.benzene] + ) # Then, test the output of the calculation - self.assertTrue(np.array_equal(target_consts, np.array([10, 8, 2, 4, 2, 10, 10, 1, 1, 1, 1, 1]))) - self.assertTrue(np.array_equal(consts_matrix, np.array([[6, 3, 0, 0, 0, 0, 6, 1, 0, 1, 0, 0], - [10, 4, 0, 0, 0, 0, 10, 0, 0, 3, 0, 0], - [6, 6, 0, 0, 0, 0, 6, 3, 0, 3, 0, 1]]))) + self.assertTrue( + np.array_equal( + target_consts, np.array([10, 8, 2, 4, 2, 10, 10, 1, 1, 1, 1, 1]) + ) + ) + self.assertTrue( + np.array_equal( + consts_matrix, + np.array( + [ + [6, 3, 0, 0, 0, 0, 6, 1, 0, 1, 0, 0], + [10, 4, 0, 0, 0, 0, 10, 0, 0, 3, 0, 0], + [6, 6, 0, 0, 0, 0, 6, 3, 0, 3, 0, 1], + ] + ), + ) + ) class TestErrorCancelingScheme(unittest.TestCase): @@ -198,42 +308,78 @@ def setUpClass(cls): pyo = None cls.pyo = pyo - lot = LevelOfTheory('test') - cls.propene = ErrorCancelingSpecies(Molecule(smiles='CC=C'), (100, 'kJ/mol'), lot, (105, 'kJ/mol')) - cls.propane = ErrorCancelingSpecies(Molecule(smiles='CCC'), (75, 'kJ/mol'), lot, (80, 'kJ/mol')) - cls.butane = ErrorCancelingSpecies(Molecule(smiles='CCCC'), (150, 'kJ/mol'), lot, (145, 'kJ/mol')) - cls.butene = ErrorCancelingSpecies(Molecule(smiles='C=CCC'), (175, 'kJ/mol'), lot, (180, 'kJ/mol')) - cls.pentane = ErrorCancelingSpecies(Molecule(smiles='CCCCC'), (200, 'kJ/mol'), lot, (190, 'kJ/mol')) - cls.pentene = ErrorCancelingSpecies(Molecule(smiles='C=CCCC'), (225, 'kJ/mol'), lot, (220, 'kJ/mol')) - cls.hexane = ErrorCancelingSpecies(Molecule(smiles='CCCCCC'), (250, 'kJ/mol'), lot, (260, 'kJ/mol')) - cls.hexene = ErrorCancelingSpecies(Molecule(smiles='C=CCCCC'), (275, 'kJ/mol'), lot, (275, 'kJ/mol')) - cls.benzene = ErrorCancelingSpecies(Molecule(smiles='c1ccccc1'), (-50, 'kJ/mol'), lot, (-80, 'kJ/mol')) - cls.caffeine = ErrorCancelingSpecies(Molecule(smiles='CN1C=NC2=C1C(=O)N(C(=O)N2C)C'), (300, 'kJ/mol'), lot) - cls.ethyne = ErrorCancelingSpecies(Molecule(smiles='C#C'), (200, 'kJ/mol'), lot) + lot = LevelOfTheory("test") + cls.propene = ErrorCancelingSpecies( + Molecule(smiles="CC=C"), (100, "kJ/mol"), lot, (105, "kJ/mol") + ) + cls.propane = ErrorCancelingSpecies( + Molecule(smiles="CCC"), (75, "kJ/mol"), lot, (80, "kJ/mol") + ) + cls.butane = ErrorCancelingSpecies( + Molecule(smiles="CCCC"), (150, "kJ/mol"), lot, (145, "kJ/mol") + ) + cls.butene = ErrorCancelingSpecies( + Molecule(smiles="C=CCC"), (175, "kJ/mol"), lot, (180, "kJ/mol") + ) + cls.pentane = ErrorCancelingSpecies( + Molecule(smiles="CCCCC"), (200, "kJ/mol"), lot, (190, "kJ/mol") + ) + cls.pentene = ErrorCancelingSpecies( + Molecule(smiles="C=CCCC"), (225, "kJ/mol"), lot, (220, "kJ/mol") + ) + cls.hexane = ErrorCancelingSpecies( + Molecule(smiles="CCCCCC"), (250, "kJ/mol"), lot, (260, "kJ/mol") + ) + cls.hexene = ErrorCancelingSpecies( + Molecule(smiles="C=CCCCC"), (275, "kJ/mol"), lot, (275, "kJ/mol") + ) + cls.benzene = ErrorCancelingSpecies( + Molecule(smiles="c1ccccc1"), (-50, "kJ/mol"), lot, (-80, "kJ/mol") + ) + cls.caffeine = ErrorCancelingSpecies( + Molecule(smiles="CN1C=NC2=C1C(=O)N(C(=O)N2C)C"), (300, "kJ/mol"), lot + ) + cls.ethyne = ErrorCancelingSpecies(Molecule(smiles="C#C"), (200, "kJ/mol"), lot) def test_creating_error_canceling_schemes(self): - scheme = ErrorCancelingScheme(self.propene, [self.butane, self.benzene, self.caffeine, self.ethyne], True, True) + scheme = ErrorCancelingScheme( + self.propene, + [self.butane, self.benzene, self.caffeine, self.ethyne], + True, + True, + ) self.assertEqual(scheme.reference_species, [self.butane]) - isodesmic_scheme = IsodesmicScheme(self.propene, [self.butane, self.benzene, self.caffeine, self.ethyne]) + isodesmic_scheme = IsodesmicScheme( + self.propene, [self.butane, self.benzene, self.caffeine, self.ethyne] + ) - self.assertEqual(isodesmic_scheme.reference_species, [self.butane, self.benzene]) + self.assertEqual( + isodesmic_scheme.reference_species, [self.butane, self.benzene] + ) def test_find_error_canceling_reaction(self): """ Test that the MILP problem can be solved to find a single isodesmic reaction """ - scheme = IsodesmicScheme(self.propene, [self.propane, self.butane, self.butene, self.caffeine, self.ethyne]) + scheme = IsodesmicScheme( + self.propene, + [self.propane, self.butane, self.butene, self.caffeine, self.ethyne], + ) # Note that caffeine and ethyne will not be allowed, so for the full set the indices are [0, 1, 2] - rxn, _ = scheme._find_error_canceling_reaction([0, 1, 2], milp_software=['lpsolve']) + rxn, _ = scheme._find_error_canceling_reaction( + [0, 1, 2], milp_software=["lpsolve"] + ) self.assertEqual(rxn.species[self.butane], -1) self.assertEqual(rxn.species[self.propane], 1) self.assertEqual(rxn.species[self.butene], 1) if self.pyo is not None: - rxn, _ = scheme._find_error_canceling_reaction([0, 1, 2], milp_software=['pyomo']) + rxn, _ = scheme._find_error_canceling_reaction( + [0, 1, 2], milp_software=["pyomo"] + ) self.assertEqual(rxn.species[self.butane], -1) self.assertEqual(rxn.species[self.propane], 1) self.assertEqual(rxn.species[self.butene], 1) @@ -242,39 +388,75 @@ def test_multiple_error_canceling_reactions(self): """ Test that multiple error canceling reactions can be found """ - scheme = IsodesmicScheme(self.propene, [self.propane, self.butane, self.butene, self.pentane, self.pentene, - self.hexane, self.hexene, self.benzene]) - - reaction_list = scheme.multiple_error_canceling_reaction_search(n_reactions_max=20) + scheme = IsodesmicScheme( + self.propene, + [ + self.propane, + self.butane, + self.butene, + self.pentane, + self.pentene, + self.hexane, + self.hexene, + self.benzene, + ], + ) + + reaction_list = scheme.multiple_error_canceling_reaction_search( + n_reactions_max=20 + ) self.assertEqual(len(reaction_list), 20) reaction_string = reaction_list.__repr__() # Consider both permutations of the products in the reaction string - rxn_str1 = ' 1*CCC + 1*C=CCC >' - rxn_str2 = ' 1*C=CCC + 1*CCC >' - self.assertTrue(any(rxn_string in reaction_string for rxn_string in [rxn_str1, rxn_str2])) + rxn_str1 = " 1*CCC + 1*C=CCC >" + rxn_str2 = " 1*C=CCC + 1*CCC >" + self.assertTrue( + any(rxn_string in reaction_string for rxn_string in [rxn_str1, rxn_str2]) + ) if self.pyo is not None: # pyomo is slower, so don't test as many - reaction_list = scheme.multiple_error_canceling_reaction_search(n_reactions_max=5, milp_software=['pyomo']) + reaction_list = scheme.multiple_error_canceling_reaction_search( + n_reactions_max=5, milp_software=["pyomo"] + ) self.assertEqual(len(reaction_list), 5) reaction_string = reaction_list.__repr__() - self.assertTrue(any(rxn_string in reaction_string for rxn_string in [rxn_str1, rxn_str2])) + self.assertTrue( + any( + rxn_string in reaction_string for rxn_string in [rxn_str1, rxn_str2] + ) + ) def test_calculate_target_enthalpy(self): """ Test that ErrorCancelingScheme is able to calculate thermochemistry for the target species """ - scheme = IsodesmicScheme(self.propene, [self.propane, self.butane, self.butene, self.pentane, self.pentene, - self.hexane, self.hexene, self.benzene]) - - target_thermo, rxn_list = scheme.calculate_target_enthalpy(n_reactions_max=3, milp_software=['lpsolve']) + scheme = IsodesmicScheme( + self.propene, + [ + self.propane, + self.butane, + self.butene, + self.pentane, + self.pentene, + self.hexane, + self.hexene, + self.benzene, + ], + ) + + target_thermo, rxn_list = scheme.calculate_target_enthalpy( + n_reactions_max=3, milp_software=["lpsolve"] + ) self.assertEqual(target_thermo.value_si, 115000.0) self.assertIsInstance(rxn_list[0], ErrorCancelingReaction) if self.pyo is not None: - target_thermo, _ = scheme.calculate_target_enthalpy(n_reactions_max=3, milp_software=['pyomo']) + target_thermo, _ = scheme.calculate_target_enthalpy( + n_reactions_max=3, milp_software=["pyomo"] + ) self.assertEqual(target_thermo.value_si, 115000.0) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/referenceTest.py b/test/arkane/encorr/referenceTest.py index e28aedc6b6..74e8554734 100644 --- a/test/arkane/encorr/referenceTest.py +++ b/test/arkane/encorr/referenceTest.py @@ -37,15 +37,20 @@ from arkane.encorr.isodesmic import ErrorCancelingSpecies from arkane.modelchem import LevelOfTheory -from arkane.encorr.reference import ReferenceSpecies, ReferenceDataEntry, CalculatedDataEntry, ReferenceDatabase +from arkane.encorr.reference import ( + ReferenceSpecies, + ReferenceDataEntry, + CalculatedDataEntry, + ReferenceDatabase, +) from rmgpy.species import Species from rmgpy.thermo import ThermoData ################################################################################ FILE_DIR = os.path.dirname(os.path.abspath(__file__)) -DATA_DIR = os.path.join(os.path.dirname(FILE_DIR), 'data') -SPECIES_DIR = os.path.join(DATA_DIR, 'species') +DATA_DIR = os.path.join(os.path.dirname(FILE_DIR), "data") +SPECIES_DIR = os.path.join(DATA_DIR, "species") class TestReferenceSpecies(unittest.TestCase): @@ -55,12 +60,16 @@ class TestReferenceSpecies(unittest.TestCase): @classmethod def setUpClass(cls): - cls.methane = Species(smiles='C') - cls.ethane = Species(smiles='CC') - cls.propane = Species(smiles='CCC') - - cls.thermo_data = ThermoData(H298=(100.0, 'kJ/mol'), S298=(100.0, 'J/(mol*K)')) - cls.xyz_dict = {'symbols': ('H', 'H'), 'isotopes': (1, 1), 'coords': ((0.0, 0.0, 0.0), (0.708, 0.0, 0.0))} + cls.methane = Species(smiles="C") + cls.ethane = Species(smiles="CC") + cls.propane = Species(smiles="CCC") + + cls.thermo_data = ThermoData(H298=(100.0, "kJ/mol"), S298=(100.0, "J/(mol*K)")) + cls.xyz_dict = { + "symbols": ("H", "H"), + "isotopes": (1, 1), + "coords": ((0.0, 0.0, 0.0), (0.708, 0.0, 0.0)), + } cls.t1_diagnostic = 0.101 def test_instantiate_reference_species(self): @@ -69,21 +78,29 @@ def test_instantiate_reference_species(self): if the minimal acceptable input is not given. """ ref_spcs = ReferenceSpecies(species=self.ethane) - self.assertEqual(ref_spcs.smiles, 'CC') + self.assertEqual(ref_spcs.smiles, "CC") self.assertEqual(ref_spcs.inchi_key, self.ethane.molecule[0].to_inchi_key()) - ref_from_smiles = ReferenceSpecies(smiles='CCC') - self.assertEqual(ref_from_smiles.smiles, 'CCC') - self.assertEqual(ref_from_smiles.inchi_key, self.propane.molecule[0].to_inchi_key()) - - ref_from_inchi = ReferenceSpecies(inchi='InChI=1S/C2H6/c1-2/h1-2H3') - self.assertEqual(ref_from_inchi.smiles, 'CC') - self.assertEqual(ref_from_inchi.inchi_key, self.ethane.molecule[0].to_inchi_key()) - - ref_from_adj = ReferenceSpecies(adjacency_list='1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S}\n2 H u0 p0 c0 {1,S}\n' - '3 H u0 p0 c0 {1,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n') - self.assertEqual(ref_from_adj.smiles, 'C') - self.assertEqual(ref_from_adj.inchi_key, self.methane.molecule[0].to_inchi_key()) + ref_from_smiles = ReferenceSpecies(smiles="CCC") + self.assertEqual(ref_from_smiles.smiles, "CCC") + self.assertEqual( + ref_from_smiles.inchi_key, self.propane.molecule[0].to_inchi_key() + ) + + ref_from_inchi = ReferenceSpecies(inchi="InChI=1S/C2H6/c1-2/h1-2H3") + self.assertEqual(ref_from_inchi.smiles, "CC") + self.assertEqual( + ref_from_inchi.inchi_key, self.ethane.molecule[0].to_inchi_key() + ) + + ref_from_adj = ReferenceSpecies( + adjacency_list="1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S}\n2 H u0 p0 c0 {1,S}\n" + "3 H u0 p0 c0 {1,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n" + ) + self.assertEqual(ref_from_adj.smiles, "C") + self.assertEqual( + ref_from_adj.inchi_key, self.methane.molecule[0].to_inchi_key() + ) with self.assertRaises(ValueError): ReferenceSpecies() @@ -93,26 +110,26 @@ def load_ref_from_yaml(self): Test that the example ReferenceSpecies YAML file can be loaded """ ref_spcs = ReferenceSpecies.__new__(ReferenceSpecies) - ref_spcs.load_yaml(os.path.join(SPECIES_DIR, 'reference_species_example.yml')) + ref_spcs.load_yaml(os.path.join(SPECIES_DIR, "reference_species_example.yml")) - self.assertEqual(ref_spcs.smiles, 'C#C[CH2]') - self.assertEqual(ref_spcs.label, 'example_reference_species') + self.assertEqual(ref_spcs.smiles, "C#C[CH2]") + self.assertEqual(ref_spcs.label, "example_reference_species") self.assertIsInstance(ref_spcs.calculated_data, CalculatedDataEntry) def test_save_ref_to_yaml(self): """ Test that a ReferenceSpecies object can be saved to a YAML file successfully """ - label = 'test_reference_species' + label = "test_reference_species" ref_spcs = ReferenceSpecies(species=self.ethane, label=label) self.assertEqual(ref_spcs.label, label) ref_spcs.save_yaml(path=SPECIES_DIR) loaded_ref = ReferenceSpecies.__new__(ReferenceSpecies) - load_path = os.path.join(SPECIES_DIR, f'{label}.yml') + load_path = os.path.join(SPECIES_DIR, f"{label}.yml") loaded_ref.load_yaml(path=load_path) - self.assertEqual(loaded_ref.smiles, 'CC') + self.assertEqual(loaded_ref.smiles, "CC") # Finally, delete this newly created file os.remove(load_path) @@ -126,13 +143,15 @@ def test_reference_data_entry(self): self.assertEqual(data_entry.thermo_data.H298.value_si, 100000.0) with self.assertRaises(ValueError): - ReferenceDataEntry({'H298': (100.0, 'kJ/mol')}) + ReferenceDataEntry({"H298": (100.0, "kJ/mol")}) def test_calculated_data_entry(self): """ Test that the CalculatedDataEntry class functions properly and enforces the standard for storing data """ - data_entry = CalculatedDataEntry(self.thermo_data, xyz_dict=self.xyz_dict, t1_diagnostic=self.t1_diagnostic) + data_entry = CalculatedDataEntry( + self.thermo_data, xyz_dict=self.xyz_dict, t1_diagnostic=self.t1_diagnostic + ) self.assertEqual(data_entry.thermo_data.H298.value_si, 100000.0) self.assertIsInstance(data_entry.xyz_dict, dict) @@ -154,21 +173,25 @@ def test_load_main_reference_set(self): """ Test that the main reference set can be loaded properly """ - self.assertIn('main', self.database.reference_sets) - self.assertIsInstance(self.database.reference_sets['main'][0], ReferenceSpecies) + self.assertIn("main", self.database.reference_sets) + self.assertIsInstance(self.database.reference_sets["main"][0], ReferenceSpecies) # Also test that calling load again appends a new set in the database data_dir = os.path.join(DATA_DIR) - testing_dir = os.path.join(data_dir, 'testing_set') - example_ref_file = os.path.join(data_dir, 'species', 'reference_species_example.yml') - spcs_file = os.path.join(testing_dir, '0.yml') - if os.path.exists(testing_dir): # Delete the testing directory if it existed previously + testing_dir = os.path.join(data_dir, "testing_set") + example_ref_file = os.path.join( + data_dir, "species", "reference_species_example.yml" + ) + spcs_file = os.path.join(testing_dir, "0.yml") + if os.path.exists( + testing_dir + ): # Delete the testing directory if it existed previously shutil.rmtree(testing_dir) os.mkdir(testing_dir) shutil.copyfile(example_ref_file, spcs_file) self.database.load(paths=[testing_dir]) - self.assertIn('main', self.database.reference_sets) - self.assertIn('testing_set', self.database.reference_sets) + self.assertIn("main", self.database.reference_sets) + self.assertIn("testing_set", self.database.reference_sets) # Finally, remove the testing directory shutil.rmtree(testing_dir) @@ -178,51 +201,71 @@ def test_extract_level_of_theory(self): Test that a given level of theory can be extracted from the reference set database """ # Create a quick example database - ref_data_1 = ReferenceDataEntry(ThermoData(H298=(100, 'kJ/mol', '+|-', 2))) - ref_data_2 = ReferenceDataEntry(ThermoData(H298=(25, 'kcal/mol', '+|-', 1))) - - calc_data_1 = CalculatedDataEntry(ThermoData(H298=(110, 'kJ/mol'))) - calc_data_2 = CalculatedDataEntry(ThermoData(H298=(120, 'kJ/mol'))) - - ethane = ReferenceSpecies(smiles='CC', - reference_data={'precise': ref_data_1, 'less_precise': ref_data_2}, - calculated_data={LevelOfTheory('good_chem'): calc_data_1, - LevelOfTheory('bad_chem'): calc_data_2}, - preferred_reference='less_precise') - - propane = ReferenceSpecies(smiles='CCC', - reference_data={'precise': ref_data_1, 'less_precise': ref_data_2}, - calculated_data={LevelOfTheory('good_chem'): calc_data_1, - LevelOfTheory('bad_chem'): calc_data_2}) - - butane = ReferenceSpecies(smiles='CCCC', - reference_data={'precise': ref_data_1, 'less_precise': ref_data_2}, - calculated_data={LevelOfTheory('bad_chem'): calc_data_2}) + ref_data_1 = ReferenceDataEntry(ThermoData(H298=(100, "kJ/mol", "+|-", 2))) + ref_data_2 = ReferenceDataEntry(ThermoData(H298=(25, "kcal/mol", "+|-", 1))) + + calc_data_1 = CalculatedDataEntry(ThermoData(H298=(110, "kJ/mol"))) + calc_data_2 = CalculatedDataEntry(ThermoData(H298=(120, "kJ/mol"))) + + ethane = ReferenceSpecies( + smiles="CC", + reference_data={"precise": ref_data_1, "less_precise": ref_data_2}, + calculated_data={ + LevelOfTheory("good_chem"): calc_data_1, + LevelOfTheory("bad_chem"): calc_data_2, + }, + preferred_reference="less_precise", + ) + + propane = ReferenceSpecies( + smiles="CCC", + reference_data={"precise": ref_data_1, "less_precise": ref_data_2}, + calculated_data={ + LevelOfTheory("good_chem"): calc_data_1, + LevelOfTheory("bad_chem"): calc_data_2, + }, + ) + + butane = ReferenceSpecies( + smiles="CCCC", + reference_data={"precise": ref_data_1, "less_precise": ref_data_2}, + calculated_data={LevelOfTheory("bad_chem"): calc_data_2}, + ) database = ReferenceDatabase() - database.reference_sets = {'testing_1': [ethane, butane], 'testing_2': [propane]} + database.reference_sets = { + "testing_1": [ethane, butane], + "testing_2": [propane], + } - model_chem_list = database.extract_level_of_theory(LevelOfTheory('good_chem')) + model_chem_list = database.extract_level_of_theory(LevelOfTheory("good_chem")) self.assertEqual(len(model_chem_list), 2) self.assertIsInstance(model_chem_list[0], ErrorCancelingSpecies) for spcs in model_chem_list: smiles = spcs.molecule.to_smiles() - self.assertNotIn(smiles, ['CCCC']) - self.assertIn(smiles, ['CC', 'CCC']) + self.assertNotIn(smiles, ["CCCC"]) + self.assertIn(smiles, ["CC", "CCC"]) - if smiles == 'CC': # Test that `less_precise` is the source since it was set manually as preferred - self.assertAlmostEqual(spcs.high_level_hf298.value_si, 25.0*4184.0) + if ( + smiles == "CC" + ): # Test that `less_precise` is the source since it was set manually as preferred + self.assertAlmostEqual(spcs.high_level_hf298.value_si, 25.0 * 4184.0) - if smiles == 'CCC': # Test that `precise` is the source since it has the lowest uncertainty - self.assertAlmostEqual(spcs.high_level_hf298.value_si, 100.0*1000.0) + if ( + smiles == "CCC" + ): # Test that `precise` is the source since it has the lowest uncertainty + self.assertAlmostEqual(spcs.high_level_hf298.value_si, 100.0 * 1000.0) def test_list_available_chemistry(self): """ Test that a set of available levels of theory can be return for the reference database """ level_of_theory_list = self.database.list_available_chemistry() - self.assertIn(LevelOfTheory(method='wb97m-v', basis='def2-tzvpd', software='qchem'), level_of_theory_list) + self.assertIn( + LevelOfTheory(method="wb97m-v", basis="def2-tzvpd", software="qchem"), + level_of_theory_list, + ) def test_get_species_from_index(self): """ @@ -237,11 +280,11 @@ def test_get_species_from_label(self): """ Test that we can retrieve a list of species with specific labels """ - test_labels = ['1-Butene', 'Acetic acid', 'Ethanol'] + test_labels = ["1-Butene", "Acetic acid", "Ethanol"] retrieved_species = self.database.get_species_from_label(test_labels) self.assertEqual(len(retrieved_species), 3) - self.assertEqual(retrieved_species[0].label, '1-Butene') + self.assertEqual(retrieved_species[0].label, "1-Butene") -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/factoryTest.py b/test/arkane/ess/factoryTest.py index e41845036b..250dbeadc0 100644 --- a/test/arkane/ess/factoryTest.py +++ b/test/arkane/ess/factoryTest.py @@ -46,34 +46,47 @@ class TestThermo(unittest.TestCase): """ Contains unit tests of the factory module. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data')) + cls.data_path = os.path.abspath( + os.path.join(os.path.dirname(os.path.dirname(__file__)), "data") + ) def test_ess_factory(self): """Test identifying the electronic structure software from the log file""" - gaussian_log_path1 = os.path.join(self.data_path, 'gaussian', 'ethylene_G3.log') - gaussian_log_path2 = os.path.join(self.data_path, 'gaussian', 'oxygen.log') - molpro_log_path1 = os.path.join(self.data_path, 'molpro', 'HOSI_ccsd_t1.out') - molpro_log_path2 = os.path.join(self.data_path, 'molpro', 'molpro_mrci+q.out') - orca_path_1 = os.path.join(self.data_path, 'orca', 'Orca_dlpno_test.log') - orca_path_2 = os.path.join(self.data_path, 'orca', 'Orca_opt_freq_test.log') - orca_path_3 = os.path.join(self.data_path, 'orca', 'Orca_TS_test.log') - psi4_path_1 = os.path.join(self.data_path, 'psi4', 'opt_freq.out') - psi4_path_2 = os.path.join(self.data_path, 'psi4', 'opt_freq_dft.out') - psi4_path_3 = os.path.join(self.data_path, 'psi4', 'opt_freq_dft_ts.out') - psi4_path_4 = os.path.join(self.data_path, 'psi4', 'opt_freq_ts.out') - qchem_log_path1 = os.path.join(self.data_path, 'qchem', 'CH4_sp.out') - qchem_log_path2 = os.path.join(self.data_path, 'qchem', 'co.out') - terachem_log_path_1 = os.path.join(self.data_path, 'terachem', 'ethane_minimize_output.out') - terachem_log_path_2 = os.path.join(self.data_path, 'terachem', 'formaldehyde_sp_terachem_output.out') - terachem_log_path_3 = os.path.join(self.data_path, 'terachem', 'formaldehyde_sp_terachem_results.dat') - terachem_log_path_4 = os.path.join(self.data_path, 'terachem', 'formaldehyde_coords.xyz') - terachem_log_path_5 = os.path.join(self.data_path, 'terachem', 'formaldehyde_output.geometry') - non_ess_log_path = os.path.abspath(os.path.join(self.data_path, 'methoxy.py')) + gaussian_log_path1 = os.path.join(self.data_path, "gaussian", "ethylene_G3.log") + gaussian_log_path2 = os.path.join(self.data_path, "gaussian", "oxygen.log") + molpro_log_path1 = os.path.join(self.data_path, "molpro", "HOSI_ccsd_t1.out") + molpro_log_path2 = os.path.join(self.data_path, "molpro", "molpro_mrci+q.out") + orca_path_1 = os.path.join(self.data_path, "orca", "Orca_dlpno_test.log") + orca_path_2 = os.path.join(self.data_path, "orca", "Orca_opt_freq_test.log") + orca_path_3 = os.path.join(self.data_path, "orca", "Orca_TS_test.log") + psi4_path_1 = os.path.join(self.data_path, "psi4", "opt_freq.out") + psi4_path_2 = os.path.join(self.data_path, "psi4", "opt_freq_dft.out") + psi4_path_3 = os.path.join(self.data_path, "psi4", "opt_freq_dft_ts.out") + psi4_path_4 = os.path.join(self.data_path, "psi4", "opt_freq_ts.out") + qchem_log_path1 = os.path.join(self.data_path, "qchem", "CH4_sp.out") + qchem_log_path2 = os.path.join(self.data_path, "qchem", "co.out") + terachem_log_path_1 = os.path.join( + self.data_path, "terachem", "ethane_minimize_output.out" + ) + terachem_log_path_2 = os.path.join( + self.data_path, "terachem", "formaldehyde_sp_terachem_output.out" + ) + terachem_log_path_3 = os.path.join( + self.data_path, "terachem", "formaldehyde_sp_terachem_results.dat" + ) + terachem_log_path_4 = os.path.join( + self.data_path, "terachem", "formaldehyde_coords.xyz" + ) + terachem_log_path_5 = os.path.join( + self.data_path, "terachem", "formaldehyde_output.geometry" + ) + non_ess_log_path = os.path.abspath(os.path.join(self.data_path, "methoxy.py")) self.assertIsInstance(ess_factory(gaussian_log_path1), GaussianLog) self.assertIsInstance(ess_factory(gaussian_log_path2), GaussianLog) @@ -90,15 +103,21 @@ def test_ess_factory(self): self.assertIsInstance(ess_factory(qchem_log_path1), QChemLog) self.assertIsInstance(ess_factory(qchem_log_path2), QChemLog) - for terachem_path in [terachem_log_path_1, terachem_log_path_2, terachem_log_path_3, - terachem_log_path_4, terachem_log_path_5]: + for terachem_path in [ + terachem_log_path_1, + terachem_log_path_2, + terachem_log_path_3, + terachem_log_path_4, + terachem_log_path_5, + ]: self.assertIsInstance(ess_factory(terachem_path), TeraChemLog) with self.assertRaises(InputError): ess_factory(non_ess_log_path) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/molproTest.py b/test/arkane/ess/molproTest.py index cfc568e4a3..fbcac3d477 100644 --- a/test/arkane/ess/molproTest.py +++ b/test/arkane/ess/molproTest.py @@ -37,7 +37,12 @@ import numpy as np import rmgpy.constants as constants -from rmgpy.statmech import IdealGasTranslation, NonlinearRotor, HarmonicOscillator, HinderedRotor +from rmgpy.statmech import ( + IdealGasTranslation, + NonlinearRotor, + HarmonicOscillator, + HinderedRotor, +) from arkane.ess.molpro import MolproLog from arkane.exceptions import LogError @@ -49,12 +54,15 @@ class MolproLogTest(unittest.TestCase): """ Contains unit tests for the molpro module, used for parsing Molpro log files. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data', 'molpro') + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "data", "molpro" + ) def test_check_for_errors(self): """ @@ -62,16 +70,16 @@ def test_check_for_errors(self): to test if errors are properly parsed. """ with self.assertRaises(LogError): - MolproLog(os.path.join(self.data_path, 'insufficient_memory.out')) + MolproLog(os.path.join(self.data_path, "insufficient_memory.out")) with self.assertRaises(LogError): - MolproLog(os.path.join(self.data_path, 'unrecognized_basis_set.out')) + MolproLog(os.path.join(self.data_path, "unrecognized_basis_set.out")) def test_number_of_atoms_from_molpro_log(self): """ Uses a Molpro log file for ethylene_dz (C2H4) to test that the number of atoms can be properly read. """ - log = MolproLog(os.path.join(self.data_path, 'ethylene_f12_dz.out')) + log = MolproLog(os.path.join(self.data_path, "ethylene_f12_dz.out")) self.assertEqual(log.get_number_of_atoms(), 6) def test_load_dz_from_molpro_log_f12(self): @@ -79,7 +87,7 @@ def test_load_dz_from_molpro_log_f12(self): Uses a Molpro log file for ethylene_dz (C2H4) to test that F12a energy can be properly read. """ - log = MolproLog(os.path.join(self.data_path, 'ethylene_f12_dz.out')) + log = MolproLog(os.path.join(self.data_path, "ethylene_f12_dz.out")) e0 = log.load_energy() self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -78.474353559604, 5) @@ -89,7 +97,7 @@ def test_load_qz_from_molpro_log_f12(self): Uses a Molpro log file for ethylene_qz (C2H4) to test that F12b energy can be properly read. """ - log = MolproLog(os.path.join(self.data_path, 'ethylene_f12_qz.out')) + log = MolproLog(os.path.join(self.data_path, "ethylene_f12_qz.out")) e0 = log.load_energy() self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -78.472682755635, 5) @@ -99,7 +107,7 @@ def test_load_rad_from_molpro_log_f12(self): Uses a Molpro log file for OH (C2H4) to test that radical energy can be properly read. """ - log = MolproLog(os.path.join(self.data_path, 'OH_f12.out')) + log = MolproLog(os.path.join(self.data_path, "OH_f12.out")) e0 = log.load_energy() self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -75.663696424380, 5) @@ -109,23 +117,57 @@ def test_load_hosi_from_molpro_log(self): Uses a molpro log file for HOSI to test that its molecular degrees of freedom can be properly read. """ - log = MolproLog(os.path.join(self.data_path, 'HOSI_ccsd_t1.out')) + log = MolproLog(os.path.join(self.data_path, "HOSI_ccsd_t1.out")) conformer, unscaled_frequencies = log.load_conformer(spin_multiplicity=1) e0 = log.load_energy() - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) == 0) - - trans = [mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)][0] + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) + == 0 + ) + + trans = [ + mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation) + ][0] rot = [mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)][0] - vib = [mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)][0] + vib = [ + mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator) + ][0] t_list = np.array([298.15], np.float64) - self.assertAlmostEqual(trans.get_partition_function(t_list), 9.175364e7, delta=1e1) - self.assertAlmostEqual(rot.get_partition_function(t_list), 1.00005557e5, delta=1e-2) - self.assertAlmostEqual(vib.get_partition_function(t_list), 1.9734989e0, delta=1e-4) + self.assertAlmostEqual( + trans.get_partition_function(t_list), 9.175364e7, delta=1e1 + ) + self.assertAlmostEqual( + rot.get_partition_function(t_list), 1.00005557e5, delta=1e-2 + ) + self.assertAlmostEqual( + vib.get_partition_function(t_list), 1.9734989e0, delta=1e-4 + ) self.assertAlmostEqual(e0 / constants.Na / constants.E_h, -768.275662, 4) self.assertEqual(conformer.spin_multiplicity, 1) @@ -135,7 +177,9 @@ def test_load_non_f12_e0(self): """ Load E0 for CCSD(T) (without F12) from a molpro output file """ - molpro_log = MolproLog(os.path.join(self.data_path, 'TS_CCSD(T)_no_F12_sp_molpro.out')) + molpro_log = MolproLog( + os.path.join(self.data_path, "TS_CCSD(T)_no_F12_sp_molpro.out") + ) e0 = molpro_log.load_energy() self.assertAlmostEqual(e0, -301585968.58196217, places=7) @@ -143,8 +187,8 @@ def test_load_mrci_e0(self): """ Load the MRCI and MRCI+Davidson energies from a molpro output file """ - mrci_log = MolproLog(os.path.join(self.data_path, 'molpro_mrci.out')) - mrciq_log = MolproLog(os.path.join(self.data_path, 'molpro_mrci+q.out')) + mrci_log = MolproLog(os.path.join(self.data_path, "molpro_mrci.out")) + mrciq_log = MolproLog(os.path.join(self.data_path, "molpro_mrci+q.out")) mrci_e0 = mrci_log.load_energy() mrciq_e0 = mrciq_log.load_energy() self.assertAlmostEqual(mrci_e0, -293217091.0381712, places=7) @@ -154,7 +198,7 @@ def test_load_negative_frequency(self): """ Load an imaginary frequency from a molpro output file """ - freq_log = MolproLog(os.path.join(self.data_path, 'molpro_TS.out')) + freq_log = MolproLog(os.path.join(self.data_path, "molpro_TS.out")) imaginary_freq = freq_log.load_negative_frequency() self.assertEqual(imaginary_freq, -1997.98) @@ -162,7 +206,7 @@ def test_get_d1_diagnostic(self): """ Ensure molpro can retrieve the T1 diagnostic from CCSD calculations """ - log = MolproLog(os.path.join(self.data_path, 'ethylene_f12_dz.out')) + log = MolproLog(os.path.join(self.data_path, "ethylene_f12_dz.out")) d1_diagnostic = log.get_D1_diagnostic() self.assertAlmostEqual(d1_diagnostic, 0.03369031) @@ -170,12 +214,13 @@ def test_get_t1_diagnostic(self): """ Ensure molpro can retrieve the T1 diagnostic from CCSD calculations """ - log = MolproLog(os.path.join(self.data_path, 'ethylene_f12_dz.out')) + log = MolproLog(os.path.join(self.data_path, "ethylene_f12_dz.out")) t1_diagnostic = log.get_T1_diagnostic() self.assertAlmostEqual(t1_diagnostic, 0.01152184) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/orcaTest.py b/test/arkane/ess/orcaTest.py index 88cf6a8a9e..5067da711a 100644 --- a/test/arkane/ess/orcaTest.py +++ b/test/arkane/ess/orcaTest.py @@ -45,12 +45,15 @@ class OrcaTest(unittest.TestCase): """ Contains unit tests for the orca module, used for parsing Orca log files. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data', 'orca') + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "data", "orca" + ) def test_check_for_errors(self): """ @@ -58,16 +61,16 @@ def test_check_for_errors(self): to test if errors are properly parsed. """ with self.assertRaises(LogError): - OrcaLog(os.path.join(self.data_path, 'Orca_scf_error.log')) + OrcaLog(os.path.join(self.data_path, "Orca_scf_error.log")) def test_number_of_atoms_from_orca_log(self): """ Uses Orca log files to test that number of atoms can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) self.assertEqual(log.get_number_of_atoms(), 3) - log = OrcaLog(os.path.join(self.data_path, 'Orca_dlpno_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_dlpno_test.log")) self.assertEqual(log.get_number_of_atoms(), 30) def test_read_coordinates_from_orca_log(self): @@ -75,10 +78,10 @@ def test_read_coordinates_from_orca_log(self): Uses Orca log files to test that coordinate can be properly read. """ - log1 = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) + log1 = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) coord, number, mass = log1.load_geometry() self.assertEqual(len(coord), 3) - log2 = OrcaLog(os.path.join(self.data_path, 'Orca_dlpno_test.log')) + log2 = OrcaLog(os.path.join(self.data_path, "Orca_dlpno_test.log")) coord, number, mass = log2.load_geometry() self.assertEqual(len(coord), 30) @@ -87,11 +90,11 @@ def test_energy_from_orca_log(self): Uses Orca log files to test that molecular energies can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) self.assertAlmostEqual(log.load_energy(), -200656222.56292167, delta=1e-3) - log = OrcaLog(os.path.join(self.data_path, 'Orca_TS_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_TS_test.log")) self.assertAlmostEqual(log.load_energy(), -88913623.10592663, delta=1e-3) - log = OrcaLog(os.path.join(self.data_path, 'Orca_dlpno_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_dlpno_test.log")) self.assertAlmostEqual(log.load_energy(), -1816470909.1153, delta=1e-3) def test_load_zero_point_energy_from_orca_log(self): @@ -99,17 +102,21 @@ def test_load_zero_point_energy_from_orca_log(self): Uses Orca log files to test that molecular zero point_energy can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) - self.assertAlmostEqual(log.load_zero_point_energy(), 55502.673180815, delta=1e-3) - log = OrcaLog(os.path.join(self.data_path, 'Orca_TS_test.log')) - self.assertAlmostEqual(log.load_zero_point_energy(), 93500.08860598055, delta=1e-3) + log = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) + self.assertAlmostEqual( + log.load_zero_point_energy(), 55502.673180815, delta=1e-3 + ) + log = OrcaLog(os.path.join(self.data_path, "Orca_TS_test.log")) + self.assertAlmostEqual( + log.load_zero_point_energy(), 93500.08860598055, delta=1e-3 + ) def test_load_negative_frequency_from_orca_log(self): """ Uses an Orca log file for npropyl to test that its negative frequency can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_TS_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_TS_test.log")) self.assertAlmostEqual(log.load_negative_frequency(), -503.24, delta=1e-1) def test_T1_diagnostic_from_orca_log(self): @@ -117,18 +124,18 @@ def test_T1_diagnostic_from_orca_log(self): Uses an Orca log file for a DLPNO calculation to test that its T1_diagnostic of freedom can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_dlpno_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_dlpno_test.log")) self.assertAlmostEqual(log.get_T1_diagnostic(), 0.009872238, delta=1e-3) def test_load_vibrations_from_orca_log(self): """ Test that molecular energies can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(len(conformer.modes[2]._frequencies.value), 3) self.assertEqual(conformer.modes[2]._frequencies.value[1], 3780.96) - log = OrcaLog(os.path.join(self.data_path, 'Orca_TS_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_TS_test.log")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(len(conformer.modes[2]._frequencies.value), 11) self.assertEqual(conformer.modes[2]._frequencies.value[2], 331.23) @@ -137,26 +144,48 @@ def test_load_modes_from_orca_log(self): """ Test that molecular modes can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) conformer, unscaled_frequencies = log.load_conformer() - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) self.assertEqual(len(unscaled_frequencies), 3) def test_spin_multiplicity_from_orca_log(self): """ Test that molecular degrees of freedom can be properly read. """ - log = OrcaLog(os.path.join(self.data_path, 'Orca_opt_freq_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_opt_freq_test.log")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) - log = OrcaLog(os.path.join(self.data_path, 'Orca_TS_test.log')) + log = OrcaLog(os.path.join(self.data_path, "Orca_TS_test.log")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/psi4Test.py b/test/arkane/ess/psi4Test.py index 163cd0a23d..c9058d7e59 100644 --- a/test/arkane/ess/psi4Test.py +++ b/test/arkane/ess/psi4Test.py @@ -36,7 +36,12 @@ import numpy as np -from rmgpy.statmech import IdealGasTranslation, NonlinearRotor, HarmonicOscillator, HinderedRotor +from rmgpy.statmech import ( + IdealGasTranslation, + NonlinearRotor, + HarmonicOscillator, + HinderedRotor, +) from arkane.exceptions import LogError from arkane.ess.psi4 import Psi4Log @@ -48,32 +53,35 @@ class Psi4LogTest(unittest.TestCase): """ Contains unit tests for the Psi4Log module, used for parsing Psi4 log files. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data', 'psi4') + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "data", "psi4" + ) def test_check_for_errors(self): """ Uses Psi4 log files that had various errors to test if errors are properly parsed. """ with self.assertRaises(LogError): - Psi4Log(os.path.join(self.data_path, 'IO_error.out')) + Psi4Log(os.path.join(self.data_path, "IO_error.out")) def test_number_of_atoms_from_psi4_log(self): """ Uses a Psi4 log files to test that number of atoms can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) self.assertEqual(log.get_number_of_atoms(), 3) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_ts.out")) self.assertEqual(log.get_number_of_atoms(), 4) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft.out")) self.assertEqual(log.get_number_of_atoms(), 3) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) self.assertEqual(log.get_number_of_atoms(), 4) def test_energy_from_psi4_log(self): @@ -81,88 +89,536 @@ def test_energy_from_psi4_log(self): Uses a Psi4 log files to test that molecular energies can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) self.assertAlmostEqual(log.load_energy(), -199599899.9822719, delta=1e-2) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_ts.out")) self.assertAlmostEqual(log.load_energy(), -395828407.5987777, delta=1e-2) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft.out")) self.assertAlmostEqual(log.load_energy(), -200640009.37231186, delta=1e-2) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) self.assertAlmostEqual(log.load_energy(), -397841662.56434655, delta=1e-2) def test_zero_point_energy_from_psi4_log(self): """ Uses Psi4 log files to test that zero-point energies can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) self.assertAlmostEqual(log.load_zero_point_energy(), 60868.832, delta=1e-3) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft.out")) self.assertAlmostEqual(log.load_zero_point_energy(), 56107.44, delta=1e-3) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) self.assertAlmostEqual(log.load_zero_point_energy(), 67328.928, delta=1e-3) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_ts.out")) self.assertAlmostEqual(log.load_zero_point_energy(), 75136.272, delta=1e-3) def test_load_force_constant_matrix_from_psi4_log(self): """ Uses Psi4 log files to test that force constant matrices can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) - expected_mat_1 = np.array([[79.60709821, 0., 0., -158.56969492, 0., -119.50250089, -158.56969492, 0., 119.50250089], - [0., 0., 0., 0., 0., 0., 0., 0., 0.], - [0., 0., 51.88196366, -92.52464457, 0., -103.3438893, 92.52464457, 0., -103.3438893], - [-158.56969492, 0., -92.52464457, 682.40616438, 0., 422.33771249, -50.69495535, 0., -53.73729893], - [0., 0., 0., 0., 0., 0., 0., 0., 0.], - [-119.50250089, 0., -103.3438893, 422.33771249, 0., 385.24274073, 53.73729893, 0., 26.45946547], - [-158.56969492, 0., 92.52464457, -50.69495535, 0., 53.73729893, 682.40616438, 0., -422.33771249], - [0., 0., 0., 0., 0., 0., 0., 0., 0.], - [119.50250089, 0., -103.3438893, -53.73729893, 0., 26.45946547, -422.33771249, 0., 385.24274073]], - np.float64) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) + expected_mat_1 = np.array( + [ + [ + 79.60709821, + 0.0, + 0.0, + -158.56969492, + 0.0, + -119.50250089, + -158.56969492, + 0.0, + 119.50250089, + ], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [ + 0.0, + 0.0, + 51.88196366, + -92.52464457, + 0.0, + -103.3438893, + 92.52464457, + 0.0, + -103.3438893, + ], + [ + -158.56969492, + 0.0, + -92.52464457, + 682.40616438, + 0.0, + 422.33771249, + -50.69495535, + 0.0, + -53.73729893, + ], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [ + -119.50250089, + 0.0, + -103.3438893, + 422.33771249, + 0.0, + 385.24274073, + 53.73729893, + 0.0, + 26.45946547, + ], + [ + -158.56969492, + 0.0, + 92.52464457, + -50.69495535, + 0.0, + 53.73729893, + 682.40616438, + 0.0, + -422.33771249, + ], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [ + 119.50250089, + 0.0, + -103.3438893, + -53.73729893, + 0.0, + 26.45946547, + -422.33771249, + 0.0, + 385.24274073, + ], + ], + np.float64, + ) self.assertTrue(np.allclose(log.load_force_constant_matrix(), expected_mat_1)) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft.out')) - expected_mat_2 = np.array([[65.29227021, 0., 0., -130.05593215, 0., -102.09767406, -130.05593215, 0., 102.09767406], - [0., 0., 0., 0., 0., 0., 0., 0., 0.], - [0., 0., 44.51008758, -77.12673693, 0., -88.65982001, 77.12673693, 0., -88.65982001], - [-130.05593215, 0., -77.12673693, 567.48290169, 0., 356.99781537, -49.36504715, 0., -49.73970876], - [0., 0., 0., 0., 0., 0., 0., 0., 0.], - [-102.09767406, 0., -88.65982001, 356.99781537, 0., 336.25221646, 49.73970876, 0., 16.95147799], - [-130.05593215, 0., 77.12673693, -49.36504715, 0., 49.73970876, 567.48290169, 0., -356.99781537], - [0., 0., 0., 0., 0., 0., 0., 0., 0.], - [102.09767406, 0., -88.65982001, -49.73970876, 0., 16.95147799, -356.99781537, 0., 336.25221646]], - np.float64) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft.out")) + expected_mat_2 = np.array( + [ + [ + 65.29227021, + 0.0, + 0.0, + -130.05593215, + 0.0, + -102.09767406, + -130.05593215, + 0.0, + 102.09767406, + ], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [ + 0.0, + 0.0, + 44.51008758, + -77.12673693, + 0.0, + -88.65982001, + 77.12673693, + 0.0, + -88.65982001, + ], + [ + -130.05593215, + 0.0, + -77.12673693, + 567.48290169, + 0.0, + 356.99781537, + -49.36504715, + 0.0, + -49.73970876, + ], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [ + -102.09767406, + 0.0, + -88.65982001, + 356.99781537, + 0.0, + 336.25221646, + 49.73970876, + 0.0, + 16.95147799, + ], + [ + -130.05593215, + 0.0, + 77.12673693, + -49.36504715, + 0.0, + 49.73970876, + 567.48290169, + 0.0, + -356.99781537, + ], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [ + 102.09767406, + 0.0, + -88.65982001, + -49.73970876, + 0.0, + 16.95147799, + -356.99781537, + 0.0, + 336.25221646, + ], + ], + np.float64, + ) self.assertTrue(np.allclose(log.load_force_constant_matrix(), expected_mat_2)) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) - expected_mat_3 = np.array([[-1.13580195, 0., 0., 3.38451439, 0., 0., 1.13580195, 0., 0., -3.38451439, 0., 0.], - [0., 32.96704817, -7.81315371, 0., -24.52602914, 47.62525747, 0., -23.84113467, -5.93732553, 0., -11.82985738, 7.15401071], - [0., -7.81315371, 54.99575056, 0., 23.33047286, -191.28989554, 0., 5.93732553, -7.5316094, 0., -15.85753341, 2.20187269], - [3.38451439, 0., 0., -10.08532992, 0., 0., -3.38451439, 0., 0., 10.08532992, 0., 0.], - [0., -24.52602914, 23.33047286, 0., 143.78387645, -158.67358218, 0., -11.82985738, 15.85753341, 0., 1.05099332, 2.55609183], - [0., 47.62525747, -191.28989554, 0., -158.67358218, 742.27868659, 0., -7.15401071, 2.20187269, 0., -2.55609183, 11.01167933], - [1.13580195, 0., 0., -3.38451439, 0., 0., -1.13580195, 0., 0., 3.38451439, 0., 0.], - [0., -23.84113467, 5.93732553, 0., -11.82985738, -7.15401071, 0., 32.96704817, 7.81315371, 0., -24.52602914, -47.62525747], - [0., -5.93732553, -7.5316094, 0., 15.85753341, 2.20187269, 0., 7.81315371, 54.99575056, 0., -23.33047286, -191.28989554], - [-3.38451439, 0., 0., 10.08532992, 0., 0., 3.38451439, 0., 0., -10.08532992, 0., 0.], - [0., -11.82985738, -15.85753341, 0., 1.05099332, -2.55609183, 0., -24.52602914, -23.33047286, 0., 143.78387645, 158.67358218], - [0., 7.15401071, 2.20187269, 0., 2.55609183, 11.01167933, 0., -47.62525747, -191.28989554, 0., 158.67358218, 742.27868659]], - np.float64) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) + expected_mat_3 = np.array( + [ + [ + -1.13580195, + 0.0, + 0.0, + 3.38451439, + 0.0, + 0.0, + 1.13580195, + 0.0, + 0.0, + -3.38451439, + 0.0, + 0.0, + ], + [ + 0.0, + 32.96704817, + -7.81315371, + 0.0, + -24.52602914, + 47.62525747, + 0.0, + -23.84113467, + -5.93732553, + 0.0, + -11.82985738, + 7.15401071, + ], + [ + 0.0, + -7.81315371, + 54.99575056, + 0.0, + 23.33047286, + -191.28989554, + 0.0, + 5.93732553, + -7.5316094, + 0.0, + -15.85753341, + 2.20187269, + ], + [ + 3.38451439, + 0.0, + 0.0, + -10.08532992, + 0.0, + 0.0, + -3.38451439, + 0.0, + 0.0, + 10.08532992, + 0.0, + 0.0, + ], + [ + 0.0, + -24.52602914, + 23.33047286, + 0.0, + 143.78387645, + -158.67358218, + 0.0, + -11.82985738, + 15.85753341, + 0.0, + 1.05099332, + 2.55609183, + ], + [ + 0.0, + 47.62525747, + -191.28989554, + 0.0, + -158.67358218, + 742.27868659, + 0.0, + -7.15401071, + 2.20187269, + 0.0, + -2.55609183, + 11.01167933, + ], + [ + 1.13580195, + 0.0, + 0.0, + -3.38451439, + 0.0, + 0.0, + -1.13580195, + 0.0, + 0.0, + 3.38451439, + 0.0, + 0.0, + ], + [ + 0.0, + -23.84113467, + 5.93732553, + 0.0, + -11.82985738, + -7.15401071, + 0.0, + 32.96704817, + 7.81315371, + 0.0, + -24.52602914, + -47.62525747, + ], + [ + 0.0, + -5.93732553, + -7.5316094, + 0.0, + 15.85753341, + 2.20187269, + 0.0, + 7.81315371, + 54.99575056, + 0.0, + -23.33047286, + -191.28989554, + ], + [ + -3.38451439, + 0.0, + 0.0, + 10.08532992, + 0.0, + 0.0, + 3.38451439, + 0.0, + 0.0, + -10.08532992, + 0.0, + 0.0, + ], + [ + 0.0, + -11.82985738, + -15.85753341, + 0.0, + 1.05099332, + -2.55609183, + 0.0, + -24.52602914, + -23.33047286, + 0.0, + 143.78387645, + 158.67358218, + ], + [ + 0.0, + 7.15401071, + 2.20187269, + 0.0, + 2.55609183, + 11.01167933, + 0.0, + -47.62525747, + -191.28989554, + 0.0, + 158.67358218, + 742.27868659, + ], + ], + np.float64, + ) self.assertTrue(np.allclose(log.load_force_constant_matrix(), expected_mat_3)) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_ts.out')) - expected_mat_4 = np.array([[-1.36856086, 0., 0., 3.91653225, 0., 0., 1.36856086, 0., 0., -3.91653225, 0., 0.], - [0., 47.82294224, -11.20296807, 0., -35.81980174, 65.25989773, 0., -35.42652343, -7.19264812, 0., -13.56514966, 8.02470416], - [0., -11.20296807, 66.4797624, 0., 35.78782098, -229.4811002, 0., 7.19264812, -9.74548387, 0., -19.81147687, 3.46263087], - [3.91653225, 0., 0., -11.2082886, 0., 0., -3.91653225, 0., 0., 11.2082886, 0., 0.], - [0., -35.81980174, 35.78782098, 0., 194.95334567, -224.75547126, 0., -13.56514966, 19.81147687, 0., 1.78681563, 3.25854712], - [0., 65.25989773, -229.4811002, 0., -224.75547126, 889.16020169, 0., -8.02470416, 3.46263087, 0., -3.25854712, 11.25397079], - [1.36856086, 0., 0., -3.91653225, 0., 0., -1.36856086, 0., 0., 3.91653225, 0., 0.], - [0., -35.42652343, 7.19264812, 0., -13.56514966, -8.02470416, 0., 47.82294224, 11.20296807, 0., -35.81980174, -65.25989773], - [0., -7.19264812, -9.74548387, 0., 19.81147687, 3.46263087, 0., 11.20296807, 66.4797624, 0., -35.78782098, -229.4811002], - [-3.91653225, 0., 0., 11.2082886, 0., 0., 3.91653225, 0., 0., -11.2082886, 0., 0.], - [0., -13.56514966, -19.81147687, 0., 1.78681563, -3.25854712, 0., -35.81980174, -35.78782098, 0., 194.95334567, 224.75547126], - [0., 8.02470416, 3.46263087, 0., 3.25854712, 11.25397079, 0., -65.25989773, -229.4811002, 0., 224.75547126, 889.16020169]], - np.float64) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_ts.out")) + expected_mat_4 = np.array( + [ + [ + -1.36856086, + 0.0, + 0.0, + 3.91653225, + 0.0, + 0.0, + 1.36856086, + 0.0, + 0.0, + -3.91653225, + 0.0, + 0.0, + ], + [ + 0.0, + 47.82294224, + -11.20296807, + 0.0, + -35.81980174, + 65.25989773, + 0.0, + -35.42652343, + -7.19264812, + 0.0, + -13.56514966, + 8.02470416, + ], + [ + 0.0, + -11.20296807, + 66.4797624, + 0.0, + 35.78782098, + -229.4811002, + 0.0, + 7.19264812, + -9.74548387, + 0.0, + -19.81147687, + 3.46263087, + ], + [ + 3.91653225, + 0.0, + 0.0, + -11.2082886, + 0.0, + 0.0, + -3.91653225, + 0.0, + 0.0, + 11.2082886, + 0.0, + 0.0, + ], + [ + 0.0, + -35.81980174, + 35.78782098, + 0.0, + 194.95334567, + -224.75547126, + 0.0, + -13.56514966, + 19.81147687, + 0.0, + 1.78681563, + 3.25854712, + ], + [ + 0.0, + 65.25989773, + -229.4811002, + 0.0, + -224.75547126, + 889.16020169, + 0.0, + -8.02470416, + 3.46263087, + 0.0, + -3.25854712, + 11.25397079, + ], + [ + 1.36856086, + 0.0, + 0.0, + -3.91653225, + 0.0, + 0.0, + -1.36856086, + 0.0, + 0.0, + 3.91653225, + 0.0, + 0.0, + ], + [ + 0.0, + -35.42652343, + 7.19264812, + 0.0, + -13.56514966, + -8.02470416, + 0.0, + 47.82294224, + 11.20296807, + 0.0, + -35.81980174, + -65.25989773, + ], + [ + 0.0, + -7.19264812, + -9.74548387, + 0.0, + 19.81147687, + 3.46263087, + 0.0, + 11.20296807, + 66.4797624, + 0.0, + -35.78782098, + -229.4811002, + ], + [ + -3.91653225, + 0.0, + 0.0, + 11.2082886, + 0.0, + 0.0, + 3.91653225, + 0.0, + 0.0, + -11.2082886, + 0.0, + 0.0, + ], + [ + 0.0, + -13.56514966, + -19.81147687, + 0.0, + 1.78681563, + -3.25854712, + 0.0, + -35.81980174, + -35.78782098, + 0.0, + 194.95334567, + 224.75547126, + ], + [ + 0.0, + 8.02470416, + 3.46263087, + 0.0, + 3.25854712, + 11.25397079, + 0.0, + -65.25989773, + -229.4811002, + 0.0, + 224.75547126, + 889.16020169, + ], + ], + np.float64, + ) self.assertTrue(np.allclose(log.load_force_constant_matrix(), expected_mat_4)) def test_load_vibrations_from_psi4_log(self): @@ -170,11 +626,11 @@ def test_load_vibrations_from_psi4_log(self): Uses a Psi4 log files to test that molecular energies can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(len(conformer.modes[2]._frequencies.value), 3) self.assertEqual(conformer.modes[2]._frequencies.value[2], 4261.7445) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(len(conformer.modes[2]._frequencies.value), 5) self.assertEqual(conformer.modes[2]._frequencies.value[2], 1456.2449) @@ -184,21 +640,42 @@ def test_load_modes_from_psi4_log(self): Uses a Psi4 log file for opt_freq.out to test that its molecular modes can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) conformer, unscaled_frequencies = log.load_conformer() - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) self.assertEqual(len(unscaled_frequencies), 3) def test_load_negative_frequency(self): """ Test properly loading negative frequencies. """ - log_1 = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) + log_1 = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) neg_freq_1 = log_1.load_negative_frequency() self.assertEqual(neg_freq_1, -617.1749) - log_2 = Psi4Log(os.path.join(self.data_path, 'opt_freq_ts.out')) + log_2 = Psi4Log(os.path.join(self.data_path, "opt_freq_ts.out")) neg_freq_2 = log_2.load_negative_frequency() self.assertEqual(neg_freq_2, -653.3950) @@ -207,10 +684,10 @@ def test_spin_multiplicity_from_psi4_log(self): Uses a Psi4 log file for opt_freq_dft_ts.out to test that its molecular degrees of freedom can be properly read. """ - log = Psi4Log(os.path.join(self.data_path, 'opt_freq.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) - log = Psi4Log(os.path.join(self.data_path, 'opt_freq_dft_ts.out')) + log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) @@ -218,5 +695,5 @@ def test_spin_multiplicity_from_psi4_log(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/qchemTest.py b/test/arkane/ess/qchemTest.py index ccd3556126..379914bde2 100644 --- a/test/arkane/ess/qchemTest.py +++ b/test/arkane/ess/qchemTest.py @@ -34,7 +34,13 @@ import os import unittest -from rmgpy.statmech import IdealGasTranslation, LinearRotor, NonlinearRotor, HarmonicOscillator, HinderedRotor +from rmgpy.statmech import ( + IdealGasTranslation, + LinearRotor, + NonlinearRotor, + HarmonicOscillator, + HinderedRotor, +) from arkane.ess.qchem import QChemLog from arkane.exceptions import LogError @@ -46,12 +52,15 @@ class QChemLogTest(unittest.TestCase): """ Contains unit tests for the qchem module, used for parsing QChem log files. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data', 'qchem') + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "data", "qchem" + ) def test_check_for_errors(self): """ @@ -59,16 +68,16 @@ def test_check_for_errors(self): to test if errors are properly parsed. """ with self.assertRaises(LogError): - QChemLog(os.path.join(self.data_path, 'formyl_azide.out')) + QChemLog(os.path.join(self.data_path, "formyl_azide.out")) def test_number_of_atoms_from_qchem_log(self): """ Uses QChem log files to test that number of atoms can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) self.assertEqual(log.get_number_of_atoms(), 10) - log = QChemLog(os.path.join(self.data_path, 'co.out')) + log = QChemLog(os.path.join(self.data_path, "co.out")) self.assertEqual(log.get_number_of_atoms(), 2) def test_energy_from_qchem_log(self): @@ -76,11 +85,11 @@ def test_energy_from_qchem_log(self): Uses QChem log files to test that molecular energies can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) self.assertAlmostEqual(log.load_energy(), -310896203.5432524, delta=1e-7) - log = QChemLog(os.path.join(self.data_path, 'co.out')) + log = QChemLog(os.path.join(self.data_path, "co.out")) self.assertAlmostEqual(log.load_energy(), -297402545.0217114, delta=1e-7) - log = QChemLog(os.path.join(self.data_path, 'CH4_sp.out')) + log = QChemLog(os.path.join(self.data_path, "CH4_sp.out")) self.assertAlmostEqual(log.load_energy(), -106356735.53661588, delta=1e-7) def test_zero_point_energy_from_qchem_log(self): @@ -88,11 +97,13 @@ def test_zero_point_energy_from_qchem_log(self): Uses QChem log files to test that zero point energies can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) self.assertAlmostEqual(log.load_zero_point_energy(), 228785.304, delta=1e-3) - log = QChemLog(os.path.join(self.data_path, 'co.out')) + log = QChemLog(os.path.join(self.data_path, "co.out")) self.assertAlmostEqual(log.load_zero_point_energy(), 13476.664, delta=1e-3) - log = QChemLog(os.path.join(self.data_path, 'formyl_azide.out'), check_for_errors=False) + log = QChemLog( + os.path.join(self.data_path, "formyl_azide.out"), check_for_errors=False + ) self.assertAlmostEqual(log.load_zero_point_energy(), 83014.744, delta=1e-3) def test_load_vibrations_from_qchem_log(self): @@ -100,11 +111,11 @@ def test_load_vibrations_from_qchem_log(self): Uses QChem log files to test that molecular energies can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(len(conformer.modes[2]._frequencies.value), 24) self.assertEqual(conformer.modes[2]._frequencies.value[5], 881.79) - log = QChemLog(os.path.join(self.data_path, 'co.out')) + log = QChemLog(os.path.join(self.data_path, "co.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(len(conformer.modes[2]._frequencies.value), 1) self.assertEqual(conformer.modes[2]._frequencies.value, 2253.16) @@ -114,23 +125,47 @@ def test_load_npropyl_modes_from_qchem_log(self): Uses a QChem log file for npropyl to test that its molecular modes can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) conformer, unscaled_frequencies = log.load_conformer() - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) == 0) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 1 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) + == 0 + ) def test_spin_multiplicity_from_qchem_log(self): """ Uses QChem log files to test that molecular degrees of freedom can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 2) - log = QChemLog(os.path.join(self.data_path, 'co.out')) + log = QChemLog(os.path.join(self.data_path, "co.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) @@ -139,31 +174,59 @@ def test_load_co_modes_from_qchem_log(self): Uses a QChem log file for CO to test that its molecular degrees of freedom can be properly read. """ - log = QChemLog(os.path.join(self.data_path, 'co.out')) + log = QChemLog(os.path.join(self.data_path, "co.out")) conformer, unscaled_frequencies = log.load_conformer() E0 = log.load_energy() - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, IdealGasTranslation)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, LinearRotor)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) == 0) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HarmonicOscillator)]) == 1) - self.assertTrue(len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) == 0) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, IdealGasTranslation) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, LinearRotor)]) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, NonlinearRotor)]) + == 0 + ) + self.assertTrue( + len( + [ + mode + for mode in conformer.modes + if isinstance(mode, HarmonicOscillator) + ] + ) + == 1 + ) + self.assertTrue( + len([mode for mode in conformer.modes if isinstance(mode, HinderedRotor)]) + == 0 + ) def test_load_negative_frequency(self): """ Load an imaginary frequency from a QChem output file. """ - log = QChemLog(os.path.join(self.data_path, 'ts004630.log')) + log = QChemLog(os.path.join(self.data_path, "ts004630.log")) imaginary_freq = log.load_negative_frequency() self.assertEqual(imaginary_freq, -647.47) # verify that an error is raised if there are no negative frequencies with self.assertRaises(LogError): - log = QChemLog(os.path.join(self.data_path, 'npropyl.out')) + log = QChemLog(os.path.join(self.data_path, "npropyl.out")) imaginary_freq = log.load_negative_frequency() + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/terachemTest.py b/test/arkane/ess/terachemTest.py index d8c252c1ab..a455e0342d 100644 --- a/test/arkane/ess/terachemTest.py +++ b/test/arkane/ess/terachemTest.py @@ -48,322 +48,1214 @@ class TeraChemLogTest(unittest.TestCase): """ Contains unit tests for the terachem module, used for parsing TeraChem files. """ + @classmethod def setUpClass(cls): """ A method that is run before all unit tests in this class. """ - cls.data_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data', 'terachem') + cls.data_path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "data", "terachem" + ) def test_get_number_of_atoms(self): """Uses various TeraChem log files to test that number of atoms can be properly read.""" - log_file = TeraChemLog(os.path.join(self.data_path, 'ethane_minimize_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "ethane_minimize_output.out") + ) self.assertEqual(log_file.get_number_of_atoms(), 6) - log_file = TeraChemLog(os.path.join(self.data_path, 'ethane_coords.xyz')) + log_file = TeraChemLog(os.path.join(self.data_path, "ethane_coords.xyz")) self.assertEqual(log_file.get_number_of_atoms(), 6) - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_coords.xyz')) + log_file = TeraChemLog(os.path.join(self.data_path, "formaldehyde_coords.xyz")) self.assertEqual(log_file.get_number_of_atoms(), 4) - log_file = TeraChemLog(os.path.join(self.data_path, 'ethane_output.geometry')) + log_file = TeraChemLog(os.path.join(self.data_path, "ethane_output.geometry")) self.assertEqual(log_file.get_number_of_atoms(), 6) - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_output.geometry')) + log_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_output.geometry") + ) self.assertEqual(log_file.get_number_of_atoms(), 4) def test_load_force_constant_matrix(self): """Test loading the Hessian""" - log_file = TeraChemLog(os.path.join(self.data_path, 'ethanol_freq_output.out')) + log_file = TeraChemLog(os.path.join(self.data_path, "ethanol_freq_output.out")) hessian = log_file.load_force_constant_matrix() self.assertEqual(len(hessian), 27) # 9 atoms * 3 dof = 27 self.assertEqual(len(hessian[0]), 27) - log_file = TeraChemLog(os.path.join(self.data_path, 'ethylamine_freq_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "ethylamine_freq_output.out") + ) hessian = log_file.load_force_constant_matrix() expected_hessian = [ - [914.9859609920952, -86.71893487707963, 25.53304366219221, -229.64170366910673, 9.65273601863364, - 122.37178242977485, -2.4910286499699716, 0.6227571624924929, 14.323414737327337, -42.347487049489516, - -13.389278993588597, 43.90437995572075, -0.7784464531156161, -3.7365429749549572, 1.8682714874774786, - -0.6227571624924929, -0.15568929062312323, -1.8682714874774786, 3.1137858124624644, -0.46706787186936966, - -0.15568929062312323, 2.802407231216218, 0.6227571624924929, -0.31137858124624646, -99.64114599879886, - 27.40131514966969, 10.742561052995502, -545.6909636340469, 67.10208425856611, -216.40811396614131], - [-86.71893487707963, 853.1773126147153, -244.12080769705722, -20.395297071629145, -150.7072333231833, - 73.7967237553604, 16.035996934181693, 13.389278993588597, -12.61083254047298, 9.808425309256764, - 4.982057299939943, -11.521007506111118, -41.5690405963739, -9.497046728010517, 43.74869066509763, - 0.7784464531156161, 3.1137858124624644, 0.6227571624924929, -0.6227571624924929, -0.6227571624924929, - 1.0898250343618625, -0.0, -0.46706787186936966, -6.227571624924929, 2.9580965218393414, -620.7332017143923, - 60.09606618052557, 119.72506448918175, -94.5033994082358, 95.28184586135141], - [25.53304366219221, -244.12080769705722, 432.81622793228263, 54.95831958996249, 23.820461465337853, - -210.49192092246258, 48.88643725566069, 14.167725446704214, -49.04212654628382, -1.5568929062312322, - -2.9580965218393414, 11.676696796734241, 16.81444338729731, 9.808425309256764, -15.724618352935446, - -0.6227571624924929, 0.9341357437387393, 4.82636800931682, 0.31137858124624646, 2.179650068723725, - 4.982057299939943, -0.7784464531156161, -6.850328787417422, -11.988075377980488, 11.365318215487996, - 143.23414737327337, -40.94628343388141, -155.06653346063072, 59.784687599279316, -126.88677185784543], - [-229.64170366910673, -20.395297071629145, 54.95831958996249, 880.2672491831387, -45.92834073382135, - 71.77276297725982, -131.55745057653914, -13.54496828421172, -26.311490115307823, -390.1573623015468, - 81.1141204146472, -143.3898366638965, -84.38359551773279, 16.50306480605106, -4.35930013744745, - -0.6227571624924929, 0.6227571624924929, 3.7365429749549572, -7.4730859499099145, -26.62286869655407, - -44.838515699459485, 4.35930013744745, 20.550986362252267, 34.563022518333355, 2.3353393593468486, - 0.6227571624924929, 4.514989428070574, -42.970244211982006, -12.14376466860361, 49.04212654628382], - [9.65273601863364, -150.7072333231833, 23.820461465337853, -45.92834073382135, 917.1656110608188, - -66.63501638669673, -16.191686224804815, -175.15045195101362, -61.80864837737992, 74.57517020847602, - -101.50941748627633, 38.455254783911435, 25.377354371569083, -464.4211539287766, 50.59901945251505, - -8.874289565518025, -26.1558008246847, -47.95230151192195, 0.46706787186936966, 6.383260915548052, - 10.275493181126134, 3.7365429749549572, 7.7844645311561615, 17.4372005497898, -48.73074796503757, - -17.125821968543555, 47.64092293067571, 5.449125171809313, 4.047921556201204, -11.521007506111118], - [122.37178242977485, 73.7967237553604, -210.49192092246258, 71.77276297725982, -66.63501638669673, - 700.1347399321851, -33.00612961210212, -67.41346283981235, -223.8811999160512, -132.95865419214724, - 37.209740458926454, -132.80296490152412, -7.317396659286792, 58.383483983671205, -85.1620419708484, - 2.179650068723725, 3.2694751030855875, 6.071882334301805, -2.802407231216218, -11.209628924864871, - -20.706675652875386, -3.8922322655780808, -11.521007506111118, -23.353393593468482, 7.628775240533038, - -6.850328787417422, -19.616850618513528, -22.73063643097599, -9.65273601863364, 9.808425309256764], - [-2.4910286499699716, 16.035996934181693, 48.88643725566069, -131.55745057653914, -16.191686224804815, - -33.00612961210212, 886.3391315174406, -7.4730859499099145, -21.796500687237252, -4.35930013744745, - -24.910286499699716, -42.03610846824327, 1.7125821968543555, 2.6467179405930947, 2.3353393593468486, - -78.62309176467723, 21.329432815367884, -2.179650068723725, -394.04959456712487, 80.49136325215471, - -137.00657574834844, -278.68383021539057, -74.57517020847602, 184.64749867902415, 0.15568929062312323, - 1.8682714874774786, -2.3353393593468486, 2.6467179405930947, 1.0898250343618625, 2.4910286499699716], - [0.6227571624924929, 13.389278993588597, 14.167725446704214, -13.54496828421172, -175.15045195101362, - -67.41346283981235, -7.4730859499099145, 850.219216092876, -70.37155936165169, 1.2455143249849858, - 5.916193043678683, 9.341357437387394, -8.7186002748949, -25.065975790322838, -46.86247647756009, - 22.1078792684835, -467.22356115999276, 54.17987313684688, 78.77878105530036, -95.9046030238439, - 38.76663336515768, -74.41948091785291, -107.42561052995504, 66.79070567731986, 0.46706787186936966, - 3.2694751030855875, 2.802407231216218, 0.6227571624924929, -1.2455143249849858, -0.9341357437387393], - [14.323414737327337, -12.61083254047298, -49.04212654628382, -26.311490115307823, -61.80864837737992, - -223.8811999160512, -21.796500687237252, -70.37155936165169, 750.2666915128308, -6.538950206171175, - -13.389278993588597, -20.083918490382896, -0.9341357437387393, 0.46706787186936966, 5.916193043678683, - -3.1137858124624644, 55.26969817120874, -86.09617771458714, -138.40777936395656, 37.98818691204207, - -132.33589702965475, 185.27025584151662, 66.32363780545049, -249.72562215948963, -0.46706787186936966, - -1.7125821968543555, 1.8682714874774786, -1.8682714874774786, 1.2455143249849858, 3.580853684331834], - [-42.347487049489516, 9.808425309256764, -1.5568929062312322, -390.1573623015468, 74.57517020847602, - -132.95865419214724, -4.35930013744745, 1.2455143249849858, -6.538950206171175, 437.17552806973, - -82.82670261150155, 139.34191510769529, 0.31137858124624646, 2.802407231216218, -1.0898250343618625, - 0.15568929062312323, -0.46706787186936966, 0.46706787186936966, 1.8682714874774786, -0.6227571624924929, - -0.7784464531156161, 0.46706787186936966, -0.15568929062312323, -0.9341357437387393, 0.15568929062312323, - -0.46706787186936966, -1.2455143249849858, -3.580853684331834, -4.514989428070574, 5.2934358811861895], - [-13.389278993588597, 4.982057299939943, -2.9580965218393414, 81.1141204146472, -101.50941748627633, - 37.209740458926454, -24.910286499699716, 5.916193043678683, -13.389278993588597, -82.82670261150155, - 97.46149593007515, -36.58698329643396, 46.239719315067596, -9.18566814676427, 18.83840416539791, - -0.46706787186936966, 1.401203615608109, 1.5568929062312322, -1.5568929062312322, -1.2455143249849858, - -5.449125171809313, 0.6227571624924929, 0.7784464531156161, 0.7784464531156161, -0.46706787186936966, - 0.6227571624924929, -1.401203615608109, -4.047921556201204, 0.9341357437387393, 1.0898250343618625], - [43.90437995572075, -11.521007506111118, 11.676696796734241, -143.3898366638965, 38.455254783911435, - -132.80296490152412, -42.03610846824327, 9.341357437387394, -20.083918490382896, 139.34191510769529, - -36.58698329643396, 150.39585474193703, -7.006018078040545, 1.7125821968543555, -2.6467179405930947, - 0.9341357437387393, 0.15568929062312323, 2.3353393593468486, -0.46706787186936966, -5.760503753055559, - -7.4730859499099145, 0.46706787186936966, 0.7784464531156161, 1.5568929062312322, -0.6227571624924929, - -0.0, 1.2455143249849858, 8.25153240302553, 3.2694751030855875, -4.047921556201204], - [-0.7784464531156161, -41.5690405963739, 16.81444338729731, -84.38359551773279, 25.377354371569083, - -7.317396659286792, 1.7125821968543555, -8.7186002748949, -0.9341357437387393, 0.31137858124624646, - 46.239719315067596, -7.006018078040545, 85.47342055209465, -14.323414737327337, -4.982057299939943, - 1.401203615608109, -1.5568929062312322, -0.9341357437387393, 0.31137858124624646, -0.46706787186936966, - 1.2455143249849858, 0.31137858124624646, 0.31137858124624646, -0.31137858124624646, -5.760503753055559, - -4.35930013744745, 5.2934358811861895, 1.2455143249849858, -1.0898250343618625, -1.8682714874774786], - [-3.7365429749549572, -9.497046728010517, 9.808425309256764, 16.50306480605106, -464.4211539287766, - 58.383483983671205, 2.6467179405930947, -25.065975790322838, 0.46706787186936966, 2.802407231216218, - -9.18566814676427, 1.7125821968543555, -14.323414737327337, 503.8105444564267, -65.54519135233488, - -0.7784464531156161, -0.15568929062312323, -5.137746590563067, -0.6227571624924929, 1.2455143249849858, - 0.46706787186936966, 0.31137858124624646, 0.7784464531156161, -0.15568929062312323, -2.4910286499699716, - 2.4910286499699716, 0.31137858124624646, -0.15568929062312323, 0.15568929062312323, -0.6227571624924929], - [1.8682714874774786, 43.74869066509763, -15.724618352935446, -4.35930013744745, 50.59901945251505, - -85.1620419708484, 2.3353393593468486, -46.86247647756009, 5.916193043678683, -1.0898250343618625, - 18.83840416539791, -2.6467179405930947, -4.982057299939943, -65.54519135233488, 103.84475684562318, - -1.5568929062312322, -5.2934358811861895, -8.25153240302553, 0.15568929062312323, 1.401203615608109, - 2.023960778100602, 0.15568929062312323, 1.5568929062312322, 2.3353393593468486, 7.7844645311561615, - 2.179650068723725, -3.580853684331834, -0.31137858124624646, -0.6227571624924929, 1.0898250343618625], - [-0.6227571624924929, 0.7784464531156161, -0.6227571624924929, -0.6227571624924929, -8.874289565518025, - 2.179650068723725, -78.62309176467723, 22.1078792684835, -3.1137858124624644, 0.15568929062312323, - -0.46706787186936966, 0.9341357437387393, 1.401203615608109, -0.7784464531156161, -1.5568929062312322, - 75.50930595221476, -22.73063643097599, 4.514989428070574, -0.9341357437387393, 47.018165768183216, - -6.071882334301805, 2.802407231216218, -37.67680833079582, 3.425164393708711, 0.6227571624924929, - 0.15568929062312323, 0.6227571624924929, 0.0, 0.31137858124624646, 0.0], - [-0.15568929062312323, 3.1137858124624644, 0.9341357437387393, 0.6227571624924929, -26.1558008246847, - 3.2694751030855875, 21.329432815367884, -467.22356115999276, 55.26969817120874, -0.46706787186936966, - 1.401203615608109, 0.15568929062312323, -1.5568929062312322, -0.15568929062312323, -5.2934358811861895, - -22.73063643097599, 508.4812231751205, -57.760726821178714, 1.2455143249849858, -9.18566814676427, - 2.023960778100602, 0.31137858124624646, -11.05393963424175, 2.179650068723725, 1.0898250343618625, - 0.6227571624924929, -1.0898250343618625, 0.31137858124624646, -0.0, 0.15568929062312323], - [-1.8682714874774786, 0.6227571624924929, 4.82636800931682, 3.7365429749549572, -47.95230151192195, - 6.071882334301805, -2.179650068723725, 54.17987313684688, -86.09617771458714, 0.46706787186936966, - 1.5568929062312322, 2.3353393593468486, -0.9341357437387393, -5.137746590563067, -8.25153240302553, - 4.514989428070574, -57.760726821178714, 89.8327206895421, 0.46706787186936966, 19.77253990913665, - -3.7365429749549572, -4.670678718693697, 33.31750819334837, -4.514989428070574, 0.31137858124624646, - 1.401203615608109, -0.31137858124624646, 0.31137858124624646, -0.15568929062312323, -0.15568929062312323], - [3.1137858124624644, -0.6227571624924929, 0.31137858124624646, -7.4730859499099145, 0.46706787186936966, - -2.802407231216218, -394.04959456712487, 78.77878105530036, -138.40777936395656, 1.8682714874774786, - -1.5568929062312322, -0.46706787186936966, 0.31137858124624646, -0.6227571624924929, 0.15568929062312323, - -0.9341357437387393, 1.2455143249849858, 0.46706787186936966, 426.4329670167345, -87.18600274894901, - 155.37791204187698, -30.670790252755275, 8.7186002748949, -14.167725446704214, 0.15568929062312323, - 0.31137858124624646, 0.15568929062312323, 0.7784464531156161, 0.31137858124624646, -0.6227571624924929], - [-0.46706787186936966, -0.6227571624924929, 2.179650068723725, -26.62286869655407, 6.383260915548052, - -11.209628924864871, 80.49136325215471, -95.9046030238439, 37.98818691204207, -0.6227571624924929, - -1.2455143249849858, -5.760503753055559, -0.46706787186936966, 1.2455143249849858, 1.401203615608109, - 47.018165768183216, -9.18566814676427, 19.77253990913665, -87.18600274894901, 96.06029231446702, - -37.67680833079582, -13.07790041234235, 2.179650068723725, -7.161707368663668, 0.31137858124624646, - 0.15568929062312323, -0.15568929062312323, 0.9341357437387393, 0.6227571624924929, 0.46706787186936966], - [-0.15568929062312323, 1.0898250343618625, 4.982057299939943, -44.838515699459485, 10.275493181126134, - -20.706675652875386, -137.00657574834844, 38.76663336515768, -132.33589702965475, -0.7784464531156161, - -5.449125171809313, -7.4730859499099145, 1.2455143249849858, 0.46706787186936966, 2.023960778100602, - -6.071882334301805, 2.023960778100602, -3.7365429749549572, 155.37791204187698, -37.67680833079582, - 143.23414737327337, 30.048033090262784, -9.497046728010517, 15.724618352935446, -0.15568929062312323, - 0.31137858124624646, -0.31137858124624646, 1.8682714874774786, -0.46706787186936966, -1.7125821968543555], - [2.802407231216218, -0.0, -0.7784464531156161, 4.35930013744745, 3.7365429749549572, -3.8922322655780808, - -278.68383021539057, -74.41948091785291, 185.27025584151662, 0.46706787186936966, 0.6227571624924929, - 0.46706787186936966, 0.31137858124624646, 0.31137858124624646, 0.15568929062312323, 2.802407231216218, - 0.31137858124624646, -4.670678718693697, -30.670790252755275, -13.07790041234235, 30.048033090262784, - 297.67792367141163, 82.98239190212468, -205.50986362252266, 0.0, -0.15568929062312323, - -0.15568929062312323, 0.7784464531156161, -0.6227571624924929, -0.9341357437387393], - [0.6227571624924929, -0.46706787186936966, -6.850328787417422, 20.550986362252267, 7.7844645311561615, - -11.521007506111118, -74.57517020847602, -107.42561052995504, 66.32363780545049, -0.15568929062312323, - 0.7784464531156161, 0.7784464531156161, 0.31137858124624646, 0.7784464531156161, 1.5568929062312322, - -37.67680833079582, -11.05393963424175, 33.31750819334837, 8.7186002748949, 2.179650068723725, - -9.497046728010517, 82.98239190212468, 107.58129982057814, -73.32965588349104, 0.0, -0.15568929062312323, - -1.0898250343618625, -0.7784464531156161, 0.0, 0.31137858124624646], - [-0.31137858124624646, -6.227571624924929, -11.988075377980488, 34.563022518333355, 17.4372005497898, - -23.353393593468482, 184.64749867902415, 66.79070567731986, -249.72562215948963, -0.9341357437387393, - 0.7784464531156161, 1.5568929062312322, -0.31137858124624646, -0.15568929062312323, 2.3353393593468486, - 3.425164393708711, 2.179650068723725, -4.514989428070574, -14.167725446704214, -7.161707368663668, - 15.724618352935446, -205.50986362252266, -73.32965588349104, 268.40833703426443, -0.6227571624924929, - -0.6227571624924929, 1.2455143249849858, -0.7784464531156161, 0.0, 0.31137858124624646], - [-99.64114599879886, 2.9580965218393414, 11.365318215487996, 2.3353393593468486, -48.73074796503757, - 7.628775240533038, 0.15568929062312323, 0.46706787186936966, -0.46706787186936966, 0.15568929062312323, - -0.46706787186936966, -0.6227571624924929, -5.760503753055559, -2.4910286499699716, 7.7844645311561615, - 0.6227571624924929, 1.0898250343618625, 0.31137858124624646, 0.15568929062312323, 0.31137858124624646, - -0.15568929062312323, 0.0, 0.0, -0.6227571624924929, 103.06631039250756, -18.83840416539791, - -13.389278993588597, -0.9341357437387393, 65.38950206171175, -11.676696796734241], - [27.40131514966969, -620.7332017143923, 143.23414737327337, 0.6227571624924929, -17.125821968543555, - -6.850328787417422, 1.8682714874774786, 3.2694751030855875, -1.7125821968543555, -0.46706787186936966, - 0.6227571624924929, -0.0, -4.35930013744745, 2.4910286499699716, 2.179650068723725, 0.15568929062312323, - 0.6227571624924929, 1.401203615608109, 0.31137858124624646, 0.15568929062312323, 0.31137858124624646, - -0.15568929062312323, -0.15568929062312323, -0.6227571624924929, -18.83840416539791, 647.5117597015695, - -131.86882915778537, -6.383260915548052, -14.946171899819829, -6.227571624924929], - [10.742561052995502, 60.09606618052557, -40.94628343388141, 4.514989428070574, 47.64092293067571, - -19.616850618513528, -2.3353393593468486, 2.802407231216218, 1.8682714874774786, -1.2455143249849858, - -1.401203615608109, 1.2455143249849858, 5.2934358811861895, 0.31137858124624646, -3.580853684331834, - 0.6227571624924929, -1.0898250343618625, -0.31137858124624646, 0.15568929062312323, -0.15568929062312323, - -0.31137858124624646, -0.15568929062312323, -1.0898250343618625, 1.2455143249849858, -13.389278993588597, - -131.86882915778537, 68.03622000230486, -4.047921556201204, 24.754597209076593, -7.628775240533038], - [-545.6909636340469, 119.72506448918175, -155.06653346063072, -42.970244211982006, 5.449125171809313, - -22.73063643097599, 2.6467179405930947, 0.6227571624924929, -1.8682714874774786, -3.580853684331834, - -4.047921556201204, 8.25153240302553, 1.2455143249849858, -0.15568929062312323, -0.31137858124624646, 0.0, - 0.31137858124624646, 0.31137858124624646, 0.7784464531156161, 0.9341357437387393, 1.8682714874774786, - 0.7784464531156161, -0.7784464531156161, -0.7784464531156161, -0.9341357437387393, -6.383260915548052, - -4.047921556201204, 587.8827613929133, -116.14421080484992, 174.68338407914425], - [67.10208425856611, -94.5033994082358, 59.784687599279316, -12.14376466860361, 4.047921556201204, - -9.65273601863364, 1.0898250343618625, -1.2455143249849858, 1.2455143249849858, -4.514989428070574, - 0.9341357437387393, 3.2694751030855875, -1.0898250343618625, 0.15568929062312323, -0.6227571624924929, - 0.31137858124624646, -0.0, -0.15568929062312323, 0.31137858124624646, 0.6227571624924929, - -0.46706787186936966, -0.6227571624924929, 0.0, 0.0, 65.38950206171175, -14.946171899819829, - 24.754597209076593, -116.14421080484992, 105.09027117060819, -78.15602389280787], - [-216.40811396614131, 95.28184586135141, -126.88677185784543, 49.04212654628382, -11.521007506111118, - 9.808425309256764, 2.4910286499699716, -0.9341357437387393, 3.580853684331834, 5.2934358811861895, - 1.0898250343618625, -4.047921556201204, -1.8682714874774786, -0.6227571624924929, 1.0898250343618625, 0.0, - 0.15568929062312323, -0.15568929062312323, -0.6227571624924929, 0.46706787186936966, -1.7125821968543555, - -0.9341357437387393, 0.31137858124624646, 0.31137858124624646, -11.676696796734241, -6.227571624924929, - -7.628775240533038, 174.68338407914425, -78.15602389280787, 125.95263611410668]] + [ + 914.9859609920952, + -86.71893487707963, + 25.53304366219221, + -229.64170366910673, + 9.65273601863364, + 122.37178242977485, + -2.4910286499699716, + 0.6227571624924929, + 14.323414737327337, + -42.347487049489516, + -13.389278993588597, + 43.90437995572075, + -0.7784464531156161, + -3.7365429749549572, + 1.8682714874774786, + -0.6227571624924929, + -0.15568929062312323, + -1.8682714874774786, + 3.1137858124624644, + -0.46706787186936966, + -0.15568929062312323, + 2.802407231216218, + 0.6227571624924929, + -0.31137858124624646, + -99.64114599879886, + 27.40131514966969, + 10.742561052995502, + -545.6909636340469, + 67.10208425856611, + -216.40811396614131, + ], + [ + -86.71893487707963, + 853.1773126147153, + -244.12080769705722, + -20.395297071629145, + -150.7072333231833, + 73.7967237553604, + 16.035996934181693, + 13.389278993588597, + -12.61083254047298, + 9.808425309256764, + 4.982057299939943, + -11.521007506111118, + -41.5690405963739, + -9.497046728010517, + 43.74869066509763, + 0.7784464531156161, + 3.1137858124624644, + 0.6227571624924929, + -0.6227571624924929, + -0.6227571624924929, + 1.0898250343618625, + -0.0, + -0.46706787186936966, + -6.227571624924929, + 2.9580965218393414, + -620.7332017143923, + 60.09606618052557, + 119.72506448918175, + -94.5033994082358, + 95.28184586135141, + ], + [ + 25.53304366219221, + -244.12080769705722, + 432.81622793228263, + 54.95831958996249, + 23.820461465337853, + -210.49192092246258, + 48.88643725566069, + 14.167725446704214, + -49.04212654628382, + -1.5568929062312322, + -2.9580965218393414, + 11.676696796734241, + 16.81444338729731, + 9.808425309256764, + -15.724618352935446, + -0.6227571624924929, + 0.9341357437387393, + 4.82636800931682, + 0.31137858124624646, + 2.179650068723725, + 4.982057299939943, + -0.7784464531156161, + -6.850328787417422, + -11.988075377980488, + 11.365318215487996, + 143.23414737327337, + -40.94628343388141, + -155.06653346063072, + 59.784687599279316, + -126.88677185784543, + ], + [ + -229.64170366910673, + -20.395297071629145, + 54.95831958996249, + 880.2672491831387, + -45.92834073382135, + 71.77276297725982, + -131.55745057653914, + -13.54496828421172, + -26.311490115307823, + -390.1573623015468, + 81.1141204146472, + -143.3898366638965, + -84.38359551773279, + 16.50306480605106, + -4.35930013744745, + -0.6227571624924929, + 0.6227571624924929, + 3.7365429749549572, + -7.4730859499099145, + -26.62286869655407, + -44.838515699459485, + 4.35930013744745, + 20.550986362252267, + 34.563022518333355, + 2.3353393593468486, + 0.6227571624924929, + 4.514989428070574, + -42.970244211982006, + -12.14376466860361, + 49.04212654628382, + ], + [ + 9.65273601863364, + -150.7072333231833, + 23.820461465337853, + -45.92834073382135, + 917.1656110608188, + -66.63501638669673, + -16.191686224804815, + -175.15045195101362, + -61.80864837737992, + 74.57517020847602, + -101.50941748627633, + 38.455254783911435, + 25.377354371569083, + -464.4211539287766, + 50.59901945251505, + -8.874289565518025, + -26.1558008246847, + -47.95230151192195, + 0.46706787186936966, + 6.383260915548052, + 10.275493181126134, + 3.7365429749549572, + 7.7844645311561615, + 17.4372005497898, + -48.73074796503757, + -17.125821968543555, + 47.64092293067571, + 5.449125171809313, + 4.047921556201204, + -11.521007506111118, + ], + [ + 122.37178242977485, + 73.7967237553604, + -210.49192092246258, + 71.77276297725982, + -66.63501638669673, + 700.1347399321851, + -33.00612961210212, + -67.41346283981235, + -223.8811999160512, + -132.95865419214724, + 37.209740458926454, + -132.80296490152412, + -7.317396659286792, + 58.383483983671205, + -85.1620419708484, + 2.179650068723725, + 3.2694751030855875, + 6.071882334301805, + -2.802407231216218, + -11.209628924864871, + -20.706675652875386, + -3.8922322655780808, + -11.521007506111118, + -23.353393593468482, + 7.628775240533038, + -6.850328787417422, + -19.616850618513528, + -22.73063643097599, + -9.65273601863364, + 9.808425309256764, + ], + [ + -2.4910286499699716, + 16.035996934181693, + 48.88643725566069, + -131.55745057653914, + -16.191686224804815, + -33.00612961210212, + 886.3391315174406, + -7.4730859499099145, + -21.796500687237252, + -4.35930013744745, + -24.910286499699716, + -42.03610846824327, + 1.7125821968543555, + 2.6467179405930947, + 2.3353393593468486, + -78.62309176467723, + 21.329432815367884, + -2.179650068723725, + -394.04959456712487, + 80.49136325215471, + -137.00657574834844, + -278.68383021539057, + -74.57517020847602, + 184.64749867902415, + 0.15568929062312323, + 1.8682714874774786, + -2.3353393593468486, + 2.6467179405930947, + 1.0898250343618625, + 2.4910286499699716, + ], + [ + 0.6227571624924929, + 13.389278993588597, + 14.167725446704214, + -13.54496828421172, + -175.15045195101362, + -67.41346283981235, + -7.4730859499099145, + 850.219216092876, + -70.37155936165169, + 1.2455143249849858, + 5.916193043678683, + 9.341357437387394, + -8.7186002748949, + -25.065975790322838, + -46.86247647756009, + 22.1078792684835, + -467.22356115999276, + 54.17987313684688, + 78.77878105530036, + -95.9046030238439, + 38.76663336515768, + -74.41948091785291, + -107.42561052995504, + 66.79070567731986, + 0.46706787186936966, + 3.2694751030855875, + 2.802407231216218, + 0.6227571624924929, + -1.2455143249849858, + -0.9341357437387393, + ], + [ + 14.323414737327337, + -12.61083254047298, + -49.04212654628382, + -26.311490115307823, + -61.80864837737992, + -223.8811999160512, + -21.796500687237252, + -70.37155936165169, + 750.2666915128308, + -6.538950206171175, + -13.389278993588597, + -20.083918490382896, + -0.9341357437387393, + 0.46706787186936966, + 5.916193043678683, + -3.1137858124624644, + 55.26969817120874, + -86.09617771458714, + -138.40777936395656, + 37.98818691204207, + -132.33589702965475, + 185.27025584151662, + 66.32363780545049, + -249.72562215948963, + -0.46706787186936966, + -1.7125821968543555, + 1.8682714874774786, + -1.8682714874774786, + 1.2455143249849858, + 3.580853684331834, + ], + [ + -42.347487049489516, + 9.808425309256764, + -1.5568929062312322, + -390.1573623015468, + 74.57517020847602, + -132.95865419214724, + -4.35930013744745, + 1.2455143249849858, + -6.538950206171175, + 437.17552806973, + -82.82670261150155, + 139.34191510769529, + 0.31137858124624646, + 2.802407231216218, + -1.0898250343618625, + 0.15568929062312323, + -0.46706787186936966, + 0.46706787186936966, + 1.8682714874774786, + -0.6227571624924929, + -0.7784464531156161, + 0.46706787186936966, + -0.15568929062312323, + -0.9341357437387393, + 0.15568929062312323, + -0.46706787186936966, + -1.2455143249849858, + -3.580853684331834, + -4.514989428070574, + 5.2934358811861895, + ], + [ + -13.389278993588597, + 4.982057299939943, + -2.9580965218393414, + 81.1141204146472, + -101.50941748627633, + 37.209740458926454, + -24.910286499699716, + 5.916193043678683, + -13.389278993588597, + -82.82670261150155, + 97.46149593007515, + -36.58698329643396, + 46.239719315067596, + -9.18566814676427, + 18.83840416539791, + -0.46706787186936966, + 1.401203615608109, + 1.5568929062312322, + -1.5568929062312322, + -1.2455143249849858, + -5.449125171809313, + 0.6227571624924929, + 0.7784464531156161, + 0.7784464531156161, + -0.46706787186936966, + 0.6227571624924929, + -1.401203615608109, + -4.047921556201204, + 0.9341357437387393, + 1.0898250343618625, + ], + [ + 43.90437995572075, + -11.521007506111118, + 11.676696796734241, + -143.3898366638965, + 38.455254783911435, + -132.80296490152412, + -42.03610846824327, + 9.341357437387394, + -20.083918490382896, + 139.34191510769529, + -36.58698329643396, + 150.39585474193703, + -7.006018078040545, + 1.7125821968543555, + -2.6467179405930947, + 0.9341357437387393, + 0.15568929062312323, + 2.3353393593468486, + -0.46706787186936966, + -5.760503753055559, + -7.4730859499099145, + 0.46706787186936966, + 0.7784464531156161, + 1.5568929062312322, + -0.6227571624924929, + -0.0, + 1.2455143249849858, + 8.25153240302553, + 3.2694751030855875, + -4.047921556201204, + ], + [ + -0.7784464531156161, + -41.5690405963739, + 16.81444338729731, + -84.38359551773279, + 25.377354371569083, + -7.317396659286792, + 1.7125821968543555, + -8.7186002748949, + -0.9341357437387393, + 0.31137858124624646, + 46.239719315067596, + -7.006018078040545, + 85.47342055209465, + -14.323414737327337, + -4.982057299939943, + 1.401203615608109, + -1.5568929062312322, + -0.9341357437387393, + 0.31137858124624646, + -0.46706787186936966, + 1.2455143249849858, + 0.31137858124624646, + 0.31137858124624646, + -0.31137858124624646, + -5.760503753055559, + -4.35930013744745, + 5.2934358811861895, + 1.2455143249849858, + -1.0898250343618625, + -1.8682714874774786, + ], + [ + -3.7365429749549572, + -9.497046728010517, + 9.808425309256764, + 16.50306480605106, + -464.4211539287766, + 58.383483983671205, + 2.6467179405930947, + -25.065975790322838, + 0.46706787186936966, + 2.802407231216218, + -9.18566814676427, + 1.7125821968543555, + -14.323414737327337, + 503.8105444564267, + -65.54519135233488, + -0.7784464531156161, + -0.15568929062312323, + -5.137746590563067, + -0.6227571624924929, + 1.2455143249849858, + 0.46706787186936966, + 0.31137858124624646, + 0.7784464531156161, + -0.15568929062312323, + -2.4910286499699716, + 2.4910286499699716, + 0.31137858124624646, + -0.15568929062312323, + 0.15568929062312323, + -0.6227571624924929, + ], + [ + 1.8682714874774786, + 43.74869066509763, + -15.724618352935446, + -4.35930013744745, + 50.59901945251505, + -85.1620419708484, + 2.3353393593468486, + -46.86247647756009, + 5.916193043678683, + -1.0898250343618625, + 18.83840416539791, + -2.6467179405930947, + -4.982057299939943, + -65.54519135233488, + 103.84475684562318, + -1.5568929062312322, + -5.2934358811861895, + -8.25153240302553, + 0.15568929062312323, + 1.401203615608109, + 2.023960778100602, + 0.15568929062312323, + 1.5568929062312322, + 2.3353393593468486, + 7.7844645311561615, + 2.179650068723725, + -3.580853684331834, + -0.31137858124624646, + -0.6227571624924929, + 1.0898250343618625, + ], + [ + -0.6227571624924929, + 0.7784464531156161, + -0.6227571624924929, + -0.6227571624924929, + -8.874289565518025, + 2.179650068723725, + -78.62309176467723, + 22.1078792684835, + -3.1137858124624644, + 0.15568929062312323, + -0.46706787186936966, + 0.9341357437387393, + 1.401203615608109, + -0.7784464531156161, + -1.5568929062312322, + 75.50930595221476, + -22.73063643097599, + 4.514989428070574, + -0.9341357437387393, + 47.018165768183216, + -6.071882334301805, + 2.802407231216218, + -37.67680833079582, + 3.425164393708711, + 0.6227571624924929, + 0.15568929062312323, + 0.6227571624924929, + 0.0, + 0.31137858124624646, + 0.0, + ], + [ + -0.15568929062312323, + 3.1137858124624644, + 0.9341357437387393, + 0.6227571624924929, + -26.1558008246847, + 3.2694751030855875, + 21.329432815367884, + -467.22356115999276, + 55.26969817120874, + -0.46706787186936966, + 1.401203615608109, + 0.15568929062312323, + -1.5568929062312322, + -0.15568929062312323, + -5.2934358811861895, + -22.73063643097599, + 508.4812231751205, + -57.760726821178714, + 1.2455143249849858, + -9.18566814676427, + 2.023960778100602, + 0.31137858124624646, + -11.05393963424175, + 2.179650068723725, + 1.0898250343618625, + 0.6227571624924929, + -1.0898250343618625, + 0.31137858124624646, + -0.0, + 0.15568929062312323, + ], + [ + -1.8682714874774786, + 0.6227571624924929, + 4.82636800931682, + 3.7365429749549572, + -47.95230151192195, + 6.071882334301805, + -2.179650068723725, + 54.17987313684688, + -86.09617771458714, + 0.46706787186936966, + 1.5568929062312322, + 2.3353393593468486, + -0.9341357437387393, + -5.137746590563067, + -8.25153240302553, + 4.514989428070574, + -57.760726821178714, + 89.8327206895421, + 0.46706787186936966, + 19.77253990913665, + -3.7365429749549572, + -4.670678718693697, + 33.31750819334837, + -4.514989428070574, + 0.31137858124624646, + 1.401203615608109, + -0.31137858124624646, + 0.31137858124624646, + -0.15568929062312323, + -0.15568929062312323, + ], + [ + 3.1137858124624644, + -0.6227571624924929, + 0.31137858124624646, + -7.4730859499099145, + 0.46706787186936966, + -2.802407231216218, + -394.04959456712487, + 78.77878105530036, + -138.40777936395656, + 1.8682714874774786, + -1.5568929062312322, + -0.46706787186936966, + 0.31137858124624646, + -0.6227571624924929, + 0.15568929062312323, + -0.9341357437387393, + 1.2455143249849858, + 0.46706787186936966, + 426.4329670167345, + -87.18600274894901, + 155.37791204187698, + -30.670790252755275, + 8.7186002748949, + -14.167725446704214, + 0.15568929062312323, + 0.31137858124624646, + 0.15568929062312323, + 0.7784464531156161, + 0.31137858124624646, + -0.6227571624924929, + ], + [ + -0.46706787186936966, + -0.6227571624924929, + 2.179650068723725, + -26.62286869655407, + 6.383260915548052, + -11.209628924864871, + 80.49136325215471, + -95.9046030238439, + 37.98818691204207, + -0.6227571624924929, + -1.2455143249849858, + -5.760503753055559, + -0.46706787186936966, + 1.2455143249849858, + 1.401203615608109, + 47.018165768183216, + -9.18566814676427, + 19.77253990913665, + -87.18600274894901, + 96.06029231446702, + -37.67680833079582, + -13.07790041234235, + 2.179650068723725, + -7.161707368663668, + 0.31137858124624646, + 0.15568929062312323, + -0.15568929062312323, + 0.9341357437387393, + 0.6227571624924929, + 0.46706787186936966, + ], + [ + -0.15568929062312323, + 1.0898250343618625, + 4.982057299939943, + -44.838515699459485, + 10.275493181126134, + -20.706675652875386, + -137.00657574834844, + 38.76663336515768, + -132.33589702965475, + -0.7784464531156161, + -5.449125171809313, + -7.4730859499099145, + 1.2455143249849858, + 0.46706787186936966, + 2.023960778100602, + -6.071882334301805, + 2.023960778100602, + -3.7365429749549572, + 155.37791204187698, + -37.67680833079582, + 143.23414737327337, + 30.048033090262784, + -9.497046728010517, + 15.724618352935446, + -0.15568929062312323, + 0.31137858124624646, + -0.31137858124624646, + 1.8682714874774786, + -0.46706787186936966, + -1.7125821968543555, + ], + [ + 2.802407231216218, + -0.0, + -0.7784464531156161, + 4.35930013744745, + 3.7365429749549572, + -3.8922322655780808, + -278.68383021539057, + -74.41948091785291, + 185.27025584151662, + 0.46706787186936966, + 0.6227571624924929, + 0.46706787186936966, + 0.31137858124624646, + 0.31137858124624646, + 0.15568929062312323, + 2.802407231216218, + 0.31137858124624646, + -4.670678718693697, + -30.670790252755275, + -13.07790041234235, + 30.048033090262784, + 297.67792367141163, + 82.98239190212468, + -205.50986362252266, + 0.0, + -0.15568929062312323, + -0.15568929062312323, + 0.7784464531156161, + -0.6227571624924929, + -0.9341357437387393, + ], + [ + 0.6227571624924929, + -0.46706787186936966, + -6.850328787417422, + 20.550986362252267, + 7.7844645311561615, + -11.521007506111118, + -74.57517020847602, + -107.42561052995504, + 66.32363780545049, + -0.15568929062312323, + 0.7784464531156161, + 0.7784464531156161, + 0.31137858124624646, + 0.7784464531156161, + 1.5568929062312322, + -37.67680833079582, + -11.05393963424175, + 33.31750819334837, + 8.7186002748949, + 2.179650068723725, + -9.497046728010517, + 82.98239190212468, + 107.58129982057814, + -73.32965588349104, + 0.0, + -0.15568929062312323, + -1.0898250343618625, + -0.7784464531156161, + 0.0, + 0.31137858124624646, + ], + [ + -0.31137858124624646, + -6.227571624924929, + -11.988075377980488, + 34.563022518333355, + 17.4372005497898, + -23.353393593468482, + 184.64749867902415, + 66.79070567731986, + -249.72562215948963, + -0.9341357437387393, + 0.7784464531156161, + 1.5568929062312322, + -0.31137858124624646, + -0.15568929062312323, + 2.3353393593468486, + 3.425164393708711, + 2.179650068723725, + -4.514989428070574, + -14.167725446704214, + -7.161707368663668, + 15.724618352935446, + -205.50986362252266, + -73.32965588349104, + 268.40833703426443, + -0.6227571624924929, + -0.6227571624924929, + 1.2455143249849858, + -0.7784464531156161, + 0.0, + 0.31137858124624646, + ], + [ + -99.64114599879886, + 2.9580965218393414, + 11.365318215487996, + 2.3353393593468486, + -48.73074796503757, + 7.628775240533038, + 0.15568929062312323, + 0.46706787186936966, + -0.46706787186936966, + 0.15568929062312323, + -0.46706787186936966, + -0.6227571624924929, + -5.760503753055559, + -2.4910286499699716, + 7.7844645311561615, + 0.6227571624924929, + 1.0898250343618625, + 0.31137858124624646, + 0.15568929062312323, + 0.31137858124624646, + -0.15568929062312323, + 0.0, + 0.0, + -0.6227571624924929, + 103.06631039250756, + -18.83840416539791, + -13.389278993588597, + -0.9341357437387393, + 65.38950206171175, + -11.676696796734241, + ], + [ + 27.40131514966969, + -620.7332017143923, + 143.23414737327337, + 0.6227571624924929, + -17.125821968543555, + -6.850328787417422, + 1.8682714874774786, + 3.2694751030855875, + -1.7125821968543555, + -0.46706787186936966, + 0.6227571624924929, + -0.0, + -4.35930013744745, + 2.4910286499699716, + 2.179650068723725, + 0.15568929062312323, + 0.6227571624924929, + 1.401203615608109, + 0.31137858124624646, + 0.15568929062312323, + 0.31137858124624646, + -0.15568929062312323, + -0.15568929062312323, + -0.6227571624924929, + -18.83840416539791, + 647.5117597015695, + -131.86882915778537, + -6.383260915548052, + -14.946171899819829, + -6.227571624924929, + ], + [ + 10.742561052995502, + 60.09606618052557, + -40.94628343388141, + 4.514989428070574, + 47.64092293067571, + -19.616850618513528, + -2.3353393593468486, + 2.802407231216218, + 1.8682714874774786, + -1.2455143249849858, + -1.401203615608109, + 1.2455143249849858, + 5.2934358811861895, + 0.31137858124624646, + -3.580853684331834, + 0.6227571624924929, + -1.0898250343618625, + -0.31137858124624646, + 0.15568929062312323, + -0.15568929062312323, + -0.31137858124624646, + -0.15568929062312323, + -1.0898250343618625, + 1.2455143249849858, + -13.389278993588597, + -131.86882915778537, + 68.03622000230486, + -4.047921556201204, + 24.754597209076593, + -7.628775240533038, + ], + [ + -545.6909636340469, + 119.72506448918175, + -155.06653346063072, + -42.970244211982006, + 5.449125171809313, + -22.73063643097599, + 2.6467179405930947, + 0.6227571624924929, + -1.8682714874774786, + -3.580853684331834, + -4.047921556201204, + 8.25153240302553, + 1.2455143249849858, + -0.15568929062312323, + -0.31137858124624646, + 0.0, + 0.31137858124624646, + 0.31137858124624646, + 0.7784464531156161, + 0.9341357437387393, + 1.8682714874774786, + 0.7784464531156161, + -0.7784464531156161, + -0.7784464531156161, + -0.9341357437387393, + -6.383260915548052, + -4.047921556201204, + 587.8827613929133, + -116.14421080484992, + 174.68338407914425, + ], + [ + 67.10208425856611, + -94.5033994082358, + 59.784687599279316, + -12.14376466860361, + 4.047921556201204, + -9.65273601863364, + 1.0898250343618625, + -1.2455143249849858, + 1.2455143249849858, + -4.514989428070574, + 0.9341357437387393, + 3.2694751030855875, + -1.0898250343618625, + 0.15568929062312323, + -0.6227571624924929, + 0.31137858124624646, + -0.0, + -0.15568929062312323, + 0.31137858124624646, + 0.6227571624924929, + -0.46706787186936966, + -0.6227571624924929, + 0.0, + 0.0, + 65.38950206171175, + -14.946171899819829, + 24.754597209076593, + -116.14421080484992, + 105.09027117060819, + -78.15602389280787, + ], + [ + -216.40811396614131, + 95.28184586135141, + -126.88677185784543, + 49.04212654628382, + -11.521007506111118, + 9.808425309256764, + 2.4910286499699716, + -0.9341357437387393, + 3.580853684331834, + 5.2934358811861895, + 1.0898250343618625, + -4.047921556201204, + -1.8682714874774786, + -0.6227571624924929, + 1.0898250343618625, + 0.0, + 0.15568929062312323, + -0.15568929062312323, + -0.6227571624924929, + 0.46706787186936966, + -1.7125821968543555, + -0.9341357437387393, + 0.31137858124624646, + 0.31137858124624646, + -11.676696796734241, + -6.227571624924929, + -7.628775240533038, + 174.68338407914425, + -78.15602389280787, + 125.95263611410668, + ], + ] np.testing.assert_almost_equal(hessian, np.array(expected_hessian, np.float64)) def test_load_geometry(self): """Test loading the geometry from a TeraChem xyz output file""" - log_file = TeraChemLog(os.path.join(self.data_path, 'ethane_coords.xyz')) + log_file = TeraChemLog(os.path.join(self.data_path, "ethane_coords.xyz")) coords, numbers, masses = log_file.load_geometry() np.testing.assert_almost_equal( - coords, np.array([[0.66409651, 0.00395265, 0.07100793], - [-0.66409647, -0.00395253, -0.0710079], - [1.24675866, 0.88983869, -0.1613784], - [1.19483972, -0.8753068, 0.42244414], - [-1.19483975, 0.87530673, -0.42244421], - [-1.24675868, -0.88983873, 0.16137844]], np.float64)) - np.testing.assert_almost_equal(numbers, np.array([6, 6, 1, 1, 1, 1], np.float64)) - np.testing.assert_almost_equal(masses, np.array( - [12., 12., 1.00782503, 1.00782503, 1.00782503, 1.00782503], np.float64)) + coords, + np.array( + [ + [0.66409651, 0.00395265, 0.07100793], + [-0.66409647, -0.00395253, -0.0710079], + [1.24675866, 0.88983869, -0.1613784], + [1.19483972, -0.8753068, 0.42244414], + [-1.19483975, 0.87530673, -0.42244421], + [-1.24675868, -0.88983873, 0.16137844], + ], + np.float64, + ), + ) + np.testing.assert_almost_equal( + numbers, np.array([6, 6, 1, 1, 1, 1], np.float64) + ) + np.testing.assert_almost_equal( + masses, + np.array( + [12.0, 12.0, 1.00782503, 1.00782503, 1.00782503, 1.00782503], np.float64 + ), + ) - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_coords.xyz')) + log_file = TeraChemLog(os.path.join(self.data_path, "formaldehyde_coords.xyz")) coords, numbers, masses = log_file.load_geometry() np.testing.assert_almost_equal( - coords, np.array([[-4.23756410e-03, 4.24348000e-05, -5.28516700e-04], - [1.19165823e+00, -1.75471911e-02, 1.58030931e-01], - [-5.96146428e-01, 9.38505681e-01, 4.33255558e-02], - [-5.91274235e-01, -9.21000915e-01, -2.00827970e-01]], np.float64)) + coords, + np.array( + [ + [-4.23756410e-03, 4.24348000e-05, -5.28516700e-04], + [1.19165823e00, -1.75471911e-02, 1.58030931e-01], + [-5.96146428e-01, 9.38505681e-01, 4.33255558e-02], + [-5.91274235e-01, -9.21000915e-01, -2.00827970e-01], + ], + np.float64, + ), + ) np.testing.assert_almost_equal(numbers, np.array([6, 8, 1, 1], np.float64)) np.testing.assert_almost_equal( - masses, np.array([12., 15.99491462, 1.00782503, 1.00782503], np.float64)) + masses, np.array([12.0, 15.99491462, 1.00782503, 1.00782503], np.float64) + ) - log_file = TeraChemLog(os.path.join(self.data_path, 'ethane_output.geometry')) + log_file = TeraChemLog(os.path.join(self.data_path, "ethane_output.geometry")) coords, numbers, masses = log_file.load_geometry() np.testing.assert_almost_equal( - coords, np.array([[0.66409651, 0.00395265, 0.07100793], - [-0.66409647, -0.00395253, -0.0710079], - [1.24675866, 0.88983869, -0.1613784], - [1.19483972, -0.8753068, 0.42244414], - [-1.19483975, 0.87530673, -0.42244421], - [-1.24675868, -0.88983873, 0.16137844]], np.float64)) - np.testing.assert_almost_equal(numbers, np.array([6, 6, 1, 1, 1, 1], np.float64)) + coords, + np.array( + [ + [0.66409651, 0.00395265, 0.07100793], + [-0.66409647, -0.00395253, -0.0710079], + [1.24675866, 0.88983869, -0.1613784], + [1.19483972, -0.8753068, 0.42244414], + [-1.19483975, 0.87530673, -0.42244421], + [-1.24675868, -0.88983873, 0.16137844], + ], + np.float64, + ), + ) + np.testing.assert_almost_equal( + numbers, np.array([6, 6, 1, 1, 1, 1], np.float64) + ) np.testing.assert_almost_equal( - masses, np.array([12., 12., 1.00782504, 1.00782504, 1.00782504, 1.00782504], np.float64)) + masses, + np.array( + [12.0, 12.0, 1.00782504, 1.00782504, 1.00782504, 1.00782504], np.float64 + ), + ) - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_output.geometry')) + log_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_output.geometry") + ) coords, numbers, masses = log_file.load_geometry() np.testing.assert_almost_equal( - coords, np.array([[-1.2224100e-02, 1.8041000e-04, -1.6211600e-03], - [1.2016482e+00, -1.7734170e-02, 1.5936241e-01], - [-5.9716440e-01, 9.3272817e-01, 4.2440100e-02], - [-5.9225970e-01, -9.1517440e-01, -2.0018135e-01]], np.float64)) + coords, + np.array( + [ + [-1.2224100e-02, 1.8041000e-04, -1.6211600e-03], + [1.2016482e00, -1.7734170e-02, 1.5936241e-01], + [-5.9716440e-01, 9.3272817e-01, 4.2440100e-02], + [-5.9225970e-01, -9.1517440e-01, -2.0018135e-01], + ], + np.float64, + ), + ) np.testing.assert_almost_equal(numbers, np.array([6, 8, 1, 1], np.float64)) np.testing.assert_almost_equal( - masses, np.array([12., 15.99491464, 1.00782504, 1.00782504], np.float64)) + masses, np.array([12.0, 15.99491464, 1.00782504, 1.00782504], np.float64) + ) - log_file = TeraChemLog(os.path.join(self.data_path, 'ethylamine_freq_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "ethylamine_freq_output.out") + ) coords, numbers, masses = log_file.load_geometry() np.testing.assert_almost_equal( - coords, np.array([[2.370236, 0.065481, -1.194536], - [0.512276, -0.516064, 0.779232], - [0.859257, 0.87292, 3.300986], - [-1.367578, -0.100279, 0.008089], - [0.56292, -2.564216, 1.100445], - [0.755566, 2.927958, 3.038153], - [2.705598, 0.43874, 4.141338], - [-0.600934, 0.336582, 4.672435], - [2.352825, 1.959707, -1.552162], - [4.141389, -0.322693, -0.540207]], np.float64)) - np.testing.assert_almost_equal(numbers, np.array([7, 6, 6, 1, 1, 1, 1, 1, 1, 1], np.float64)) + coords, + np.array( + [ + [2.370236, 0.065481, -1.194536], + [0.512276, -0.516064, 0.779232], + [0.859257, 0.87292, 3.300986], + [-1.367578, -0.100279, 0.008089], + [0.56292, -2.564216, 1.100445], + [0.755566, 2.927958, 3.038153], + [2.705598, 0.43874, 4.141338], + [-0.600934, 0.336582, 4.672435], + [2.352825, 1.959707, -1.552162], + [4.141389, -0.322693, -0.540207], + ], + np.float64, + ), + ) np.testing.assert_almost_equal( - masses, np.array([14.003074, 12., 12., 1.00782503, 1.00782503, 1.00782503, 1.00782503, - 1.00782503, 1.00782503, 1.00782503], np.float64)) + numbers, np.array([7, 6, 6, 1, 1, 1, 1, 1, 1, 1], np.float64) + ) + np.testing.assert_almost_equal( + masses, + np.array( + [ + 14.003074, + 12.0, + 12.0, + 1.00782503, + 1.00782503, + 1.00782503, + 1.00782503, + 1.00782503, + 1.00782503, + 1.00782503, + ], + np.float64, + ), + ) - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_freq_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_freq_output.out") + ) coords, numbers, masses = log_file.load_geometry() np.testing.assert_almost_equal( - coords, np.array([[2.261989e+00, -1.149050e-01, 1.783170e-01], - [-8.108000e-03, 2.710000e-04, -6.880000e-04], - [-1.038653e+00, 1.827038e+00, -6.398200e-02], - [-1.215229e+00, -1.712404e+00, -1.136470e-01]], np.float64)) + coords, + np.array( + [ + [2.261989e00, -1.149050e-01, 1.783170e-01], + [-8.108000e-03, 2.710000e-04, -6.880000e-04], + [-1.038653e00, 1.827038e00, -6.398200e-02], + [-1.215229e00, -1.712404e00, -1.136470e-01], + ], + np.float64, + ), + ) np.testing.assert_almost_equal(numbers, np.array([8, 6, 1, 1], np.float64)) np.testing.assert_almost_equal( - masses, np.array([15.99491462, 12., 1.00782503, 1.00782503], np.float64)) + masses, np.array([15.99491462, 12.0, 1.00782503, 1.00782503], np.float64) + ) def test_load_conformer(self): """ Test parsing frequencies and spin multiplicity from a TeraChem log file. Translation and rotation modes are not read from the TeraCHem log, and are instead added in statmech. """ - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_freq_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_freq_output.out") + ) conformer, unscaled_freqs = log_file.load_conformer() self.assertIsInstance(conformer, Conformer) self.assertEqual(len(conformer.modes), 1) - np.testing.assert_almost_equal(conformer.modes[0].frequencies.value_si, unscaled_freqs) - expected_freqs = [1198.6352081, 1276.1991058, 1563.6275932, 1893.2440765, - 2916.3917533, 2965.8683956] - np.testing.assert_almost_equal(conformer.modes[0].frequencies.value_si, expected_freqs) + np.testing.assert_almost_equal( + conformer.modes[0].frequencies.value_si, unscaled_freqs + ) + expected_freqs = [ + 1198.6352081, + 1276.1991058, + 1563.6275932, + 1893.2440765, + 2916.3917533, + 2965.8683956, + ] + np.testing.assert_almost_equal( + conformer.modes[0].frequencies.value_si, expected_freqs + ) self.assertEqual(conformer.spin_multiplicity, 1) - failed_log_file = TeraChemLog(os.path.join(self.data_path, 'failed_freq_job.out')) + failed_log_file = TeraChemLog( + os.path.join(self.data_path, "failed_freq_job.out") + ) with self.assertRaises(LogError): failed_log_file.load_conformer() def test_load_energy(self): """Test loading the energy in J/mol from a TeraChem output.out or results.dat file""" - output_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_sp_terachem_output.out')) - results_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_sp_terachem_results.dat')) - freq_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_freq_output.out')) - opt_file = TeraChemLog(os.path.join(self.data_path, 'ethane_minimize_output.out')) + output_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_sp_terachem_output.out") + ) + results_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_sp_terachem_results.dat") + ) + freq_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_freq_output.out") + ) + opt_file = TeraChemLog( + os.path.join(self.data_path, "ethane_minimize_output.out") + ) e_elect_1 = output_file.load_energy() e_elect_2 = results_file.load_energy() e_elect_3 = freq_file.load_energy() @@ -375,44 +1267,127 @@ def test_load_energy(self): def test_load_zero_point_energy(self): """Test loading the ZPE from a TeraChem freq output file""" - log_file = TeraChemLog(os.path.join(self.data_path, 'ethylamine_freq_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "ethylamine_freq_output.out") + ) zpe = log_file.load_zero_point_energy() self.assertAlmostEqual(zpe, 243113.46765236984) - log_file = TeraChemLog(os.path.join(self.data_path, 'formaldehyde_freq_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "formaldehyde_freq_output.out") + ) zpe = log_file.load_zero_point_energy() self.assertAlmostEqual(zpe, 70663.2091453692) def test_load_scan_energies(self): """Test loading a PES scan from a TeraCHem log file""" - log_file = TeraChemLog(os.path.join(self.data_path, 'ethanol_scan_terachem_output.out')) + log_file = TeraChemLog( + os.path.join(self.data_path, "ethanol_scan_terachem_output.out") + ) v_list, angles = log_file.load_scan_energies() print(angles) - expected_v_list = [3.31469351e+00, 5.61670297e+02, 2.28894412e+03, 5.02988537e+03, - 8.06230147e+03, 1.09146826e+04, 1.31616066e+04, 1.44091777e+04, - 1.42173813e+04, 1.28403610e+04, 1.07514495e+04, 7.96656078e+03, - 4.81040645e+03, 2.42069223e+03, 7.90256554e+02, 4.20132486e+00, - 4.54592173e+02, 2.06279144e+03, 4.67391931e+03, 7.62857835e+03, - 1.04970774e+04, 1.27455046e+04, 1.42866289e+04, 1.43930501e+04, - 1.31587081e+04, 1.10047441e+04, 8.24254519e+03, 5.10264086e+03, - 2.56880350e+03, 7.56736797e+02, 1.30067263e+00, 5.19872864e+02, - 2.30963595e+03, 5.02046166e+03, 7.97285489e+03, 1.06923710e+04, - 1.29244615e+04, 1.43422341e+04, 1.43905580e+04, 1.32047110e+04, - 1.12088126e+04, 8.31162367e+03, 5.06568695e+03, 2.54966151e+03, - 8.50076205e+02, 0.00000000e+00] - expected_angles = [0., 0.13962634, 0.27925268, 0.41887902, 0.55850536, 0.6981317, - 0.83775804, 0.97738438, 1.11701072, 1.25663706, 1.3962634, 1.53588974, - 1.67551608, 1.81514242, 1.95476876, 2.0943951, 2.23402144, 2.37364778, - 2.51327412, 2.65290046, 2.7925268, 2.93215314, 3.07177948, 3.21140582, - 3.35103216, 3.4906585, 3.63028484, 3.76991118, 3.90953752, 4.04916386, - 4.1887902, 4.32841654, 4.46804289, 4.60766923, 4.74729557, 4.88692191, - 5.02654825, 5.16617459, 5.30580093, 5.44542727, 5.58505361, 5.72467995, - 5.86430629, 6.00393263, 6.14355897, 6.28318531] # radians + expected_v_list = [ + 3.31469351e00, + 5.61670297e02, + 2.28894412e03, + 5.02988537e03, + 8.06230147e03, + 1.09146826e04, + 1.31616066e04, + 1.44091777e04, + 1.42173813e04, + 1.28403610e04, + 1.07514495e04, + 7.96656078e03, + 4.81040645e03, + 2.42069223e03, + 7.90256554e02, + 4.20132486e00, + 4.54592173e02, + 2.06279144e03, + 4.67391931e03, + 7.62857835e03, + 1.04970774e04, + 1.27455046e04, + 1.42866289e04, + 1.43930501e04, + 1.31587081e04, + 1.10047441e04, + 8.24254519e03, + 5.10264086e03, + 2.56880350e03, + 7.56736797e02, + 1.30067263e00, + 5.19872864e02, + 2.30963595e03, + 5.02046166e03, + 7.97285489e03, + 1.06923710e04, + 1.29244615e04, + 1.43422341e04, + 1.43905580e04, + 1.32047110e04, + 1.12088126e04, + 8.31162367e03, + 5.06568695e03, + 2.54966151e03, + 8.50076205e02, + 0.00000000e00, + ] + expected_angles = [ + 0.0, + 0.13962634, + 0.27925268, + 0.41887902, + 0.55850536, + 0.6981317, + 0.83775804, + 0.97738438, + 1.11701072, + 1.25663706, + 1.3962634, + 1.53588974, + 1.67551608, + 1.81514242, + 1.95476876, + 2.0943951, + 2.23402144, + 2.37364778, + 2.51327412, + 2.65290046, + 2.7925268, + 2.93215314, + 3.07177948, + 3.21140582, + 3.35103216, + 3.4906585, + 3.63028484, + 3.76991118, + 3.90953752, + 4.04916386, + 4.1887902, + 4.32841654, + 4.46804289, + 4.60766923, + 4.74729557, + 4.88692191, + 5.02654825, + 5.16617459, + 5.30580093, + 5.44542727, + 5.58505361, + 5.72467995, + 5.86430629, + 6.00393263, + 6.14355897, + 6.28318531, + ] # radians np.testing.assert_almost_equal(v_list, expected_v_list, 4) np.testing.assert_almost_equal(angles, expected_angles) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/explorerTest.py b/test/arkane/explorerTest.py index 259bac3af7..57b6562cc4 100644 --- a/test/arkane/explorerTest.py +++ b/test/arkane/explorerTest.py @@ -42,7 +42,7 @@ ################################################################################ -@attr('functional') +@attr("functional") class TestExplorerJob(unittest.TestCase): """ Contains tests for ExplorerJob class execute method @@ -54,14 +54,21 @@ def setUpClass(cls): arkane = Arkane() cls.job_list = arkane.load_input_file( - os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data', 'methoxy_explore.py')) + os.path.join( + os.path.dirname(os.path.abspath(__file__)), "data", "methoxy_explore.py" + ) + ) for job in cls.job_list: if not isinstance(job, ExplorerJob): job.execute(output_file=None, plot=None) else: thermo_library, kinetics_library, species_list = arkane.get_libraries() - job.execute(output_file=None, plot=None, thermo_library=thermo_library, - kinetics_library=kinetics_library) + job.execute( + output_file=None, + plot=None, + thermo_library=thermo_library, + kinetics_library=kinetics_library, + ) cls.thermo_library = thermo_library cls.kinetics_library = kinetics_library cls.explorer_job = cls.job_list[-1] @@ -72,13 +79,14 @@ def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" # Reset module level database import rmgpy.data.rmg + rmgpy.data.rmg.database.kinetics = None def test_reactions(self): """ test that the right number of reactions are in output network """ - self.assertIn(len(self.explorer_job.networks[0].path_reactions), [6,7]) + self.assertIn(len(self.explorer_job.networks[0].path_reactions), [6, 7]) def test_isomers(self): """ @@ -94,8 +102,9 @@ def test_job_rxns(self): for rxn in self.explorer_job.job_rxns: self.assertIn(rxn, self.explorer_job.networks[0].path_reactions) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/modelchemTest.py b/test/arkane/modelchemTest.py index d1163f41db..bbd70518f6 100644 --- a/test/arkane/modelchemTest.py +++ b/test/arkane/modelchemTest.py @@ -34,25 +34,21 @@ import unittest from dataclasses import FrozenInstanceError -from arkane.modelchem import (LOT, LevelOfTheory, CompositeLevelOfTheory, - model_chem_to_lot, str_to_lot, get_software_id) +from arkane.modelchem import ( + LOT, + LevelOfTheory, + CompositeLevelOfTheory, + model_chem_to_lot, + str_to_lot, + get_software_id, +) # Instances for use in tests FREQ = LevelOfTheory( - method='wB97X-D', - basis='def2-TZVP', - software='Gaussian 16', - args='very-tight' -) -ENERGY = LevelOfTheory( - method='DLPNO-CCSD(T)-F12', - basis='def2-TZVP', - software='Orca' -) -COMPOSITE = CompositeLevelOfTheory( - freq=FREQ, - energy=ENERGY + method="wB97X-D", basis="def2-TZVP", software="Gaussian 16", args="very-tight" ) +ENERGY = LevelOfTheory(method="DLPNO-CCSD(T)-F12", basis="def2-TZVP", software="Orca") +COMPOSITE = CompositeLevelOfTheory(freq=FREQ, energy=ENERGY) # Representations corresponding to instances FREQ_REPR = "LevelOfTheory(method='wb97xd',basis='def2tzvp',software='gaussian',args=('verytight',))" @@ -61,28 +57,30 @@ # Dictionaries corresponding to instances FREQ_DICT = { - 'class': 'LevelOfTheory', - 'method': 'wb97xd', - 'basis': 'def2tzvp', - 'software': 'gaussian', - 'args': ['verytight'] # This is a list instead of tuple because that's what YAML files expect + "class": "LevelOfTheory", + "method": "wb97xd", + "basis": "def2tzvp", + "software": "gaussian", + "args": [ + "verytight" + ], # This is a list instead of tuple because that's what YAML files expect } ENERGY_DICT = { - 'class': 'LevelOfTheory', - 'method': 'dlpnoccsd(t)f12', - 'basis': 'def2tzvp', - 'software': 'orca', + "class": "LevelOfTheory", + "method": "dlpnoccsd(t)f12", + "basis": "def2tzvp", + "software": "orca", } COMPOSITE_DICT = { - 'class': 'CompositeLevelOfTheory', - 'freq': FREQ_DICT, - 'energy': ENERGY_DICT + "class": "CompositeLevelOfTheory", + "freq": FREQ_DICT, + "energy": ENERGY_DICT, } # Model chemistries corresponding to instances -FREQ_MODELCHEM = 'wb97xd/def2tzvp' -ENERGY_MODELCHEM = 'dlpnoccsd(t)f12/def2tzvp' -COMPOSITE_MODELCHEM = f'{ENERGY_MODELCHEM}//{FREQ_MODELCHEM}' +FREQ_MODELCHEM = "wb97xd/def2tzvp" +ENERGY_MODELCHEM = "dlpnoccsd(t)f12/def2tzvp" +COMPOSITE_MODELCHEM = f"{ENERGY_MODELCHEM}//{FREQ_MODELCHEM}" class TestLevelOfTheory(unittest.TestCase): @@ -94,12 +92,12 @@ def test_attrs(self): """ Test that instance behaves correctly. """ - self.assertEqual(FREQ.method, 'wb97xd') - self.assertEqual(FREQ.basis, 'def2tzvp') - self.assertEqual(FREQ.software, 'gaussian') - self.assertTupleEqual(FREQ.args, ('verytight',)) + self.assertEqual(FREQ.method, "wb97xd") + self.assertEqual(FREQ.basis, "def2tzvp") + self.assertEqual(FREQ.software, "gaussian") + self.assertTupleEqual(FREQ.args, ("verytight",)) with self.assertRaises(FrozenInstanceError): - FREQ.method = '' + FREQ.method = "" self.assertEqual(repr(FREQ), FREQ_REPR) self.assertEqual(repr(ENERGY), ENERGY_REPR) @@ -127,8 +125,8 @@ def test_comparison(self): _ = ENERGY > FREQ # Test args in different order - lot1 = LevelOfTheory('method', args=('arg1', 'arg2')) - lot2 = LevelOfTheory('method', args=('arg2', 'arg1')) + lot1 = LevelOfTheory("method", args=("arg1", "arg2")) + lot2 = LevelOfTheory("method", args=("arg2", "arg1")) self.assertEqual(lot1, lot2) def test_simple(self): @@ -141,7 +139,7 @@ def test_simple(self): self.assertEqual(lot.basis, FREQ.basis) self.assertEqual(lot.software, FREQ.software) for attr, val in lot.__dict__.items(): - if attr not in {'method', 'basis', 'software'}: + if attr not in {"method", "basis", "software"}: self.assertIsNone(val) def test_to_model_chem(self): @@ -151,21 +149,18 @@ def test_to_model_chem(self): self.assertEqual(FREQ.to_model_chem(), FREQ_MODELCHEM) self.assertEqual(ENERGY.to_model_chem(), ENERGY_MODELCHEM) - lot = LevelOfTheory( - method='CBS-QB3', - software='g16' - ) - self.assertEqual(lot.to_model_chem(), 'cbsqb3') + lot = LevelOfTheory(method="CBS-QB3", software="g16") + self.assertEqual(lot.to_model_chem(), "cbsqb3") def test_update(self): """ Test updating attributes. """ - lot = FREQ.update(software='Q-Chem') + lot = FREQ.update(software="Q-Chem") self.assertIsNot(lot, FREQ) - self.assertEqual(lot.software, 'qchem') + self.assertEqual(lot.software, "qchem") with self.assertRaises(TypeError): - FREQ.update(test='test') + FREQ.update(test="test") def test_as_dict(self): """ @@ -188,7 +183,7 @@ def test_attrs(self): self.assertIs(COMPOSITE.energy, ENERGY) self.assertEqual(repr(COMPOSITE), COMPOSITE_REPR) with self.assertRaises(FrozenInstanceError): - COMPOSITE.energy = '' + COMPOSITE.energy = "" self.assertIsInstance(COMPOSITE, LOT) @@ -214,10 +209,10 @@ def test_simple(self): self.assertEqual(lot.energy.method, COMPOSITE.energy.method) self.assertEqual(lot.energy.basis, COMPOSITE.energy.basis) for attr, val in lot.freq.__dict__.items(): - if attr not in {'method', 'basis', 'software'}: + if attr not in {"method", "basis", "software"}: self.assertIsNone(val) for attr, val in lot.energy.__dict__.items(): - if attr not in {'method', 'basis'}: + if attr not in {"method", "basis"}: self.assertIsNone(val) def test_to_model_chem(self): @@ -243,29 +238,35 @@ def test_model_chem_to_lot(self): Test model chemistry to quantum calculation settings conversion. """ self.assertEqual( - model_chem_to_lot(FREQ_MODELCHEM, software='gaussian', args='verytight'), - FREQ + model_chem_to_lot(FREQ_MODELCHEM, software="gaussian", args="verytight"), + FREQ, ) self.assertEqual( - model_chem_to_lot(FREQ_MODELCHEM, - freq_settings={'software': 'gaussian', 'args': 'verytight'}), - FREQ + model_chem_to_lot( + FREQ_MODELCHEM, + freq_settings={"software": "gaussian", "args": "verytight"}, + ), + FREQ, ) self.assertEqual( - model_chem_to_lot(FREQ_MODELCHEM, - freq_settings={'software': 'gaussian', 'args': 'verytight'}, - energy_settings={'unused setting': None}), - FREQ + model_chem_to_lot( + FREQ_MODELCHEM, + freq_settings={"software": "gaussian", "args": "verytight"}, + energy_settings={"unused setting": None}, + ), + FREQ, ) self.assertEqual( - model_chem_to_lot(ENERGY_MODELCHEM, energy_settings={'software': 'orca'}), - ENERGY + model_chem_to_lot(ENERGY_MODELCHEM, energy_settings={"software": "orca"}), + ENERGY, ) self.assertEqual( - model_chem_to_lot(COMPOSITE_MODELCHEM, - freq_settings={'software': 'gaussian', 'args': 'verytight'}, - energy_settings={'software': 'orca'}), - COMPOSITE + model_chem_to_lot( + COMPOSITE_MODELCHEM, + freq_settings={"software": "gaussian", "args": "verytight"}, + energy_settings={"software": "orca"}, + ), + COMPOSITE, ) def test_str_to_lot(self): @@ -280,29 +281,29 @@ def test_get_software_id(self): """ Test standardized software identifiers. """ - test_names = ['gaussian', 'Gaussian 09', 'g-16', 'Gau 03'] + test_names = ["gaussian", "Gaussian 09", "g-16", "Gau 03"] for name in test_names: - self.assertEqual(get_software_id(name), 'gaussian') + self.assertEqual(get_software_id(name), "gaussian") - test_names = ['qchem', 'QChem', 'Q-Chem'] + test_names = ["qchem", "QChem", "Q-Chem"] for name in test_names: - self.assertEqual(get_software_id(name), 'qchem') + self.assertEqual(get_software_id(name), "qchem") - test_names = ['molpro', 'Molpro', 'MOLPRO'] + test_names = ["molpro", "Molpro", "MOLPRO"] for name in test_names: - self.assertEqual(get_software_id(name), 'molpro') + self.assertEqual(get_software_id(name), "molpro") - test_names = ['orca', 'Orca', 'ORCA'] + test_names = ["orca", "Orca", "ORCA"] for name in test_names: - self.assertEqual(get_software_id(name), 'orca') + self.assertEqual(get_software_id(name), "orca") - test_names = ['terachem', 'Terachem', 'TeraChem', 'Tera-Chem', 'Tera Chem'] + test_names = ["terachem", "Terachem", "TeraChem", "Tera-Chem", "Tera Chem"] for name in test_names: - self.assertEqual(get_software_id(name), 'terachem') + self.assertEqual(get_software_id(name), "terachem") with self.assertRaises(ValueError): - get_software_id('g') + get_software_id("g") -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/pdepTest.py b/test/arkane/pdepTest.py index 315023ab11..9eb156ef17 100644 --- a/test/arkane/pdepTest.py +++ b/test/arkane/pdepTest.py @@ -48,7 +48,7 @@ ################################################################################ -@attr('functional') +@attr("functional") class ArkaneTest(unittest.TestCase): """ Contains unit tests for the sensitivity module in Arkane @@ -57,17 +57,31 @@ class ArkaneTest(unittest.TestCase): @classmethod def setUp(cls): """A function that is run ONCE before all unit tests in this class.""" - cls.directory = os.path.join(settings['test_data.directory'], 'arkane', 'tst1', '') - cls.input_file = os.path.join(cls.directory, 'pdep_sa.py') + cls.directory = os.path.join( + settings["test_data.directory"], "arkane", "tst1", "" + ) + cls.input_file = os.path.join(cls.directory, "pdep_sa.py") # clean working folder from all previous test output - dirs = [d for d in os.listdir(cls.directory) if not os.path.isfile(os.path.join(cls.directory, d))] + dirs = [ + d + for d in os.listdir(cls.directory) + if not os.path.isfile(os.path.join(cls.directory, d)) + ] for d in dirs: - shutil.rmtree(os.path.join(settings['test_data.directory'], 'arkane', 'tst1', d, '')) - files = [f for f in os.listdir(cls.directory) if os.path.isfile(os.path.join(cls.directory, f))] + shutil.rmtree( + os.path.join(settings["test_data.directory"], "arkane", "tst1", d, "") + ) + files = [ + f + for f in os.listdir(cls.directory) + if os.path.isfile(os.path.join(cls.directory, f)) + ] for f in files: - if 'pdep_sa' not in f: - os.remove(os.path.join(settings['test_data.directory'], 'arkane', 'tst1', f)) + if "pdep_sa" not in f: + os.remove( + os.path.join(settings["test_data.directory"], "arkane", "tst1", f) + ) def test_pdep_job(self): """ @@ -87,35 +101,58 @@ def test_pdep_job(self): self.assertEqual(job.minimum_grain_count, 100) self.assertFalse(job.rmgmode) self.assertTrue(job.active_j_rotor) - self.assertEqual(job.network.path_reactions[0].label, 'acetylperoxy <=> hydroperoxylvinoxy') - self.assertAlmostEqual(job.network.path_reactions[0].transition_state.tunneling.E0_TS.value_si, -24267.2) - self.assertAlmostEqual(job.network.path_reactions[0].transition_state.tunneling.frequency.value_si, -1679.04) - self.assertEqual(len(job.network.net_reactions[0].reactants[0].conformer.modes), 6) + self.assertEqual( + job.network.path_reactions[0].label, "acetylperoxy <=> hydroperoxylvinoxy" + ) + self.assertAlmostEqual( + job.network.path_reactions[0].transition_state.tunneling.E0_TS.value_si, + -24267.2, + ) + self.assertAlmostEqual( + job.network.path_reactions[0].transition_state.tunneling.frequency.value_si, + -1679.04, + ) + self.assertEqual( + len(job.network.net_reactions[0].reactants[0].conformer.modes), 6 + ) # self.assertEqual(self.tst1.frequencyScaleFactor, 0.947) # test that a network pdf was generated - files = [f for f in os.listdir(self.directory) if os.path.isfile(os.path.join(self.directory, f))] - self.assertTrue(any(f == 'network.pdf' for f in files)) + files = [ + f + for f in os.listdir(self.directory) + if os.path.isfile(os.path.join(self.directory, f)) + ] + self.assertTrue(any(f == "network.pdf" for f in files)) # Test the generated network reaction - dictionary = {'hydroperoxylvinoxy': Species().from_smiles('[CH2]C(=O)OO'), - 'acetylperoxy': Species().from_smiles('CC(=O)O[O]')} - with open(os.path.join(self.directory, 'chem.inp'), 'r') as chem: + dictionary = { + "hydroperoxylvinoxy": Species().from_smiles("[CH2]C(=O)OO"), + "acetylperoxy": Species().from_smiles("CC(=O)O[O]"), + } + with open(os.path.join(self.directory, "chem.inp"), "r") as chem: reaction_list = read_reactions_block(chem, dictionary) rxn = reaction_list[0] self.assertIsInstance(rxn.kinetics, Chebyshev) # Accept a delta of 0.2, which could result from numerical discrepancies # See RMG-Py #1682 on GitHub for discussion - self.assertAlmostEqual(rxn.kinetics.get_rate_coefficient(1000.0, 1.0), 88.88253229631246, delta=0.2) - - files = [f for f in os.listdir(os.path.join(self.directory, 'sensitivity', '')) - if os.path.isfile(os.path.join(self.directory, 'sensitivity', f))] - self.assertTrue(any('hydroperoxylvinoxy.pdf' in f for f in files)) - - with open(os.path.join(self.directory, 'sensitivity', 'network1.txt'), 'r') as f: + self.assertAlmostEqual( + rxn.kinetics.get_rate_coefficient(1000.0, 1.0), 88.88253229631246, delta=0.2 + ) + + files = [ + f + for f in os.listdir(os.path.join(self.directory, "sensitivity", "")) + if os.path.isfile(os.path.join(self.directory, "sensitivity", f)) + ] + self.assertTrue(any("hydroperoxylvinoxy.pdf" in f for f in files)) + + with open( + os.path.join(self.directory, "sensitivity", "network1.txt"), "r" + ) as f: lines = f.readlines() for line in lines: - if '1000.0' in line: + if "1000.0" in line: break sa_coeff = line.split()[-2] self.assertAlmostEqual(float(sa_coeff), -7.02e-07, delta=0.02e-6) @@ -123,20 +160,35 @@ def test_pdep_job(self): @classmethod def tearDown(cls): """A function that is run ONCE after all unit tests in this class.""" - cls.directory = os.path.join(settings['test_data.directory'], 'arkane', 'tst1', '') - cls.input_file = os.path.join(cls.directory, 'pdep_sa.py') + cls.directory = os.path.join( + settings["test_data.directory"], "arkane", "tst1", "" + ) + cls.input_file = os.path.join(cls.directory, "pdep_sa.py") # clean working folder from all previous test output - dirs = [d for d in os.listdir(cls.directory) if not os.path.isfile(os.path.join(cls.directory, d))] + dirs = [ + d + for d in os.listdir(cls.directory) + if not os.path.isfile(os.path.join(cls.directory, d)) + ] for d in dirs: - shutil.rmtree(os.path.join(settings['test_data.directory'], 'arkane', 'tst1', d, '')) - files = [f for f in os.listdir(cls.directory) if os.path.isfile(os.path.join(cls.directory, f))] + shutil.rmtree( + os.path.join(settings["test_data.directory"], "arkane", "tst1", d, "") + ) + files = [ + f + for f in os.listdir(cls.directory) + if os.path.isfile(os.path.join(cls.directory, f)) + ] for f in files: - if 'pdep_sa' not in f: - os.remove(os.path.join(settings['test_data.directory'], 'arkane', 'tst1', f)) + if "pdep_sa" not in f: + os.remove( + os.path.join(settings["test_data.directory"], "arkane", "tst1", f) + ) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/statmechTest.py b/test/arkane/statmechTest.py index 9846197505..598caf60a8 100644 --- a/test/arkane/statmechTest.py +++ b/test/arkane/statmechTest.py @@ -56,8 +56,11 @@ class TestStatmech(unittest.TestCase): def setUp(cls): """A method that is run before each unit test in this class""" arkane = Arkane() - cls.job_list = arkane.load_input_file(os.path.join(os.path.dirname(os.path.abspath(__file__)), - 'data', 'Benzyl', 'input.py')) + cls.job_list = arkane.load_input_file( + os.path.join( + os.path.dirname(os.path.abspath(__file__)), "data", "Benzyl", "input.py" + ) + ) def test_gaussian_log_file_error(self): """Test that the proper error is raised if gaussian geometry and frequency file paths are not the same""" @@ -70,76 +73,112 @@ def test_rotor_symmetry_determination(self): """ Test that the correct symmetry number is determined for rotor potential scans. """ - path1 = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data', 'NCC_NRotor.out') - path2 = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data', 'NCC_CRotor.out') + path1 = os.path.join( + os.path.dirname(os.path.abspath(__file__)), "data", "NCC_NRotor.out" + ) + path2 = os.path.join( + os.path.dirname(os.path.abspath(__file__)), "data", "NCC_CRotor.out" + ) scan_log1 = QChemLog(path1) scan_log2 = QChemLog(path2) v_list1, angle = scan_log1.load_scan_energies() v_list2, angle = scan_log2.load_scan_energies() - symmetry1 = determine_rotor_symmetry(energies=v_list1, label='NCC', pivots=[]) - symmetry2 = determine_rotor_symmetry(energies=v_list2, label='NCC', pivots=[]) + symmetry1 = determine_rotor_symmetry(energies=v_list1, label="NCC", pivots=[]) + symmetry2 = determine_rotor_symmetry(energies=v_list2, label="NCC", pivots=[]) self.assertEqual(symmetry1, 1) self.assertEqual(symmetry2, 3) def test_is_linear(self): """Test that we can determine the linearity of a molecule from it's coordinates""" - xyz1 = np.array([ - [0.000000, 0.000000, 0.000000], - [0.000000, 0.000000, 1.159076], - [0.000000, 0.000000, -1.159076]]) # a trivial case - xyz2 = np.array([ - [-0.06618943, -0.12360663, -0.07631983], - [-0.79539707, 0.86755487, 1.02675668], - [-0.68919931, 0.25421823, -1.34830853], - [0.01546439, -1.54297548, 0.44580391], - [1.94428095, 0.40772394, 1.03719428], - [2.20318015, -0.14715186, -0.64755729], - [1.59252246, 1.51178950, -0.33908352], - [-0.87856890, -2.02453514, 0.38494433], - [-1.34135876, 1.49608206, 0.53295071]]) # a non-linear multi-atom molecule - xyz3 = np.array([ - [0.0000000000, 0.0000000000, 0.3146069129], - [-1.0906813653, 0.0000000000, -0.1376405244], - [1.0906813653, 0.0000000000, -0.1376405244]]) # NO2, a non-linear 3-atom molecule - xyz4 = np.array([ - [0.0000000000, 0.0000000000, 0.1413439534], - [-0.8031792912, 0.0000000000, -0.4947038368], - [0.8031792912, 0.0000000000, -0.4947038368]]) # NH2, a non-linear 3-atom molecule - xyz5 = np.array([ - [-0.5417345330, 0.8208150346, 0.0000000000], - [0.9206183692, 1.6432038228, 0.0000000000], - [-1.2739176462, 1.9692549926, 0.0000000000]]) # HSO, a non-linear 3-atom molecule - xyz6 = np.array([ - [1.18784533, 0.98526702, 0.00000000], - [0.04124533, 0.98526702, 0.00000000], - [-1.02875467, 0.98526702, 0.00000000]]) # HCN, a linear 3-atom molecule - xyz7 = np.array([ - [-4.02394116, 0.56169428, 0.00000000], - [-5.09394116, 0.56169428, 0.00000000], - [-2.82274116, 0.56169428, 0.00000000], - [-1.75274116, 0.56169428, 0.00000000]]) # C2H2, a linear 4-atom molecule - xyz8 = np.array([ - [-1.02600933, 2.12845307, 0.00000000], - [-0.77966935, 0.95278385, 0.00000000], - [-1.23666197, 3.17751246, 0.00000000], - [-0.56023545, -0.09447399, 0.00000000]]) # C2H2, just 0.5 degree off from linearity, so NOT linear - xyz9 = np.array([ - [-1.1998, 0.1610, 0.0275], - [-1.4021, 0.6223, -0.8489], - [-1.48302, 0.80682, -1.19946]]) # just 3 points in space on a straight line (not a physical molecule) - xyz10 = np.array([ - [-1.1998, 0.1610, 0.0275]]) # mono-atomic species, non-linear - xyz11 = np.array([ - [1.06026500, -0.07706800, 0.03372800], - [3.37340700, -0.07706800, 0.03372800], - [2.21683600, -0.07706800, 0.03372800]]) # CO2 at wb97xd/6-311+g(d,p), linear - xyz12 = np.array([ - [1.05503600, -0.00335000, 0.09823600], - [2.42816800, -0.00335000, 0.09823600], - [-0.14726400, -0.00335000, 0.09823600], - [3.63046800, -0.00335000, 0.09823600], - [-1.21103500, -0.00335000, 0.09823600], - [4.69423900, -0.00335000, 0.09823600]]) # C#CC#C at wb97xd/6-311+g(d,p), linear + xyz1 = np.array( + [ + [0.000000, 0.000000, 0.000000], + [0.000000, 0.000000, 1.159076], + [0.000000, 0.000000, -1.159076], + ] + ) # a trivial case + xyz2 = np.array( + [ + [-0.06618943, -0.12360663, -0.07631983], + [-0.79539707, 0.86755487, 1.02675668], + [-0.68919931, 0.25421823, -1.34830853], + [0.01546439, -1.54297548, 0.44580391], + [1.94428095, 0.40772394, 1.03719428], + [2.20318015, -0.14715186, -0.64755729], + [1.59252246, 1.51178950, -0.33908352], + [-0.87856890, -2.02453514, 0.38494433], + [-1.34135876, 1.49608206, 0.53295071], + ] + ) # a non-linear multi-atom molecule + xyz3 = np.array( + [ + [0.0000000000, 0.0000000000, 0.3146069129], + [-1.0906813653, 0.0000000000, -0.1376405244], + [1.0906813653, 0.0000000000, -0.1376405244], + ] + ) # NO2, a non-linear 3-atom molecule + xyz4 = np.array( + [ + [0.0000000000, 0.0000000000, 0.1413439534], + [-0.8031792912, 0.0000000000, -0.4947038368], + [0.8031792912, 0.0000000000, -0.4947038368], + ] + ) # NH2, a non-linear 3-atom molecule + xyz5 = np.array( + [ + [-0.5417345330, 0.8208150346, 0.0000000000], + [0.9206183692, 1.6432038228, 0.0000000000], + [-1.2739176462, 1.9692549926, 0.0000000000], + ] + ) # HSO, a non-linear 3-atom molecule + xyz6 = np.array( + [ + [1.18784533, 0.98526702, 0.00000000], + [0.04124533, 0.98526702, 0.00000000], + [-1.02875467, 0.98526702, 0.00000000], + ] + ) # HCN, a linear 3-atom molecule + xyz7 = np.array( + [ + [-4.02394116, 0.56169428, 0.00000000], + [-5.09394116, 0.56169428, 0.00000000], + [-2.82274116, 0.56169428, 0.00000000], + [-1.75274116, 0.56169428, 0.00000000], + ] + ) # C2H2, a linear 4-atom molecule + xyz8 = np.array( + [ + [-1.02600933, 2.12845307, 0.00000000], + [-0.77966935, 0.95278385, 0.00000000], + [-1.23666197, 3.17751246, 0.00000000], + [-0.56023545, -0.09447399, 0.00000000], + ] + ) # C2H2, just 0.5 degree off from linearity, so NOT linear + xyz9 = np.array( + [ + [-1.1998, 0.1610, 0.0275], + [-1.4021, 0.6223, -0.8489], + [-1.48302, 0.80682, -1.19946], + ] + ) # just 3 points in space on a straight line (not a physical molecule) + xyz10 = np.array([[-1.1998, 0.1610, 0.0275]]) # mono-atomic species, non-linear + xyz11 = np.array( + [ + [1.06026500, -0.07706800, 0.03372800], + [3.37340700, -0.07706800, 0.03372800], + [2.21683600, -0.07706800, 0.03372800], + ] + ) # CO2 at wb97xd/6-311+g(d,p), linear + xyz12 = np.array( + [ + [1.05503600, -0.00335000, 0.09823600], + [2.42816800, -0.00335000, 0.09823600], + [-0.14726400, -0.00335000, 0.09823600], + [3.63046800, -0.00335000, 0.09823600], + [-1.21103500, -0.00335000, 0.09823600], + [4.69423900, -0.00335000, 0.09823600], + ] + ) # C#CC#C at wb97xd/6-311+g(d,p), linear self.assertTrue(is_linear(xyz1)) self.assertTrue(is_linear(xyz6)) @@ -176,20 +215,24 @@ def test_specifying_absolute_file_paths(self): rotors = [HinderedRotor(scanLog=Log('{scan}'), pivots=[1, 2], top=[1, 3], symmetry=1, fit='fourier')] """ - abs_arkane_path = os.path.abspath(os.path.dirname(__file__)) # this is the absolute path to `.../RMG-Py/arkane` - energy_path = os.path.join('arkane', 'data', 'H2O2', 'sp_a19032.out') - freq_path = os.path.join('arkane', 'data', 'H2O2', 'freq_a19031.out') - scan_path = os.path.join('arkane', 'data', 'H2O2', 'scan_a19034.out') - h2o2_input = h2o2_input.format(energy=energy_path, freq=freq_path, scan=scan_path) - h2o2_path = os.path.join(abs_arkane_path, 'data', 'H2O2', 'H2O2.py') + abs_arkane_path = os.path.abspath( + os.path.dirname(__file__) + ) # this is the absolute path to `.../RMG-Py/arkane` + energy_path = os.path.join("arkane", "data", "H2O2", "sp_a19032.out") + freq_path = os.path.join("arkane", "data", "H2O2", "freq_a19031.out") + scan_path = os.path.join("arkane", "data", "H2O2", "scan_a19034.out") + h2o2_input = h2o2_input.format( + energy=energy_path, freq=freq_path, scan=scan_path + ) + h2o2_path = os.path.join(abs_arkane_path, "data", "H2O2", "H2O2.py") if not os.path.exists(os.path.dirname(h2o2_path)): os.makedirs(os.path.dirname(h2o2_path)) - with open(h2o2_path, 'w') as f: + with open(h2o2_path, "w") as f: f.write(h2o2_input) - h2o2 = Species(label='H2O2', smiles='OO') + h2o2 = Species(label="H2O2", smiles="OO") self.assertIsNone(h2o2.conformer) statmech_job = StatMechJob(species=h2o2, path=h2o2_path) - statmech_job.level_of_theory = LevelOfTheory('b3lyp', '6-311+g(3df,2p)') + statmech_job.level_of_theory = LevelOfTheory("b3lyp", "6-311+g(3df,2p)") statmech_job.load(pdep=False, plot=False) self.assertAlmostEqual(h2o2.conformer.E0.value_si, -146031.49933673252) os.remove(h2o2_path) @@ -234,41 +277,113 @@ def test_hinder_rotor_from_1d_array(self): 6.14367036e-01], pivots=[1, 2], top=[1, 3], symmetry=1, fit='fourier')] """ - angles = np.array([0. , 0.17453293, 0.34906585, 0.52359878, 0.6981317 , - 0.87266463, 1.04719755, 1.22173048, 1.3962634 , 1.57079633, - 1.74532925, 1.91986218, 2.0943951 , 2.26892803, 2.44346095, - 2.61799388, 2.7925268 , 2.96705973, 3.14159265, 3.31612558, - 3.4906585 , 3.66519143, 3.83972435, 4.01425728, 4.1887902 , - 4.36332313, 4.53785606, 4.71238898, 4.88692191, 5.06145483, - 5.23598776, 5.41052068, 5.58505361, 5.75958653, 5.93411946, - 6.10865238, 6.28318531]) - energies = np.array([0.00000000e+00, 3.09449290e+02, 1.07459871e+03, 2.05925305e+03, - 3.02877926e+03, 3.79724994e+03, 4.23486826e+03, 4.26190303e+03, - 3.88196432e+03, 3.15173930e+03, 2.20016363e+03, 1.20431941e+03, - 3.94499732e+02, 7.23850312e+00, 2.77854025e+02, 1.40711827e+03, - 3.50375319e+03, 6.57899330e+03, 1.05208190e+04, 1.50847596e+04, - 1.99269611e+04, 2.46164740e+04, 2.86972097e+04, 3.17430074e+04, - 3.34148312e+04, 3.35267510e+04, 3.20643922e+04, 2.91936786e+04, - 2.52325029e+04, 2.06007483e+04, 1.57531541e+04, 1.11268684e+04, - 7.08120679e+03, 3.87554760e+03, 1.63995547e+03, 3.80256396e+02, - 6.14367036e-01]) - abs_arkane_path = os.path.abspath(os.path.dirname(__file__)) # this is the absolute path to `.../RMG-Py/arkane` - energy_path = os.path.join('arkane', 'data', 'H2O2', 'sp_a19032.out') - freq_path = os.path.join('arkane', 'data', 'H2O2', 'freq_a19031.out') - h2o2_input = h2o2_input.format(energy=energy_path, freq=freq_path, angles=angles, energies=energies) - h2o2_path = os.path.join(abs_arkane_path, 'data', 'H2O2', 'H2O2_PES.py') + angles = np.array( + [ + 0.0, + 0.17453293, + 0.34906585, + 0.52359878, + 0.6981317, + 0.87266463, + 1.04719755, + 1.22173048, + 1.3962634, + 1.57079633, + 1.74532925, + 1.91986218, + 2.0943951, + 2.26892803, + 2.44346095, + 2.61799388, + 2.7925268, + 2.96705973, + 3.14159265, + 3.31612558, + 3.4906585, + 3.66519143, + 3.83972435, + 4.01425728, + 4.1887902, + 4.36332313, + 4.53785606, + 4.71238898, + 4.88692191, + 5.06145483, + 5.23598776, + 5.41052068, + 5.58505361, + 5.75958653, + 5.93411946, + 6.10865238, + 6.28318531, + ] + ) + energies = np.array( + [ + 0.00000000e00, + 3.09449290e02, + 1.07459871e03, + 2.05925305e03, + 3.02877926e03, + 3.79724994e03, + 4.23486826e03, + 4.26190303e03, + 3.88196432e03, + 3.15173930e03, + 2.20016363e03, + 1.20431941e03, + 3.94499732e02, + 7.23850312e00, + 2.77854025e02, + 1.40711827e03, + 3.50375319e03, + 6.57899330e03, + 1.05208190e04, + 1.50847596e04, + 1.99269611e04, + 2.46164740e04, + 2.86972097e04, + 3.17430074e04, + 3.34148312e04, + 3.35267510e04, + 3.20643922e04, + 2.91936786e04, + 2.52325029e04, + 2.06007483e04, + 1.57531541e04, + 1.11268684e04, + 7.08120679e03, + 3.87554760e03, + 1.63995547e03, + 3.80256396e02, + 6.14367036e-01, + ] + ) + abs_arkane_path = os.path.abspath( + os.path.dirname(__file__) + ) # this is the absolute path to `.../RMG-Py/arkane` + energy_path = os.path.join("arkane", "data", "H2O2", "sp_a19032.out") + freq_path = os.path.join("arkane", "data", "H2O2", "freq_a19031.out") + h2o2_input = h2o2_input.format( + energy=energy_path, freq=freq_path, angles=angles, energies=energies + ) + h2o2_path = os.path.join(abs_arkane_path, "data", "H2O2", "H2O2_PES.py") os.makedirs(os.path.dirname(h2o2_path), exist_ok=True) - with open(h2o2_path, 'w') as f: + with open(h2o2_path, "w") as f: f.write(h2o2_input) - h2o2 = Species(label='H2O2', smiles='OO') + h2o2 = Species(label="H2O2", smiles="OO") self.assertIsNone(h2o2.conformer) statmech_job = StatMechJob(species=h2o2, path=h2o2_path) - statmech_job.level_of_theory = LevelOfTheory('b3lyp', '6-311+g(3df,2p)') + statmech_job.level_of_theory = LevelOfTheory("b3lyp", "6-311+g(3df,2p)") statmech_job.load(pdep=False, plot=False) self.assertEqual(len(statmech_job.raw_hindered_rotor_data), 1) self.assertEqual(statmech_job.raw_hindered_rotor_data[0][2], 1) - self.assertTrue(np.allclose(statmech_job.raw_hindered_rotor_data[0][3], angles, atol=1e-6)) - self.assertTrue(np.allclose(statmech_job.raw_hindered_rotor_data[0][4], energies, atol=1e-6)) + self.assertTrue( + np.allclose(statmech_job.raw_hindered_rotor_data[0][3], angles, atol=1e-6) + ) + self.assertTrue( + np.allclose(statmech_job.raw_hindered_rotor_data[0][4], energies, atol=1e-6) + ) self.assertAlmostEqual(h2o2.conformer.E0.value_si, -146031.49933673252) os.remove(h2o2_path) @@ -276,39 +391,103 @@ def test_scanlog_class(self): """ Test scanlog works for various input format and returns the correct PES profiles. """ - angles = np.array([0. , 0.17453293, 0.34906585, 0.52359878, 0.6981317 , - 0.87266463, 1.04719755, 1.22173048, 1.3962634 , 1.57079633, - 1.74532925, 1.91986218, 2.0943951 , 2.26892803, 2.44346095, - 2.61799388, 2.7925268 , 2.96705973, 3.14159265, 3.31612558, - 3.4906585 , 3.66519143, 3.83972435, 4.01425728, 4.1887902 , - 4.36332313, 4.53785606, 4.71238898, 4.88692191, 5.06145483, - 5.23598776, 5.41052068, 5.58505361, 5.75958653, 5.93411946, - 6.10865238, 6.28318531]) - energies = np.array([0.00000000e+00, 3.09449290e+02, 1.07459871e+03, 2.05925305e+03, - 3.02877926e+03, 3.79724994e+03, 4.23486826e+03, 4.26190303e+03, - 3.88196432e+03, 3.15173930e+03, 2.20016363e+03, 1.20431941e+03, - 3.94499732e+02, 7.23850312e+00, 2.77854025e+02, 1.40711827e+03, - 3.50375319e+03, 6.57899330e+03, 1.05208190e+04, 1.50847596e+04, - 1.99269611e+04, 2.46164740e+04, 2.86972097e+04, 3.17430074e+04, - 3.34148312e+04, 3.35267510e+04, 3.20643922e+04, 2.91936786e+04, - 2.52325029e+04, 2.06007483e+04, 1.57531541e+04, 1.11268684e+04, - 7.08120679e+03, 3.87554760e+03, 1.63995547e+03, 3.80256396e+02, - 6.14367036e-01]) + angles = np.array( + [ + 0.0, + 0.17453293, + 0.34906585, + 0.52359878, + 0.6981317, + 0.87266463, + 1.04719755, + 1.22173048, + 1.3962634, + 1.57079633, + 1.74532925, + 1.91986218, + 2.0943951, + 2.26892803, + 2.44346095, + 2.61799388, + 2.7925268, + 2.96705973, + 3.14159265, + 3.31612558, + 3.4906585, + 3.66519143, + 3.83972435, + 4.01425728, + 4.1887902, + 4.36332313, + 4.53785606, + 4.71238898, + 4.88692191, + 5.06145483, + 5.23598776, + 5.41052068, + 5.58505361, + 5.75958653, + 5.93411946, + 6.10865238, + 6.28318531, + ] + ) + energies = np.array( + [ + 0.00000000e00, + 3.09449290e02, + 1.07459871e03, + 2.05925305e03, + 3.02877926e03, + 3.79724994e03, + 4.23486826e03, + 4.26190303e03, + 3.88196432e03, + 3.15173930e03, + 2.20016363e03, + 1.20431941e03, + 3.94499732e02, + 7.23850312e00, + 2.77854025e02, + 1.40711827e03, + 3.50375319e03, + 6.57899330e03, + 1.05208190e04, + 1.50847596e04, + 1.99269611e04, + 2.46164740e04, + 2.86972097e04, + 3.17430074e04, + 3.34148312e04, + 3.35267510e04, + 3.20643922e04, + 2.91936786e04, + 2.52325029e04, + 2.06007483e04, + 1.57531541e04, + 1.11268684e04, + 7.08120679e03, + 3.87554760e03, + 1.63995547e03, + 3.80256396e02, + 6.14367036e-01, + ] + ) abs_arkane_path = os.path.abspath(os.path.dirname(__file__)) - scanpath1 = os.path.join(abs_arkane_path, 'data', 'H2O2', 'scan.txt') + scanpath1 = os.path.join(abs_arkane_path, "data", "H2O2", "scan.txt") scanlog1 = ScanLog(scanpath1) angles1, energies1 = scanlog1.load() self.assertTrue(np.allclose(angles, angles1, atol=1e-6)) self.assertTrue(np.allclose(energies, energies1, atol=1e-6)) - scanpath2 = os.path.join(abs_arkane_path, 'data', 'H2O2', 'scan.yml') + scanpath2 = os.path.join(abs_arkane_path, "data", "H2O2", "scan.yml") scanlog2 = ScanLog(scanpath2) angles2, energies2 = scanlog2.load() self.assertTrue(np.allclose(angles, angles2, atol=1e-6)) print(energies, energies2) self.assertTrue(np.allclose(energies, energies2, atol=1e-6)) - scanpath3 = os.path.join(abs_arkane_path, 'data', 'H2O2', 'scan.csv') + scanpath3 = os.path.join(abs_arkane_path, "data", "H2O2", "scan.csv") scanlog3 = ScanLog(scanpath3) angles3, energies3 = scanlog3.load() self.assertTrue(np.allclose(angles, angles3, atol=1e-6)) @@ -318,24 +497,88 @@ def test_hindered_rotor_from_scan_logs(self): """ Test assigning hindered rotor 1D PES profile via ScanLog to HinderedRotor in statmech jobs. """ - angles = np.array([0. , 0.17453293, 0.34906585, 0.52359878, 0.6981317 , - 0.87266463, 1.04719755, 1.22173048, 1.3962634 , 1.57079633, - 1.74532925, 1.91986218, 2.0943951 , 2.26892803, 2.44346095, - 2.61799388, 2.7925268 , 2.96705973, 3.14159265, 3.31612558, - 3.4906585 , 3.66519143, 3.83972435, 4.01425728, 4.1887902 , - 4.36332313, 4.53785606, 4.71238898, 4.88692191, 5.06145483, - 5.23598776, 5.41052068, 5.58505361, 5.75958653, 5.93411946, - 6.10865238, 6.28318531]) - energies = np.array([0.00000000e+00, 3.09449290e+02, 1.07459871e+03, 2.05925305e+03, - 3.02877926e+03, 3.79724994e+03, 4.23486826e+03, 4.26190303e+03, - 3.88196432e+03, 3.15173930e+03, 2.20016363e+03, 1.20431941e+03, - 3.94499732e+02, 7.23850312e+00, 2.77854025e+02, 1.40711827e+03, - 3.50375319e+03, 6.57899330e+03, 1.05208190e+04, 1.50847596e+04, - 1.99269611e+04, 2.46164740e+04, 2.86972097e+04, 3.17430074e+04, - 3.34148312e+04, 3.35267510e+04, 3.20643922e+04, 2.91936786e+04, - 2.52325029e+04, 2.06007483e+04, 1.57531541e+04, 1.11268684e+04, - 7.08120679e+03, 3.87554760e+03, 1.63995547e+03, 3.80256396e+02, - 6.14367036e-01]) + angles = np.array( + [ + 0.0, + 0.17453293, + 0.34906585, + 0.52359878, + 0.6981317, + 0.87266463, + 1.04719755, + 1.22173048, + 1.3962634, + 1.57079633, + 1.74532925, + 1.91986218, + 2.0943951, + 2.26892803, + 2.44346095, + 2.61799388, + 2.7925268, + 2.96705973, + 3.14159265, + 3.31612558, + 3.4906585, + 3.66519143, + 3.83972435, + 4.01425728, + 4.1887902, + 4.36332313, + 4.53785606, + 4.71238898, + 4.88692191, + 5.06145483, + 5.23598776, + 5.41052068, + 5.58505361, + 5.75958653, + 5.93411946, + 6.10865238, + 6.28318531, + ] + ) + energies = np.array( + [ + 0.00000000e00, + 3.09449290e02, + 1.07459871e03, + 2.05925305e03, + 3.02877926e03, + 3.79724994e03, + 4.23486826e03, + 4.26190303e03, + 3.88196432e03, + 3.15173930e03, + 2.20016363e03, + 1.20431941e03, + 3.94499732e02, + 7.23850312e00, + 2.77854025e02, + 1.40711827e03, + 3.50375319e03, + 6.57899330e03, + 1.05208190e04, + 1.50847596e04, + 1.99269611e04, + 2.46164740e04, + 2.86972097e04, + 3.17430074e04, + 3.34148312e04, + 3.35267510e04, + 3.20643922e04, + 2.91936786e04, + 2.52325029e04, + 2.06007483e04, + 1.57531541e04, + 1.11268684e04, + 7.08120679e03, + 3.87554760e03, + 1.63995547e03, + 3.80256396e02, + 6.14367036e-01, + ] + ) h2o2_input = """#!/usr/bin/env python # -*- coding: utf-8 -*- @@ -356,30 +599,41 @@ def test_hindered_rotor_from_scan_logs(self): rotors = [HinderedRotor(scanLog=ScanLog('{scan}'), pivots=[1, 2], top=[1, 3], symmetry=1, fit='fourier')] """ - abs_arkane_path = os.path.abspath(os.path.dirname(__file__)) # this is the absolute path to `.../RMG-Py/arkane` - energy_path = os.path.join(abs_arkane_path, 'data', 'H2O2', 'sp_a19032.out') - freq_path = os.path.join(abs_arkane_path, 'data', 'H2O2', 'freq_a19031.out') - h2o2_path = os.path.join(abs_arkane_path, 'data', 'H2O2', 'H2O2.py') - h2o2 = Species(label='H2O2', smiles='OO') + abs_arkane_path = os.path.abspath( + os.path.dirname(__file__) + ) # this is the absolute path to `.../RMG-Py/arkane` + energy_path = os.path.join(abs_arkane_path, "data", "H2O2", "sp_a19032.out") + freq_path = os.path.join(abs_arkane_path, "data", "H2O2", "freq_a19031.out") + h2o2_path = os.path.join(abs_arkane_path, "data", "H2O2", "H2O2.py") + h2o2 = Species(label="H2O2", smiles="OO") os.makedirs(os.path.dirname(h2o2_path), exist_ok=True) - for file in ['scan.txt', 'scan.csv', 'scan.yml']: - scan_path = os.path.join(abs_arkane_path, 'data', 'H2O2', file) - h2o2_input_tmp = h2o2_input.format(energy=energy_path, freq=freq_path, scan=scan_path) - with open(h2o2_path, 'w') as f: + for file in ["scan.txt", "scan.csv", "scan.yml"]: + scan_path = os.path.join(abs_arkane_path, "data", "H2O2", file) + h2o2_input_tmp = h2o2_input.format( + energy=energy_path, freq=freq_path, scan=scan_path + ) + with open(h2o2_path, "w") as f: f.write(h2o2_input_tmp) statmech_job = StatMechJob(species=h2o2, path=h2o2_path) - statmech_job.level_of_theory = LevelOfTheory('b3lyp', '6-311+g(3df,2p)') + statmech_job.level_of_theory = LevelOfTheory("b3lyp", "6-311+g(3df,2p)") statmech_job.load(pdep=False, plot=False) self.assertEqual(len(statmech_job.raw_hindered_rotor_data), 1) - self.assertTrue(np.allclose(statmech_job.raw_hindered_rotor_data[0][3], angles, atol=1e-6)) - self.assertTrue(np.allclose(statmech_job.raw_hindered_rotor_data[0][4], energies, atol=1e-6)) + self.assertTrue( + np.allclose( + statmech_job.raw_hindered_rotor_data[0][3], angles, atol=1e-6 + ) + ) + self.assertTrue( + np.allclose( + statmech_job.raw_hindered_rotor_data[0][4], energies, atol=1e-6 + ) + ) os.remove(h2o2_path) - ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/database/databaseTest.py b/test/database/databaseTest.py index 3fd62d57ea..d546b40416 100644 --- a/test/database/databaseTest.py +++ b/test/database/databaseTest.py @@ -53,7 +53,9 @@ from rmgpy.quantity import ScalarQuantity -class TestDatabase(object): # cannot inherit from unittest.TestCase if we want to use nose test generators +class TestDatabase( + object +): # cannot inherit from unittest.TestCase if we want to use nose test generators """ Contains unit tests for the database for rigorous error checking. """ @@ -63,150 +65,233 @@ def setUpClass(cls): """ Load the database before running the tests. """ - database_directory = settings['database.directory'] + database_directory = settings["database.directory"] cls.database = RMGDatabase() - cls.database.load(database_directory, kinetics_families='all') + cls.database.load(database_directory, kinetics_families="all") # These are generators, that call the methods below. def test_kinetics(self): for family_name, family in self.database.kinetics.families.items(): - - test = lambda x: self.kinetics_check_correct_number_of_nodes_in_rules(family_name) - test_name = "Kinetics family {0}: rules have correct number of nodes?".format(family_name) + test = lambda x: self.kinetics_check_correct_number_of_nodes_in_rules( + family_name + ) + test_name = ( + "Kinetics family {0}: rules have correct number of nodes?".format( + family_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, None - test = lambda x: self.kinetics_check_nodes_in_rules_found_in_groups(family_name) - test_name = "Kinetics family {0}: rules' nodes exist in the groups?".format(family_name) + test = lambda x: self.kinetics_check_nodes_in_rules_found_in_groups( + family_name + ) + test_name = "Kinetics family {0}: rules' nodes exist in the groups?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, None test = lambda x: self.kinetics_check_groups_found_in_tree(family_name) - test_name = "Kinetics family {0}: groups are in the tree with proper parents?".format(family_name) + test_name = "Kinetics family {0}: groups are in the tree with proper parents?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, None if not family.auto_generated: test = lambda x: self.kinetics_check_groups_nonidentical(family_name) - test_name = "Kinetics family {0}: groups are not identical?".format(family_name) + test_name = "Kinetics family {0}: groups are not identical?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name test = lambda x: self.kinetics_check_child_parent_relationships(family_name) - test_name = "Kinetics family {0}: parent-child relationships are correct?".format(family_name) + test_name = ( + "Kinetics family {0}: parent-child relationships are correct?".format( + family_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, family_name test = lambda x: self.kinetics_check_siblings_for_parents(family_name) - test_name = "Kinetics family {0}: sibling relationships are correct?".format(family_name) + test_name = ( + "Kinetics family {0}: sibling relationships are correct?".format( + family_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, family_name test = lambda x: self.kinetics_check_cd_atom_type(family_name) - test_name = "Kinetics family {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format(family_name) + test_name = "Kinetics family {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name - test = lambda x: self.kinetics_check_reactant_and_product_template(family_name) - test_name = "Kinetics family {0}: reactant and product templates correctly defined?".format(family_name) + test = lambda x: self.kinetics_check_reactant_and_product_template( + family_name + ) + test_name = "Kinetics family {0}: reactant and product templates correctly defined?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name test = lambda x: self.kinetics_check_num_reactant_and_product(family_name) - test_name = "Kinetics family {0}: number of reactant and product defined?".format(family_name) + test_name = ( + "Kinetics family {0}: number of reactant and product defined?".format( + family_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, family_name # tests for surface families - if 'surface' in family_name.lower(): - test = lambda x: self.kinetics_check_surface_training_reactions_can_be_used(family_name) - test_name = "Kinetics surface family {0}: entries can be used to generate rate rules?".format(family_name) + if "surface" in family_name.lower(): + test = lambda x: self.kinetics_check_surface_training_reactions_can_be_used( + family_name + ) + test_name = "Kinetics surface family {0}: entries can be used to generate rate rules?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name - test = lambda x: self.kinetics_check_training_reactions_have_surface_attributes(family_name) - test_name = "Kinetics surface family {0}: entries have surface attributes?".format(family_name) + test = lambda x: self.kinetics_check_training_reactions_have_surface_attributes( + family_name + ) + test_name = "Kinetics surface family {0}: entries have surface attributes?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name - test = lambda x: self.kinetics_check_coverage_dependence_units_are_correct(family_name) - test_name = "Kinetics surface family {0}: check coverage dependent units are correct?".format(family_name) + test = ( + lambda x: self.kinetics_check_coverage_dependence_units_are_correct( + family_name + ) + ) + test_name = "Kinetics surface family {0}: check coverage dependent units are correct?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name # these families have some sort of difficulty which prevents us from testing accessibility right now # See RMG-Py PR #2232 for reason why adding Bimolec_Hydroperoxide_Decomposition here. Bsically some nodes need to be in a ring, but the sampled molecule is not. - difficult_families = ['Diels_alder_addition', 'Intra_R_Add_Exocyclic', 'Intra_R_Add_Endocyclic', 'Retroene','Bimolec_Hydroperoxide_Decomposition'] - - if len(family.forward_template.reactants) < len(family.groups.top) and family_name not in difficult_families: + difficult_families = [ + "Diels_alder_addition", + "Intra_R_Add_Exocyclic", + "Intra_R_Add_Endocyclic", + "Retroene", + "Bimolec_Hydroperoxide_Decomposition", + ] + + if ( + len(family.forward_template.reactants) < len(family.groups.top) + and family_name not in difficult_families + ): test = lambda x: self.kinetics_check_unimolecular_groups(family_name) test_name = "Kinetics family {0} check that unimolecular group is formatted correctly?".format( - family_name) + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name if family_name not in difficult_families and not family.auto_generated: - test = lambda x: self.kinetics_check_sample_descends_to_group(family_name) - test_name = "Kinetics family {0}: Entry is accessible?".format(family_name) + test = lambda x: self.kinetics_check_sample_descends_to_group( + family_name + ) + test_name = "Kinetics family {0}: Entry is accessible?".format( + family_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name test = lambda x: self.kinetics_check_sample_can_react(family_name) - test_name = "Kinetics family {0}: Recipe applies to group entry?".format(family_name) + test_name = ( + "Kinetics family {0}: Recipe applies to group entry?".format( + family_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, family_name for depository in family.depositories: test = lambda x: self.kinetics_check_adjlists_nonidentical(depository) - test_name = "Kinetics depository {0}: check adjacency lists are nonidentical?".format(depository.label) + test_name = "Kinetics depository {0}: check adjacency lists are nonidentical?".format( + depository.label + ) test.description = test_name self.compat_func_name = test_name yield test, depository.label - test = lambda x: self.kinetics_check_rate_units_are_correct(depository, tag='depository') - test_name = "Kinetics depository {0}: check rates have correct units?".format(depository.label) + test = lambda x: self.kinetics_check_rate_units_are_correct( + depository, tag="depository" + ) + test_name = ( + "Kinetics depository {0}: check rates have correct units?".format( + depository.label + ) + ) test.description = test_name self.compat_func_name = test_name yield test, depository.label for library_name, library in self.database.kinetics.libraries.items(): test = lambda x: self.kinetics_check_adjlists_nonidentical(library) - test_name = "Kinetics library {0}: check adjacency lists are nonidentical?".format(library_name) + test_name = ( + "Kinetics library {0}: check adjacency lists are nonidentical?".format( + library_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, library_name test = lambda x: self.kinetics_check_rate_units_are_correct(library) - test_name = "Kinetics library {0}: check rates have correct units?".format(library_name) + test_name = "Kinetics library {0}: check rates have correct units?".format( + library_name + ) test.description = test_name self.compat_func_name = test_name yield test, library_name test = lambda x: self.kinetics_check_library_rates_are_reasonable(library) - test_name = "Kinetics library {0}: check rates are reasonable?".format(library_name) + test_name = "Kinetics library {0}: check rates are reasonable?".format( + library_name + ) test.description = test_name self.compat_func_name = test_name yield test, library_name # tests for surface families - if 'surface' in library_name.lower(): - test = lambda x: self.kinetics_check_surface_library_reactions_have_surface_attributes(library) - test_name = "Kinetics surface library {0}: entries have surface attributes?".format(library_name) + if "surface" in library_name.lower(): + test = lambda x: self.kinetics_check_surface_library_reactions_have_surface_attributes( + library + ) + test_name = "Kinetics surface library {0}: entries have surface attributes?".format( + library_name + ) test.description = test_name self.compat_func_name = test_name yield test, family_name @@ -214,7 +299,11 @@ def test_kinetics(self): def test_thermo(self): for group_name, group in self.database.thermo.groups.items(): test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Thermo groups {0}: nodes are in the tree with proper parents?".format(group_name) + test_name = ( + "Thermo groups {0}: nodes are in the tree with proper parents?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name @@ -225,42 +314,68 @@ def test_thermo(self): self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_child_parent_relationships(group_name, group) - test_name = "Thermo groups {0}: parent-child relationships are correct?".format(group_name) + test = lambda x: self.general_check_child_parent_relationships( + group_name, group + ) + test_name = ( + "Thermo groups {0}: parent-child relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = "Thermo groups {0}: sibling relationships are correct?".format(group_name) + test_name = "Thermo groups {0}: sibling relationships are correct?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Thermo groups {0}: Cd atomtype used correctly?".format(group_name) + test_name = "Thermo groups {0}: Cd atomtype used correctly?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group(group_name, group) + test = lambda x: self.general_check_sample_descends_to_group( + group_name, group + ) test_name = "Thermo groups {0}: Entry is accessible?".format(group_name) test.description = test_name self.compat_func_name = test_name yield test, group_name # tests for adsorption groups - if 'adsorption' in group_name.lower(): - test = lambda x: self.check_surface_thermo_groups_have_surface_attributes(group_name, group) - test_name = "Thermo surface groups {0}: Entry has metal attributes?".format(group_name) + if "adsorption" in group_name.lower(): + test = ( + lambda x: self.check_surface_thermo_groups_have_surface_attributes( + group_name, group + ) + ) + test_name = ( + "Thermo surface groups {0}: Entry has metal attributes?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name for library_name, library in self.database.thermo.libraries.items(): - if 'surface' in library_name.lower(): - test = lambda x: self.check_surface_thermo_libraries_have_surface_attributes(library_name, library) - test_name = "Thermo surface libraries {0}: Entry has metal attributes?".format(library_name) + if "surface" in library_name.lower(): + test = lambda x: self.check_surface_thermo_libraries_have_surface_attributes( + library_name, library + ) + test_name = ( + "Thermo surface libraries {0}: Entry has metal attributes?".format( + library_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name @@ -268,36 +383,54 @@ def test_thermo(self): def test_solvation(self): for group_name, group in self.database.solvation.groups.items(): test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Solvation groups {0}: nodes are in the tree with proper parents?".format(group_name) + test_name = "Solvation groups {0}: nodes are in the tree with proper parents?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Solvation groups {0}: nodes are nonidentical?".format(group_name) + test_name = "Solvation groups {0}: nodes are nonidentical?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_child_parent_relationships(group_name, group) - test_name = "Solvation groups {0}: parent-child relationships are correct?".format(group_name) + test = lambda x: self.general_check_child_parent_relationships( + group_name, group + ) + test_name = ( + "Solvation groups {0}: parent-child relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = "Solvation groups {0}: sibling relationships are correct?".format(group_name) + test_name = ( + "Solvation groups {0}: sibling relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Solvation groups {0}: Cd atomtype used correctly?".format(group_name) + test_name = "Solvation groups {0}: Cd atomtype used correctly?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group(group_name, group) + test = lambda x: self.general_check_sample_descends_to_group( + group_name, group + ) test_name = "Solvation groups {0}: Entry is accessible?".format(group_name) test.description = test_name self.compat_func_name = test_name @@ -306,36 +439,54 @@ def test_solvation(self): def test_statmech(self): for group_name, group in self.database.statmech.groups.items(): test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Statmech groups {0}: nodes are in the tree with proper parents?".format(group_name) + test_name = "Statmech groups {0}: nodes are in the tree with proper parents?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Statmech groups {0}: nodes are nonidentical?".format(group_name) + test_name = "Statmech groups {0}: nodes are nonidentical?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_child_parent_relationships(group_name, group) - test_name = "Statmech groups {0}: parent-child relationships are correct?".format(group_name) + test = lambda x: self.general_check_child_parent_relationships( + group_name, group + ) + test_name = ( + "Statmech groups {0}: parent-child relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = "Statmech groups {0}: sibling relationships are correct?".format(group_name) + test_name = ( + "Statmech groups {0}: sibling relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Statmech groups {0}: Cd atomtype used correctly?".format(group_name) + test_name = "Statmech groups {0}: Cd atomtype used correctly?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group(group_name, group) + test = lambda x: self.general_check_sample_descends_to_group( + group_name, group + ) test_name = "Statmech groups {0}: Entry is accessible?".format(group_name) test.description = test_name self.compat_func_name = test_name @@ -344,51 +495,79 @@ def test_statmech(self): def test_transport(self): for group_name, group in self.database.transport.groups.items(): test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Transport groups {0}: nodes are in the tree with proper parents?".format(group_name) + test_name = "Transport groups {0}: nodes are in the tree with proper parents?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Transport groups {0}: nodes are nonidentical?".format(group_name) + test_name = "Transport groups {0}: nodes are nonidentical?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_child_parent_relationships(group_name, group) - test_name = "Transport groups {0}: parent-child relationships are correct?".format(group_name) + test = lambda x: self.general_check_child_parent_relationships( + group_name, group + ) + test_name = ( + "Transport groups {0}: parent-child relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = "Transport groups {0}: sibling relationships are correct?".format(group_name) + test_name = ( + "Transport groups {0}: sibling relationships are correct?".format( + group_name + ) + ) test.description = test_name self.compat_func_name = test_name yield test, group_name test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Transport groups {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format(group_name) + test_name = "Transport groups {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format( + group_name + ) test.description = test_name self.compat_func_name = test_name yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group(group_name, group) + test = lambda x: self.general_check_sample_descends_to_group( + group_name, group + ) test_name = "Transport groups {0}: Entry is accessible?".format(group_name) test.description = test_name self.compat_func_name = test_name yield test, group_name def test_metal_libraries(self): - for library_name, library in self.database.thermo.surface['metal'].libraries.items(): - test = lambda x: self.general_check_metal_database_has_catalyst_properties(library) - test_name = "Metal library {0}: Entries have catalyst properties?".format(library_name) + for library_name, library in self.database.thermo.surface[ + "metal" + ].libraries.items(): + test = lambda x: self.general_check_metal_database_has_catalyst_properties( + library + ) + test_name = "Metal library {0}: Entries have catalyst properties?".format( + library_name + ) test.description = test_name self.compat_func_name = test_name yield test, library_name - test = lambda x: self.general_check_metal_database_has_reasonable_labels(library) - test_name = "Metal library {0}: Entries have reasonable labels?".format(library_name) + test = lambda x: self.general_check_metal_database_has_reasonable_labels( + library + ) + test_name = "Metal library {0}: Entries have reasonable labels?".format( + library_name + ) test.description = test_name self.compat_func_name = test_name yield test, library_name @@ -405,30 +584,58 @@ def general_check_metal_database_has_catalyst_properties(self, library): """Test that each entry has catalyst properties""" for entry in library.entries.values(): if not entry.binding_energies: - raise AttributeError('Entry {} has no binding energies'.format(entry.label)) + raise AttributeError( + "Entry {} has no binding energies".format(entry.label) + ) assert isinstance(entry.binding_energies, dict) - for element in 'CHON': + for element in "CHON": if not entry.binding_energies[element]: - raise KeyError('Entry {} has no {} binding energy'.format(entry.label, element)) + raise KeyError( + "Entry {} has no {} binding energy".format(entry.label, element) + ) if not isinstance(entry.binding_energies[element], ScalarQuantity): - raise TypeError('Entry {} binding energy value for {} should be a ScalarQuantity, but is type {}'.format( - entry.label, element, type(entry.binding_energies[element]))) + raise TypeError( + "Entry {} binding energy value for {} should be a ScalarQuantity, but is type {}".format( + entry.label, element, type(entry.binding_energies[element]) + ) + ) if not isinstance(entry.binding_energies[element].value, float): - raise TypeError('Entry {} binding energy for {} should be a float, but is type {}'.format( - entry.label, element, type(entry.binding_energies[element].value))) - assert entry.binding_energies[element].value < 0. # binding energies should all be negative... probably - assert entry.binding_energies[element].units == 'eV/molecule' + raise TypeError( + "Entry {} binding energy for {} should be a float, but is type {}".format( + entry.label, + element, + type(entry.binding_energies[element].value), + ) + ) + assert ( + entry.binding_energies[element].value < 0.0 + ) # binding energies should all be negative... probably + assert entry.binding_energies[element].units == "eV/molecule" if not entry.surface_site_density: - raise AttributeError('Entry {} has no surface site density'.format(entry.label)) + raise AttributeError( + "Entry {} has no surface site density".format(entry.label) + ) assert isinstance(entry.surface_site_density, ScalarQuantity) if not isinstance(entry.surface_site_density.value, float): - raise TypeError('Entry {} should be a float, but is type {}'.format(entry.label, type(entry.surface_site_density.value))) + raise TypeError( + "Entry {} should be a float, but is type {}".format( + entry.label, type(entry.surface_site_density.value) + ) + ) if not isinstance(entry.surface_site_density.units, str): - raise TypeError('Entry {} should be a str, but is type {}'.format(entry.label, type(entry.surface_site_density.units))) - assert 1e-4 > entry.surface_site_density.value_si > 1e-6 # values should be reasonable - - assert isinstance(entry.metal, str) # all entries should have a metal attribute, at minimum + raise TypeError( + "Entry {} should be a str, but is type {}".format( + entry.label, type(entry.surface_site_density.units) + ) + ) + assert ( + 1e-4 > entry.surface_site_density.value_si > 1e-6 + ) # values should be reasonable + + assert isinstance( + entry.metal, str + ) # all entries should have a metal attribute, at minimum if entry.facet: assert isinstance(entry.facet, str) if entry.site: @@ -438,11 +645,21 @@ def general_check_metal_database_has_reasonable_labels(self, library): """Test that each entry has a reasonable label corresponding to its metal and facet""" for entry in library.entries.values(): if entry.metal not in entry.label: - raise NameError('Entry {} with metal attribute {} does not have metal in its label'.format(entry.label, entry.metal)) + raise NameError( + "Entry {} with metal attribute {} does not have metal in its label".format( + entry.label, entry.metal + ) + ) if entry.facet not in entry.label: - raise NameError('Entry {} with facet attribute {} does not have facet in its label'.format(entry.label, entry.facet)) + raise NameError( + "Entry {} with facet attribute {} does not have facet in its label".format( + entry.label, entry.facet + ) + ) if not entry.label[0].isupper(): - raise NameError('Entry {} should start with a capital letter'.format(entry.label)) + raise NameError( + "Entry {} should start with a capital letter".format(entry.label) + ) def kinetics_check_coverage_dependence_units_are_correct(self, family_name): """Test that each surface training reaction that has coverage dependent parameters has acceptable units""" @@ -456,19 +673,25 @@ def kinetics_check_coverage_dependence_units_are_correct(self, family_name): assert isinstance(cov_dep, dict) for species, parameters in cov_dep.items(): assert isinstance(species, str) - assert parameters['E'] - if parameters['a'].units: + assert parameters["E"] + if parameters["a"].units: "Should be dimensionless" failed = True - logging.error(f"Entry {entry.label} has invalid units {parameters['a'].units} for a") - if parameters['m'].units: + logging.error( + f"Entry {entry.label} has invalid units {parameters['a'].units} for a" + ) + if parameters["m"].units: "Should be dimensionless" failed = True - logging.error(f"Entry {entry.label} has invalid units {parameters['m'].units} for m") + logging.error( + f"Entry {entry.label} has invalid units {parameters['m'].units} for m" + ) if failed: - raise ValueError('Surface coverage dependent parameters have incorrect units.' - 'Please check log warnings for all error messages.') + raise ValueError( + "Surface coverage dependent parameters have incorrect units." + "Please check log warnings for all error messages." + ) def kinetics_check_training_reactions_have_surface_attributes(self, family_name): """Test that each surface training reaction has surface attributes""" @@ -477,7 +700,9 @@ def kinetics_check_training_reactions_have_surface_attributes(self, family_name) failed = False for entry in training: if not entry.metal: - logging.error(f'Expected a metal attribute for {entry} in {family} family but found {entry.metal!r}') + logging.error( + f"Expected a metal attribute for {entry} in {family} family but found {entry.metal!r}" + ) failed = True else: assert isinstance(entry.metal, str) @@ -488,28 +713,38 @@ def kinetics_check_training_reactions_have_surface_attributes(self, family_name) assert isinstance(entry.site, str) if failed: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_surface_library_reactions_have_surface_attributes(self, library): """Test that each surface reaction library has surface attributes""" entries = library.entries.values() failed = False - if '_Pt' in library.label: + if "_Pt" in library.label: for entry in entries: - if entry.metal is not 'Pt': - logging.error(f'Expected {entry} metal attribute in {library} library to match Pt, but was {entry.metal}') + if entry.metal is not "Pt": + logging.error( + f"Expected {entry} metal attribute in {library} library to match Pt, but was {entry.metal}" + ) failed = True - if '_Ni' in library.label: + if "_Ni" in library.label: for entry in entries: - if entry.metal is not 'Ni': - logging.error(f'Expected {entry} metal attribute in {library} library to match Ni, but was {entry.metal}') + if entry.metal is not "Ni": + logging.error( + f"Expected {entry} metal attribute in {library} library to match Ni, but was {entry.metal}" + ) failed = True for entry in entries: if isinstance(entry.metal, type(None)): - logging.error(f'Expected a metal attribute in {library} library for {entry} but found None') + logging.error( + f"Expected a metal attribute in {library} library for {entry} but found None" + ) failed = True if failed: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_correct_number_of_nodes_in_rules(self, family_name): """ @@ -520,10 +755,19 @@ def kinetics_check_correct_number_of_nodes_in_rules(self, family_name): tst = [] for label, entries in family.rules.entries.items(): for entry in entries: - nodes = label.split(';') - tst.append((len(nodes), expected_number_nodes, - "Wrong number of groups or semicolons in family {family} rule {entry}. Should be " - "{num_nodes}".format(family=family_name, entry=entry, num_nodes=expected_number_nodes))) + nodes = label.split(";") + tst.append( + ( + len(nodes), + expected_number_nodes, + "Wrong number of groups or semicolons in family {family} rule {entry}. Should be " + "{num_nodes}".format( + family=family_name, + entry=entry, + num_nodes=expected_number_nodes, + ), + ) + ) boo = False for item in tst: @@ -531,7 +775,9 @@ def kinetics_check_correct_number_of_nodes_in_rules(self, family_name): boo = True logging.error(item[2]) if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): """ @@ -547,20 +793,33 @@ def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): nodes.extend(family.groups.descendants(topNode)) top_descendants.append(nodes) - top_group_order = ';'.join(topNode.label for topNode in family.get_root_template()) + top_group_order = ";".join( + topNode.label for topNode in family.get_root_template() + ) tst1 = [] tst2 = [] for label, entries in family.rules.entries.items(): for entry in entries: - nodes = label.split(';') + nodes = label.split(";") for i, node in enumerate(nodes): - tst1.append((node in family.groups.entries, - "In {family} family, no group definition found for label {label} in rule " - "{entry}".format(family=family_name, label=node, entry=entry))) - tst2.append((family.groups.entries[node] in top_descendants[i], - "In {family} family, rule {entry} was found with groups out of order. " - "The correct order for a rule should be subgroups of {top}.".format( - family=family_name, entry=entry, top=top_group_order))) + tst1.append( + ( + node in family.groups.entries, + "In {family} family, no group definition found for label {label} in rule " + "{entry}".format( + family=family_name, label=node, entry=entry + ), + ) + ) + tst2.append( + ( + family.groups.entries[node] in top_descendants[i], + "In {family} family, rule {entry} was found with groups out of order. " + "The correct order for a rule should be subgroups of {top}.".format( + family=family_name, entry=entry, top=top_group_order + ), + ) + ) boo = False for i in range(len(tst1)): if not tst1[i][0]: @@ -571,7 +830,9 @@ def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_groups_found_in_tree(self, family_name): """ @@ -583,24 +844,46 @@ def kinetics_check_groups_found_in_tree(self, family_name): tst2 = [] tst3 = [] for nodeName, nodeGroup in family.groups.entries.items(): - tst.append(('[' in nodeName or ']' in nodeName, - "Group {group} in {family} family contains square brackets [ ] in the label, which are " - "not allowed.".format(group=nodeName, family=family_name))) + tst.append( + ( + "[" in nodeName or "]" in nodeName, + "Group {group} in {family} family contains square brackets [ ] in the label, which are " + "not allowed.".format(group=nodeName, family=family_name), + ) + ) ascend_parent = nodeGroup # Check whether the node has proper parents unless it is the top reactant or product node - while ascend_parent not in family.groups.top and ascend_parent not in family.forward_template.products: + while ( + ascend_parent not in family.groups.top + and ascend_parent not in family.forward_template.products + ): child = ascend_parent ascend_parent = ascend_parent.parent - tst1.append((ascend_parent is not None, - "Group {group} in {family} family was found in the tree without a proper parent.".format( - group=child, family=family_name))) - tst2.append((child in ascend_parent.children, - "Group {group} in {family} family was found in the tree without a proper parent.".format( - group=nodeName, family=family_name))) - tst3.append((child is ascend_parent, - "Group {group} in {family} family is a parent to itself".format( - group=nodeName, family=family_name))) + tst1.append( + ( + ascend_parent is not None, + "Group {group} in {family} family was found in the tree without a proper parent.".format( + group=child, family=family_name + ), + ) + ) + tst2.append( + ( + child in ascend_parent.children, + "Group {group} in {family} family was found in the tree without a proper parent.".format( + group=nodeName, family=family_name + ), + ) + ) + tst3.append( + ( + child is ascend_parent, + "Group {group} in {family} family is a parent to itself".format( + group=nodeName, family=family_name + ), + ) + ) boo = False for i in range(len(tst)): @@ -619,13 +902,16 @@ def kinetics_check_groups_found_in_tree(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_groups_nonidentical(self, family_name): """ This test checks that the groups are non-identical. """ from rmgpy.data.base import Database + original_family = self.database.kinetics.families[family_name] family = Database() family.entries = original_family.groups.entries @@ -634,9 +920,14 @@ def kinetics_check_groups_nonidentical(self, family_name): for nodeName, nodeGroup in family.entries.items(): del entries_copy[nodeName] for nodeNameOther, nodeGroupOther in entries_copy.items(): - tst.append((family.match_node_to_node(nodeGroup, nodeGroupOther), - "Group {group} in {family} family was found to be identical to group {groupOther}".format( - group=nodeName, family=family_name, groupOther=nodeNameOther))) + tst.append( + ( + family.match_node_to_node(nodeGroup, nodeGroupOther), + "Group {group} in {family} family was found to be identical to group {groupOther}".format( + group=nodeName, family=family_name, groupOther=nodeNameOther + ), + ) + ) boo = False for i in range(len(tst)): @@ -645,20 +936,26 @@ def kinetics_check_groups_nonidentical(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_child_parent_relationships(self, family_name): """ This test checks that groups' parent-child relationships are correct in the database. """ from rmgpy.data.base import Database + original_family = self.database.kinetics.families[family_name] family = Database() family.entries = original_family.groups.entries tst = [] for nodeName, childNode in family.entries.items(): # top nodes and product nodes don't have parents by definition, so they get an automatic pass: - if childNode in original_family.groups.top or childNode in original_family.forward_template.products: + if ( + childNode in original_family.groups.top + or childNode in original_family.forward_template.products + ): continue parent_node = childNode.parent @@ -671,19 +968,35 @@ def kinetics_check_child_parent_relationships(self, family_name): continue # Check whether the node has proper parents unless it is the top reactant or product node # The parent should be more general than the child - tst.append((family.match_node_to_child(parent_node, childNode), - "In {family} family, group {parent} is not a proper parent of its child " - "{child}.".format(family=family_name, parent=parent_node, child=nodeName))) + tst.append( + ( + family.match_node_to_child(parent_node, childNode), + "In {family} family, group {parent} is not a proper parent of its child " + "{child}.".format( + family=family_name, parent=parent_node, child=nodeName + ), + ) + ) # check that parentNodes which are LogicOr do not have an ancestor that is a Group # If it does, then the child_node must also be a child of the ancestor if isinstance(parent_node.item, LogicOr): ancestor_node = parent_node - while ancestor_node not in original_family.groups.top and isinstance(ancestor_node.item, LogicOr): + while ancestor_node not in original_family.groups.top and isinstance( + ancestor_node.item, LogicOr + ): ancestor_node = ancestor_node.parent if isinstance(ancestor_node.item, Group): - tst.append((family.match_node_to_child(ancestor_node, childNode), - "In {family} family, group {ancestor} is not a proper ancestor of its child " - "{child}.".format(family=family_name, ancestor=ancestor_node, child=nodeName))) + tst.append( + ( + family.match_node_to_child(ancestor_node, childNode), + "In {family} family, group {ancestor} is not a proper ancestor of its child " + "{child}.".format( + family=family_name, + ancestor=ancestor_node, + child=nodeName, + ), + ) + ) boo = False for i in range(len(tst)): @@ -692,7 +1005,9 @@ def kinetics_check_child_parent_relationships(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_siblings_for_parents(self, family_name): """ @@ -702,6 +1017,7 @@ def kinetics_check_siblings_for_parents(self, family_name): of the test. """ from rmgpy.data.base import Database + original_family = self.database.kinetics.families[family_name] family = Database() family.entries = original_family.groups.entries @@ -713,10 +1029,15 @@ def kinetics_check_siblings_for_parents(self, family_name): if node in original_family.forward_template.products: continue for index, child1 in enumerate(node.children): - for child2 in node.children[index + 1:]: - tst.append((family.match_node_to_child(child1, child2), - "In family {0}, node {1} is a parent of {2}, but they are written as siblings.".format( - family_name, child1, child2))) + for child2 in node.children[index + 1 :]: + tst.append( + ( + family.match_node_to_child(child1, child2), + "In family {0}, node {1} is a parent of {2}, but they are written as siblings.".format( + family_name, child1, child2 + ), + ) + ) boo = False for i in range(len(tst)): if tst[i][0]: @@ -724,7 +1045,9 @@ def kinetics_check_siblings_for_parents(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_adjlists_nonidentical(self, database): """ @@ -746,15 +1069,20 @@ def kinetics_check_adjlists_nonidentical(self, database): boo = False # Go through all species to make sure they are nonidentical species_list = list(species_dict.values()) - labeled_atoms = [species.molecule[0].get_all_labeled_atoms() for species in species_list] + labeled_atoms = [ + species.molecule[0].get_all_labeled_atoms() for species in species_list + ] for i in range(len(species_list)): for j in range(i + 1, len(species_list)): initial_map = {} try: - atom_labels = set(list(labeled_atoms[i].keys()) + - list(labeled_atoms[j].keys())) + atom_labels = set( + list(labeled_atoms[i].keys()) + list(labeled_atoms[j].keys()) + ) for atomLabel in atom_labels: - initial_map[labeled_atoms[i][atomLabel]] = labeled_atoms[j][atomLabel] + initial_map[labeled_atoms[i][atomLabel]] = labeled_atoms[j][ + atomLabel + ] except KeyError: # atom labels did not match, therefore not a match continue @@ -764,13 +1092,18 @@ def kinetics_check_adjlists_nonidentical(self, database): # the mapping is invalid so they're not isomorphic continue if m1.is_isomorphic(m2, initial_map): - logging.error("Species {0} and species {1} in {2} database were found to be identical.".format( - species_list[i].label, species_list[j].label, database.label)) + logging.error( + "Species {0} and species {1} in {2} database were found to be identical.".format( + species_list[i].label, species_list[j].label, database.label + ) + ) boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) - def kinetics_check_rate_units_are_correct(self, database, tag='library'): + def kinetics_check_rate_units_are_correct(self, database, tag="library"): """ This test ensures that every reaction has acceptable units on the A factor. """ @@ -778,66 +1111,113 @@ def kinetics_check_rate_units_are_correct(self, database, tag='library'): dimensionalities = { 1: (1 / pq.s).dimensionality, - 2: (pq.m ** 3 / pq.mole / pq.s).dimensionality, - 3: ((pq.m ** 6) / (pq.mole ** 2) / pq.s).dimensionality, + 2: (pq.m**3 / pq.mole / pq.s).dimensionality, + 3: ((pq.m**6) / (pq.mole**2) / pq.s).dimensionality, } for entry in database.entries.values(): k = entry.data rxn = entry.item molecularity = len(rxn.reactants) - surface_reactants = sum([1 for s in rxn.reactants if s.contains_surface_site()]) + surface_reactants = sum( + [1 for s in rxn.reactants if s.contains_surface_site()] + ) try: - if isinstance(k, rmgpy.kinetics.StickingCoefficient): "Should be dimensionless" a_factor = k.A if a_factor.units: boo = True - logging.error('Reaction {0} from {1} {2}, has invalid units {3}'.format( - rxn, tag, database.label, a_factor.units)) + logging.error( + "Reaction {0} from {1} {2}, has invalid units {3}".format( + rxn, tag, database.label, a_factor.units + ) + ) elif isinstance(k, rmgpy.kinetics.SurfaceArrhenius): a_factor = k.A expected = copy(dimensionalities[molecularity]) # for each surface reactant but one, switch from (m3/mol) to (m2/mol) for _ in range(surface_reactants - 1): expected[pq.m] -= 1 - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != expected: + if ( + pq.Quantity(1.0, a_factor.units).simplified.dimensionality + != expected + ): boo = True - logging.error('Reaction {0} from {1} {2}, has invalid units {3}'.format( - rxn, tag, database.label, a_factor.units)) - elif isinstance(k, rmgpy.kinetics.Arrhenius): # (but not SurfaceArrhenius, which came first) + logging.error( + "Reaction {0} from {1} {2}, has invalid units {3}".format( + rxn, tag, database.label, a_factor.units + ) + ) + elif isinstance( + k, rmgpy.kinetics.Arrhenius + ): # (but not SurfaceArrhenius, which came first) a_factor = k.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: + if ( + pq.Quantity(1.0, a_factor.units).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True - logging.error('Reaction {0} from {1} {2}, has invalid units {3}'.format( - rxn, tag, database.label, a_factor.units)) + logging.error( + "Reaction {0} from {1} {2}, has invalid units {3}".format( + rxn, tag, database.label, a_factor.units + ) + ) elif isinstance(k, (rmgpy.kinetics.Lindemann, rmgpy.kinetics.Troe)): a_factor = k.arrheniusHigh.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: + if ( + pq.Quantity(1.0, a_factor.units).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True - logging.error('Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}'.format( - rxn, tag, database.label, a_factor.units)) - elif isinstance(k, (rmgpy.kinetics.Lindemann, rmgpy.kinetics.Troe, rmgpy.kinetics.ThirdBody)): + logging.error( + "Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}".format( + rxn, tag, database.label, a_factor.units + ) + ) + elif isinstance( + k, + ( + rmgpy.kinetics.Lindemann, + rmgpy.kinetics.Troe, + rmgpy.kinetics.ThirdBody, + ), + ): a_factor = k.arrheniusLow.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity + 1]: + if ( + pq.Quantity(1.0, a_factor.units).simplified.dimensionality + != dimensionalities[molecularity + 1] + ): boo = True - logging.error('Reaction {0} from {1} {2}, has invalid low-pressure limit units {3}'.format( - rxn, tag, database.label, a_factor.units)) - elif hasattr(k, 'highPlimit') and k.highPlimit is not None: + logging.error( + "Reaction {0} from {1} {2}, has invalid low-pressure limit units {3}".format( + rxn, tag, database.label, a_factor.units + ) + ) + elif hasattr(k, "highPlimit") and k.highPlimit is not None: a_factor = k.highPlimit.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity - 1]: + if ( + pq.Quantity(1.0, a_factor.units).simplified.dimensionality + != dimensionalities[molecularity - 1] + ): boo = True - logging.error('Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}'.format( - rxn, tag, database.label, a_factor.units)) + logging.error( + "Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}".format( + rxn, tag, database.label, a_factor.units + ) + ) elif isinstance(k, rmgpy.kinetics.MultiArrhenius): for num, arrhenius in enumerate(k.arrhenius): a_factor = arrhenius.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: + if ( + pq.Quantity(1.0, a_factor.units).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True logging.error( - 'Reaction {0} from {1} {2}, has invalid units {3} on rate expression {4}'.format( - rxn, tag, database.label, a_factor.units, num + 1) + "Reaction {0} from {1} {2}, has invalid units {3} on rate expression {4}".format( + rxn, tag, database.label, a_factor.units, num + 1 + ) ) elif isinstance(k, rmgpy.kinetics.PDepArrhenius): @@ -850,21 +1230,37 @@ def kinetics_check_rate_units_are_correct(self, database, tag='library'): # which is distinct (somehow) from MultiPDepArrhenius for num, arrhenius2 in enumerate(arrhenius.arrhenius): a_factor = arrhenius2.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != \ - dimensionalities[molecularity]: + if ( + pq.Quantity( + 1.0, a_factor.units + ).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True logging.error( - 'Reaction {0} from {1} {2}, has invalid units {3} on {4!r} rate expression ' - '{5}'.format(rxn, tag, database.label, a_factor.units, P, num + 1) + "Reaction {0} from {1} {2}, has invalid units {3} on {4!r} rate expression " + "{5}".format( + rxn, + tag, + database.label, + a_factor.units, + P, + num + 1, + ) ) else: a_factor = arrhenius.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != \ - dimensionalities[molecularity]: + if ( + pq.Quantity( + 1.0, a_factor.units + ).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True logging.error( - 'Reaction {0} from {1} {2}, has invalid {3!r} units {4}'.format( - rxn, tag, database.label, P, a_factor.units) + "Reaction {0} from {1} {2}, has invalid {3!r} units {4}".format( + rxn, tag, database.label, P, a_factor.units + ) ) elif isinstance(k, rmgpy.kinetics.MultiPDepArrhenius): @@ -876,40 +1272,75 @@ def kinetics_check_rate_units_are_correct(self, database, tag='library'): # A MultiPDepArrhenius may have MultiArrhenius within it for arrhenius2 in arrhenius.arrhenius: a_factor = arrhenius2.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != \ - dimensionalities[molecularity]: + if ( + pq.Quantity( + 1.0, a_factor.units + ).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True logging.error( - 'Reaction {0} from {1} {2}, has invalid units {3} on {4!r} rate expression ' - '{5!r}'.format(rxn, tag, database.label, a_factor.units, P, arrhenius2) + "Reaction {0} from {1} {2}, has invalid units {3} on {4!r} rate expression " + "{5!r}".format( + rxn, + tag, + database.label, + a_factor.units, + P, + arrhenius2, + ) ) else: a_factor = arrhenius.A - if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != \ - dimensionalities[molecularity]: + if ( + pq.Quantity( + 1.0, a_factor.units + ).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True logging.error( - 'Reaction {0} from {1} {2}, has invalid {3!r} units {4} in rate expression ' - '{5}'.format(rxn, tag, database.label, P, a_factor.units, num) + "Reaction {0} from {1} {2}, has invalid {3!r} units {4} in rate expression " + "{5}".format( + rxn, + tag, + database.label, + P, + a_factor.units, + num, + ) ) elif isinstance(k, rmgpy.kinetics.Chebyshev): - if pq.Quantity(1.0, k.kunits).simplified.dimensionality != dimensionalities[molecularity]: + if ( + pq.Quantity(1.0, k.kunits).simplified.dimensionality + != dimensionalities[molecularity] + ): boo = True logging.error( - 'Reaction {0} from {1} {2}, has invalid units {3}'.format( - rxn, tag, database.label, k.kunits) + "Reaction {0} from {1} {2}, has invalid units {3}".format( + rxn, tag, database.label, k.kunits + ) ) else: - logging.warning('Reaction {0} from {1} {2}, did not have units checked.'.format( - rxn, tag, database.label)) + logging.warning( + "Reaction {0} from {1} {2}, did not have units checked.".format( + rxn, tag, database.label + ) + ) except: - logging.error("Error when checking units on reaction {0} from {1} {2} with " - "rate expression {3!r}.".format(rxn, tag, database.label, k)) + logging.error( + "Error when checking units on reaction {0} from {1} {2} with " + "rate expression {3!r}.".format(rxn, tag, database.label, k) + ) raise if boo: - raise ValueError('{0} {1} has some incorrect units'.format(tag.capitalize(), database.label)) + raise ValueError( + "{0} {1} has some incorrect units".format( + tag.capitalize(), database.label + ) + ) def kinetics_check_library_rates_are_reasonable(self, library): """ @@ -924,7 +1355,12 @@ def kinetics_check_library_rates_are_reasonable(self, library): h = rmgpy.constants.h # m2 kg / s boo = False tst_limit = (kB * T) / h - collision_limit = Na * np.pi * h_rad_diam ** 2 * np.sqrt(8 * kB * T / (np.pi * h_rad_mass / 2)) + collision_limit = ( + Na + * np.pi + * h_rad_diam**2 + * np.sqrt(8 * kB * T / (np.pi * h_rad_mass / 2)) + ) for entry in library.entries.values(): if entry.item.is_surface_reaction(): # Don't check surface reactions @@ -933,22 +1369,29 @@ def kinetics_check_library_rates_are_reasonable(self, library): rxn = entry.item if k < 0: boo = True - logging.error('library reaction {0} from library {1}, had a negative rate at 1000 K, 1 bar'.format( - rxn, library.label)) + logging.error( + "library reaction {0} from library {1}, had a negative rate at 1000 K, 1 bar".format( + rxn, library.label + ) + ) if len(rxn.reactants) == 1 and not rxn.allow_max_rate_violation: if k > tst_limit: boo = True - logging.error('library reaction {0} from library {1}, exceeds the TST limit at 1000 K, 1 bar of ' - '{2} mol/(m3*s) at {3} mol/(m3*s) and did not have allow_max_rate_violation=True' - ''.format(rxn, library.label, tst_limit, k)) + logging.error( + "library reaction {0} from library {1}, exceeds the TST limit at 1000 K, 1 bar of " + "{2} mol/(m3*s) at {3} mol/(m3*s) and did not have allow_max_rate_violation=True" + "".format(rxn, library.label, tst_limit, k) + ) elif len(rxn.reactants) == 2 and not rxn.allow_max_rate_violation: if k > collision_limit: boo = True - logging.error('library reaction {0} from library {1}, exceeds the collision limit at 1000 K, 1 bar ' - 'of {2} mol/(m3*s) at {3} mol/(m3*s) and did not have allow_max_rate_violation=True' - ''.format(rxn, library.label, collision_limit, k)) + logging.error( + "library reaction {0} from library {1}, exceeds the collision limit at 1000 K, 1 bar " + "of {2} mol/(m3*s) at {3} mol/(m3*s) and did not have allow_max_rate_violation=True" + "".format(rxn, library.label, collision_limit, k) + ) if boo: - raise ValueError('library {0} has unreasonable rates'.format(library.label)) + raise ValueError("library {0} has unreasonable rates".format(library.label)) def kinetics_check_reactant_and_product_template(self, family_name): """ @@ -959,16 +1402,28 @@ def kinetics_check_reactant_and_product_template(self, family_name): """ family = self.database.kinetics.families[family_name] if family.own_reverse: - nose.tools.assert_equal(family.forward_template.reactants, family.forward_template.products) + nose.tools.assert_equal( + family.forward_template.reactants, family.forward_template.products + ) else: tst = [] - reactant_labels = [reactant.label for reactant in family.forward_template.reactants] - product_labels = [product.label for product in family.forward_template.products] + reactant_labels = [ + reactant.label for reactant in family.forward_template.reactants + ] + product_labels = [ + product.label for product in family.forward_template.products + ] for reactant_label in reactant_labels: for product_label in product_labels: - tst.append((reactant_label == product_label, - "Reactant label {0} matches that of product label {1} in a non-reversible family " - "template. Please rename product label.".format(reactant_label, product_label))) + tst.append( + ( + reactant_label == product_label, + "Reactant label {0} matches that of product label {1} in a non-reversible family " + "template. Please rename product label.".format( + reactant_label, product_label + ), + ) + ) boo = False for i in range(len(tst)): @@ -977,7 +1432,9 @@ def kinetics_check_reactant_and_product_template(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_num_reactant_and_product(self, family_name): """ @@ -986,12 +1443,20 @@ def kinetics_check_num_reactant_and_product(self, family_name): """ family = self.database.kinetics.families[family_name] if family.auto_generated: - if not getattr(family, 'reactant_num'): - logging.error(f'The number of reactants is not defined in the family {family_name}') - if not getattr(family, 'product_num'): - logging.error(f'The number of products is not defined in the family {family_name}') - if not getattr(family, 'reactant_num') or not getattr(family, 'product_num'): - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + if not getattr(family, "reactant_num"): + logging.error( + f"The number of reactants is not defined in the family {family_name}" + ) + if not getattr(family, "product_num"): + logging.error( + f"The number of products is not defined in the family {family_name}" + ) + if not getattr(family, "reactant_num") or not getattr( + family, "product_num" + ): + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_cd_atom_type(self, family_name): """ @@ -999,7 +1464,7 @@ def kinetics_check_cd_atom_type(self, family_name): correctly according to their strict definitions """ family = self.database.kinetics.families[family_name] - target_label = ['Cd', 'CO', 'CS', 'Cdd'] + target_label = ["Cd", "CO", "CS", "Cdd"] target_atom_types = [ATOMTYPES[x] for x in target_label] # ignore product entries that get created from training reactions @@ -1013,7 +1478,8 @@ def kinetics_check_cd_atom_type(self, family_name): tst = [] for entryName, entry in family.groups.entries.items(): # ignore products - if entry in ignore: continue + if entry in ignore: + continue # ignore LogicOr groups if isinstance(entry.item, Group): for index, atom in enumerate(entry.item.atoms): @@ -1026,26 +1492,45 @@ def kinetics_check_cd_atom_type(self, family_name): # Create list of all the atomTypes that should be present in addition or instead of Cd correct_atom_list = [] num_of_d_bonds = sum( - [1 if x.order[0] is 'D' and len(x.order) == 1 else 0 for x in atom.bonds.values()]) + [ + 1 if x.order[0] is "D" and len(x.order) == 1 else 0 + for x in atom.bonds.values() + ] + ) if num_of_d_bonds == 2: - correct_atom_list.append('Cdd') + correct_atom_list.append("Cdd") elif num_of_d_bonds == 1: for ligand, bond in atom.bonds.items(): # Ignore ligands that are not double bonded if any([abs(2 - order) < 1e-7 for order in bond.order]): for ligAtomType in ligand.atomtype: - if ligand.atomtype[0].is_specific_case_of(ATOMTYPES['O']): - correct_atom_list.append('CO') - elif ligand.atomtype[0].is_specific_case_of(ATOMTYPES['S']): - correct_atom_list.append('CS') + if ligand.atomtype[0].is_specific_case_of( + ATOMTYPES["O"] + ): + correct_atom_list.append("CO") + elif ligand.atomtype[0].is_specific_case_of( + ATOMTYPES["S"] + ): + correct_atom_list.append("CS") # remove duplicates from correctAtom: correct_atom_list = list(set(correct_atom_list)) for correctAtom in correct_atom_list: - tst.append((ATOMTYPES[correctAtom] in atom.atomtype, """ + tst.append( + ( + ATOMTYPES[correctAtom] in atom.atomtype, + """ In family {0}, node {1} is missing the atomtype {2} in atom {3} and may be misusing the atomtype Cd, CO, CS, or Cdd. The following adjList may have atoms in a different ordering than the input file: -{4}""".format(family_name, entry, correctAtom, index + 1, entry.item.to_adjacency_list()))) +{4}""".format( + family_name, + entry, + correctAtom, + index + 1, + entry.item.to_adjacency_list(), + ), + ) + ) boo = False for i in range(len(tst)): @@ -1054,7 +1539,9 @@ def kinetics_check_cd_atom_type(self, family_name): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_unimolecular_groups(self, family_name): """ @@ -1100,7 +1587,7 @@ def get_end_from_backbone(_backbone, _end_labels): _end_labels = set(_end_labels) for _group in groups: group_labels = set(_atom.label for _atom in _group.atoms) - group_labels.discard('') + group_labels.discard("") if _end_labels == group_labels: break else: @@ -1150,7 +1637,9 @@ def get_end_from_backbone(_backbone, _end_labels): if not labels.issubset(present_labels): c.append([end_group, entry]) # check D - mid_atoms = [group.get_labeled_atoms(x)[0] for x in family.boundary_atoms] + mid_atoms = [ + group.get_labeled_atoms(x)[0] for x in family.boundary_atoms + ] path_atoms = find_shortest_path(mid_atoms[0], mid_atoms[1]) for atom in path_atoms: if not atom.label: @@ -1167,7 +1656,9 @@ def get_end_from_backbone(_backbone, _end_labels): else: raise Exception( "Group {0} has split into end group {1}, but does not match any root".format( - entry.label, end_from_backbone.to_adjacency_list())) + entry.label, end_from_backbone.to_adjacency_list() + ) + ) else: present_labels = set([]) @@ -1189,31 +1680,31 @@ def get_end_from_backbone(_backbone, _end_labels): s = "These end groups have extra labels that their top level end group do not have:" s += "\n [root group, error group]" for x in a: - s += '\n' + str(x) + s += "\n" + str(x) tst.append((False, s)) if b: s = "These end groups are missing labels that their top level end group have:" s += "\n [root group, error group]" for x in b: - s += '\n' + str(x) + s += "\n" + str(x) tst.append((False, s)) if c: s = "These backbone groups are missing labels that are in the end groups:" s += "\n [root group, error group]" for x in c: - s += '\n' + str(x) + s += "\n" + str(x) tst.append((False, s)) if d: s = "These backbone groups are missing labels along the path atoms:" s += "\n [root group, error group]" for x in d: - s += '\n' + str(x) + s += "\n" + str(x) tst.append((False, s)) if e: s = "These backbone have end subgraphs that don't match a root:" s += "\n [root group, error group]" for x in e: - s += '\n' + str(x) + s += "\n" + str(x) tst.append((False, s)) boo = False @@ -1223,7 +1714,9 @@ def get_end_from_backbone(_backbone, _end_labels): boo = True if boo: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def kinetics_check_sample_descends_to_group(self, family_name): """ @@ -1252,14 +1745,21 @@ def kinetics_check_sample_descends_to_group(self, family_name): for backboneRoot in backbone_roots: all_backbone_groups.extend(family.get_top_level_groups(backboneRoot)) # list of numbered of labelled atoms for all_backbone_groups - backbone_sizes = [len(backbone.item.get_all_labeled_atoms()) for backbone in all_backbone_groups] + backbone_sizes = [ + len(backbone.item.get_all_labeled_atoms()) + for backbone in all_backbone_groups + ] # pick a backbone that is two labelled atoms larger than the smallest if min(backbone_sizes) + 2 in backbone_sizes: - backbone_sample = all_backbone_groups[backbone_sizes.index(min(backbone_sizes) + 2)] + backbone_sample = all_backbone_groups[ + backbone_sizes.index(min(backbone_sizes) + 2) + ] # or if it doesn't exist, pick the largest backbone else: - backbone_sample = all_backbone_groups[backbone_sizes.index(max(backbone_sizes))] + backbone_sample = all_backbone_groups[ + backbone_sizes.index(max(backbone_sizes)) + ] merges_necessary = True else: merges_necessary = False @@ -1276,7 +1776,9 @@ def kinetics_check_sample_descends_to_group(self, family_name): else: root = entry try: - if merges_necessary and root not in backbone_roots: # we may need to merge + if ( + merges_necessary and root not in backbone_roots + ): # we may need to merge merged_group = backbone_sample.item.merge_groups(entry.item) sample_molecule = merged_group.make_sample_molecule() else: @@ -1284,15 +1786,32 @@ def kinetics_check_sample_descends_to_group(self, family_name): # test accessibility here atoms = sample_molecule.get_all_labeled_atoms() - match = family.groups.descend_tree(sample_molecule, atoms, strict=True, root=root) - tst1.append((match, "Group {0} does not match its root node, {1}".format(entryName, root.label))) + match = family.groups.descend_tree( + sample_molecule, atoms, strict=True, root=root + ) + tst1.append( + ( + match, + "Group {0} does not match its root node, {1}".format( + entryName, root.label + ), + ) + ) if tst1[-1][0] is not None: if merges_necessary and root not in backbone_roots: - backbone_msg = "\n\nBackbone Group Adjlist:\n" + backbone_sample.label + '\n' + backbone_msg = ( + "\n\nBackbone Group Adjlist:\n" + + backbone_sample.label + + "\n" + ) backbone_msg += backbone_sample.item.to_adjacency_list() else: - backbone_msg = '' - tst2.append((entry, [match] + family.groups.ancestors(match), """ + backbone_msg = "" + tst2.append( + ( + entry, + [match] + family.groups.ancestors(match), + """ In group {0}, a sample molecule made from node {1} returns node {2} when descending the tree. Sample molecule AdjList: {3} @@ -1301,22 +1820,46 @@ def kinetics_check_sample_descends_to_group(self, family_name): {4}{5} Matched group AdjList: -{6}""".format(family_name, entry.label, match.label, sample_molecule.to_adjacency_list(), entry.item.to_adjacency_list(), - backbone_msg, match.item.to_adjacency_list()))) +{6}""".format( + family_name, + entry.label, + match.label, + sample_molecule.to_adjacency_list(), + entry.item.to_adjacency_list(), + backbone_msg, + match.item.to_adjacency_list(), + ), + ) + ) except UnexpectedChargeError as e: if merges_necessary and root not in backbone_roots: - backbone_msg = "\n\nBackbone Group Adjlist:\n" + backbone_sample.label + '\n' + backbone_msg = ( + "\n\nBackbone Group Adjlist:\n" + + backbone_sample.label + + "\n" + ) backbone_msg += backbone_sample.item.to_adjacency_list() else: - backbone_msg = '' - tst3.append((False, """ + backbone_msg = "" + tst3.append( + ( + False, + """ In family {0}, a sample molecule made from node {1} returns an unexpectedly charged molecule: Sample molecule AdjList: {2} Origin Group AdjList: -{3}{4}""".format(family_name, entry.label, e.graph.to_adjacency_list(), entry.item.to_adjacency_list(), backbone_msg))) +{3}{4}""".format( + family_name, + entry.label, + e.graph.to_adjacency_list(), + entry.item.to_adjacency_list(), + backbone_msg, + ), + ) + ) except ImplicitBenzeneError: skipped.append(entryName) @@ -1346,10 +1889,10 @@ def kinetics_check_sample_descends_to_group(self, family_name): def kinetics_check_sample_can_react(self, family_name): """ - This test first creates a/some sample :class:Molecule(s) from a/some :class:Group(s). + This test first creates a/some sample :class:Molecule(s) from a/some :class:Group(s). Then it checks that this/these molecule can react according to the recipe. - It doesn't do every combination of test molecules, but tries each test molecule + It doesn't do every combination of test molecules, but tries each test molecule at least once. Also note that the test molecules are often too small to detect some problems, always being the simplest possible instance of a group. So unfortunately, problems can still slip through this test. @@ -1374,21 +1917,30 @@ def kinetics_check_sample_can_react(self, family_name): for backboneRoot in backbone_roots: all_backbone_groups.extend(family.get_top_level_groups(backboneRoot)) # list of numbered of labelled atoms for all_backbone_groups - backbone_sizes = [len(backbone.item.get_all_labeled_atoms()) for backbone in all_backbone_groups] + backbone_sizes = [ + len(backbone.item.get_all_labeled_atoms()) + for backbone in all_backbone_groups + ] # pick a backbone that is two labelled atoms larger than the smallest if min(backbone_sizes) + 2 in backbone_sizes: - backbone_sample = all_backbone_groups[backbone_sizes.index(min(backbone_sizes) + 2)] + backbone_sample = all_backbone_groups[ + backbone_sizes.index(min(backbone_sizes) + 2) + ] # or if it doesn't exist, pick the largest backbone else: - backbone_sample = all_backbone_groups[backbone_sizes.index(max(backbone_sizes))] + backbone_sample = all_backbone_groups[ + backbone_sizes.index(max(backbone_sizes)) + ] merges_necessary = True else: merges_necessary = False # If atom has too many benzene rings, we currently have trouble making sample atoms skipped = [] - sample_reactants = defaultdict(list) # the keys will be the root nodes, the values a list of samples + sample_reactants = defaultdict( + list + ) # the keys will be the root nodes, the values a list of samples for entryName, entry in family.groups.entries.items(): if entry in ignore: continue @@ -1399,7 +1951,9 @@ def kinetics_check_sample_can_react(self, family_name): else: root = entry try: - if merges_necessary and root not in backbone_roots: # we may need to merge + if ( + merges_necessary and root not in backbone_roots + ): # we may need to merge merged_group = backbone_sample.item.merge_groups(entry.item) sample_molecule = merged_group.make_sample_molecule() # store the sample molecule for later testing @@ -1412,24 +1966,40 @@ def kinetics_check_sample_can_react(self, family_name): sample_reactants[root].append(sample_molecule) except UnexpectedChargeError as e: if merges_necessary and root not in backbone_roots: - backbone_msg = "\n\nBackbone Group Adjlist:\n" + backbone_sample.label + '\n' + backbone_msg = ( + "\n\nBackbone Group Adjlist:\n" + + backbone_sample.label + + "\n" + ) backbone_msg += backbone_sample.item.to_adjacency_list() else: - backbone_msg = '' - tst3.append((False, """ + backbone_msg = "" + tst3.append( + ( + False, + """ In family {0}, a sample molecule made from node {1} returns an unexpectedly charged molecule: Sample molecule AdjList: {2} Origin Group AdjList: -{3}{4}""".format(family_name, entry.label, e.graph.to_adjacency_list(), entry.item.to_adjacency_list(), backbone_msg))) +{3}{4}""".format( + family_name, + entry.label, + e.graph.to_adjacency_list(), + entry.item.to_adjacency_list(), + backbone_msg, + ), + ) + ) except ImplicitBenzeneError: skipped.append(entryName) - def make_error_message(reactants, message=''): + + def make_error_message(reactants, message=""): "Give it the list of reactant Molecules and an optional message." output = f"Error in family {family_name} when reacting " - output += ' + '.join(s.to_smiles() for s in reactants) + output += " + ".join(s.to_smiles() for s in reactants) output += f". {message}\n" for s in reactants: output += "\n" + s.to_adjacency_list(label=s.to_smiles()) @@ -1441,16 +2011,24 @@ def make_error_message(reactants, message=''): try: products = family.apply_recipe([reactant]) except Exception as e: - test1.append(make_error_message([reactant], - message=f"During apply_recipe had an {type(e)!s}: {e!s}")) + test1.append( + make_error_message( + [reactant], + message=f"During apply_recipe had an {type(e)!s}: {e!s}", + ) + ) continue if products is None: - test1.append(make_error_message([reactant], - message="apply_recipe returned None, indicating wrong number of products or a charged product.")) + test1.append( + make_error_message( + [reactant], + message="apply_recipe returned None, indicating wrong number of products or a charged product.", + ) + ) continue for molecule in products: # Just check none of this throws errors - species = rmgpy.species.Species(index=1,molecule=[molecule]) + species = rmgpy.species.Species(index=1, molecule=[molecule]) species.generate_resonance_structures() elif len(sample_reactants) == 2: sr = list(sample_reactants.values()) @@ -1464,22 +2042,30 @@ def make_error_message(reactants, message=''): try: products = family.apply_recipe([reactant1, reactant2]) except Exception as e: - test1.append(make_error_message([reactant1, reactant2], - message=f"During apply_recipe had an {type(e)!s}: {e!s}")) + test1.append( + make_error_message( + [reactant1, reactant2], + message=f"During apply_recipe had an {type(e)!s}: {e!s}", + ) + ) continue if products is None: - test1.append(make_error_message([reactant1, reactant2], - message="apply_recipe returned None, indicating wrong number of products or a charged product.")) + test1.append( + make_error_message( + [reactant1, reactant2], + message="apply_recipe returned None, indicating wrong number of products or a charged product.", + ) + ) continue for molecule in products: # Just check none of this throws errors - species = rmgpy.species.Species(index=1,molecule=[molecule]) + species = rmgpy.species.Species(index=1, molecule=[molecule]) species.generate_resonance_structures() elif len(sample_reactants) == 3: sr = list(sample_reactants.values()) # Every combination may be prohibitively slow (N*M*L reactions), # so we loop through to ensure at least each node is used once (max(N,M,L) reactions) - longest = np.argmax(map(len,sr)) + longest = np.argmax(map(len, sr)) if longest == 0: triplets = zip(sr[0], itertools.cycle(sr[1]), itertools.cycle(sr[2])) elif longest == 1: @@ -1491,20 +2077,30 @@ def make_error_message(reactants, message=''): try: products = family.apply_recipe([reactant1, reactant2, reactant3]) except Exception as e: - test1.append(make_error_message([reactant1, reactant2, reactant3], - message=f"During apply_recipe had an {type(e)!s}: {e!s}")) + test1.append( + make_error_message( + [reactant1, reactant2, reactant3], + message=f"During apply_recipe had an {type(e)!s}: {e!s}", + ) + ) continue if products is None: - test1.append(make_error_message([reactant1, reactant2, reactant3], - message="apply_recipe returned None, indicating wrong number of products or a charged product.")) + test1.append( + make_error_message( + [reactant1, reactant2, reactant3], + message="apply_recipe returned None, indicating wrong number of products or a charged product.", + ) + ) continue for molecule in products: # Just check none of this throws errors - species = rmgpy.species.Species(index=1,molecule=[molecule]) + species = rmgpy.species.Species(index=1, molecule=[molecule]) species.generate_resonance_structures() else: - raise ValueError(f"Family had {len(sample_reactants)} reactants?: " - f"{', '.join(map(str,sample_reactants.keys())) }") + raise ValueError( + f"Family had {len(sample_reactants)} reactants?: " + f"{', '.join(map(str,sample_reactants.keys())) }" + ) # print out entries skipped from exception we can't currently handle if skipped: @@ -1518,58 +2114,83 @@ def make_error_message(reactants, message=''): boo = True if boo: raise ValueError("Error Occurred. See log for details.") + def check_surface_thermo_groups_have_surface_attributes(self, group_name, group): """ - Tests that each entry in the surface thermo groups has a 'metal' and 'facet' attribute, + Tests that each entry in the surface thermo groups has a 'metal' and 'facet' attribute, describing which metal the data came from. """ failed = False for entry in group.entries.values(): if isinstance(entry.data, rmgpy.thermo.thermodata.ThermoData): - if 'Pt' in group_name: - if entry.metal is not 'Pt': - logging.error(f'Expected {entry} metal attribute in {group_name} group to match Pt, but was {entry.metal}') + if "Pt" in group_name: + if entry.metal is not "Pt": + logging.error( + f"Expected {entry} metal attribute in {group_name} group to match Pt, but was {entry.metal}" + ) failed = True - if '111' in group_name: - if entry.facet is not '111': - logging.error(f'Expected {entry} facet attribute in {group_name} group to match 111, but was {entry.facet}') + if "111" in group_name: + if entry.facet is not "111": + logging.error( + f"Expected {entry} facet attribute in {group_name} group to match 111, but was {entry.facet}" + ) failed = True if not entry.metal: - logging.error(f'Expected a metal attribute for {entry} in {group_name} group but found {entry.metal!r}') + logging.error( + f"Expected a metal attribute for {entry} in {group_name} group but found {entry.metal!r}" + ) failed = True if not entry.facet: - logging.error(f'Expected a facet attribute for {entry} in {group_name} group but found {entry.facet!r}') + logging.error( + f"Expected a facet attribute for {entry} in {group_name} group but found {entry.facet!r}" + ) failed = True if failed: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) - def check_surface_thermo_libraries_have_surface_attributes(self, library_name, library): + def check_surface_thermo_libraries_have_surface_attributes( + self, library_name, library + ): """ Test that each entry in the surface thermo database has a 'metal' and 'facet' attribute, describing which metal the data came from. """ failed = False for entry in library.entries.values(): - if 'Pt' in library_name: - if entry.metal is not 'Pt': - logging.error(f'Expected {entry} metal attribute in {library_name} library to match Pt, but was {entry.metal}') + if "Pt" in library_name: + if entry.metal is not "Pt": + logging.error( + f"Expected {entry} metal attribute in {library_name} library to match Pt, but was {entry.metal}" + ) failed = True - if 'Ni' in library_name: - if entry.metal is not 'Ni': - logging.error(f'Expected {entry} metal attribute in {library_name} library to match Ni, but was {entry.metal}') + if "Ni" in library_name: + if entry.metal is not "Ni": + logging.error( + f"Expected {entry} metal attribute in {library_name} library to match Ni, but was {entry.metal}" + ) failed = True - if '111' in library_name: - if entry.facet is not '111': - logging.error(f'Expected {entry} facet attribute in {library_name} library to match 111, but was {entry.facet}') + if "111" in library_name: + if entry.facet is not "111": + logging.error( + f"Expected {entry} facet attribute in {library_name} library to match 111, but was {entry.facet}" + ) failed = True if not entry.metal: - logging.error(f'Expected a metal attribute for {entry} in {library} library but found {entry.metal!r}') + logging.error( + f"Expected a metal attribute for {entry} in {library} library but found {entry.metal!r}" + ) failed = True if not entry.facet: - logging.error(f'Expected a facet attribute for {entry} in {library} library but found {entry.facet!r}') + logging.error( + f"Expected a facet attribute for {entry} in {library} library but found {entry.facet!r}" + ) failed = True if failed: - raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + raise ValueError( + "Error occured in databaseTest. Please check log warnings for all error messages." + ) def general_check_nodes_found_in_tree(self, group_name, group): """ @@ -1578,7 +2199,7 @@ def general_check_nodes_found_in_tree(self, group_name, group): for node_name, node_group in group.entries.items(): # Pass this check for special solvation polycyclic groups. These groups are used to put similar polycyclic # groups or polycyclic groups with resonance structures together under one entry. - if node_group.short_desc == 'special solvation polycyclic group': + if node_group.short_desc == "special solvation polycyclic group": continue ascend_parent = node_group # Check whether the node has proper parents unless it is the top reactant or product node @@ -1588,16 +2209,31 @@ def general_check_nodes_found_in_tree(self, group_name, group): while ascend_parent not in group.top: child = ascend_parent ascend_parent = ascend_parent.parent - tst1.append((ascend_parent is not None, - "Node {node} in {group} group was found in the tree without a proper parent.".format( - node=child, group=group_name))) + tst1.append( + ( + ascend_parent is not None, + "Node {node} in {group} group was found in the tree without a proper parent.".format( + node=child, group=group_name + ), + ) + ) if tst1[-1] is not None: - tst2.append((child in ascend_parent.children, - "Node {node} in {group} group was found in the tree without a proper parent.".format( - node=node_name, group=group_name))) - tst3.append((child is ascend_parent, - "Node {node} in {group} is a parent to itself".format( - node=node_name, group=group_name))) + tst2.append( + ( + child in ascend_parent.children, + "Node {node} in {group} group was found in the tree without a proper parent.".format( + node=node_name, group=group_name + ), + ) + ) + tst3.append( + ( + child is ascend_parent, + "Node {node} in {group} is a parent to itself".format( + node=node_name, group=group_name + ), + ) + ) boo = False for i in range(len(tst1)): @@ -1624,17 +2260,22 @@ def general_check_groups_nonidentical(self, group_name, group): for node_name, node_group in group.entries.items(): # Pass this check for special solvation polycyclic groups. These groups are used to put similar polycyclic # groups or polycyclic groups with resonance structures together under one entry. - if node_group.short_desc == 'special solvation polycyclic group': + if node_group.short_desc == "special solvation polycyclic group": continue del entries_copy[node_name] for node_name_other, node_group_other in entries_copy.items(): # Pass this check for special solvation polycyclic groups. - if node_group_other.short_desc == 'special solvation polycyclic group': + if node_group_other.short_desc == "special solvation polycyclic group": continue group.match_node_to_node(node_group, node_group_other) - tst.append((group.match_node_to_node(node_group, node_group_other), - "Node {node} in {group} group was found to be identical to node {node_other}".format( - node=node_name, group=group_name, node_other=node_name_other))) + tst.append( + ( + group.match_node_to_node(node_group, node_group_other), + "Node {node} in {group} group was found to be identical to node {node_other}".format( + node=node_name, group=group_name, node_other=node_name_other + ), + ) + ) boo = False for i in range(len(tst)): @@ -1657,25 +2298,40 @@ def general_check_child_parent_relationships(self, group_name, group): continue # Pass this check for special solvation polycyclic groups. These groups are used to put similar polycyclic # groups or polycyclic groups with resonance structures together under one entry. - if child_node.short_desc == 'special solvation polycyclic group': + if child_node.short_desc == "special solvation polycyclic group": continue parent_node = child_node.parent # Check whether the node has proper parents unless it is the top reactant or product node # The parent should be more general than the child - tst1.append((group.match_node_to_child(parent_node, child_node), - "In {group} group, node {parent} is not a proper parent of its child {child}.".format( - group=group_name, parent=parent_node, child=node_name))) + tst1.append( + ( + group.match_node_to_child(parent_node, child_node), + "In {group} group, node {parent} is not a proper parent of its child {child}.".format( + group=group_name, parent=parent_node, child=node_name + ), + ) + ) # check that parentNodes which are LogicOr do not have an ancestor that is a Group # If it does, then the child_node must also be a child of the ancestor if isinstance(parent_node.item, LogicOr): ancestor_node = parent_node - while ancestor_node not in group.top and isinstance(ancestor_node.item, LogicOr): + while ancestor_node not in group.top and isinstance( + ancestor_node.item, LogicOr + ): ancestor_node = ancestor_node.parent if isinstance(ancestor_node.item, Group) and tst1[-1][0]: - tst2.append((group.match_node_to_child(ancestor_node, child_node), - "In {group} group, node {ancestor} is not a proper ancestor of its child {child}." - "".format(group=group_name, ancestor=ancestor_node, child=node_name))) + tst2.append( + ( + group.match_node_to_child(ancestor_node, child_node), + "In {group} group, node {ancestor} is not a proper ancestor of its child {child}." + "".format( + group=group_name, + ancestor=ancestor_node, + child=node_name, + ), + ) + ) boo = False for i in range(len(tst1)): @@ -1711,10 +2367,15 @@ def general_check_siblings_for_parents(self, group_name, group): tst = [] for nodeName, node in group.entries.items(): for index, child1 in enumerate(node.children): - for child2 in node.children[index + 1:]: - tst.append((group.match_node_to_child(child1, child2), - "In {0} group, node {1} is a parent of {2}, but they are written as siblings.".format( - group_name, child1, child2))) + for child2 in node.children[index + 1 :]: + tst.append( + ( + group.match_node_to_child(child1, child2), + "In {0} group, node {1} is a parent of {2}, but they are written as siblings.".format( + group_name, child1, child2 + ), + ) + ) boo = False for i in range(len(tst)): @@ -1730,7 +2391,7 @@ def general_check_cd_atom_type(self, group_name, group): This test checks that groups containing Cd, CO, CS and Cdd atomtypes are used correctly according to their strict definitions """ - target_label = ['Cd', 'CO', 'CS', 'Cdd'] + target_label = ["Cd", "CO", "CS", "Cdd"] target_atom_types = [ATOMTYPES[x] for x in target_label] tst = [] for entry_name, entry in group.entries.items(): @@ -1745,26 +2406,45 @@ def general_check_cd_atom_type(self, group_name, group): # figure out what the correct atomtype is correct_atom_list = [] num_of_d_bonds = sum( - [1 if x.order[0] is 'D' and len(x.order) == 1 else 0 for x in atom.bonds.values()]) + [ + 1 if x.order[0] is "D" and len(x.order) == 1 else 0 + for x in atom.bonds.values() + ] + ) if num_of_d_bonds == 2: - correct_atom_list.append('Cdd') + correct_atom_list.append("Cdd") elif num_of_d_bonds == 1: for ligand, bond in atom.bonds.items(): # Ignore ligands that are not double bonded if any([abs(2 - order) < 1e-7 for order in bond.order]): for lig_atom_type in ligand.atomtype: - if ligand.atomtype[0].is_specific_case_of(ATOMTYPES['O']): - correct_atom_list.append('CO') - elif ligand.atomtype[0].is_specific_case_of(ATOMTYPES['S']): - correct_atom_list.append('CS') + if ligand.atomtype[0].is_specific_case_of( + ATOMTYPES["O"] + ): + correct_atom_list.append("CO") + elif ligand.atomtype[0].is_specific_case_of( + ATOMTYPES["S"] + ): + correct_atom_list.append("CS") # remove duplicates from correctAtom: correct_atom_list = list(set(correct_atom_list)) for correctAtom in correct_atom_list: - tst.append((ATOMTYPES[correctAtom] in atom.atomtype, """ + tst.append( + ( + ATOMTYPES[correctAtom] in atom.atomtype, + """ In group {0}, node {1} is missing the atomtype {2} in atom {3} and may be misusing the atomtype Cd, CO, CS, or Cdd. The following adjList may have atoms in a different ordering than the input file: -{4}""".format(group_name, entry, correctAtom, index + 1, entry.item.to_adjacency_list()))) +{4}""".format( + group_name, + entry, + correctAtom, + index + 1, + entry.item.to_adjacency_list(), + ), + ) + ) boo = False for i in range(len(tst)): @@ -1787,8 +2467,11 @@ def general_check_sample_descends_to_group(self, group_name, group): tst3 = [] # Solvation groups have special groups that RMG cannot generate proper sample_molecules. Skip them. - skip_entry_list = ['Cds-CdsCS6dd', 'Cs-CS4dHH'] - skip_short_desc_list = ['special solvation group with ring', 'special solvation polycyclic group'] + skip_entry_list = ["Cds-CdsCS6dd", "Cs-CS4dHH"] + skip_short_desc_list = [ + "special solvation group with ring", + "special solvation polycyclic group", + ] for entryName, entry in group.entries.items(): # Pass special cases @@ -1800,14 +2483,28 @@ def general_check_sample_descends_to_group(self, group_name, group): try: sample_molecule = entry.item.make_sample_molecule() except: - logging.error("Problem making sample molecule for group {}\n{}".format( - entryName, entry.item.to_adjacency_list())) + logging.error( + "Problem making sample molecule for group {}\n{}".format( + entryName, entry.item.to_adjacency_list() + ) + ) raise atoms = sample_molecule.get_all_labeled_atoms() match = group.descend_tree(sample_molecule, atoms, strict=True) - tst1.append((match, "Group {0} does not match its root node, {1}".format(entryName, group.top[0]))) - tst2.append((entry, [match] + group.ancestors(match), """ + tst1.append( + ( + match, + "Group {0} does not match its root node, {1}".format( + entryName, group.top[0] + ), + ) + ) + tst2.append( + ( + entry, + [match] + group.ancestors(match), + """ In group {0}, a sample molecule made from node {1} returns node {2} when descending the tree. Sample molecule AdjList: {3} @@ -1817,21 +2514,35 @@ def general_check_sample_descends_to_group(self, group_name, group): Matched group AdjList: {5} -""".format(group_name, - entry, - match, - sample_molecule.to_adjacency_list(), - entry.item.to_adjacency_list(), - match.item.to_adjacency_list()))) +""".format( + group_name, + entry, + match, + sample_molecule.to_adjacency_list(), + entry.item.to_adjacency_list(), + match.item.to_adjacency_list(), + ), + ) + ) except UnexpectedChargeError as e: - tst3.append((False, """ + tst3.append( + ( + False, + """ In family {0}, a sample molecule made from node {1} returns an unexpectedly charged molecule: Sample molecule AdjList: {2} Origin Group AdjList: -{3}""".format(group_name, entry.label, e.graph.to_adjacency_list(), entry.item.to_adjacency_list()))) +{3}""".format( + group_name, + entry.label, + e.graph.to_adjacency_list(), + entry.item.to_adjacency_list(), + ), + ) + ) except ImplicitBenzeneError: skipped.append(entryName) @@ -1859,5 +2570,5 @@ def general_check_sample_descends_to_group(self, group_name, group): raise ValueError("Error Occurred") -if __name__ == '__main__': - nose.run(argv=[__file__, '-v', '--nologcapture'], defaultTest=__name__) +if __name__ == "__main__": + nose.run(argv=[__file__, "-v", "--nologcapture"], defaultTest=__name__) diff --git a/test/rmgpy/constantsTest.py b/test/rmgpy/constantsTest.py index 6786f051be..53f9b629cb 100644 --- a/test/rmgpy/constantsTest.py +++ b/test/rmgpy/constantsTest.py @@ -39,6 +39,7 @@ ################################################################################ + class TestConstants(unittest.TestCase): """ Contains unit tests that ensure that the physical constants are visible in @@ -51,48 +52,62 @@ def test_avogadro_constant(self): Test the value of the Avogadro constant. """ Na = 6.02214179e23 - self.assertAlmostEqual(constants.Na / Na, 1.0, 6, '{0} != {1}'.format(constants.Na, Na)) + self.assertAlmostEqual( + constants.Na / Na, 1.0, 6, "{0} != {1}".format(constants.Na, Na) + ) def test_boltzmann_constant(self): """ Test the value of the Boltzmann constant. """ kB = 1.3806504e-23 - self.assertAlmostEqual(constants.kB / kB, 1.0, 6, '{0} != {1}'.format(constants.kB, kB)) + self.assertAlmostEqual( + constants.kB / kB, 1.0, 6, "{0} != {1}".format(constants.kB, kB) + ) def test_elementary_charge(self): """ Test the value of the elementary charge constant. """ e = 1.602176565e-19 - self.assertAlmostEqual(constants.e / e, 1.0, 6, '{0} != {1}'.format(constants.e, e)) + self.assertAlmostEqual( + constants.e / e, 1.0, 6, "{0} != {1}".format(constants.e, e) + ) def test_gas_law_constant(self): """ Test the value of the gas law constant. """ R = 8.314472 - self.assertAlmostEqual(constants.R / R, 1.0, 6, '{0} != {1}'.format(constants.R, R)) + self.assertAlmostEqual( + constants.R / R, 1.0, 6, "{0} != {1}".format(constants.R, R) + ) def test_planck_constant(self): """ Test the value of the Planck constant. """ h = 6.62606896e-34 - self.assertAlmostEqual(constants.h / h, 1.0, 6, '{0} != {1}'.format(constants.h, h)) + self.assertAlmostEqual( + constants.h / h, 1.0, 6, "{0} != {1}".format(constants.h, h) + ) def test_reduced_planck_constant(self): """ Test the value of the reduced Planck constant. """ hbar = 1.054571726e-34 - self.assertAlmostEqual(constants.hbar / hbar, 1.0, 6, '{0} != {1}'.format(constants.hbar, hbar)) + self.assertAlmostEqual( + constants.hbar / hbar, 1.0, 6, "{0} != {1}".format(constants.hbar, hbar) + ) def test_pi(self): """ Test the value of pi. """ - self.assertAlmostEqual(constants.pi / math.pi, 1.0, 6, '{0} != {1}'.format(constants.pi, math.pi)) + self.assertAlmostEqual( + constants.pi / math.pi, 1.0, 6, "{0} != {1}".format(constants.pi, math.pi) + ) def test_speed_of_light(self): """ @@ -106,45 +121,57 @@ def test_electron_mass(self): Test the value of the electron rest mass. """ m_e = 9.10938291e-31 - self.assertAlmostEqual(constants.m_e / m_e, 1.0, 6, '{0} != {1}'.format(constants.m_e, m_e)) + self.assertAlmostEqual( + constants.m_e / m_e, 1.0, 6, "{0} != {1}".format(constants.m_e, m_e) + ) def test_proton_mass(self): """ Test the value of the proton rest mass. """ m_p = 1.672621777e-27 - self.assertAlmostEqual(constants.m_p / m_p, 1.0, 6, '{0} != {1}'.format(constants.m_p, m_p)) + self.assertAlmostEqual( + constants.m_p / m_p, 1.0, 6, "{0} != {1}".format(constants.m_p, m_p) + ) def test_neutron_mass(self): """ Test the value of the neutron rest mass. """ m_n = 1.674927351e-27 - self.assertAlmostEqual(constants.m_n / m_n, 1.0, 6, '{0} != {1}'.format(constants.m_n, m_n)) + self.assertAlmostEqual( + constants.m_n / m_n, 1.0, 6, "{0} != {1}".format(constants.m_n, m_n) + ) def test_atomic_mass_unit(self): """ Test the value of the atomic mass unit. """ amu = 1.660538921e-27 - self.assertAlmostEqual(constants.amu / amu, 1.0, 6, '{0} != {1}'.format(constants.amu, amu)) + self.assertAlmostEqual( + constants.amu / amu, 1.0, 6, "{0} != {1}".format(constants.amu, amu) + ) def test_bohr_radius(self): """ Test the value of the Bohr radius. """ a0 = 5.2917721092e-11 - self.assertAlmostEqual(constants.a0 / a0, 1.0, 6, '{0} != {1}'.format(constants.a0, a0)) + self.assertAlmostEqual( + constants.a0 / a0, 1.0, 6, "{0} != {1}".format(constants.a0, a0) + ) def test_hartree_energy(self): """ Test the value of the Hartree energy. """ E_h = 4.35974434e-18 - self.assertAlmostEqual(constants.E_h / E_h, 1.0, 6, '{0} != {1}'.format(constants.E_h, E_h)) + self.assertAlmostEqual( + constants.E_h / E_h, 1.0, 6, "{0} != {1}".format(constants.E_h, E_h) + ) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/constraintsTest.py b/test/rmgpy/constraintsTest.py index 3b9a002dc5..3d2c956301 100644 --- a/test/rmgpy/constraintsTest.py +++ b/test/rmgpy/constraintsTest.py @@ -43,6 +43,7 @@ ################################################################################ + class TestFailsSpeciesConstraints(unittest.TestCase): """ Contains unit tests of the fails_species_constraints function. @@ -76,7 +77,7 @@ def tearDownClass(cls): """ rmgpy.rmg.input.rmg = None - @mock.patch('rmgpy.constraints.logging') + @mock.patch("rmgpy.constraints.logging") def test_constraints_not_loaded(self, mock_logging): """ Test what happens when constraints are not loaded. @@ -84,11 +85,11 @@ def test_constraints_not_loaded(self, mock_logging): # Reset module level rmg variable in rmgpy.rmg.input rmgpy.rmg.input.rmg = None - mol = Molecule(smiles='C') + mol = Molecule(smiles="C") self.assertFalse(fails_species_constraints(mol)) - mock_logging.debug.assert_called_with('Species constraints could not be found.') + mock_logging.debug.assert_called_with("Species constraints could not be found.") # Restore module level rmg variable in rmgpy.rmg.input rmgpy.rmg.input.rmg = self.rmg @@ -97,7 +98,7 @@ def test_species_input(self): """ Test that fails_species_constraints can handle a Species object. """ - spc = Species().from_smiles('C') + spc = Species().from_smiles("C") self.assertFalse(fails_species_constraints(spc)) @@ -105,60 +106,62 @@ def test_explicitly_allowed_molecules(self): """ Test that we can explicitly allow molecules in species constraints. """ - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") self.assertTrue(fails_species_constraints(mol)) - self.rmg.species_constraints['explicitlyAllowedMolecules'] = [Molecule(smiles='CCCC')] + self.rmg.species_constraints["explicitlyAllowedMolecules"] = [ + Molecule(smiles="CCCC") + ] self.assertFalse(fails_species_constraints(mol)) def test_carbon_constraint(self): """ Test that we can constrain the max number of carbon atoms. """ - mol1 = Molecule(smiles='CC') + mol1 = Molecule(smiles="CC") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='CCC') + mol2 = Molecule(smiles="CCC") self.assertTrue(fails_species_constraints(mol2)) def test_oxygen_constraint(self): """ Test that we can constrain the max number of oxygen atoms. """ - mol1 = Molecule(smiles='C=O') + mol1 = Molecule(smiles="C=O") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='OC=O') + mol2 = Molecule(smiles="OC=O") self.assertTrue(fails_species_constraints(mol2)) def test_nitrogen_constraint(self): """ Test that we can constrain the max number of nitrogen atoms. """ - mol1 = Molecule(smiles='CN') + mol1 = Molecule(smiles="CN") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='NCN') + mol2 = Molecule(smiles="NCN") self.assertTrue(fails_species_constraints(mol2)) def test_silicon_constraint(self): """ Test that we can constrain the max number of silicon atoms. """ - mol1 = Molecule(smiles='[SiH4]') + mol1 = Molecule(smiles="[SiH4]") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='[SiH3][SiH3]') + mol2 = Molecule(smiles="[SiH3][SiH3]") self.assertTrue(fails_species_constraints(mol2)) def test_sulfur_constraint(self): """ Test that we can constrain the max number of sulfur atoms. """ - mol1 = Molecule(smiles='CS') + mol1 = Molecule(smiles="CS") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='SCS') + mol2 = Molecule(smiles="SCS") self.assertTrue(fails_species_constraints(mol2)) def test_surface_site_constraint(self): @@ -166,27 +169,34 @@ def test_surface_site_constraint(self): Test that we can constrain the max number of surface sites. """ - mol_1site = Molecule().from_adjacency_list(""" + mol_1site = Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} 3 X u0 p0 c0 {2,D} -""") - mol_2site = Molecule().from_adjacency_list(""" +""" + ) + mol_2site = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {3,D} 2 C u0 p0 c0 {1,D} {4,D} 3 X u0 p0 c0 {1,D} 4 X u0 p0 c0 {2,D} -""") +""" + ) - mol_3site_vdW = Molecule().from_adjacency_list(""" + mol_3site_vdW = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {3,D} 2 C u0 p0 c0 {1,D} {4,D} 3 X u0 p0 c0 {1,D} 4 X u0 p0 c0 {2,D} 6 X u0 p0 c0 -""") +""" + ) - mol_3site = Molecule().from_adjacency_list(""" + mol_3site = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {4,S} {2,D} {7,S} 2 C u0 p0 c0 {1,D} {3,S} {8,S} 3 C u0 p0 c0 {2,S} {5,S} {6,S} {9,S} @@ -196,12 +206,13 @@ def test_surface_site_constraint(self): 7 X u0 p0 c0 {1,S} 8 X u0 p0 c0 {2,S} 9 X u0 p0 c0 {3,S} -""") - max_carbon = self.rmg.species_constraints['maximumCarbonAtoms'] - max_heavy_atoms = self.rmg.species_constraints['maximumHeavyAtoms'] +""" + ) + max_carbon = self.rmg.species_constraints["maximumCarbonAtoms"] + max_heavy_atoms = self.rmg.species_constraints["maximumHeavyAtoms"] - self.rmg.species_constraints['maximumCarbonAtoms'] = 3 - self.rmg.species_constraints['maximumHeavyAtoms'] = 6 + self.rmg.species_constraints["maximumCarbonAtoms"] = 3 + self.rmg.species_constraints["maximumHeavyAtoms"] = 6 self.assertFalse(fails_species_constraints(mol_1site)) self.assertFalse(fails_species_constraints(mol_2site)) @@ -209,74 +220,84 @@ def test_surface_site_constraint(self): self.assertTrue(fails_species_constraints(mol_3site_vdW)) self.assertTrue(fails_species_constraints(mol_3site)) - self.rmg.species_constraints['maximumCarbonAtoms'] = max_carbon - self.rmg.species_constraints['maximumHeavyAtoms'] = max_heavy_atoms + self.rmg.species_constraints["maximumCarbonAtoms"] = max_carbon + self.rmg.species_constraints["maximumHeavyAtoms"] = max_heavy_atoms def test_surface_bond_order_constraint(self): """ Test that we can constrain the max bond order of surface sites. """ - mol_1site = Molecule().from_adjacency_list(""" + mol_1site = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,Q} 2 X u0 p0 c0 {1,Q} -""") +""" + ) self.assertTrue(fails_species_constraints(mol_1site)) def test_heavy_constraint(self): """ Test that we can constrain the max number of heavy atoms. """ - mol1 = Molecule(smiles='CCO') + mol1 = Molecule(smiles="CCO") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='CCN=O') + mol2 = Molecule(smiles="CCN=O") self.assertTrue(fails_species_constraints(mol2)) def test_radical_constraint(self): """ Test that we can constrain the max number of radical electrons. """ - mol1 = Molecule(smiles='[CH2][CH2]') + mol1 = Molecule(smiles="[CH2][CH2]") self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule(smiles='[CH2][CH][CH2]') + mol2 = Molecule(smiles="[CH2][CH][CH2]") self.assertTrue(fails_species_constraints(mol2)) def test_carbene_constraint(self): """ Test that we can constrain the max number of singlet carbenes. """ - mol1 = Molecule().from_adjacency_list(""" + mol1 = Molecule().from_adjacency_list( + """ 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} -""") +""" + ) self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 C u0 p1 c0 {1,S} {4,S} 4 H u0 p0 c0 {3,S} -""") +""" + ) self.assertTrue(fails_species_constraints(mol2)) def test_carbene_radical_constraint(self): """ Test that we can constrain the max number of radical electrons with a carbene. """ - mol1 = Molecule().from_adjacency_list(""" + mol1 = Molecule().from_adjacency_list( + """ 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} -""") +""" + ) self.assertFalse(fails_species_constraints(mol1)) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 C u1 p0 c0 {1,S} {4,S} {5,S} 4 H u0 p0 c0 {3,S} 5 H u0 p0 c0 {3,S} -""") +""" + ) self.assertTrue(fails_species_constraints(mol2)) diff --git a/test/rmgpy/data/baseTest.py b/test/rmgpy/data/baseTest.py index 37dabc17fc..34bbe0d0e9 100644 --- a/test/rmgpy/data/baseTest.py +++ b/test/rmgpy/data/baseTest.py @@ -35,6 +35,7 @@ ################################################################################ + class TestBaseDatabase(unittest.TestCase): """ Contains unit tests for the base class of rmgpy.data. @@ -58,7 +59,8 @@ def test_match_node_to_structure(self): 2 C u0 {1,D} 3 *5 Cd u0 {1,S} {4,D} 4 C u0 {3,D} - """) + """ + ) ) entry2 = Entry( @@ -68,7 +70,8 @@ def test_match_node_to_structure(self): 2 *5 C u0 {1,D} 3 Cd u0 {1,S} {4,D} 4 C u0 {3,D} - """) + """ + ) ) entry3 = Entry( @@ -78,19 +81,36 @@ def test_match_node_to_structure(self): 2 C u0 {1,D} 3 Cd u0 {1,S} {4,D} 4 C u0 {3,D} - """) + """ + ) ) # The group should match to itself - self.assertTrue(self.database.match_node_to_structure(entry1, entry1.item, atoms=entry1.item.get_all_labeled_atoms())) + self.assertTrue( + self.database.match_node_to_structure( + entry1, entry1.item, atoms=entry1.item.get_all_labeled_atoms() + ) + ) # These groups should not match each other - self.assertFalse(self.database.match_node_to_structure(entry1, entry2.item, atoms=entry2.item.get_all_labeled_atoms())) + self.assertFalse( + self.database.match_node_to_structure( + entry1, entry2.item, atoms=entry2.item.get_all_labeled_atoms() + ) + ) # entry1 contains more labels than entry3, therefore cannot be matched by entry3 - self.assertFalse(self.database.match_node_to_structure(entry3, entry1.item, atoms=entry1.item.get_all_labeled_atoms())) + self.assertFalse( + self.database.match_node_to_structure( + entry3, entry1.item, atoms=entry1.item.get_all_labeled_atoms() + ) + ) # entry3 contains fewer labels than entry1, therefore it can be matched - self.assertTrue(self.database.match_node_to_structure(entry1, entry3.item, atoms=entry3.item.get_all_labeled_atoms())) + self.assertTrue( + self.database.match_node_to_structure( + entry1, entry3.item, atoms=entry3.item.get_all_labeled_atoms() + ) + ) def test_match_node_to_node(self): """ @@ -100,21 +120,22 @@ def test_match_node_to_node(self): item=Group().from_adjacency_list( """ 1 *1 R!H u1 - """) + """ + ) ) entry2 = Entry( item=Group().from_adjacency_list( """ 1 *1 Cb u1 - """) + """ + ) ) self.assertTrue(self.database.match_node_to_node(entry1, entry1)) self.assertFalse(self.database.match_node_to_node(entry1, entry2)) class TestForbiddenStructures(unittest.TestCase): - def setUp(self): self.database = ForbiddenStructures() @@ -125,17 +146,19 @@ def test_forbidden_group(self): 2 C u0 {1,D} """ self.database.load_entry( - label='test', + label="test", group=test, ) - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,S} {4,S} 3 H u0 p0 c0 {2,S} 4 H u0 p0 c0 {2,S} -""") +""" + ) self.assertTrue(self.database.is_molecule_forbidden(molecule)) @@ -145,13 +168,15 @@ def test_forbidden_molecule(self): 1 C u4 p0 c0 """ self.database.load_entry( - label='test', + label="test", molecule=test, ) - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ 1 C u4 p0 c0 -""") +""" + ) self.assertTrue(self.database.is_molecule_forbidden(molecule)) @@ -174,11 +199,12 @@ def test_forbidden_species(self): 12 H u0 p0 c0 {6,S} """ self.database.load_entry( - label='test', + label="test", species=test, ) - molecule1 = Molecule().from_adjacency_list(""" + molecule1 = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {6,S} {7,S} 2 C u0 p0 c0 {1,D} {3,S} {8,S} 3 C u0 p0 c0 {2,S} {4,D} {9,S} @@ -191,8 +217,10 @@ def test_forbidden_species(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -""") - molecule2 = Molecule().from_adjacency_list(""" +""" + ) + molecule2 = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {6,B} {7,S} 2 C u0 p0 c0 {1,B} {3,B} {8,S} 3 C u0 p0 c0 {2,B} {4,B} {9,S} @@ -205,7 +233,8 @@ def test_forbidden_species(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -""") +""" + ) self.assertTrue(self.database.is_molecule_forbidden(molecule1)) self.assertTrue(self.database.is_molecule_forbidden(molecule2)) @@ -213,5 +242,5 @@ def test_forbidden_species(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/kinetics/familyTest.py b/test/rmgpy/data/kinetics/familyTest.py index c602c204c9..70ab8f0fac 100644 --- a/test/rmgpy/data/kinetics/familyTest.py +++ b/test/rmgpy/data/kinetics/familyTest.py @@ -47,11 +47,10 @@ from rmgpy.kinetics import Arrhenius - ################################################### -class TestFamily(unittest.TestCase): +class TestFamily(unittest.TestCase): @classmethod def setUpClass(cls): """ @@ -60,21 +59,23 @@ def setUpClass(cls): # Set up a dummy database cls.database = KineticsDatabase() cls.database.load_families( - path=os.path.join(settings['test_data.directory'], 'testing_database/kinetics/families'), + path=os.path.join( + settings["test_data.directory"], "testing_database/kinetics/families" + ), families=[ - 'intra_H_migration', - 'R_Addition_MultipleBond', - 'H_Abstraction', - 'Intra_ene_reaction', - '6_membered_central_C-C_shift', - '1,2_shiftC', - 'Intra_R_Add_Exo_scission', - 'intra_substitutionS_isomerization', - 'R_Addition_COm', - 'R_Recombination' + "intra_H_migration", + "R_Addition_MultipleBond", + "H_Abstraction", + "Intra_ene_reaction", + "6_membered_central_C-C_shift", + "1,2_shiftC", + "Intra_R_Add_Exo_scission", + "intra_substitutionS_isomerization", + "R_Addition_COm", + "R_Recombination", ], ) - cls.family = cls.database.families['intra_H_migration'] + cls.family = cls.database.families["intra_H_migration"] def test_get_backbone_roots(self): """ @@ -107,8 +108,10 @@ def test_react_benzene_bond(self): """ Test that hydrogen addition to benzene (w/ benzene bonds) returns kekulized product. """ - family = self.database.families['R_Addition_MultipleBond'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["R_Addition_MultipleBond"] + reactants = [ + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 {2,B} {6,B} {7,S} 2 *2 C u0 p0 c0 {1,B} {3,B} {8,S} 3 C u0 p0 c0 {2,B} {4,B} {9,S} @@ -121,9 +124,12 @@ def test_react_benzene_bond(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -"""), - Molecule().from_adjacency_list("1 *3 H u1 p0 c0")] - expected_product = Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list("1 *3 H u1 p0 c0"), + ] + expected_product = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {13,S} 2 C u1 p0 c0 {1,S} {3,S} {8,S} @@ -138,7 +144,8 @@ def test_react_benzene_bond(self): 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} 13 H u0 p0 c0 {1,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -148,8 +155,10 @@ def test_react_benzene_bond2(self): """ Test that hydrogen addition to phenanthrene (w/ benzene bonds) returns kekulized product. """ - family = self.database.families['R_Addition_MultipleBond'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["R_Addition_MultipleBond"] + reactants = [ + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 {2,B} {3,B} {6,B} 2 *2 C u0 p0 c0 {1,B} {4,B} {9,B} 3 C u0 p0 c0 {1,B} {5,B} {7,B} @@ -174,9 +183,12 @@ def test_react_benzene_bond2(self): 22 H u0 p0 c0 {13,S} 23 H u0 p0 c0 {10,S} 24 H u0 p0 c0 {14,S} -"""), - Molecule().from_adjacency_list("1 *3 H u1 p0 c0")] - expected_product = Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list("1 *3 H u1 p0 c0"), + ] + expected_product = Molecule().from_adjacency_list( + """ multiplicity 2 1 *1 C u0 p0 c0 {2,S} {3,S} {5,S} {15,S} 2 *2 C u1 p0 c0 {1,S} {4,S} {8,S} @@ -203,7 +215,8 @@ def test_react_benzene_bond2(self): 23 H u0 p0 c0 {13,S} 24 H u0 p0 c0 {10,S} 25 H u0 p0 c0 {14,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -214,8 +227,10 @@ def test_intra__h_migration(self): Test that the intra_H_migration family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['intra_H_migration'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["intra_H_migration"] + reactants = [ + Molecule().from_adjacency_list( + """ multiplicity 2 1 *2 C u0 p0 c0 {3,S} {11,S} {12,S} {13,S} 2 *4 C u0 p0 c0 {4,S} {5,S} {6,D} @@ -238,8 +253,11 @@ def test_intra__h_migration(self): 19 H u0 p0 c0 {6,S} 20 H u0 p0 c0 {9,S} 21 H u0 p0 c0 {7,S} -""")] - expected_product = Molecule().from_adjacency_list(""" +""" + ) + ] + expected_product = Molecule().from_adjacency_list( + """ multiplicity 2 1 *1 C u1 p0 c0 {3,S} {12,S} {13,S} 2 *5 C u0 p0 c0 {4,S} {5,S} {6,D} @@ -262,7 +280,8 @@ def test_intra__h_migration(self): 19 H u0 p0 c0 {6,S} 20 H u0 p0 c0 {9,S} 21 H u0 p0 c0 {7,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -278,8 +297,10 @@ def test_h_abstraction(self): Test that the H_Abstraction family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['H_Abstraction'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["H_Abstraction"] + reactants = [ + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,D} {7,S} 3 C u0 p0 c0 {2,D} {8,S} {9,S} @@ -289,13 +310,19 @@ def test_h_abstraction(self): 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {3,S} - """), - Molecule().from_adjacency_list("1 *3 H u1 p0 c0")] - expected_products = [Molecule().from_adjacency_list(""" + """ + ), + Molecule().from_adjacency_list("1 *3 H u1 p0 c0"), + ] + expected_products = [ + Molecule().from_adjacency_list( + """ 1 *1 H u0 p0 c0 {2,S} 2 *2 H u0 p0 c0 {1,S} - """), - Molecule().from_adjacency_list(""" + """ + ), + Molecule().from_adjacency_list( + """ 1 *3 C u1 p0 c0 {2,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,D} {7,S} 3 C u0 p0 c0 {2,D} {8,S} {9,S} @@ -304,7 +331,9 @@ def test_h_abstraction(self): 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {3,S} - """)] + """ + ), + ] products = family.apply_recipe(reactants) self.assertEqual(len(products), 2) @@ -326,8 +355,10 @@ def test_intra_ene_reaction(self): Test that the Intra_ene_reaction family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['Intra_ene_reaction'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["Intra_ene_reaction"] + reactants = [ + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 {2,S} {3,S} {4,S} {10,S} 2 *5 C u0 p0 c0 {1,S} {5,D} {6,S} 3 *2 C u0 p0 c0 {1,S} {7,D} {11,S} @@ -345,8 +376,11 @@ def test_intra_ene_reaction(self): 15 H u0 p0 c0 {6,S} 16 H u0 p0 c0 {9,S} 17 H u0 p0 c0 {8,S} -""")] - expected_product = Molecule().from_adjacency_list(""" +""" + ) + ] + expected_product = Molecule().from_adjacency_list( + """ 1 *2 C u0 p0 c0 {2,D} {3,S} {4,S} 2 *3 C u0 p0 c0 {1,D} {5,S} {6,S} 3 *1 C u0 p0 c0 {1,S} {7,S} {11,S} {10,S} @@ -364,7 +398,8 @@ def test_intra_ene_reaction(self): 15 H u0 p0 c0 {6,S} 16 H u0 p0 c0 {9,S} 17 H u0 p0 c0 {8,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -380,8 +415,10 @@ def test_6_membered_central_cc_shift(self): Test that the 6_membered_central_C-C_shift family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['6_membered_central_C-C_shift'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["6_membered_central_C-C_shift"] + reactants = [ + Molecule().from_adjacency_list( + """ 1 *3 C u0 p0 c0 {2,S} {3,S} {7,S} {8,S} 2 *4 C u0 p0 c0 {1,S} {4,S} {9,S} {10,S} 3 *2 C u0 p0 c0 {1,S} {5,T} @@ -394,8 +431,11 @@ def test_6_membered_central_cc_shift(self): 10 H u0 p0 c0 {2,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -""")] - expected_product = Molecule().from_adjacency_list(""" +""" + ) + ] + expected_product = Molecule().from_adjacency_list( + """ 1 *3 C u0 p0 c0 {2,S} {5,D} {7,S} 2 *4 C u0 p0 c0 {1,S} {6,D} {8,S} 3 *1 C u0 p0 c0 {5,D} {9,S} {10,S} @@ -408,7 +448,8 @@ def test_6_membered_central_cc_shift(self): 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {4,S} 12 H u0 p0 c0 {4,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -424,8 +465,10 @@ def test_12_shift_c(self): Test that the 1,2_shiftC family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['1,2_shiftC'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["1,2_shiftC"] + reactants = [ + Molecule().from_adjacency_list( + """ multiplicity 2 1 *2 C u0 p0 c0 {2,S} {3,S} {8,S} {9,S} 2 *1 C u0 p0 c0 {1,S} {10,S} {11,S} {12,S} @@ -443,8 +486,11 @@ def test_12_shift_c(self): 14 H u0 p0 c0 {5,S} 15 H u0 p0 c0 {6,S} 16 H u0 p0 c0 {7,S} -""")] - expected_product = Molecule().from_adjacency_list(""" +""" + ) + ] + expected_product = Molecule().from_adjacency_list( + """ multiplicity 2 1 *2 C u0 p0 c0 {2,S} {3,S} {4,S} {7,S} 2 *1 C u0 p0 c0 {1,S} {8,S} {9,S} {10,S} @@ -462,7 +508,8 @@ def test_12_shift_c(self): 14 H u0 p0 c0 {6,S} 15 H u0 p0 c0 {7,S} 16 H u0 p0 c0 {7,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -478,8 +525,10 @@ def test_intra_r_add_exo_scission(self): Test that the Intra_R_Add_Exo_scission family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['Intra_R_Add_Exo_scission'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["Intra_R_Add_Exo_scission"] + reactants = [ + Molecule().from_adjacency_list( + """ multiplicity 2 1 *3 C u0 p0 c0 {2,S} {8,S} {11,S} {12,S} 2 *2 C u0 p0 c0 {1,S} {3,B} {4,B} @@ -500,8 +549,11 @@ def test_intra_r_add_exo_scission(self): 17 H u0 p0 c0 {4,S} 18 H u0 p0 c0 {8,S} 19 H u0 p0 c0 {10,S} -""")] - expected_product = Molecule().from_adjacency_list(""" +""" + ) + ] + expected_product = Molecule().from_adjacency_list( + """ multiplicity 2 1 *3 C u0 p0 c0 {2,S} {8,S} {9,S} {11,S} 2 *2 C u0 p0 c0 {1,S} {3,B} {4,B} @@ -522,7 +574,8 @@ def test_intra_r_add_exo_scission(self): 17 H u0 p0 c0 {8,S} 18 H u0 p0 c0 {8,S} 19 H u0 p0 c0 {10,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -538,8 +591,10 @@ def test_intra_substitution_s_isomerization(self): Test that the intra_substitutionS_isomerization family returns a properly re-labeled product structure. This family is its own reverse. """ - family = self.database.families['intra_substitutionS_isomerization'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["intra_substitutionS_isomerization"] + reactants = [ + Molecule().from_adjacency_list( + """ multiplicity 2 1 *2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {3,S} {7,S} {8,S} {9,S} @@ -552,8 +607,11 @@ def test_intra_substitution_s_isomerization(self): 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {4,S} -""")] - expected_product = Molecule().from_adjacency_list(""" +""" + ) + ] + expected_product = Molecule().from_adjacency_list( + """ multiplicity 2 1 *2 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} @@ -566,7 +624,8 @@ def test_intra_substitution_s_isomerization(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {4,S} -""") +""" + ) products = family.apply_recipe(reactants) self.assertEqual(len(products), 1) @@ -582,12 +641,16 @@ def test_r_addition_com(self): Test that the R_Addition_COm family can successfully match the reaction and returns properly product structures. This family's product template is generated by charged groups. """ - family = self.database.families['R_Addition_COm'] - reactants = [Molecule().from_adjacency_list(""" + family = self.database.families["R_Addition_COm"] + reactants = [ + Molecule().from_adjacency_list( + """ 1 *1 C u0 p1 c-1 {2,T} 2 *3 O u0 p1 c+1 {1,T} -"""), - Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,D} {7,S} {8,S} 2 C u0 p0 c0 {1,D} {3,S} {9,S} @@ -600,10 +663,13 @@ def test_r_addition_com(self): 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -"""), - ] +""" + ), + ] - expected_products = [Molecule().from_adjacency_list(""" + expected_products = [ + Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,D} {7,S} {8,S} 2 C u0 p0 c0 {1,D} {3,S} {9,S} @@ -618,8 +684,9 @@ def test_r_addition_com(self): 11 H u0 p0 c0 {3,S} 12 H u0 p0 c0 {4,S} 13 H u0 p0 c0 {4,S} -"""), - ] +""" + ), + ] products = family.apply_recipe(reactants) @@ -633,41 +700,64 @@ def test_save_family(self): comparing it to the original source. """ - base_path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families') + base_path = os.path.join( + settings["test_data.directory"], "testing_database", "kinetics", "families" + ) try: - os.makedirs(os.path.join(base_path, 'intra_H_copy')) - self.family.save(os.path.join(base_path, 'intra_H_copy')) - self.assertTrue(filecmp.cmp(os.path.join(base_path, 'intra_H_migration', 'groups.py'), - os.path.join(base_path, 'intra_H_copy', 'groups.py'))) - self.assertTrue(filecmp.cmp(os.path.join(base_path, 'intra_H_migration', 'rules.py'), - os.path.join(base_path, 'intra_H_copy', 'rules.py'))) - self.assertTrue(filecmp.cmp(os.path.join(base_path, 'intra_H_migration', 'training', 'reactions.py'), - os.path.join(base_path, 'intra_H_copy', 'training', 'reactions.py'))) - self.assertTrue(filecmp.cmp(os.path.join(base_path, 'intra_H_migration', 'training', 'dictionary.txt'), - os.path.join(base_path, 'intra_H_copy', 'training', 'dictionary.txt'))) + os.makedirs(os.path.join(base_path, "intra_H_copy")) + self.family.save(os.path.join(base_path, "intra_H_copy")) + self.assertTrue( + filecmp.cmp( + os.path.join(base_path, "intra_H_migration", "groups.py"), + os.path.join(base_path, "intra_H_copy", "groups.py"), + ) + ) + self.assertTrue( + filecmp.cmp( + os.path.join(base_path, "intra_H_migration", "rules.py"), + os.path.join(base_path, "intra_H_copy", "rules.py"), + ) + ) + self.assertTrue( + filecmp.cmp( + os.path.join( + base_path, "intra_H_migration", "training", "reactions.py" + ), + os.path.join(base_path, "intra_H_copy", "training", "reactions.py"), + ) + ) + self.assertTrue( + filecmp.cmp( + os.path.join( + base_path, "intra_H_migration", "training", "dictionary.txt" + ), + os.path.join( + base_path, "intra_H_copy", "training", "dictionary.txt" + ), + ) + ) finally: - shutil.rmtree(os.path.join(base_path, 'intra_H_copy')) + shutil.rmtree(os.path.join(base_path, "intra_H_copy")) def test_reactant_num_id(self): """ Tests that templates aren't applied to the incorrect number of reactants """ - family = self.database.families['R_Recombination'] + family = self.database.families["R_Recombination"] spc = Molecule().from_smiles("[CH2]CC[CH2]") out = family._generate_reactions(reactants=[spc], forward=True) self.assertEqual(out, []) class TestTreeGeneration(unittest.TestCase): - @classmethod def setUpClass(cls): """A function run ONCE before all unit tests in this class.""" # Set up a dummy database cls.database = RMGDatabase() cls.database.load( - path=os.path.join(settings['test_data.directory'], 'testing_database'), + path=os.path.join(settings["test_data.directory"], "testing_database"), thermo_libraries=[], reaction_libraries=[], kinetics_families=[], @@ -679,24 +769,36 @@ def setUpClass(cls): cls.database.load_forbidden_structures() cls.thermoDatabase = ThermoDatabase() # the real full Thermo Database - cls.thermoDatabase.load(path=os.path.join(settings['database.directory'], 'thermo'), - libraries=['primaryThermoLibrary']) + cls.thermoDatabase.load( + path=os.path.join(settings["database.directory"], "thermo"), + libraries=["primaryThermoLibrary"], + ) cls.kineticsDatabase = KineticsDatabase() cls.kineticsDatabase.load_families( - path=os.path.join(settings['test_data.directory'], 'testing_database/kinetics/families'), + path=os.path.join( + settings["test_data.directory"], "testing_database/kinetics/families" + ), families=[ - 'Singlet_Carbene_Intra_Disproportionation', + "Singlet_Carbene_Intra_Disproportionation", ], ) - cls.family = cls.kineticsDatabase.families['Singlet_Carbene_Intra_Disproportionation'] - cls.treerxns = cls.family.get_training_set(thermo_database=cls.thermoDatabase, remove_degeneracy=True, - estimate_thermo=True, fix_labels=True, get_reverse=True) + cls.family = cls.kineticsDatabase.families[ + "Singlet_Carbene_Intra_Disproportionation" + ] + cls.treerxns = cls.family.get_training_set( + thermo_database=cls.thermoDatabase, + remove_degeneracy=True, + estimate_thermo=True, + fix_labels=True, + get_reverse=True, + ) @classmethod def tearDownClass(cls): """A function run ONCE after all unit tests in this class.""" import rmgpy.data.rmg + rmgpy.data.rmg.database = None def test_a_clear_tree(self): @@ -705,10 +807,16 @@ def test_a_clear_tree(self): """ self.family.clean_tree() ents = [ent for ent in self.family.groups.entries.values() if ent.index != -1] - self.assertEqual(len(ents), 1, - 'more than one relevant group left in groups after preparing tree for generation') - self.assertEqual(len(self.family.rules.entries), 1, - 'more than one group in rules.entries after preparing tree for generation') + self.assertEqual( + len(ents), + 1, + "more than one relevant group left in groups after preparing tree for generation", + ) + self.assertEqual( + len(self.family.rules.entries), + 1, + "more than one group in rules.entries after preparing tree for generation", + ) root = self.family.groups.entries[list(self.family.rules.entries.keys())[0]] self.assertEqual([root], self.family.forward_template.reactants) self.assertEqual([root], self.family.groups.top) @@ -721,13 +829,15 @@ def test_b_generate_tree(self): def objective(k1s, k2s): return len(k1s) * np.std(k1s) + len(k2s) * np.std(k2s) - self.family.generate_tree(thermo_database=self.thermoDatabase, rxns=self.treerxns, - obj=objective) # test input objective function + self.family.generate_tree( + thermo_database=self.thermoDatabase, rxns=self.treerxns, obj=objective + ) # test input objective function self.family.clean_tree() # reclear - self.family.generate_tree(thermo_database=self.thermoDatabase, - rxns=self.treerxns) # test that default objective works + self.family.generate_tree( + thermo_database=self.thermoDatabase, rxns=self.treerxns + ) # test that default objective works def test_c_parent_child(self): """ @@ -739,28 +849,36 @@ def test_c_parent_child(self): if entry.parent: self.assertIn(entry.parent, list(self.family.groups.entries.values())) - self.assertIsNone(self.family.groups.entries['Root'].parent) + self.assertIsNone(self.family.groups.entries["Root"].parent) def test_f_rules(self): """ test that there are six rules and each is under a different group """ - template_rxn_map = self.family.get_reaction_matches(thermo_database=self.thermoDatabase, remove_degeneracy=True) + template_rxn_map = self.family.get_reaction_matches( + thermo_database=self.thermoDatabase, remove_degeneracy=True + ) self.family.make_bm_rules_from_template_rxn_map(template_rxn_map) c = 0 for rs in self.family.rules.entries.values(): - self.assertLess(len(rs), 2, 'more than one training reaction at a node') + self.assertLess(len(rs), 2, "more than one training reaction at a node") if len(rs) == 1: c += 1 - self.assertEqual(c, 6, 'incorrect number of kinetics information, expected 6 found {0}'.format(c)) + self.assertEqual( + c, + 6, + "incorrect number of kinetics information, expected 6 found {0}".format(c), + ) def test_d_regularization_dims(self): """ test that appropriate regularization dimensions have been identified """ - template_rxn_map = self.family.get_reaction_matches(thermo_database=self.database.thermo, estimate_thermo=False) + template_rxn_map = self.family.get_reaction_matches( + thermo_database=self.database.thermo, estimate_thermo=False + ) for entry in self.family.groups.entries.values(): if entry.children == []: @@ -770,71 +888,88 @@ def test_d_regularization_dims(self): pgrp = entry.item exts = pgrp.get_extensions() for grp, grpc, name, typ, indc in exts: - if typ == 'intNewBondExt' or typ == 'extNewBondExt': + if typ == "intNewBondExt" or typ == "extNewBondExt": continue else: val, boo = self.family.eval_ext(entry, grp, name, template_rxn_map) if val != np.inf: continue atms = grp.atoms - if typ == 'bondExt': + if typ == "bondExt": bd = grp.get_bond(atms[indc[0]], atms[indc[1]]) bds = bd.reg_dim[1] if boo and bds != [] and not (set(bd.order) <= set(bds)): - logging.error('bond regularization dimension missed') + logging.error("bond regularization dimension missed") vio_obj.add((tuple(indc), tuple(bds), tuple(bd.order), typ)) - elif typ == 'atomExt': + elif typ == "atomExt": atypes = atms[indc[0]].reg_dim_atm[1] atype = atms[indc[0]].atomtype if boo and atypes != [] and not (set(atype) <= set(atypes)): - logging.error('atomtype regularization dimension missed') + logging.error("atomtype regularization dimension missed") vio_obj.add((tuple(indc), tuple(atypes), tuple(atype), typ)) - elif typ == 'elExt': + elif typ == "elExt": us = atms[indc[0]].reg_dim_u[1] u = atms[indc[0]].radical_electrons if boo and us != [] and not (set(u) <= set(us)): - logging.error('unpaired electron regularization dimension missed') + logging.error( + "unpaired electron regularization dimension missed" + ) vio_obj.add((tuple(indc), tuple(us), tuple(u), typ)) - elif typ == 'ringExt': + elif typ == "ringExt": rs = atms[indc[0]].reg_dim_r[1] - if 'inRing' in atms[indc[0]].props.keys(): - r = atms[indc[0]].props['inRing'] + if "inRing" in atms[indc[0]].props.keys(): + r = atms[indc[0]].props["inRing"] else: r = [True, False] if boo and rs != [] and not (set(r) <= set(rs)): - logging.error('in ring regularization dimension missed') + logging.error("in ring regularization dimension missed") vio_obj.add((tuple(indc), tuple(rs), tuple(r), typ)) else: - raise ValueError('extension type {0} not identified within test'.format(typ)) + raise ValueError( + "extension type {0} not identified within test".format(typ) + ) - self.assertTrue(len(vio_obj) <= 1, - 'there were {0} regularization violations at, {1}'.format(len(vio_obj), vio_obj)) + self.assertTrue( + len(vio_obj) <= 1, + "there were {0} regularization violations at, {1}".format( + len(vio_obj), vio_obj + ), + ) def test_e_regularization_structure(self): """ test that the tree is structured properly after regularization """ self.family.clean_tree() - self.family.generate_tree(thermo_database=self.thermoDatabase, rxns=self.treerxns) + self.family.generate_tree( + thermo_database=self.thermoDatabase, rxns=self.treerxns + ) self.family.check_tree() self.family.regularize(thermo_database=self.thermoDatabase, rxns=self.treerxns) self.family.check_tree() class TestGenerateReactions(unittest.TestCase): - @classmethod def setUpClass(cls): """A function run ONCE before all unit tests in this class.""" # Set up a dummy database cls.database = RMGDatabase() cls.database.load( - path=os.path.join(settings['test_data.directory'], 'testing_database'), + path=os.path.join(settings["test_data.directory"], "testing_database"), thermo_libraries=[], reaction_libraries=[], - kinetics_families=['H_Abstraction', 'R_Addition_MultipleBond', 'Singlet_Val6_to_triplet', 'R_Recombination', - 'Baeyer-Villiger_step1_cat', 'Surface_Adsorption_Dissociative', - 'Surface_Abstraction_vdW', 'Surface_Dissociation_vdW', 'intra_H_migration'], + kinetics_families=[ + "H_Abstraction", + "R_Addition_MultipleBond", + "Singlet_Val6_to_triplet", + "R_Recombination", + "Baeyer-Villiger_step1_cat", + "Surface_Adsorption_Dissociative", + "Surface_Abstraction_vdW", + "Surface_Dissociation_vdW", + "intra_H_migration", + ], depository=False, solvation=False, surface=False, @@ -846,69 +981,90 @@ def setUpClass(cls): def tearDownClass(cls): """A function run ONCE after all unit tests in this class.""" import rmgpy.data.rmg + rmgpy.data.rmg.database = None - @mock.patch('rmgpy.data.kinetics.family.logging') + @mock.patch("rmgpy.data.kinetics.family.logging") def test_debug_forbidden_reverse_rxn(self, mock_logging): """Test that we can automatically debug when a reverse reaction is forbidden.""" - reactants = [Species().from_smiles('CC'), Species().from_smiles('[CH2]C=C[CH2]')] - products = [Species().from_smiles('C[CH2]'), Species().from_smiles('[CH2]C=CC')] + reactants = [ + Species().from_smiles("CC"), + Species().from_smiles("[CH2]C=C[CH2]"), + ] + products = [Species().from_smiles("C[CH2]"), Species().from_smiles("[CH2]C=CC")] reaction = TemplateReaction(reactants=reactants, products=products) - successful = self.database.kinetics.families['H_Abstraction'].add_reverse_attribute(reaction) + successful = self.database.kinetics.families[ + "H_Abstraction" + ].add_reverse_attribute(reaction) self.assertFalse(successful) - mock_logging.error.assert_has_calls([ - mock.call('Expecting one matching reverse reaction, not zero in reaction family H_Abstraction ' - 'for forward reaction CC + [CH2]C=C[CH2] <=> C[CH2] + [CH2]C=CC.\n'), - ]) + mock_logging.error.assert_has_calls( + [ + mock.call( + "Expecting one matching reverse reaction, not zero in reaction family H_Abstraction " + "for forward reaction CC + [CH2]C=C[CH2] <=> C[CH2] + [CH2]C=CC.\n" + ), + ] + ) - mock_logging.error.assert_has_calls([ - mock.call('Error was fixed, the product is a forbidden structure when ' - 'used as a reactant in the reverse direction.'), - ]) + mock_logging.error.assert_has_calls( + [ + mock.call( + "Error was fixed, the product is a forbidden structure when " + "used as a reactant in the reverse direction." + ), + ] + ) def test_molecule_forbidden(self): + forbidden_mol = Molecule(smiles="*CC.[*]") # vdw bidentate - forbidden_mol = Molecule(smiles='*CC.[*]') # vdw bidentate - - mol1 = Molecule(smiles='*CC*') # bidentate - mol2 = Molecule(smiles='C.*') # vdw - mol3 = Molecule(smiles='CC*') # chemisorbed + mol1 = Molecule(smiles="*CC*") # bidentate + mol2 = Molecule(smiles="C.*") # vdw + mol3 = Molecule(smiles="CC*") # chemisorbed - fam = self.database.kinetics.families['Surface_Dissociation_vdW'] + fam = self.database.kinetics.families["Surface_Dissociation_vdW"] self.assertTrue(fam.is_molecule_forbidden(forbidden_mol)) for allowed_mol in (mol1, mol2, mol3): self.assertFalse(fam.is_molecule_forbidden(allowed_mol)) def test_add_atom_labels_for_reaction(self): """Test that we can add atom labels to an existing reaction""" - reactants = [Species().from_smiles('C=C'), Species().from_smiles('[OH]')] - products = [Species().from_smiles('[CH2]CO')] + reactants = [Species().from_smiles("C=C"), Species().from_smiles("[OH]")] + products = [Species().from_smiles("[CH2]CO")] reaction = TemplateReaction(reactants=reactants, products=products) - self.database.kinetics.families['R_Addition_MultipleBond'].add_atom_labels_for_reaction(reaction) + self.database.kinetics.families[ + "R_Addition_MultipleBond" + ].add_atom_labels_for_reaction(reaction) expected_reactants = [ - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 *2 C u0 p0 c0 {1,D} {5,S} {6,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} -"""), - Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list( + """ multiplicity 2 1 *3 O u1 p2 c0 {2,S} 2 H u0 p0 c0 {1,S} -""")] +""" + ), + ] expected_products = [ - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ multiplicity 2 1 *1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 *2 C u1 p0 c0 {1,S} {6,S} {7,S} @@ -918,33 +1074,42 @@ def test_add_atom_labels_for_reaction(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {3,S} -""")] +""" + ) + ] for i, reactant in enumerate(reaction.reactants): mapping = {} for label, atom in expected_reactants[i].get_all_labeled_atoms().items(): mapping[atom] = reactant.molecule[0].get_labeled_atoms(label)[0] - self.assertTrue(expected_reactants[i].is_isomorphic(reactant.molecule[0], mapping)) + self.assertTrue( + expected_reactants[i].is_isomorphic(reactant.molecule[0], mapping) + ) for i, product in enumerate(reaction.products): mapping = {} for label, atom in expected_products[i].get_all_labeled_atoms().items(): mapping[atom] = product.molecule[0].get_labeled_atoms(label)[0] - self.assertTrue(expected_products[i].is_isomorphic(product.molecule[0], mapping)) + self.assertTrue( + expected_products[i].is_isomorphic(product.molecule[0], mapping) + ) def test_add_atom_labels_for_reaction_r_recombination(self): """Test that we can add atom labels to an existing R_Recombination reaction""" - reactants = [Species().from_smiles('C[CH2]'), Species().from_smiles('[CH3]')] - products = [Species().from_smiles('CCC')] + reactants = [Species().from_smiles("C[CH2]"), Species().from_smiles("[CH3]")] + products = [Species().from_smiles("CCC")] reaction = TemplateReaction(reactants=reactants, products=products) - self.database.kinetics.families['R_Recombination'].add_atom_labels_for_reaction(reaction) + self.database.kinetics.families["R_Recombination"].add_atom_labels_for_reaction( + reaction + ) expected_reactants = [ - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 * C u1 p0 c0 {1,S} {6,S} {7,S} @@ -953,17 +1118,22 @@ def test_add_atom_labels_for_reaction_r_recombination(self): 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} -"""), - Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list( + """ multiplicity 2 1 * C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -""")] +""" + ), + ] expected_products = [ - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ 1 * C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 * C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S} @@ -975,26 +1145,30 @@ def test_add_atom_labels_for_reaction_r_recombination(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""")] +""" + ) + ] for i, reactant in enumerate(reaction.reactants): mapping = {} for label, atom in expected_reactants[i].get_all_labeled_atoms().items(): mapping[atom] = reactant.molecule[0].get_labeled_atoms(label)[0] - self.assertTrue(expected_reactants[i].is_isomorphic(reactant.molecule[0], mapping)) + self.assertTrue( + expected_reactants[i].is_isomorphic(reactant.molecule[0], mapping) + ) for i, product in enumerate(reaction.products): # There are two identical labels in the product, so we need to check both mappings # Only one of the mappings will result in isomorphic structures though - atoms_a = expected_products[i].get_labeled_atoms('*') - atoms_b = product.molecule[0].get_labeled_atoms('*') + atoms_a = expected_products[i].get_labeled_atoms("*") + atoms_b = product.molecule[0].get_labeled_atoms("*") mapping1 = {atoms_a[0]: atoms_b[0], atoms_a[1]: atoms_b[1]} mapping2 = {atoms_a[0]: atoms_b[1], atoms_a[1]: atoms_b[0]} results = [ expected_products[i].is_isomorphic(product.molecule[0], mapping1), - expected_products[i].is_isomorphic(product.molecule[0], mapping2) + expected_products[i].is_isomorphic(product.molecule[0], mapping2), ] self.assertTrue(any(results)) @@ -1003,33 +1177,46 @@ def test_add_atom_labels_for_reaction_r_recombination(self): def test_irreversible_reaction(self): """Test that the Singlet_Val6_to_triplet and 1,2-Birad_to_alkene families generate irreversible reactions.""" - reactant = [Molecule(smiles='O=O')] - reaction_list = self.database.kinetics.families['Singlet_Val6_to_triplet'].generate_reactions(reactant) + reactant = [Molecule(smiles="O=O")] + reaction_list = self.database.kinetics.families[ + "Singlet_Val6_to_triplet" + ].generate_reactions(reactant) self.assertFalse(reaction_list[0].reversible) def test_net_charge_of_products(self): """Test that _generate_product_structures() does not generate charged products""" - reactant = [Molecule(smiles='[NH-][NH2+]')] - reaction_list = self.database.kinetics.families['R_Recombination'].generate_reactions(reactant) + reactant = [Molecule(smiles="[NH-][NH2+]")] + reaction_list = self.database.kinetics.families[ + "R_Recombination" + ].generate_reactions(reactant) for rxn in reaction_list: for product in rxn.products: self.assertEqual(product.get_net_charge(), 0) - reactant = [Molecule(smiles='[O-][N+]#N')] - reaction_list = self.database.kinetics.families['R_Recombination'].generate_reactions(reactant) + reactant = [Molecule(smiles="[O-][N+]#N")] + reaction_list = self.database.kinetics.families[ + "R_Recombination" + ].generate_reactions(reactant) self.assertEqual(len(reaction_list), 0) def test_reactant_num_mismatch(self): """Test that we get no reactions for reactant/template size mismatch - This happens often because we test every combo of molecules against all families.""" - reactants = [Molecule(smiles='C'), Molecule(smiles='[OH]')] - reaction_list = self.database.kinetics.families['Singlet_Val6_to_triplet'].generate_reactions(reactants) + This happens often because we test every combo of molecules against all families. + """ + reactants = [Molecule(smiles="C"), Molecule(smiles="[OH]")] + reaction_list = self.database.kinetics.families[ + "Singlet_Val6_to_triplet" + ].generate_reactions(reactants) self.assertEqual(len(reaction_list), 0) - reaction_list = self.database.kinetics.families['Baeyer-Villiger_step1_cat'].generate_reactions(reactants) + reaction_list = self.database.kinetics.families[ + "Baeyer-Villiger_step1_cat" + ].generate_reactions(reactants) self.assertEqual(len(reaction_list), 0) - reaction_list = self.database.kinetics.families['Surface_Adsorption_Dissociative'].generate_reactions(reactants) + reaction_list = self.database.kinetics.families[ + "Surface_Adsorption_Dissociative" + ].generate_reactions(reactants) self.assertEqual(len(reaction_list), 0) def test_match_reactant_to_template_surface_site(self): @@ -1037,43 +1224,56 @@ def test_match_reactant_to_template_surface_site(self): Test that an empty surface site template group matches an empty surface site Molecule and does not match a vdW adsorbate """ - family = self.database.kinetics.families['Surface_Adsorption_Dissociative'] - empty_surface_site_template_group = [r.item for r in family.forward_template.reactants if r.item.is_surface_site()][0] - - empty_surface_site_mol = Molecule().from_adjacency_list('1 X u0') - vdW_adsorbate = Molecule().from_adjacency_list(""" + family = self.database.kinetics.families["Surface_Adsorption_Dissociative"] + empty_surface_site_template_group = [ + r.item + for r in family.forward_template.reactants + if r.item.is_surface_site() + ][0] + + empty_surface_site_mol = Molecule().from_adjacency_list("1 X u0") + vdW_adsorbate = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} 6 X u0 p0 c0 -""") - empty_surface_site_matches = family._match_reactant_to_template(empty_surface_site_mol, empty_surface_site_template_group) - vdW_matches = family._match_reactant_to_template(vdW_adsorbate, empty_surface_site_template_group) +""" + ) + empty_surface_site_matches = family._match_reactant_to_template( + empty_surface_site_mol, empty_surface_site_template_group + ) + vdW_matches = family._match_reactant_to_template( + vdW_adsorbate, empty_surface_site_template_group + ) self.assertEqual(len(empty_surface_site_matches), 1) self.assertEqual(len(vdW_matches), 0) def test_reactant_num_mismatch_2(self): """Test that we get no reactions for reactant/template size mismatch - This happens often because we test every combo of molecules against all families.""" + This happens often because we test every combo of molecules against all families. + """ reactants = [ - Molecule().from_smiles('CC'), - Molecule().from_adjacency_list('1 X u0'), - Molecule().from_adjacency_list('1 X u0'), + Molecule().from_smiles("CC"), + Molecule().from_adjacency_list("1 X u0"), + Molecule().from_adjacency_list("1 X u0"), ] # reaction_list = self.database.kinetics.families['Surface_Adsorption_Dissociative'].generate_reactions(reactants) # self.assertEqual(len(reaction_list), 14) - reaction_list = self.database.kinetics.families['Surface_Dissociation_vdW'].generate_reactions(reactants) + reaction_list = self.database.kinetics.families[ + "Surface_Dissociation_vdW" + ].generate_reactions(reactants) self.assertEqual(len(reaction_list), 0) def test_apply_recipe_multiplicity_check(self): """ Test that the multiplicity check is working correctly in the apply_recipe function """ - family = self.database.kinetics.families['Surface_Abstraction_vdW'] - reacts = [Molecule(smiles='*[CH2]'), Molecule(smiles='*[CH2]')] + family = self.database.kinetics.families["Surface_Abstraction_vdW"] + reacts = [Molecule(smiles="*[CH2]"), Molecule(smiles="*[CH2]")] reaction_list = family.generate_reactions(reacts) self.assertEqual(len(reaction_list), 0) @@ -1081,39 +1281,55 @@ def test_retaining_atom_labels_in_template_reaction(self): """ Test that atom labels are not deleted from a TemplateReaction if so requested. """ - family = self.database.kinetics.families['intra_H_migration'] - reacts = [Molecule(smiles='C[CH]C')] + family = self.database.kinetics.families["intra_H_migration"] + reacts = [Molecule(smiles="C[CH]C")] reaction_list_1 = family.generate_reactions(reacts) - self.assertFalse(hasattr(reaction_list_1[0], 'labeled_atoms')) - reaction_list_2 = family.generate_reactions(reacts, delete_labels=False, relabel_atoms=False) - self.assertTrue(hasattr(reaction_list_2[0], 'labeled_atoms')) - self.assertEqual([(label, str(atom)) for label, atom in - reaction_list_2[0].labeled_atoms['reactants'].items()], - [('*2', 'C'), ('*1', 'C.'), ('*3', 'H')]) - self.assertEqual([(label, str(atom)) for label, atom in - reaction_list_2[0].labeled_atoms['products'].items()], - [('*1', 'C'), ('*2', 'C.'), ('*3', 'H')]) - + self.assertFalse(hasattr(reaction_list_1[0], "labeled_atoms")) + reaction_list_2 = family.generate_reactions( + reacts, delete_labels=False, relabel_atoms=False + ) + self.assertTrue(hasattr(reaction_list_2[0], "labeled_atoms")) + self.assertEqual( + [ + (label, str(atom)) + for label, atom in reaction_list_2[0].labeled_atoms["reactants"].items() + ], + [("*2", "C"), ("*1", "C."), ("*3", "H")], + ) + self.assertEqual( + [ + (label, str(atom)) + for label, atom in reaction_list_2[0].labeled_atoms["products"].items() + ], + [("*1", "C"), ("*2", "C."), ("*3", "H")], + ) + def test_average_kinetics(self): """ Test that the average kinetics are calculated correctly """ - k1 = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'kJ/mol'), T0=(1, 'K')) - k2 = Arrhenius(A=(4e+13, 'cm^3/(mol*s)'), n=1, Ea=(10, 'kJ/mol'), T0=(1, 'K')) + k1 = Arrhenius(A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(0, "kJ/mol"), T0=(1, "K")) + k2 = Arrhenius(A=(4e13, "cm^3/(mol*s)"), n=1, Ea=(10, "kJ/mol"), T0=(1, "K")) kav = rmgpy.data.kinetics.family.average_kinetics([k1, k2]) - self.assertAlmostEqual(kav.A.value_si, 2.0e7, 2) # m3/mol/s + self.assertAlmostEqual(kav.A.value_si, 2.0e7, 2) # m3/mol/s self.assertAlmostEqual(kav.n.value_si, 0.5, 6) self.assertAlmostEqual(kav.Ea.value_si, 5.0e3, 2) self.assertAlmostEqual(kav.T0.value_si, 1.0, 6) - self.assertEqual(kav.A.units, 'm^3/(mol*s)') - self.assertAlmostEqual(np.log(kav.get_rate_coefficient(300)), - np.average([np.log(k1.get_rate_coefficient(300)), - np.log(k2.get_rate_coefficient(300))]), 6) - + self.assertEqual(kav.A.units, "m^3/(mol*s)") + self.assertAlmostEqual( + np.log(kav.get_rate_coefficient(300)), + np.average( + [ + np.log(k1.get_rate_coefficient(300)), + np.log(k2.get_rate_coefficient(300)), + ] + ), + 6, + ) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/kinetics/kineticsTest.py b/test/rmgpy/data/kinetics/kineticsTest.py index d786b2500c..2892f3848f 100644 --- a/test/rmgpy/data/kinetics/kineticsTest.py +++ b/test/rmgpy/data/kinetics/kineticsTest.py @@ -36,7 +36,11 @@ from rmgpy import settings from rmgpy.chemkin import load_chemkin_file from rmgpy.data.base import Entry, DatabaseError, ForbiddenStructures -from rmgpy.data.kinetics.common import save_entry, find_degenerate_reactions, ensure_independent_atom_ids +from rmgpy.data.kinetics.common import ( + save_entry, + find_degenerate_reactions, + ensure_independent_atom_ids, +) from rmgpy.data.kinetics.database import KineticsDatabase from rmgpy.data.kinetics.family import TemplateReaction from rmgpy.data.rmg import RMGDatabase @@ -46,20 +50,21 @@ ################################################### + def setUpModule(): """A function that is run ONCE before all unit tests in this module.""" global database database = RMGDatabase() database.load( - path=os.path.join(settings['test_data.directory'], 'testing_database'), - thermo_libraries=['primaryThermoLibrary'], - reaction_libraries=['GRI-Mech3.0'], + path=os.path.join(settings["test_data.directory"], "testing_database"), + thermo_libraries=["primaryThermoLibrary"], + reaction_libraries=["GRI-Mech3.0"], kinetics_families=[ - 'R_Recombination', - 'Disproportionation', - 'R_Addition_MultipleBond', - 'H_Abstraction', - 'intra_H_migration', + "R_Recombination", + "Disproportionation", + "R_Addition_MultipleBond", + "H_Abstraction", + "intra_H_migration", ], testing=True, depository=False, @@ -82,6 +87,7 @@ def setUpModule(): def tearDownModule(): """A function that is run ONCE after all unit tests in this module.""" from rmgpy.data import rmg + rmg.database = None @@ -89,25 +95,30 @@ def tearDownModule(): class TestKineticsDatabase(unittest.TestCase): - def test_load_families_incorrect(self): """Test invalid methods for loading kinetics families""" - path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families') + path = os.path.join( + settings["test_data.directory"], "testing_database", "kinetics", "families" + ) database = KineticsDatabase() - database.load_recommended_families(os.path.join(path, 'recommended.py')) + database.load_recommended_families(os.path.join(path, "recommended.py")) with self.assertRaises(DatabaseError): - database.load_families(path, families='random') + database.load_families(path, families="random") with self.assertRaises(DatabaseError): - database.load_families(path, families=['!H_Abstraction', 'Disproportionation']) + database.load_families( + path, families=["!H_Abstraction", "Disproportionation"] + ) with self.assertRaises(DatabaseError): - database.load_families(path, families=['fake_family']) + database.load_families(path, families=["fake_family"]) def test_load_families_correct(self): """Test valid methods for loading kinetics families.""" - path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families') + path = os.path.join( + settings["test_data.directory"], "testing_database", "kinetics", "families" + ) database = KineticsDatabase() - database.load_recommended_families(os.path.join(path, 'recommended.py')) + database.load_recommended_families(os.path.join(path, "recommended.py")) try: database.load_families(path, families=[]) @@ -115,51 +126,61 @@ def test_load_families_correct(self): self.fail("Unable to load families using list []") try: - database.load_families(path, families='none') + database.load_families(path, families="none") except DatabaseError: self.fail("Unable to load families using keyword 'none'") try: - database.load_families(path, families='default') + database.load_families(path, families="default") except DatabaseError: self.fail("Unable to load families using keyword 'default'") try: - database.load_families(path, families=['default', 'pah']) + database.load_families(path, families=["default", "pah"]) except DatabaseError: self.fail("Unable to load families using list ['default', 'pah']") try: - database.load_families(path, families=['R_Addition_MultipleBond']) + database.load_families(path, families=["R_Addition_MultipleBond"]) except DatabaseError: self.fail("Unable to load families using list ['R_Addition_MultipleBond']") try: - database.load_families(path, families=['!H_Abstraction', '!Disproportionation']) + database.load_families( + path, families=["!H_Abstraction", "!Disproportionation"] + ) except DatabaseError: - self.fail("Unable to load families using list ['!H_Abstraction', '!Disproportionation']") + self.fail( + "Unable to load families using list ['!H_Abstraction', '!Disproportionation']" + ) try: - database.load_families(path, families='!pah') + database.load_families(path, families="!pah") except DatabaseError: self.fail("Unable to load families using keyword '!pah'") try: - database.load_families(path, families=['H_Abstraction', 'pah']) + database.load_families(path, families=["H_Abstraction", "pah"]) except DatabaseError: self.fail("Unable to load families using list ['H_Abstraction', 'pah']") class TestReactionDegeneracy(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" global database cls.database = database - def assert_correct_reaction_degeneracy(self, reactants, expected_rxn_num, expected_degeneracy, - family_label=None, products=None, adjlists=False): + def assert_correct_reaction_degeneracy( + self, + reactants, + expected_rxn_num, + expected_degeneracy, + family_label=None, + products=None, + adjlists=False, + ): """ Generates reactions for the provided species and checks the results against the expected values. @@ -186,70 +207,83 @@ def assert_correct_reaction_degeneracy(self, reactants, expected_rxn_num, expect families = [family_label] if family_label is not None else None - reaction_list = self.database.kinetics.generate_reactions_from_families(reactants, products, - only_families=families) + reaction_list = self.database.kinetics.generate_reactions_from_families( + reactants, products, only_families=families + ) - self.assertEqual(len(reaction_list), expected_rxn_num, - 'Expected {0} reactions, not {1} for {2} in {3}.'.format(expected_rxn_num, - len(reaction_list), - reactants, - family_label)) + self.assertEqual( + len(reaction_list), + expected_rxn_num, + "Expected {0} reactions, not {1} for {2} in {3}.".format( + expected_rxn_num, len(reaction_list), reactants, family_label + ), + ) degeneracy = set([rxn.degeneracy for rxn in reaction_list]) - self.assertEqual(degeneracy, expected_degeneracy, - 'Expected degeneracies of {0}, not {1} for {2} in {3}.'.format(expected_degeneracy, - degeneracy, - reactants, - family_label)) + self.assertEqual( + degeneracy, + expected_degeneracy, + "Expected degeneracies of {0}, not {1} for {2} in {3}.".format( + expected_degeneracy, degeneracy, reactants, family_label + ), + ) return reaction_list def test_r_addition_multiple_bond_benzene(self): """Test that the proper degeneracy is calculated for H addition to benzene""" - family_label = 'R_Addition_MultipleBond' - reactants = ['c1ccccc1', '[H]'] + family_label = "R_Addition_MultipleBond" + reactants = ["c1ccccc1", "[H]"] correct_rxn_num = 1 correct_degeneracy = {6} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label + ) def test_r_addition_multiple_bond_methyl_naphthalene(self): """Test that the proper degeneracy is calculated for H addition to methylnaphthalene""" - family_label = 'R_Addition_MultipleBond' - reactants = ['C1=CC=C2C=CC=CC2=C1C', '[H]'] - products = ['C[C]1CC=CC2=CC=CC=C12'] + family_label = "R_Addition_MultipleBond" + reactants = ["C1=CC=C2C=CC=CC2=C1C", "[H]"] + products = ["C[C]1CC=CC2=CC=CC=C12"] correct_rxn_num = 1 correct_degeneracy = {1} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, products) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, products + ) def test_r_recombination_phenyl(self): """Test that the proper degeneracy is calculated for phenyl + H recombination""" - family_label = 'R_Recombination' - reactants = ['[c]1ccccc1', '[H]'] + family_label = "R_Recombination" + reactants = ["[c]1ccccc1", "[H]"] correct_rxn_num = 1 correct_degeneracy = {1} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label + ) def test_r_recombination_h(self): """Test that the proper degeneracy is calculated for H + H recombination""" - family_label = 'R_Recombination' - reactants = ['[H]', '[H]'] + family_label = "R_Recombination" + reactants = ["[H]", "[H]"] correct_rxn_num = 1 correct_degeneracy = {0.5} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label + ) def test_degeneracy_for_methyl_methyl_recombination(self): """Test that the proper degeneracy is calculated for methyl + methyl recombination""" - family_label = 'R_Recombination' + family_label = "R_Recombination" reactants = [ """ multiplicity 2 @@ -264,19 +298,20 @@ def test_degeneracy_for_methyl_methyl_recombination(self): 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - """ + """, ] correct_rxn_num = 1 correct_degeneracy = {0.5} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, - adjlists=True) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, adjlists=True + ) def test_degeneracy_for_methyl_labeled_methyl_recombination(self): """Test that the proper degeneracy is calculated for methyl + labeled methyl recombination""" - family_label = 'R_Recombination' + family_label = "R_Recombination" reactants = [ """ multiplicity 2 @@ -291,19 +326,20 @@ def test_degeneracy_for_methyl_labeled_methyl_recombination(self): 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - """ + """, ] correct_rxn_num = 1 correct_degeneracy = {1} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, - adjlists=True) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, adjlists=True + ) def test_degeneracy_for_ethyl_ethyl_disproportionation(self): """Test that the proper degeneracy is calculated for ethyl + ethyl disproportionation""" - family_label = 'Disproportionation' + family_label = "Disproportionation" reactants = [ """ multiplicity 2 @@ -324,19 +360,20 @@ def test_degeneracy_for_ethyl_ethyl_disproportionation(self): 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {1,S} 7 H u0 p0 c0 {1,S} - """ + """, ] correct_rxn_num = 1 correct_degeneracy = {3} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, - adjlists=True) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, adjlists=True + ) def test_degeneracy_for_ethyl_labeled_ethyl_disproportionation(self): """Test that the proper degeneracy is calculated for ethyl + labeled ethyl disproportionation""" - family_label = 'Disproportionation' + family_label = "Disproportionation" reactants = [ """ multiplicity 2 @@ -357,14 +394,15 @@ def test_degeneracy_for_ethyl_labeled_ethyl_disproportionation(self): 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {1,S} 7 H u0 p0 c0 {1,S} - """ + """, ] correct_rxn_num = 2 correct_degeneracy = {3} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, - adjlists=True) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, adjlists=True + ) @work_in_progress def test_degeneracy_does_not_include_identical_atom_labels(self): @@ -379,50 +417,64 @@ def test_degeneracy_does_not_include_identical_atom_labels(self): each with a degeneracy of 6. """ - family_label = 'H_Abstraction' - reactants = ['[H]', 'CC=C[CH]C'] - products = ['[H][H]', '[CH2]C=C[CH]C'] + family_label = "H_Abstraction" + reactants = ["[H]", "CC=C[CH]C"] + products = ["[H][H]", "[CH2]C=C[CH]C"] correct_rxn_num = 1 correct_degeneracy = {6} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, - products=products) + self.assert_correct_reaction_degeneracy( + reactants, + correct_rxn_num, + correct_degeneracy, + family_label, + products=products, + ) def test_degeneracy_keeps_separate_transition_states_separated(self): """ Test that rxns with multiple transition states are kept as separate reactions - + Uses C[C]=C + C=C[CH2] -> C=C=C + C=CC as an example. This reaction should have two transition states, which should occur regardless of reactant order. """ - family_label = 'Disproportionation' - reactants = ['C[C]=C', 'C=C[CH2]'] - products = ['C=C=C', 'CC=C'] + family_label = "Disproportionation" + reactants = ["C[C]=C", "C=C[CH2]"] + products = ["C=C=C", "CC=C"] correct_rxn_num = 2 correct_degeneracy = {1, 6} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, - products=products) + self.assert_correct_reaction_degeneracy( + reactants, + correct_rxn_num, + correct_degeneracy, + family_label, + products=products, + ) def test_separate_transition_states_generated_regardless_of_reactant_order(self): """ ensure rxns with multiple transition states are kept as separate reactions - - this test uses C[C]=C + C=C[CH2] -> C=C=C + C=CC as an example. + + this test uses C[C]=C + C=C[CH2] -> C=C=C + C=CC as an example. This reaction should have two transition states, which should occur regardless of the order . """ - mol_a = Molecule().from_smiles('C=[C]C') - mol_b = Molecule().from_smiles('C=C[CH2]') - mol_c = Molecule().from_smiles('C=C=C') - mol_d = Molecule().from_smiles('C=CC') - - family = database.kinetics.families['Disproportionation'] - reaction_list = family._generate_reactions([mol_a, mol_b], products=[mol_c, mol_d]) + mol_a = Molecule().from_smiles("C=[C]C") + mol_b = Molecule().from_smiles("C=C[CH2]") + mol_c = Molecule().from_smiles("C=C=C") + mol_d = Molecule().from_smiles("C=CC") + + family = database.kinetics.families["Disproportionation"] + reaction_list = family._generate_reactions( + [mol_a, mol_b], products=[mol_c, mol_d] + ) - swapped_reaction_list = family._generate_reactions([mol_b, mol_a], products=[mol_c, mol_d]) + swapped_reaction_list = family._generate_reactions( + [mol_b, mol_a], products=[mol_c, mol_d] + ) # eliminate rxns that do not match products templates = {} @@ -438,23 +490,30 @@ def test_separate_transition_states_generated_regardless_of_reactant_order(self) except KeyError: reverse_templates[rxn.template[0]] = 1 - self.assertEqual(reverse_templates, templates, - 'The reaction output did not output all the transition states in either order of reactants') + self.assertEqual( + reverse_templates, + templates, + "The reaction output did not output all the transition states in either order of reactants", + ) def test_propyl_propyl_reaction_is_the_half_propyl_butyl(self): """ test that propyl propyl r-recombination is the same rate as propyl butyl this test assures that r-recombination reactions from the same rate rule - with identical reactants have half the reaction rate since there is a + with identical reactants have half the reaction rate since there is a symmetrical transition state. """ - family_label = 'R_Recombination' - propyl = 'CC[CH2]' - butyl = 'CCC[CH2]' + family_label = "R_Recombination" + propyl = "CC[CH2]" + butyl = "CCC[CH2]" - rxn_list_pp = self.assert_correct_reaction_degeneracy([propyl, propyl], 1, {0.5}, family_label) - rxn_list_pb = self.assert_correct_reaction_degeneracy([propyl, butyl], 1, {1}, family_label) + rxn_list_pp = self.assert_correct_reaction_degeneracy( + [propyl, propyl], 1, {0.5}, family_label + ) + rxn_list_pb = self.assert_correct_reaction_degeneracy( + [propyl, butyl], 1, {1}, family_label + ) family = self.database.kinetics.families[family_label] @@ -462,93 +521,139 @@ def test_propyl_propyl_reaction_is_the_half_propyl_butyl(self): pb_reaction = rxn_list_pb[0] # get kinetics for each reaction - pp_kinetics_list = family.get_kinetics(pp_reaction, pp_reaction.template, - degeneracy=pp_reaction.degeneracy, - estimator='rate rules') - self.assertEqual(len(pp_kinetics_list), 1, - 'The propyl and propyl recombination should only return one reaction. It returned {0}. ' - 'Here is the full kinetics: {1}'.format(len(pp_kinetics_list), pp_kinetics_list)) - - pb_kinetics_list = family.get_kinetics(pb_reaction, pb_reaction.template, - degeneracy=pb_reaction.degeneracy, - estimator='rate rules') - self.assertEqual(len(pb_kinetics_list), 1, - 'The propyl and butyl recombination should only return one reaction. It returned {0}. ' - 'Here is the full kinetics: {1}'.format(len(pb_kinetics_list), pb_kinetics_list)) + pp_kinetics_list = family.get_kinetics( + pp_reaction, + pp_reaction.template, + degeneracy=pp_reaction.degeneracy, + estimator="rate rules", + ) + self.assertEqual( + len(pp_kinetics_list), + 1, + "The propyl and propyl recombination should only return one reaction. It returned {0}. " + "Here is the full kinetics: {1}".format( + len(pp_kinetics_list), pp_kinetics_list + ), + ) + + pb_kinetics_list = family.get_kinetics( + pb_reaction, + pb_reaction.template, + degeneracy=pb_reaction.degeneracy, + estimator="rate rules", + ) + self.assertEqual( + len(pb_kinetics_list), + 1, + "The propyl and butyl recombination should only return one reaction. It returned {0}. " + "Here is the full kinetics: {1}".format( + len(pb_kinetics_list), pb_kinetics_list + ), + ) # the same reaction group must be found or this test will not work - self.assertIn(pb_kinetics_list[0][0].comment, pp_kinetics_list[0][0].comment, - 'This test found different kinetics for the two groups, so it will not function as expected\n' + - str(pp_kinetics_list) + str(pb_kinetics_list)) + self.assertIn( + pb_kinetics_list[0][0].comment, + pp_kinetics_list[0][0].comment, + "This test found different kinetics for the two groups, so it will not function as expected\n" + + str(pp_kinetics_list) + + str(pb_kinetics_list), + ) # test that the kinetics are correct - self.assertAlmostEqual(pp_kinetics_list[0][0].get_rate_coefficient(300) * 2, - pb_kinetics_list[0][0].get_rate_coefficient(300)) + self.assertAlmostEqual( + pp_kinetics_list[0][0].get_rate_coefficient(300) * 2, + pb_kinetics_list[0][0].get_rate_coefficient(300), + ) def test_identical_reactants_have_similar_kinetics(self): """ tests identical reactants have the same kinetics than different reactants. - - this test assures that r addition multiple bond reactions from the same - rate rule have the same reaction rate if the reactants are identicaal - since little changes in the reactant or transition state symmetry. - + + this test assures that r addition multiple bond reactions from the same + rate rule have the same reaction rate if the reactants are identicaal + since little changes in the reactant or transition state symmetry. + This method should be more robust than just checking the degeneracy of reactions. """ - family_label = 'R_Addition_MultipleBond' - butenyl = 'C=CC[CH2]' - pentenyl = 'C=CCC[CH2]' - symmetric_product = ['[CH2]CC([CH2])CCC=C'] - asymmetric_product = ['[CH2]CCC([CH2])CCC=C'] - - rxn_list_bb = self.assert_correct_reaction_degeneracy([butenyl, butenyl], 1, {1}, family_label, - products=symmetric_product) - rxn_list_bp = self.assert_correct_reaction_degeneracy([butenyl, pentenyl], 1, {1}, family_label, - products=asymmetric_product) + family_label = "R_Addition_MultipleBond" + butenyl = "C=CC[CH2]" + pentenyl = "C=CCC[CH2]" + symmetric_product = ["[CH2]CC([CH2])CCC=C"] + asymmetric_product = ["[CH2]CCC([CH2])CCC=C"] + + rxn_list_bb = self.assert_correct_reaction_degeneracy( + [butenyl, butenyl], 1, {1}, family_label, products=symmetric_product + ) + rxn_list_bp = self.assert_correct_reaction_degeneracy( + [butenyl, pentenyl], 1, {1}, family_label, products=asymmetric_product + ) family = self.database.kinetics.families[family_label] bb_reaction = rxn_list_bb[0] bp_reaction = rxn_list_bp[0] - bb_kinetics_list = family.get_kinetics(bb_reaction, bb_reaction.template, - degeneracy=bb_reaction.degeneracy, - estimator='rate rules') - self.assertEqual(len(bb_kinetics_list), 1, - 'The butenyl and butenyl addition should only return one reaction. It returned {0}. ' - 'Here is the full kinetics: {1}'.format(len(bb_kinetics_list), bb_kinetics_list)) + bb_kinetics_list = family.get_kinetics( + bb_reaction, + bb_reaction.template, + degeneracy=bb_reaction.degeneracy, + estimator="rate rules", + ) + self.assertEqual( + len(bb_kinetics_list), + 1, + "The butenyl and butenyl addition should only return one reaction. It returned {0}. " + "Here is the full kinetics: {1}".format( + len(bb_kinetics_list), bb_kinetics_list + ), + ) - bp_kinetics_list = family.get_kinetics(bp_reaction, bp_reaction.template, - degeneracy=bp_reaction.degeneracy, - estimator='rate rules') - self.assertEqual(len(bp_kinetics_list), 1, - 'The butenyl and pentenyl addition should only return one reaction. It returned {0}. ' - 'Here is the full kinetics: {1}'.format(len(bp_kinetics_list), bp_kinetics_list)) + bp_kinetics_list = family.get_kinetics( + bp_reaction, + bp_reaction.template, + degeneracy=bp_reaction.degeneracy, + estimator="rate rules", + ) + self.assertEqual( + len(bp_kinetics_list), + 1, + "The butenyl and pentenyl addition should only return one reaction. It returned {0}. " + "Here is the full kinetics: {1}".format( + len(bp_kinetics_list), bp_kinetics_list + ), + ) # the same reaction group must be found or this test will not work - self.assertIn(bp_kinetics_list[0][0].comment, bb_kinetics_list[0][0].comment, - 'This test found different kinetics for the two groups, so it will not function as expected\n' + - str(bb_kinetics_list) + str(bp_kinetics_list)) + self.assertIn( + bp_kinetics_list[0][0].comment, + bb_kinetics_list[0][0].comment, + "This test found different kinetics for the two groups, so it will not function as expected\n" + + str(bb_kinetics_list) + + str(bp_kinetics_list), + ) # test that the kinetics are correct - self.assertAlmostEqual(bb_kinetics_list[0][0].get_rate_coefficient(300), - bp_kinetics_list[0][0].get_rate_coefficient(300)) + self.assertAlmostEqual( + bb_kinetics_list[0][0].get_rate_coefficient(300), + bp_kinetics_list[0][0].get_rate_coefficient(300), + ) def test_reaction_degeneracy_independent_of_generatereactions_direction(self): """ test_reaction_degeneracy_independent_of_generatereactions_direction - + Ensure the returned kinetics have the same degeneracy irrespective of whether _generate_reactions has forward = True or False """ - family = database.kinetics.families['Disproportionation'] + family = database.kinetics.families["Disproportionation"] - mol_a = Molecule().from_smiles('C[CH2]') - mol_b = Molecule().from_smiles('C[CH2]') - mol_c = Molecule().from_smiles('C=C') - mol_d = Molecule().from_smiles('CC') + mol_a = Molecule().from_smiles("C[CH2]") + mol_b = Molecule().from_smiles("C[CH2]") + mol_c = Molecule().from_smiles("C=C") + mol_d = Molecule().from_smiles("CC") mol_a.assign_atom_ids() mol_b.assign_atom_ids() @@ -556,76 +661,90 @@ def test_reaction_degeneracy_independent_of_generatereactions_direction(self): mol_d.assign_atom_ids() # generate reactions in both directions - forward_reactions = family._generate_reactions([mol_a, mol_b], products=[mol_c, mol_d], - forward=True) - reverse_reactions = family._generate_reactions([mol_c, mol_d], products=[mol_a, mol_b], - forward=False) + forward_reactions = family._generate_reactions( + [mol_a, mol_b], products=[mol_c, mol_d], forward=True + ) + reverse_reactions = family._generate_reactions( + [mol_c, mol_d], products=[mol_a, mol_b], forward=False + ) forward_reactions = find_degenerate_reactions(forward_reactions) reverse_reactions = find_degenerate_reactions(reverse_reactions) - self.assertEqual(forward_reactions[0].degeneracy, reverse_reactions[0].degeneracy, - 'the kinetics from forward and reverse directions had different degeneracies, {} and {} ' - 'respectively'.format(forward_reactions[0].degeneracy, reverse_reactions[0].degeneracy)) + self.assertEqual( + forward_reactions[0].degeneracy, + reverse_reactions[0].degeneracy, + "the kinetics from forward and reverse directions had different degeneracies, {} and {} " + "respectively".format( + forward_reactions[0].degeneracy, reverse_reactions[0].degeneracy + ), + ) def test_degeneracy_same_reactant_different_resonance_structure(self): """Test if degeneracy is correct when reacting different resonance structures.""" - family_label = 'Disproportionation' - reactants = ['CC=C[CH2]', 'CC=C[CH2]'] - products = ['CC=CC', 'C=CC=C'] + family_label = "Disproportionation" + reactants = ["CC=C[CH2]", "CC=C[CH2]"] + products = ["CC=CC", "C=CC=C"] correct_rxn_num = 1 correct_degeneracy = {3} - reaction_list = self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, - family_label, products) + reaction_list = self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, products + ) - self.assertEqual(set(reaction_list[0].template), {'C_rad/H2/Cd', 'Cmethyl_Csrad/H/Cd'}) + self.assertEqual( + set(reaction_list[0].template), {"C_rad/H2/Cd", "Cmethyl_Csrad/H/Cd"} + ) def test_degeneracy_multiple_ts_different_template(self): """Test that reactions from different transition states are marked as duplicates.""" - family_label = 'intra_H_migration' - reactants = ['CCCC[CH]CCCCC'] - products = ['[CH2]CCCCCCCCC'] + family_label = "intra_H_migration" + reactants = ["CCCC[CH]CCCCC"] + products = ["[CH2]CCCCCCCCC"] correct_rxn_num = 2 correct_degeneracy = {3} - reaction_list = self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, - family_label, products) + reaction_list = self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, products + ) self.assertTrue(reaction_list[0].duplicate) self.assertTrue(reaction_list[1].duplicate) def test_degeneracy_multiple_resonance_different_template(self): """Test that reactions from different resonance structures are not kept.""" - family_label = 'H_Abstraction' - reactants = ['c1ccccc1', '[CH3]'] + family_label = "H_Abstraction" + reactants = ["c1ccccc1", "[CH3]"] correct_rxn_num = 1 correct_degeneracy = {6} - reaction_list = self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, - family_label) + reaction_list = self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label + ) self.assertFalse(reaction_list[0].duplicate) def test_degeneracy_resonance_keep_isomorphic(self): """Test that we get the correct degeneracy for [CH2]C=C[CH2] + [H]. - Incorrect results would be obtained if isomorphic resonance structures are not kept.""" - family_label = 'R_Recombination' - reactants = ['[CH2]C=C[CH2]', '[OH]'] - products = ['[CH2]C(O)C=C'] + Incorrect results would be obtained if isomorphic resonance structures are not kept. + """ + family_label = "R_Recombination" + reactants = ["[CH2]C=C[CH2]", "[OH]"] + products = ["[CH2]C(O)C=C"] correct_rxn_num = 1 correct_degeneracy = {2} - self.assert_correct_reaction_degeneracy(reactants, correct_rxn_num, correct_degeneracy, family_label, products) + self.assert_correct_reaction_degeneracy( + reactants, correct_rxn_num, correct_degeneracy, family_label, products + ) class TestKineticsCommentsParsing(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" @@ -634,50 +753,77 @@ def setUpClass(cls): def test_parse_kinetics(self): species, reactions = load_chemkin_file( - os.path.join(settings['test_data.directory'], 'parsing_data', 'chem_annotated.inp'), - os.path.join(settings['test_data.directory'], 'parsing_data', 'species_dictionary.txt') + os.path.join( + settings["test_data.directory"], "parsing_data", "chem_annotated.inp" + ), + os.path.join( + settings["test_data.directory"], + "parsing_data", + "species_dictionary.txt", + ), ) sources = [] for reaction in reactions: - sources.append(self.database.kinetics.extract_source_from_comments(reaction)) + sources.append( + self.database.kinetics.extract_source_from_comments(reaction) + ) # Source 0 comes from a kinetics library - self.assertTrue('Library' in sources[0]) - self.assertEqual(sources[0]['Library'], 'GRI-Mech3.0') + self.assertTrue("Library" in sources[0]) + self.assertEqual(sources[0]["Library"], "GRI-Mech3.0") - reconstructed_kinetics = self.database.kinetics.reconstruct_kinetics_from_source(reactions[0], sources[0], - fix_barrier_height=True) + reconstructed_kinetics = ( + self.database.kinetics.reconstruct_kinetics_from_source( + reactions[0], sources[0], fix_barrier_height=True + ) + ) A = reconstructed_kinetics.A.value_si n = reconstructed_kinetics.n.value_si self.assertAlmostEqual(reactions[0].kinetics.A.value_si, A) self.assertAlmostEqual(reactions[0].kinetics.n.value_si, n) # Source 1 comes from a single exact match to a rate rule - self.assertTrue('Rate Rules' in sources[1]) - self.assertEqual(sources[1]['Rate Rules'][0], 'Disproportionation') - rules = sources[1]['Rate Rules'][1]['rules'] + self.assertTrue("Rate Rules" in sources[1]) + self.assertEqual(sources[1]["Rate Rules"][0], "Disproportionation") + rules = sources[1]["Rate Rules"][1]["rules"] self.assertEqual(len(rules), 1) - self.assertEqual(rules[0][0].label, 'O_pri_rad;Cmethyl_Csrad') + self.assertEqual(rules[0][0].label, "O_pri_rad;Cmethyl_Csrad") - reconstructed_kinetics = self.database.kinetics.reconstruct_kinetics_from_source(reactions[1], sources[1], - fix_barrier_height=True) + reconstructed_kinetics = ( + self.database.kinetics.reconstruct_kinetics_from_source( + reactions[1], sources[1], fix_barrier_height=True + ) + ) A = reconstructed_kinetics.A.value_si n = reconstructed_kinetics.n.value_si self.assertAlmostEqual(reactions[1].kinetics.A.value_si, A) self.assertAlmostEqual(reactions[1].kinetics.n.value_si, n) # Source 2 comes from an averaged rate rule that even contains a rate rule from a training reaction - self.assertTrue('Rate Rules' in sources[2]) - self.assertEqual(sources[2]['Rate Rules'][0], 'Disproportionation') - expected_rules = ['O2b;O_Csrad', 'O_atom_triplet;O_Csrad', 'CH2_triplet;O_Csrad', 'O_pri_rad;O_Csrad', - 'O_rad/NonDeC;O_Csrad', 'O_rad/NonDeO;O_Csrad', 'Cd_pri_rad;O_Csrad', 'CO_pri_rad;O_Csrad', - 'C_methyl;O_Csrad', 'C_rad/H2/Cs;O_Csrad', 'C_rad/H2/Cd;O_Csrad', - 'C_rad/H2/O;O_Csrad', 'C_rad/H/NonDeC;O_Csrad', 'C_rad/Cs3;O_Csrad', 'H_rad;O_Csrad'] + self.assertTrue("Rate Rules" in sources[2]) + self.assertEqual(sources[2]["Rate Rules"][0], "Disproportionation") + expected_rules = [ + "O2b;O_Csrad", + "O_atom_triplet;O_Csrad", + "CH2_triplet;O_Csrad", + "O_pri_rad;O_Csrad", + "O_rad/NonDeC;O_Csrad", + "O_rad/NonDeO;O_Csrad", + "Cd_pri_rad;O_Csrad", + "CO_pri_rad;O_Csrad", + "C_methyl;O_Csrad", + "C_rad/H2/Cs;O_Csrad", + "C_rad/H2/Cd;O_Csrad", + "C_rad/H2/O;O_Csrad", + "C_rad/H/NonDeC;O_Csrad", + "C_rad/Cs3;O_Csrad", + "H_rad;O_Csrad", + ] - rules = sources[2]['Rate Rules'][1]['rules'] - training = sources[2]['Rate Rules'][1]['training'] + rules = sources[2]["Rate Rules"][1]["rules"] + training = sources[2]["Rate Rules"][1]["training"] actual_rule_labels = [rule.label for rule, weight in rules] @@ -686,39 +832,48 @@ def test_parse_kinetics(self): self.assertTrue(rule in actual_rule_labels) self.assertEqual(len(training), 1) - self.assertEqual(training[0][1].index, 0) # Assert that the index of that training reaction is 1 - - reconstructed_kinetics = self.database.kinetics.reconstruct_kinetics_from_source(reactions[2], sources[2], - fix_barrier_height=True) + self.assertEqual( + training[0][1].index, 0 + ) # Assert that the index of that training reaction is 1 + + reconstructed_kinetics = ( + self.database.kinetics.reconstruct_kinetics_from_source( + reactions[2], sources[2], fix_barrier_height=True + ) + ) A = reconstructed_kinetics.A.value_si n = reconstructed_kinetics.n.value_si - A = round(A, -int(np.floor(np.log10(abs(A)))) + 3) # Do some rounding since chemkin format kinetics are rounded + A = round( + A, -int(np.floor(np.log10(abs(A)))) + 3 + ) # Do some rounding since chemkin format kinetics are rounded n = round(n, 3) self.assertAlmostEqual(reactions[2].kinetics.A.value_si, A) self.assertAlmostEqual(reactions[2].kinetics.n.value_si, n) # Source 3 comes from a training reaction match - self.assertTrue('Training' in sources[3]) - family_label = sources[3]['Training'][0] - training_rxn = sources[3]['Training'][1] + self.assertTrue("Training" in sources[3]) + family_label = sources[3]["Training"][0] + training_rxn = sources[3]["Training"][1] - self.assertEqual(family_label, 'Disproportionation') - self.assertEqual(training_rxn.label, 'C2H + CH3O <=> C2H2 + CH2O') + self.assertEqual(family_label, "Disproportionation") + self.assertEqual(training_rxn.label, "C2H + CH3O <=> C2H2 + CH2O") - reconstructed_kinetics = self.database.kinetics.reconstruct_kinetics_from_source(reactions[3], sources[3], - fix_barrier_height=True) + reconstructed_kinetics = ( + self.database.kinetics.reconstruct_kinetics_from_source( + reactions[3], sources[3], fix_barrier_height=True + ) + ) A = reconstructed_kinetics.A.value_si n = reconstructed_kinetics.n.value_si self.assertAlmostEqual(reactions[3].kinetics.A.value_si, A) self.assertAlmostEqual(reactions[3].kinetics.n.value_si, n) - # Source 3 comes from a pdep reaction - self.assertTrue('PDep' in sources[4]) - self.assertEqual(sources[4]['PDep'], 7) + # Source 3 comes from a pdep reaction + self.assertTrue("PDep" in sources[4]) + self.assertEqual(sources[4]["PDep"], 7) class TestKinetics(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" @@ -727,8 +882,14 @@ def setUpClass(cls): cls.database = database cls.species, cls.reactions = load_chemkin_file( - os.path.join(settings['test_data.directory'], 'parsing_data', 'chem_annotated.inp'), - os.path.join(settings['test_data.directory'], 'parsing_data', 'species_dictionary.txt') + os.path.join( + settings["test_data.directory"], "parsing_data", "chem_annotated.inp" + ), + os.path.join( + settings["test_data.directory"], + "parsing_data", + "species_dictionary.txt", + ), ) def test_react_molecules(self): @@ -736,19 +897,21 @@ def test_react_molecules(self): Test that reaction generation for Molecule objects works. """ - molecule_tuple = (Molecule(smiles='CC'), Molecule(smiles='[CH3]')) + molecule_tuple = (Molecule(smiles="CC"), Molecule(smiles="[CH3]")) reaction_list = self.database.kinetics.react_molecules(molecule_tuple) self.assertIsNotNone(reaction_list) - self.assertTrue(all([isinstance(rxn, TemplateReaction) for rxn in reaction_list])) + self.assertTrue( + all([isinstance(rxn, TemplateReaction) for rxn in reaction_list]) + ) def test_ensure_independent_atom_ids(self): """ Ensure ensure_independent_atom_ids modifies atom labels """ - s1 = Species().from_smiles('CCC') - s2 = Species().from_smiles('C=C[CH]C') + s1 = Species().from_smiles("CCC") + s2 = Species().from_smiles("C=C[CH]C") self.assertEqual(s2.molecule[0].atoms[0].id, -1) ensure_independent_atom_ids([s1, s2]) @@ -761,8 +924,8 @@ def test_ensure_independent_atom_ids_no_resonance(self): """ Ensure ensure_independent_atom_ids does not generate resonance """ - s1 = Species().from_smiles('CCC') - s2 = Species().from_smiles('C=C[CH]C') + s1 = Species().from_smiles("CCC") + s2 = Species().from_smiles("C=C[CH]C") self.assertEqual(s2.molecule[0].atoms[0].id, -1) ensure_independent_atom_ids([s1, s2], resonance=False) @@ -778,14 +941,22 @@ def test_save_entry(self): """ reactions = self.reactions - fname = 'testfile.txt' - fid = open('testfile.txt', 'w') + fname = "testfile.txt" + fid = open("testfile.txt", "w") wd = os.getcwd() - wdir = wd + '/' + fname + wdir = wd + "/" + fname rxn = reactions[0] - entry = Entry(index=1, label=str(rxn), item=rxn, short_desc='sdes', long_desc='lsdes', data='stuff', rank=0) + entry = Entry( + index=1, + label=str(rxn), + item=rxn, + short_desc="sdes", + long_desc="lsdes", + data="stuff", + rank=0, + ) save_entry(fid, entry) fid.close() @@ -797,7 +968,7 @@ def test_duplicates(self): tests that kinetics libraries load properly and that the duplicate related routines run without error """ - lib = self.database.kinetics.libraries['GRI-Mech3.0'] + lib = self.database.kinetics.libraries["GRI-Mech3.0"] out = lib.check_for_duplicates(True) self.assertIsNone(out) out = lib.convert_duplicates_to_multi() @@ -809,8 +980,9 @@ def test_add_reverse_attribute(self): """ from rmgpy.data.rmg import get_db from rmgpy.data.kinetics.family import TemplateReaction + adjlist = [ - ''' + """ multiplicity 2 1 H u0 p0 c0 {7,S} 2 H u0 p0 c0 {4,S} @@ -820,8 +992,8 @@ def test_add_reverse_attribute(self): 6 H u0 p0 c0 {4,S} 7 C u0 p0 c0 {1,S} {3,S} {4,D} 8 H u0 p0 c0 {3,S} - ''', - ''' + """, + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 i13 {1,S} {3,D} {7,S} 3 C u0 p0 c0 {2,D} {8,S} {9,S} @@ -831,8 +1003,8 @@ def test_add_reverse_attribute(self): 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {3,S} - ''', - ''' + """, + """ multiplicity 2 1 H u0 p0 c0 {7,S} 2 H u0 p0 c0 {4,S} @@ -842,8 +1014,8 @@ def test_add_reverse_attribute(self): 6 H u0 p0 c0 {4,S} 7 C u0 p0 c0 i13 {1,S} {3,S} {4,D} 8 H u0 p0 c0 {3,S} - ''', - ''' + """, + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,D} {7,S} 3 C u0 p0 c0 {2,D} {8,S} {9,S} @@ -853,9 +1025,9 @@ def test_add_reverse_attribute(self): 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {3,S} - ''' + """, ] - family = get_db('kinetics').families['H_Abstraction'] + family = get_db("kinetics").families["H_Abstraction"] r1 = Species(molecule=[Molecule().from_adjacency_list(adjlist[0])]) r2 = Species(molecule=[Molecule().from_adjacency_list(adjlist[1])]) p1 = Species(molecule=[Molecule().from_adjacency_list(adjlist[2])]) @@ -880,21 +1052,25 @@ def test_calculate_degeneracy_for_non_reactive_molecule(self): from rmgpy.data.rmg import get_db from rmgpy.data.kinetics.family import TemplateReaction - adjlist = [''' + adjlist = [ + """ multiplicity 2 - 1 H u1 p0 c0''', - ''' + 1 H u1 p0 c0""", + """ multiplicity 2 1 O u1 p1 c+1 {2,D} - 2 N u0 p2 c-1 {1,D}''', - ''' + 2 N u0 p2 c-1 {1,D}""", + """ 1 O u0 p1 c+1 {2,D} {3,S} 2 N u0 p2 c-1 {1,D} - 3 H u0 p0 c0 {1,S}'''] + 3 H u0 p0 c0 {1,S}""", + ] - family = get_db('kinetics').families['R_Recombination'] + family = get_db("kinetics").families["R_Recombination"] r1 = Species(molecule=[Molecule().from_adjacency_list(adjlist[0])]) - r2 = Species(molecule=[Molecule().from_adjacency_list(adjlist[1])]) # r2 is not the representative structure of + r2 = Species( + molecule=[Molecule().from_adjacency_list(adjlist[1])] + ) # r2 is not the representative structure of # NO, but it is the correct structure participating in this reaction p1 = Species(molecule=[Molecule().from_adjacency_list(adjlist[2])]) r2.generate_resonance_structures(keep_isomorphic=True) @@ -906,22 +1082,24 @@ def test_calculate_degeneracy_for_non_reactive_molecule(self): def test_generate_reactions_from_families_with_resonance(self): """Test that we can generate reactions from families with resonance structures""" reactants = [ - Molecule().from_smiles('CC=C[CH2]'), - Molecule().from_smiles('[OH]'), + Molecule().from_smiles("CC=C[CH2]"), + Molecule().from_smiles("[OH]"), ] - expected_product_1 = Molecule().from_smiles('CC=CCO') - expected_product_2 = Molecule().from_smiles('CC(O)C=C') + expected_product_1 = Molecule().from_smiles("CC=CCO") + expected_product_2 = Molecule().from_smiles("CC(O)C=C") - reaction_list = self.database.kinetics.generate_reactions_from_families(reactants, - only_families=['R_Recombination'], - resonance=True) + reaction_list = self.database.kinetics.generate_reactions_from_families( + reactants, only_families=["R_Recombination"], resonance=True + ) self.assertEqual(len(reaction_list), 2) - case_1 = (reaction_list[0].products[0].is_isomorphic(expected_product_1) and - reaction_list[1].products[0].is_isomorphic(expected_product_2)) - case_2 = (reaction_list[0].products[0].is_isomorphic(expected_product_2) and - reaction_list[1].products[0].is_isomorphic(expected_product_1)) + case_1 = reaction_list[0].products[0].is_isomorphic( + expected_product_1 + ) and reaction_list[1].products[0].is_isomorphic(expected_product_2) + case_2 = reaction_list[0].products[0].is_isomorphic( + expected_product_2 + ) and reaction_list[1].products[0].is_isomorphic(expected_product_1) # Only one case should be true self.assertTrue(case_1 ^ case_2) @@ -929,14 +1107,14 @@ def test_generate_reactions_from_families_with_resonance(self): def test_generate_reactions_from_families_no_resonance(self): """Test that we can generate reactions from families without resonance structures""" reactants = [ - Molecule().from_smiles('CC=C[CH2]'), - Molecule().from_smiles('[OH]'), + Molecule().from_smiles("CC=C[CH2]"), + Molecule().from_smiles("[OH]"), ] - expected_product = Molecule().from_smiles('CC=CCO') + expected_product = Molecule().from_smiles("CC=CCO") - reaction_list = self.database.kinetics.generate_reactions_from_families(reactants, - only_families=['R_Recombination'], - resonance=False) + reaction_list = self.database.kinetics.generate_reactions_from_families( + reactants, only_families=["R_Recombination"], resonance=False + ) self.assertEqual(len(reaction_list), 1) @@ -945,17 +1123,17 @@ def test_generate_reactions_from_families_no_resonance(self): def test_generate_reactions_from_families_product_resonance(self): """Test that we can specify the product resonance structure when generating reactions""" reactants = [ - Molecule().from_smiles('CCC=C'), - Molecule().from_smiles('[H]'), + Molecule().from_smiles("CCC=C"), + Molecule().from_smiles("[H]"), ] products = [ - Molecule().from_smiles('CC=C[CH2]'), - Molecule().from_smiles('[H][H]'), + Molecule().from_smiles("CC=C[CH2]"), + Molecule().from_smiles("[H][H]"), ] - reaction_list = self.database.kinetics.generate_reactions_from_families(reactants, products, - only_families=['H_Abstraction'], - resonance=True) + reaction_list = self.database.kinetics.generate_reactions_from_families( + reactants, products, only_families=["H_Abstraction"], resonance=True + ) self.assertEqual(len(reaction_list), 1) self.assertEqual(reaction_list[0].degeneracy, 2) @@ -963,41 +1141,45 @@ def test_generate_reactions_from_families_product_resonance(self): def test_generate_reactions_from_families_product_resonance2(self): """Test that we can specify the no product resonance structure when generating reactions""" reactants = [ - Molecule().from_smiles('CCC=C'), - Molecule().from_smiles('[H]'), + Molecule().from_smiles("CCC=C"), + Molecule().from_smiles("[H]"), ] products = [ - Molecule().from_smiles('CC=C[CH2]'), - Molecule().from_smiles('[H][H]'), + Molecule().from_smiles("CC=C[CH2]"), + Molecule().from_smiles("[H][H]"), ] - reaction_list = self.database.kinetics.generate_reactions_from_families(reactants, products, - only_families=['H_Abstraction'], - resonance=False) + reaction_list = self.database.kinetics.generate_reactions_from_families( + reactants, products, only_families=["H_Abstraction"], resonance=False + ) self.assertEqual(len(reaction_list), 0) def test_generate_reactions_from_libraries(self): """Test that we can generate reactions from libraries""" reactants = [ - Molecule().from_smiles('CC=O'), - Molecule().from_smiles('[H]'), + Molecule().from_smiles("CC=O"), + Molecule().from_smiles("[H]"), ] - reaction_list = self.database.kinetics.generate_reactions_from_libraries(reactants) + reaction_list = self.database.kinetics.generate_reactions_from_libraries( + reactants + ) self.assertEqual(len(reaction_list), 3) def test_generate_reactions_from_libraries2(self): """Test that we can generate reactions from libraries specifying products""" reactants = [ - Molecule().from_smiles('CC=O'), - Molecule().from_smiles('[H]'), + Molecule().from_smiles("CC=O"), + Molecule().from_smiles("[H]"), ] products = [ - Molecule().from_smiles('[CH2]C=O'), - Molecule().from_smiles('[H][H]'), + Molecule().from_smiles("[CH2]C=O"), + Molecule().from_smiles("[H][H]"), ] - reaction_list_2 = self.database.kinetics.generate_reactions_from_libraries(reactants, products) + reaction_list_2 = self.database.kinetics.generate_reactions_from_libraries( + reactants, products + ) self.assertEqual(len(reaction_list_2), 1) @@ -1005,57 +1187,59 @@ def test_add_atom_labels_for_reaction(self): """Test that add_atom_labels_for_reaction can identify reactions with resonance The molecule [CH]=C=C has resonance in this reaction""" from rmgpy.data.rmg import get_db + reactants = [ - Molecule().from_smiles('C=C=C'), - Molecule().from_smiles('[CH]=C=C'), + Molecule().from_smiles("C=C=C"), + Molecule().from_smiles("[CH]=C=C"), ] products = [ - Molecule().from_smiles('C#C[CH2]'), - Molecule().from_smiles('C#CC'), + Molecule().from_smiles("C#C[CH2]"), + Molecule().from_smiles("C#CC"), ] - reaction = TemplateReaction(reactants=reactants, - products=products, - family='H_Abstraction') + reaction = TemplateReaction( + reactants=reactants, products=products, family="H_Abstraction" + ) reaction.ensure_species(reactant_resonance=True, product_resonance=True) - family = get_db('kinetics').families['H_Abstraction'] + family = get_db("kinetics").families["H_Abstraction"] family.add_atom_labels_for_reaction(reaction, output_with_resonance=False) # test that the reaction has labels found_labels = [] for species in reaction.reactants: for atom in species.molecule[0].atoms: - if atom.label != '': + if atom.label != "": found_labels.append(atom.label) self.assertEqual(len(found_labels), 3) - self.assertIn('*1', found_labels) - self.assertIn('*2', found_labels) - self.assertIn('*3', found_labels) + self.assertIn("*1", found_labels) + self.assertIn("*2", found_labels) + self.assertIn("*3", found_labels) # test for the products too found_labels = [] for species in reaction.products: for atom in species.molecule[0].atoms: - if atom.label != '': + if atom.label != "": found_labels.append(atom.label) self.assertEqual(len(found_labels), 3) - self.assertIn('*1', found_labels) - self.assertIn('*2', found_labels) - self.assertIn('*3', found_labels) + self.assertIn("*1", found_labels) + self.assertIn("*2", found_labels) + self.assertIn("*3", found_labels) def test_add_atom_labels_for_reaction_2(self): """Test that add_atom_labels_for_reaction can identify reactions with identical references The molecule [CH]=C=C has resonance in this reaction""" from rmgpy.data.rmg import get_db - s1 = Species().from_smiles('C=C=C') - s2 = Species().from_smiles('C=C=[CH]') - s3 = Species().from_smiles('C#CC') + + s1 = Species().from_smiles("C=C=C") + s2 = Species().from_smiles("C=C=[CH]") + s3 = Species().from_smiles("C#CC") s2.generate_resonance_structures() reactants = [s1, s2] products = [s2, s3] - reaction = TemplateReaction(reactants=reactants, - products=products, - family='H_Abstraction') - family = get_db('kinetics').families['H_Abstraction'] + reaction = TemplateReaction( + reactants=reactants, products=products, family="H_Abstraction" + ) + family = get_db("kinetics").families["H_Abstraction"] print(reaction.reactants) print(reaction.products) family.add_atom_labels_for_reaction(reaction, output_with_resonance=False) @@ -1064,41 +1248,56 @@ def test_add_atom_labels_for_reaction_2(self): found_labels = [] for species in reaction.reactants: for atom in species.molecule[0].atoms: - if atom.label != '': + if atom.label != "": found_labels.append(atom.label) - self.assertEqual(len(found_labels), 3, 'wrong number of labels found {0}'.format(found_labels)) - self.assertIn('*1', found_labels) - self.assertIn('*2', found_labels) - self.assertIn('*3', found_labels) + self.assertEqual( + len(found_labels), + 3, + "wrong number of labels found {0}".format(found_labels), + ) + self.assertIn("*1", found_labels) + self.assertIn("*2", found_labels) + self.assertIn("*3", found_labels) # test for the products too found_labels = [] for species in reaction.products: for atom in species.molecule[0].atoms: - if atom.label != '': + if atom.label != "": found_labels.append(atom.label) self.assertEqual(len(found_labels), 3) - self.assertIn('*1', found_labels) - self.assertIn('*2', found_labels) - self.assertIn('*3', found_labels) + self.assertIn("*1", found_labels) + self.assertIn("*2", found_labels) + self.assertIn("*3", found_labels) def test_add_atom_labels_for_reaction_3(self): """Test that add_atom_labels_for_reaction can identify reactions with resonance and isotopes""" from rmgpy.data.rmg import get_db - mr0 = Molecule().from_adjacency_list('1 C u0 p0 c0 i13 {3,D} {4,S} {5,S}\n2 *1 C u0 p0 c0 {3,D} {6,S} {7,S}\n3 C u0 p0 c0 {1,D} {2,D}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {2,S}\n7 *4 H u0 p0 c0 {2,S}\n') - mr1a = Molecule().from_adjacency_list('multiplicity 2\n1 C u0 p0 c0 i13 {2,D} {4,S} {5,S}\n2 C u0 p0 c0 {1,D} {3,D}\n3 *1 C u1 p0 c0 {2,D} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n') - mr1b = Molecule().from_adjacency_list('multiplicity 2\n1 C u1 p0 c0 i13 {2,S} {4,S} {5,S}\n2 C u0 p0 c0 {1,S} {3,T}\n3 *1 C u0 p0 c0 {2,T} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n') - mp1a = Molecule().from_adjacency_list('multiplicity 2\n1 C u0 p0 c0 {2,D} {4,S} {5,S}\n2 C u0 p0 c0 {1,D} {3,D}\n3 *1 C u1 p0 c0 i13 {2,D} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n') - mp1b = Molecule().from_adjacency_list('multiplicity 2\n1 C u1 p0 c0 {2,S} {4,S} {5,S}\n2 C u0 p0 c0 {1,S} {3,T}\n3 *1 C u0 p0 c0 i13 {2,T} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n') + + mr0 = Molecule().from_adjacency_list( + "1 C u0 p0 c0 i13 {3,D} {4,S} {5,S}\n2 *1 C u0 p0 c0 {3,D} {6,S} {7,S}\n3 C u0 p0 c0 {1,D} {2,D}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {2,S}\n7 *4 H u0 p0 c0 {2,S}\n" + ) + mr1a = Molecule().from_adjacency_list( + "multiplicity 2\n1 C u0 p0 c0 i13 {2,D} {4,S} {5,S}\n2 C u0 p0 c0 {1,D} {3,D}\n3 *1 C u1 p0 c0 {2,D} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n" + ) + mr1b = Molecule().from_adjacency_list( + "multiplicity 2\n1 C u1 p0 c0 i13 {2,S} {4,S} {5,S}\n2 C u0 p0 c0 {1,S} {3,T}\n3 *1 C u0 p0 c0 {2,T} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n" + ) + mp1a = Molecule().from_adjacency_list( + "multiplicity 2\n1 C u0 p0 c0 {2,D} {4,S} {5,S}\n2 C u0 p0 c0 {1,D} {3,D}\n3 *1 C u1 p0 c0 i13 {2,D} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n" + ) + mp1b = Molecule().from_adjacency_list( + "multiplicity 2\n1 C u1 p0 c0 {2,S} {4,S} {5,S}\n2 C u0 p0 c0 {1,S} {3,T}\n3 *1 C u0 p0 c0 i13 {2,T} {6,S}\n4 H u0 p0 c0 {1,S}\n5 H u0 p0 c0 {1,S}\n6 H u0 p0 c0 {3,S}\n" + ) s1 = Species(molecule=[mr0]) - s2 = Species(molecule=[mr1a,mr1b]) - s3 = Species(molecule=[mp1a,mp1b]) + s2 = Species(molecule=[mr1a, mr1b]) + s3 = Species(molecule=[mp1a, mp1b]) reactants = [s1, s2] products = [s1, s3] - reaction = TemplateReaction(reactants=reactants, - products=products, - family='H_Abstraction') - family = get_db('kinetics').families['H_Abstraction'] + reaction = TemplateReaction( + reactants=reactants, products=products, family="H_Abstraction" + ) + family = get_db("kinetics").families["H_Abstraction"] print(reaction.reactants) print(reaction.products) family.add_atom_labels_for_reaction(reaction, output_with_resonance=False) @@ -1107,23 +1306,27 @@ def test_add_atom_labels_for_reaction_3(self): found_labels = [] for species in reaction.reactants: for atom in species.molecule[0].atoms: - if atom.label != '': + if atom.label != "": found_labels.append(atom.label) - self.assertEqual(len(found_labels), 3, 'wrong number of labels found {0}'.format(found_labels)) - self.assertIn('*1', found_labels) - self.assertIn('*2', found_labels) - self.assertIn('*3', found_labels) + self.assertEqual( + len(found_labels), + 3, + "wrong number of labels found {0}".format(found_labels), + ) + self.assertIn("*1", found_labels) + self.assertIn("*2", found_labels) + self.assertIn("*3", found_labels) # test for the products too found_labels = [] for species in reaction.products: for atom in species.molecule[0].atoms: - if atom.label != '': + if atom.label != "": found_labels.append(atom.label) self.assertEqual(len(found_labels), 3) - self.assertIn('*1', found_labels) - self.assertIn('*2', found_labels) - self.assertIn('*3', found_labels) + self.assertIn("*1", found_labels) + self.assertIn("*2", found_labels) + self.assertIn("*3", found_labels) def test_species_preserved_after_generate_reactions(self): """ @@ -1131,22 +1334,26 @@ def test_species_preserved_after_generate_reactions(self): This tests a case involving identical reactants """ - reactant1 = Species(index=1, label='ethyl', smiles='C[CH2]') - reactant1_copy = reactant1.copy(deep=True) # These copies record the state of the original attributes - expected_product_1 = Species(smiles='CC') - expected_product_2 = Species(smiles='C=C') + reactant1 = Species(index=1, label="ethyl", smiles="C[CH2]") + reactant1_copy = reactant1.copy( + deep=True + ) # These copies record the state of the original attributes + expected_product_1 = Species(smiles="CC") + expected_product_2 = Species(smiles="C=C") reaction_list = self.database.kinetics.generate_reactions_from_families( - [reactant1, reactant1], only_families=['Disproportionation'], resonance=True + [reactant1, reactant1], only_families=["Disproportionation"], resonance=True ) # First confirm that we get the expected reaction self.assertEqual(len(reaction_list), 1) reaction = reaction_list[0] - case_1 = (reaction.products[0].is_isomorphic(expected_product_1) and - reaction.products[1].is_isomorphic(expected_product_2)) - case_2 = (reaction.products[0].is_isomorphic(expected_product_2) and - reaction.products[1].is_isomorphic(expected_product_1)) + case_1 = reaction.products[0].is_isomorphic( + expected_product_1 + ) and reaction.products[1].is_isomorphic(expected_product_2) + case_2 = reaction.products[0].is_isomorphic( + expected_product_2 + ) and reaction.products[1].is_isomorphic(expected_product_1) # Only one case should be true self.assertTrue(case_1 or case_2) @@ -1172,7 +1379,10 @@ def test_species_preserved_after_generate_reactions(self): self.assertEqual(reactant1.label, reactant1_copy.label) self.assertEqual(reactant1.props, reactant1_copy.props) self.assertEqual(reactant1.molecule, reactant1_copy.molecule) - self.assertEqual(reactant1.molecule[0].get_all_labeled_atoms(), reactant1_copy.molecule[0].get_all_labeled_atoms()) + self.assertEqual( + reactant1.molecule[0].get_all_labeled_atoms(), + reactant1_copy.molecule[0].get_all_labeled_atoms(), + ) self.assertEqual(reactant1.molecule[0].props, reactant1_copy.molecule[0].props) def test_species_preserved_after_generate_reactions_2(self): @@ -1181,15 +1391,19 @@ def test_species_preserved_after_generate_reactions_2(self): This tests a case involving benzene bond modification """ - reactant1 = Species(index=1, label='methyl', smiles='[CH3]') - reactant2 = Species(index=2, label='benzene', smiles='c1ccccc1') + reactant1 = Species(index=1, label="methyl", smiles="[CH3]") + reactant2 = Species(index=2, label="benzene", smiles="c1ccccc1") reactant2.generate_resonance_structures() # Only benzene has resonance structures - reactant1_copy = reactant1.copy(deep=True) # These copies record the state of the original attributes + reactant1_copy = reactant1.copy( + deep=True + ) # These copies record the state of the original attributes reactant2_copy = reactant2.copy(deep=True) - expected_product = Species(smiles='CC1[CH]C=CC=C1') + expected_product = Species(smiles="CC1[CH]C=CC=C1") reaction_list = self.database.kinetics.generate_reactions_from_families( - [reactant1, reactant2], only_families=['R_Addition_MultipleBond'], resonance=True + [reactant1, reactant2], + only_families=["R_Addition_MultipleBond"], + resonance=True, ) # First confirm that we get the expected reaction @@ -1223,7 +1437,13 @@ def test_species_preserved_after_generate_reactions_2(self): self.assertEqual(reactant2.props, reactant2_copy.props) self.assertEqual(reactant1.molecule, reactant1_copy.molecule) self.assertEqual(reactant2.molecule, reactant2_copy.molecule) - self.assertEqual(reactant1.molecule[0].get_all_labeled_atoms(), reactant1_copy.molecule[0].get_all_labeled_atoms()) - self.assertEqual(reactant2.molecule[0].get_all_labeled_atoms(), reactant2_copy.molecule[0].get_all_labeled_atoms()) + self.assertEqual( + reactant1.molecule[0].get_all_labeled_atoms(), + reactant1_copy.molecule[0].get_all_labeled_atoms(), + ) + self.assertEqual( + reactant2.molecule[0].get_all_labeled_atoms(), + reactant2_copy.molecule[0].get_all_labeled_atoms(), + ) self.assertEqual(reactant1.molecule[0].props, reactant1_copy.molecule[0].props) self.assertEqual(reactant2.molecule[0].props, reactant2_copy.molecule[0].props) diff --git a/test/rmgpy/data/kinetics/libraryTest.py b/test/rmgpy/data/kinetics/libraryTest.py index 07f2da8434..1669c17d43 100644 --- a/test/rmgpy/data/kinetics/libraryTest.py +++ b/test/rmgpy/data/kinetics/libraryTest.py @@ -43,8 +43,8 @@ ################################################### -class TestLibrary(unittest.TestCase): +class TestLibrary(unittest.TestCase): @classmethod def setUpClass(cls): """ @@ -53,63 +53,101 @@ def setUpClass(cls): # Set up a dummy database cls.database = KineticsDatabase() cls.database.load_libraries( - os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'libraries'), - libraries=None) # this loads all of them + os.path.join( + settings["test_data.directory"], + "testing_database", + "kinetics", + "libraries", + ), + libraries=None, + ) # this loads all of them cls.libraries = cls.database.libraries def test_get_library_reactions(self): """ test that get_library_reactions loads reactions correctly """ - lib_rxns = self.libraries['GRI-Mech3.0'].get_library_reactions() + lib_rxns = self.libraries["GRI-Mech3.0"].get_library_reactions() for rxn in lib_rxns: self.assertIsInstance(rxn, LibraryReaction) - lib_rxns = self.libraries['ethane-oxidation'].get_library_reactions() # should have no direct library reactions + lib_rxns = self.libraries[ + "ethane-oxidation" + ].get_library_reactions() # should have no direct library reactions for rxn in lib_rxns: if isinstance(rxn.kinetics, PDepKineticsModel): - self.assertIsInstance(rxn, LibraryReaction) # can load pdep as networks yet so load as libraries + self.assertIsInstance( + rxn, LibraryReaction + ) # can load pdep as networks yet so load as libraries else: - self.assertIsInstance(rxn, TemplateReaction) # all reactions are template based + self.assertIsInstance( + rxn, TemplateReaction + ) # all reactions are template based def test_save_library(self): """ This tests the library.save method by writing a new temporary file and loading it and comparing the original and copied reactions """ - for library_name in ['ethane-oxidation', 'surface-example']: - copy_path = os.path.join(settings['test_data.directory'], 'testing_database', - 'kinetics', 'libraries', library_name+'-copy') + for library_name in ["ethane-oxidation", "surface-example"]: + copy_path = os.path.join( + settings["test_data.directory"], + "testing_database", + "kinetics", + "libraries", + library_name + "-copy", + ) if os.path.exists(copy_path): logging.warning(f"Removing existing directory {copy_path}.") shutil.rmtree(copy_path) os.makedirs(copy_path) try: - self.libraries[library_name].save(os.path.join(copy_path, 'reactions.py')) + self.libraries[library_name].save( + os.path.join(copy_path, "reactions.py") + ) self.database.load_libraries( - os.path.join(settings['test_data.directory'], 'testing_database', - 'kinetics', 'libraries'), - libraries=None) # this loads all of them, including the new copy - original_rxns = self.database.libraries[library_name].get_library_reactions() - copy_rxns = self.database.libraries[library_name+'-copy'].get_library_reactions() + os.path.join( + settings["test_data.directory"], + "testing_database", + "kinetics", + "libraries", + ), + libraries=None, + ) # this loads all of them, including the new copy + original_rxns = self.database.libraries[ + library_name + ].get_library_reactions() + copy_rxns = self.database.libraries[ + library_name + "-copy" + ].get_library_reactions() for i in range(len(original_rxns)): - if repr(original_rxns[i]).strip() != repr(copy_rxns[i]).strip(): # if it's representation looks different... - self.assertIsInstance(copy_rxns[i], TemplateReaction) # ...it must be a TemplateReaction - #Todo: we need to check more carefully for equivalence, + if ( + repr(original_rxns[i]).strip() != repr(copy_rxns[i]).strip() + ): # if it's representation looks different... + self.assertIsInstance( + copy_rxns[i], TemplateReaction + ) # ...it must be a TemplateReaction + # Todo: we need to check more carefully for equivalence, # eg. is the metal attribute saved for surface reactions? finally: shutil.rmtree(copy_path) def test_loading_external_kinetic_library(self): """This tests loading a kinetic library which is not in the RMG-database repo""" - kinetic_lib_in_db_path = os.path.join(settings['database.directory'], 'kinetics', 'libraries', 'NOx2018') - kinetic_lib_in_test_dir_path = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data', 'copied_kinetic_lib') + kinetic_lib_in_db_path = os.path.join( + settings["database.directory"], "kinetics", "libraries", "NOx2018" + ) + kinetic_lib_in_test_dir_path = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data", "copied_kinetic_lib" + ) os.makedirs(kinetic_lib_in_test_dir_path) - for file_name in ['reactions.py', 'dictionary.txt']: - shutil.copyfile(src=os.path.join(kinetic_lib_in_db_path, file_name), - dst=os.path.join(kinetic_lib_in_test_dir_path, file_name)) - self.database.load_libraries(path='', libraries=[kinetic_lib_in_test_dir_path]) - self.assertIn('copied_kinetic_lib', list(self.database.libraries.keys())) + for file_name in ["reactions.py", "dictionary.txt"]: + shutil.copyfile( + src=os.path.join(kinetic_lib_in_db_path, file_name), + dst=os.path.join(kinetic_lib_in_test_dir_path, file_name), + ) + self.database.load_libraries(path="", libraries=[kinetic_lib_in_test_dir_path]) + self.assertIn("copied_kinetic_lib", list(self.database.libraries.keys())) shutil.rmtree(kinetic_lib_in_test_dir_path, ignore_errors=True) def test_generate_high_p_limit_kinetics(self): @@ -117,13 +155,15 @@ def test_generate_high_p_limit_kinetics(self): Test that a :class:Arrhenius kinetics object representing the high pressure limit rate is returned from Troe/Lindmann/PDepArrhenius/Chebyshev kinetic classes """ - lib_rxns = self.libraries['lib_net'].get_library_reactions() + lib_rxns = self.libraries["lib_net"].get_library_reactions() for rxn in lib_rxns: self.assertIsNone(rxn.network_kinetics) logging.debug("Processing reaction {0}".format(rxn)) success = rxn.generate_high_p_limit_kinetics() - if (isinstance(rxn.kinetics, PDepArrhenius) and rxn.kinetics.pressures.value_si[-1] < 9000000) \ - or not rxn.is_unimolecular(): + if ( + isinstance(rxn.kinetics, PDepArrhenius) + and rxn.kinetics.pressures.value_si[-1] < 9000000 + ) or not rxn.is_unimolecular(): # generate_high_p_limit_kinetics() should return `False` if the reaction is not unimolecular # or if it is a PDepArrhenius or Chebyshev with Pmax < 90 bar self.assertFalse(success) @@ -140,4 +180,6 @@ def test_generate_high_p_limit_kinetics(self): # 1. Check that the T exponent in the modified Arrhenius (the "n") equals to 0 self.assertAlmostEqual(rxn.network_kinetics.n.value_si, 0) # 2. Check that the pre-exponential factor equals to 6e+8 m^3/(mol*s) - self.assertAlmostEqual(int(rxn.network_kinetics.A.value_si), 6e+8) + self.assertAlmostEqual( + int(rxn.network_kinetics.A.value_si), 6e8 + ) diff --git a/test/rmgpy/data/solvationTest.py b/test/rmgpy/data/solvationTest.py index 14194cdcff..da16b1d6ac 100644 --- a/test/rmgpy/data/solvationTest.py +++ b/test/rmgpy/data/solvationTest.py @@ -31,8 +31,15 @@ from unittest import TestCase, TestLoader, TextTestRunner from rmgpy import settings -from rmgpy.data.solvation import DatabaseError, SoluteData, SolvationDatabase, SolventLibrary, \ - get_critical_temperature, get_liquid_saturation_density, get_gas_saturation_density +from rmgpy.data.solvation import ( + DatabaseError, + SoluteData, + SolvationDatabase, + SolventLibrary, + get_critical_temperature, + get_liquid_saturation_density, + get_gas_saturation_density, +) from rmgpy.molecule import Molecule from rmgpy.rmg.main import RMG from rmgpy.rmg.main import Species @@ -40,12 +47,12 @@ ################################################### -class TestSoluteDatabase(TestCase): +class TestSoluteDatabase(TestCase): @classmethod def setUpClass(cls): cls.database = SolvationDatabase() - cls.database.load(os.path.join(settings['database.directory'], 'solvation')) + cls.database.load(os.path.join(settings["database.directory"], "solvation")) @classmethod def tearDownClass(cls): @@ -53,13 +60,18 @@ def tearDownClass(cls): Reset the database & liquid parameters for solution """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None def test_solute_library(self): """Test we can obtain solute parameters from a library""" - species = Species(molecule=[Molecule(smiles='COC=O')]) # methyl formate - we know this is in the solute library + species = Species( + molecule=[Molecule(smiles="COC=O")] + ) # methyl formate - we know this is in the solute library - library_data = self.database.get_solute_data_from_library(species, self.database.libraries['solute']) + library_data = self.database.get_solute_data_from_library( + species, self.database.libraries["solute"] + ) self.assertEqual(len(library_data), 3) solute_data = self.database.get_solute_data(species) @@ -72,24 +84,30 @@ def test_solute_library(self): def test_mcgowan(self): """Test we can calculate and set the McGowan volume for species containing H,C,O,N or S""" self.testCases = [ - ['CCCCCCCC', 1.2358], # n-octane, in library - ['C(CO)O', 0.5078], # ethylene glycol - ['CC#N', 0.4042], # acetonitrile - ['CCS', 0.5539] # ethanethiol + ["CCCCCCCC", 1.2358], # n-octane, in library + ["C(CO)O", 0.5078], # ethylene glycol + ["CC#N", 0.4042], # acetonitrile + ["CCS", 0.5539], # ethanethiol ] for smiles, volume in self.testCases: species = Species(molecule=[Molecule(smiles=smiles)]) solute_data = self.database.get_solute_data(species) - solute_data.set_mcgowan_volume(species) # even if it was found in library, recalculate - self.assertIsNotNone(solute_data.V) # so if it wasn't found in library, we should have calculated it - self.assertAlmostEqual(solute_data.V, volume) # the volume is what we expect given the atoms and bonds + solute_data.set_mcgowan_volume( + species + ) # even if it was found in library, recalculate + self.assertIsNotNone( + solute_data.V + ) # so if it wasn't found in library, we should have calculated it + self.assertAlmostEqual( + solute_data.V, volume + ) # the volume is what we expect given the atoms and bonds def test_diffusivity(self): """Test that for a given solvent viscosity and temperature we can calculate a solute's diffusivity""" - species = Species(molecule=[Molecule(smiles='O')]) # water + species = Species(molecule=[Molecule(smiles="O")]) # water solute_data = self.database.get_solute_data(species) - temperature = 298. + temperature = 298.0 solvent_viscosity = 0.00089 # water is about 8.9e-4 Pa.s d = solute_data.get_stokes_diffusivity(temperature, solvent_viscosity) # m2/s self.assertAlmostEqual((d * 1e9), 1.3, 1) @@ -97,20 +115,20 @@ def test_diffusivity(self): def test_solvent_library(self): """Test we can obtain solvent parameters and data count from a library""" - solvent_data = self.database.get_solvent_data('water') + solvent_data = self.database.get_solvent_data("water") self.assertIsNotNone(solvent_data) self.assertEqual(solvent_data.s_h, -0.75922) - self.assertRaises(DatabaseError, self.database.get_solvent_data, 'orange_juice') - solvent_data = self.database.get_solvent_data('cyclohexane') - self.assertEqual(solvent_data.name_in_coolprop, 'CycloHexane') - solvent_data_count = self.database.get_solvent_data_count('dodecan-1-ol') + self.assertRaises(DatabaseError, self.database.get_solvent_data, "orange_juice") + solvent_data = self.database.get_solvent_data("cyclohexane") + self.assertEqual(solvent_data.name_in_coolprop, "CycloHexane") + solvent_data_count = self.database.get_solvent_data_count("dodecan-1-ol") self.assertEqual(solvent_data_count.dGsolvCount, 11) - dHsolvMAE = (0.05, 'kcal/mol') + dHsolvMAE = (0.05, "kcal/mol") self.assertTrue(solvent_data_count.dHsolvMAE == dHsolvMAE) def test_viscosity(self): """Test we can calculate the solvent viscosity given a temperature and its A-E correlation parameters""" - solvent_data = self.database.get_solvent_data('water') + solvent_data = self.database.get_solvent_data("water") self.assertAlmostEqual(solvent_data.get_solvent_viscosity(298), 0.0009155) def test_critical_temperature(self): @@ -118,10 +136,10 @@ def test_critical_temperature(self): Test we can calculate the solvent critical temperature given the solvent's name_in_coolprop and we can raise DatabaseError when the solvent's name_in_coolprop is None. """ - solvent_data = self.database.get_solvent_data('water') + solvent_data = self.database.get_solvent_data("water") solvent_name = solvent_data.name_in_coolprop self.assertAlmostEqual(get_critical_temperature(solvent_name), 647.096) - solvent_data = self.database.get_solvent_data('dibutylether') + solvent_data = self.database.get_solvent_data("dibutylether") solvent_name = solvent_data.name_in_coolprop self.assertRaises(DatabaseError, get_critical_temperature, solvent_name) @@ -131,28 +149,32 @@ def test_saturation_density(self): and temperature and we can raise DatabaseError when the compound is not available in CoolProp or the temperature is out of the calculable range. """ - compound_name = 'Hexane' + compound_name = "Hexane" temp = 400 # in K - self.assertAlmostEqual(get_liquid_saturation_density(compound_name, temp), 6383.22, places=2) - self.assertAlmostEqual(get_gas_saturation_density(compound_name, temp), 162.99, places=2) + self.assertAlmostEqual( + get_liquid_saturation_density(compound_name, temp), 6383.22, places=2 + ) + self.assertAlmostEqual( + get_gas_saturation_density(compound_name, temp), 162.99, places=2 + ) # Unsupported compound name self.assertRaises(DatabaseError, get_gas_saturation_density, "Hexadecane", temp) # Out of the valid temperature range self.assertRaises(DatabaseError, get_gas_saturation_density, compound_name, 700) def test_find_solvent(self): - """ Test we can find solvents from the solvent library using SMILES""" + """Test we can find solvents from the solvent library using SMILES""" # Case 1: one solvent is matched solvent_smiles = "NC=O" match_list = self.database.find_solvent_from_smiles(solvent_smiles) self.assertEqual(len(match_list), 1) - self.assertTrue(match_list[0][0] == 'formamide') + self.assertTrue(match_list[0][0] == "formamide") # Case 2: two solvents are matched solvent_smiles = "ClC=CCl" match_list = self.database.find_solvent_from_smiles(solvent_smiles) self.assertEqual(len(match_list), 2) - self.assertTrue(match_list[0][0] == 'cis-1,2-dichloroethene') - self.assertTrue(match_list[1][0] == 'trans-1,2-dichloroethene') + self.assertTrue(match_list[0][0] == "cis-1,2-dichloroethene") + self.assertTrue(match_list[1][0] == "trans-1,2-dichloroethene") # Case 3: no solvent is matched solvent_smiles = "C(CCl)O" match_list = self.database.find_solvent_from_smiles(solvent_smiles) @@ -160,18 +182,18 @@ def test_find_solvent(self): def test_solute_groups(self): """Test we can correctly load the solute groups from the solvation group database""" - solute_group = self.database.groups['group'].entries['Cds-N3dCbCb'] + solute_group = self.database.groups["group"].entries["Cds-N3dCbCb"] self.assertEqual(solute_group.data_count.S, 28) self.assertEqual(solute_group.data.B, 0.06652) - solute_group = self.database.groups['ring'].entries['FourMember'] + solute_group = self.database.groups["ring"].entries["FourMember"] self.assertIsNone(solute_group.data_count) - self.assertEqual(solute_group.data, 'Cyclobutane') + self.assertEqual(solute_group.data, "Cyclobutane") def test_solute_generation(self): """Test we can estimate Abraham solute parameters correctly using group contributions""" self.testCases = [ - ['1,2-ethanediol', 'C(CO)O', 0.809, 0.740, 0.393, 2.482, 0.584, 0.508] + ["1,2-ethanediol", "C(CO)O", 0.809, 0.740, 0.393, 2.482, 0.584, 0.508] ] for name, smiles, S, B, E, L, A, V in self.testCases: @@ -192,13 +214,17 @@ def test_solute_with_resonance_structures(self): species = Species(smiles=smiles) species.generate_resonance_structures() solute_data = self.database.get_solute_data(species) - solvent_data = self.database.get_solvent_data('water') - solvation_correction = self.database.get_solvation_correction(solute_data, solvent_data) + solvent_data = self.database.get_solvent_data("water") + solvation_correction = self.database.get_solvation_correction( + solute_data, solvent_data + ) dGsolv_spc = solvation_correction.gibbs / 1000 for mol in species.molecule: spc = Species(molecule=[mol]) solute_data = self.database.get_solute_data_from_groups(spc) - solvation_correction = self.database.get_solvation_correction(solute_data, solvent_data) + solvation_correction = self.database.get_solvation_correction( + solute_data, solvent_data + ) dGsolv_mol = solvation_correction.gibbs / 1000 if mol == species.molecule[0]: self.assertEqual(dGsolv_spc, dGsolv_mol) @@ -214,7 +240,8 @@ def test_lone_pair_solute_generation(self): 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} - """) + """ + ) species = Species(molecule=[molecule]) solute_data = self.database.get_solute_data_from_groups(species) self.assertIsNotNone(solute_data) @@ -227,7 +254,8 @@ def test_solute_data_generation_ammonia(self): 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - """) + """ + ) species = Species(molecule=[molecule]) solute_data = self.database.get_solute_data_from_groups(species) self.assertIsNotNone(solute_data) @@ -245,7 +273,8 @@ def test_solute_data_generation_amide(self): 7 H u0 {3,S} 8 H u0 {3,S} 9 H u0 {4,S} - """) + """ + ) species = Species(molecule=[molecule]) solute_data = self.database.get_solute_data_from_groups(species) self.assertIsNotNone(solute_data) @@ -256,14 +285,15 @@ def test_solute_data_generation_co(self): """ 1 C u0 p1 c-1 {2,T} 2 O u0 p1 c+1 {1,T} - """) + """ + ) species = Species(molecule=[molecule]) solute_data = self.database.get_solute_data_from_groups(species) self.assertIsNotNone(solute_data) def test_radical_and_lone_pair_generation(self): """ - Test we can obtain solute parameters via group additivity for a molecule with both lone + Test we can obtain solute parameters via group additivity for a molecule with both lone pairs and a radical """ molecule = Molecule().from_adjacency_list( @@ -273,7 +303,8 @@ def test_radical_and_lone_pair_generation(self): 1 C u1 p1 c0 {2,S} 2 O u0 p2 c0 {1,S} {3,S} 3 H u0 p0 c0 {2,S} - """) + """ + ) species = Species(molecule=[molecule]) solute_data = self.database.get_solute_data_from_groups(species) self.assertIsNotNone(solute_data) @@ -281,61 +312,81 @@ def test_radical_and_lone_pair_generation(self): def test_radical_solute_group(self): """Test that the existing radical group is found for the radical species when using group additivity""" # First check whether the radical group is found for the radical species - rad_species = Species(smiles='[OH]') + rad_species = Species(smiles="[OH]") rad_solute_data = self.database.get_solute_data_from_groups(rad_species) - self.assertTrue('radical' in rad_solute_data.comment) + self.assertTrue("radical" in rad_solute_data.comment) # Then check that the radical and its saturated species give different solvation free energies saturated_struct = rad_species.molecule[0].copy(deep=True) saturated_struct.saturate_radicals() sat_species = Species(molecule=[saturated_struct]) sat_solute_data = self.database.get_solute_data_from_groups(sat_species) - solvent_data = self.database.get_solvent_data('water') - rad_solvation_correction = self.database.get_solvation_correction(rad_solute_data, solvent_data) - sat_solvation_correction = self.database.get_solvation_correction(sat_solute_data, solvent_data) - self.assertNotAlmostEqual(rad_solvation_correction.gibbs / 1000, sat_solvation_correction.gibbs / 1000) + solvent_data = self.database.get_solvent_data("water") + rad_solvation_correction = self.database.get_solvation_correction( + rad_solute_data, solvent_data + ) + sat_solvation_correction = self.database.get_solvation_correction( + sat_solute_data, solvent_data + ) + self.assertNotAlmostEqual( + rad_solvation_correction.gibbs / 1000, sat_solvation_correction.gibbs / 1000 + ) def test_halogen_solute_group(self): """Test that the correct halogen groups can be found for the halogenated species using get_solute_data method""" # Check the species whose halogen-replaced form can be found from solute library - species = Species().from_smiles('CCCCCCl') + species = Species().from_smiles("CCCCCCl") solute_data = self.database.get_solute_data(species) - self.assertTrue("Solute library: n-pentane + halogen(Cl-(Cs-CsHH))" in solute_data.comment) + self.assertTrue( + "Solute library: n-pentane + halogen(Cl-(Cs-CsHH))" in solute_data.comment + ) # Check the species whose halogen-replaced form cannot be found from solute library - species = Species().from_smiles('OCCCCCCC(Br)CCCCCO') + species = Species().from_smiles("OCCCCCCC(Br)CCCCCO") solute_data = self.database.get_solute_data(species) - self.assertTrue("+ group(Cs-Cs(Os-H)HH) + halogen(Br-(Cs-CsCsH))" in solute_data.comment) + self.assertTrue( + "+ group(Cs-Cs(Os-H)HH) + halogen(Br-(Cs-CsCsH))" in solute_data.comment + ) def test_radical_halogen_solute_group(self): """Test that the correct halogen and radical groups can be found for the halogenated radical species - using get_solute_data method""" + using get_solute_data method""" # Check the species whose saturated and halogenated form can be found from solute library - species = Species().from_smiles('[O]CCCCl') + species = Species().from_smiles("[O]CCCCl") solute_data = self.database.get_solute_data(species) - self.assertTrue("Solute library: 3-Chloropropan-1-ol + radical(ROJ)" == solute_data.comment) + self.assertTrue( + "Solute library: 3-Chloropropan-1-ol + radical(ROJ)" == solute_data.comment + ) # Check the species whose saturated and halogen-replaced form can be found from solute library - species = Species().from_smiles('[O]CCCC(Br)(I)Cl') + species = Species().from_smiles("[O]CCCC(Br)(I)Cl") solute_data = self.database.get_solute_data(species) - self.assertTrue("Solute library: butan-1-ol + halogen(I-(Cs-CsHH)) + halogen(Br-(Cs-CsFCl)) + halogen(Cl-(Cs-CsFBr)) + radical(ROJ)" \ - == solute_data.comment) + self.assertTrue( + "Solute library: butan-1-ol + halogen(I-(Cs-CsHH)) + halogen(Br-(Cs-CsFCl)) + halogen(Cl-(Cs-CsFBr)) + radical(ROJ)" + == solute_data.comment + ) # Check the species whose saturated and halogen-replaced form cannot be found from solute library - species = Species().from_smiles('[NH]C(=O)CCCl') + species = Species().from_smiles("[NH]C(=O)CCCl") solute_data = self.database.get_solute_data(species) - self.assertTrue("group(Cds-Od(N3s-HH)Cs) + halogen(Cl-(Cs-CsHH)) + radical(N3_amide_pri)" in solute_data.comment) + self.assertTrue( + "group(Cds-Od(N3s-HH)Cs) + halogen(Cl-(Cs-CsHH)) + radical(N3_amide_pri)" + in solute_data.comment + ) # Check the species whose radical site is bonded to halogen - species = Species().from_smiles('F[N]C(=O)CCCl') + species = Species().from_smiles("F[N]C(=O)CCCl") solute_data = self.database.get_solute_data(species) - self.assertTrue("group(Cds-Od(N3s-HH)Cs) + halogen(Cl-(Cs-CsHH)) + halogen(F-N3s) + radical(N3_amide_sec)" in solute_data.comment) + self.assertTrue( + "group(Cds-Od(N3s-HH)Cs) + halogen(Cl-(Cs-CsHH)) + halogen(F-N3s) + radical(N3_amide_sec)" + in solute_data.comment + ) def test_correction_generation(self): """Test we can estimate solvation thermochemistry.""" self.testCases = [ # solventName, soluteName, soluteSMILES, Hsolv, Gsolv in kJ/mol - ['water', 'acetic acid', 'C(C)(=O)O', -48.48, -28.12], - ['water', 'naphthalene', 'C1=CC=CC2=CC=CC=C12', -37.15, -11.21], - ['1-octanol', 'octane', 'CCCCCCCC', -39.44, -16.83], - ['1-octanol', 'tetrahydrofuran', 'C1CCOC1', -32.27, -17.81], - ['benzene', 'toluene', 'C1(=CC=CC=C1)C', -39.33, -23.81], - ['benzene', '1,4-dioxane', 'C1COCCO1', -39.15, -22.01] + ["water", "acetic acid", "C(C)(=O)O", -48.48, -28.12], + ["water", "naphthalene", "C1=CC=CC2=CC=CC=C12", -37.15, -11.21], + ["1-octanol", "octane", "CCCCCCCC", -39.44, -16.83], + ["1-octanol", "tetrahydrofuran", "C1CCOC1", -32.27, -17.81], + ["benzene", "toluene", "C1(=CC=CC=C1)C", -39.33, -23.81], + ["benzene", "1,4-dioxane", "C1COCCO1", -39.15, -22.01], ] for solventName, soluteName, smiles, H, G in self.testCases: @@ -343,68 +394,109 @@ def test_correction_generation(self): species.generate_resonance_structures() solute_data = self.database.get_solute_data(species) solvent_data = self.database.get_solvent_data(solventName) - solvation_correction = self.database.get_solvation_correction(solute_data, solvent_data) - self.assertAlmostEqual(solvation_correction.enthalpy / 1000, H, 2, # 2 decimal places, in kJ. - msg="Solvation enthalpy discrepancy ({2:.2f}!={3:.2f}) for {0} in {1}" - "".format(soluteName, solventName, solvation_correction.enthalpy/1000, H)) - self.assertAlmostEqual(solvation_correction.gibbs / 1000, G, 2, # 2 decimal places, in kJ. - msg="Solvation Gibbs free energy discrepancy ({2:.2f}!={3:.2f}) for {0} in {1}" - "".format(soluteName, solventName, solvation_correction.gibbs/1000, G)) + solvation_correction = self.database.get_solvation_correction( + solute_data, solvent_data + ) + self.assertAlmostEqual( + solvation_correction.enthalpy / 1000, + H, + 2, # 2 decimal places, in kJ. + msg="Solvation enthalpy discrepancy ({2:.2f}!={3:.2f}) for {0} in {1}" + "".format( + soluteName, solventName, solvation_correction.enthalpy / 1000, H + ), + ) + self.assertAlmostEqual( + solvation_correction.gibbs / 1000, + G, + 2, # 2 decimal places, in kJ. + msg="Solvation Gibbs free energy discrepancy ({2:.2f}!={3:.2f}) for {0} in {1}" + "".format( + soluteName, solventName, solvation_correction.gibbs / 1000, G + ), + ) def test_Kfactor_parameters(self): """Test we can calculate the parameters for K-factor relationships""" - species = Species().from_smiles('CCC(C)=O') # 2-Butanone for a solute + species = Species().from_smiles("CCC(C)=O") # 2-Butanone for a solute solute_data = self.database.get_solute_data(species) - solvent_data = self.database.get_solvent_data('water') + solvent_data = self.database.get_solvent_data("water") correction = self.database.get_solvation_correction(solute_data, solvent_data) delG298 = correction.gibbs # in J/mol delH298 = correction.enthalpy # in J/mol delS298 = correction.entropy # in J/mol/K solvent_name = solvent_data.name_in_coolprop - kfactor_parameters = self.database.get_Kfactor_parameters(delG298, delH298, delS298, solvent_name) - self.assertAlmostEqual(kfactor_parameters.lower_T[0], -9.780, 3) # check up to 3 decimal places + kfactor_parameters = self.database.get_Kfactor_parameters( + delG298, delH298, delS298, solvent_name + ) + self.assertAlmostEqual( + kfactor_parameters.lower_T[0], -9.780, 3 + ) # check up to 3 decimal places self.assertAlmostEqual(kfactor_parameters.lower_T[1], 0.492, 3) self.assertAlmostEqual(kfactor_parameters.lower_T[2], 10.485, 3) self.assertAlmostEqual(kfactor_parameters.higher_T, 1.147, 3) self.assertAlmostEqual(kfactor_parameters.T_transition, 485.3, 1) # check that DatabaseError is raised when the solvent's name_in_coolprop is None - solvent_data = self.database.get_solvent_data('chloroform') + solvent_data = self.database.get_solvent_data("chloroform") solvent_name = solvent_data.name_in_coolprop - self.assertRaises(DatabaseError, self.database.get_Kfactor_parameters, delG298, delH298, delS298, solvent_name) + self.assertRaises( + DatabaseError, + self.database.get_Kfactor_parameters, + delG298, + delH298, + delS298, + solvent_name, + ) def test_Tdep_solvation_calculation(self): - ''' + """ Test we can calculate the temperature dependent solvation free energy and K-factor using both `get_T_dep_solvation_energy_from_LSER_298` and `get_T_dep_solvation_energy_from_input_298` methods. - ''' + """ # First, test `get_T_dep_solvation_energy_from_LSER_298` method. - species = Species().from_smiles('CCC1=CC=CC=C1') # ethylbenzene + species = Species().from_smiles("CCC1=CC=CC=C1") # ethylbenzene species.generate_resonance_structures() solute_data = self.database.get_solute_data(species) - solvent_data = self.database.get_solvent_data('benzene') - T = 500 # in K - delG, Kfactor, kH = self.database.get_T_dep_solvation_energy_from_LSER_298(solute_data, solvent_data, T) + solvent_data = self.database.get_solvent_data("benzene") + T = 500 # in K + delG, Kfactor, kH = self.database.get_T_dep_solvation_energy_from_LSER_298( + solute_data, solvent_data, T + ) self.assertAlmostEqual(Kfactor, 0.403, 3) - self.assertAlmostEqual(delG/1000, -13.59, 2) # delG is in J/mol + self.assertAlmostEqual(delG / 1000, -13.59, 2) # delG is in J/mol # For temperature greater than or equal to the critical temperature of the solvent, # it should raise InputError T = 1000 - self.assertRaises(InputError, self.database.get_T_dep_solvation_energy_from_LSER_298, - solute_data, solvent_data, T) + self.assertRaises( + InputError, + self.database.get_T_dep_solvation_energy_from_LSER_298, + solute_data, + solvent_data, + T, + ) # Now test `get_T_dep_solvation_energy_from_input_298` method. - delG298 = -23570 # in J/mol - delH298 = -40612 # in J/mol - delS298 = (delH298 - delG298) / 298 # in J/mol/K - solvent_name = 'benzene' + delG298 = -23570 # in J/mol + delH298 = -40612 # in J/mol + delS298 = (delH298 - delG298) / 298 # in J/mol/K + solvent_name = "benzene" T = 500 # in K - delG, Kfactor, kH = self.database.get_T_dep_solvation_energy_from_input_298(delG298, delH298, delS298, solvent_name, T) + delG, Kfactor, kH = self.database.get_T_dep_solvation_energy_from_input_298( + delG298, delH298, delS298, solvent_name, T + ) self.assertAlmostEqual(Kfactor, 0.567, 3) self.assertAlmostEqual(delG / 1000, -12.18, 2) # delG is in J/mol # test that it raises InputError for T above the critical temperature T = 1000 - self.assertRaises(InputError, self.database.get_T_dep_solvation_energy_from_input_298, - delG298, delH298, delS298, solvent_name, T) + self.assertRaises( + InputError, + self.database.get_T_dep_solvation_energy_from_input_298, + delG298, + delH298, + delS298, + solvent_name, + T, + ) def test_initial_species(self): """Test we can check whether the solvent is listed as one of the initial species in various scenarios""" @@ -415,17 +507,24 @@ def test_initial_species(self): # Case 1-1: the solvent water is not in the initialSpecies list, so it raises Exception rmg = RMG() rmg.initial_species = [] - solute = Species(label='n-octane', molecule=[Molecule().from_smiles('C(CCCCC)CC')]) + solute = Species( + label="n-octane", molecule=[Molecule().from_smiles("C(CCCCC)CC")] + ) rmg.initial_species.append(solute) - rmg.solvent = 'water' - solvent_structure = Species().from_smiles('O') - self.assertRaises(Exception, self.database.check_solvent_in_initial_species, rmg, solvent_structure) + rmg.solvent = "water" + solvent_structure = Species().from_smiles("O") + self.assertRaises( + Exception, + self.database.check_solvent_in_initial_species, + rmg, + solvent_structure, + ) # Case 1-2: the solvent is now octane and it is listed as the initialSpecies. Although the string # names of the solute and the solvent are different, because the solvent SMILES is provided, # it can identify the 'n-octane' as the solvent - rmg.solvent = 'octane' - solvent_structure = Species().from_smiles('CCCCCCCC') + rmg.solvent = "octane" + solvent_structure = Species().from_smiles("CCCCCCCC") self.database.check_solvent_in_initial_species(rmg, solvent_structure) self.assertTrue(rmg.initial_species[0].is_solvent) @@ -434,10 +533,15 @@ def test_initial_species(self): # Case 2-1: Since 'n-octane and 'octane' are not equal, it raises Exception solvent_structure = None - self.assertRaises(Exception, self.database.check_solvent_in_initial_species, rmg, solvent_structure) + self.assertRaises( + Exception, + self.database.check_solvent_in_initial_species, + rmg, + solvent_structure, + ) # Case 2-2: The label 'n-ocatne' is corrected to 'octane', so it is identified as the solvent - rmg.initial_species[0].label = 'octane' + rmg.initial_species[0].label = "octane" self.database.check_solvent_in_initial_species(rmg, solvent_structure) self.assertTrue(rmg.initial_species[0].is_solvent) @@ -449,19 +553,27 @@ def test_solvent_molecule(self): # Case 1: When the solventDatabase does not contain the solvent SMILES, the item attribute is None solventlibrary = SolventLibrary() - solventlibrary.load_entry(index=1, label='water', solvent=None) - self.assertTrue(solventlibrary.entries['water'].item is None) + solventlibrary.load_entry(index=1, label="water", solvent=None) + self.assertTrue(solventlibrary.entries["water"].item is None) # Case 2: When the solventDatabase contains the correct solvent SMILES, the item attribute is the instance of # Species with the correct solvent molecular structure - solventlibrary.load_entry(index=2, label='octane', solvent=None, molecule='CCCCCCCC') - solvent_species = Species().from_smiles('C(CCCCC)CC') - self.assertTrue(solvent_species.is_isomorphic(solventlibrary.entries['octane'].item[0])) + solventlibrary.load_entry( + index=2, label="octane", solvent=None, molecule="CCCCCCCC" + ) + solvent_species = Species().from_smiles("C(CCCCC)CC") + self.assertTrue( + solvent_species.is_isomorphic(solventlibrary.entries["octane"].item[0]) + ) # Case 3: When the solventDatabase contains the correct solvent adjacency list, the item attribute # is the instance of the species with the correct solvent molecular structure. # This will display the SMILES Parse Error message from the external function, but ignore it. - solventlibrary.load_entry(index=3, label='ethanol', solvent=None, molecule=""" + solventlibrary.load_entry( + index=3, + label="ethanol", + solvent=None, + molecule=""" 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 O u0 p2 c0 {2,S} {9,S} @@ -471,25 +583,39 @@ def test_solvent_molecule(self): 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} 9 H u0 p0 c0 {3,S} - """) - solvent_species = Species().from_smiles('CCO') - self.assertTrue(solvent_species.is_isomorphic(solventlibrary.entries['ethanol'].item[0])) + """, + ) + solvent_species = Species().from_smiles("CCO") + self.assertTrue( + solvent_species.is_isomorphic(solventlibrary.entries["ethanol"].item[0]) + ) # Case 4: when the solventDatabase contains incorrect values for the molecule attribute, it raises Exception # This will display the SMILES Parse Error message from the external function, but ignore it. - self.assertRaises(Exception, solventlibrary.load_entry, index=4, label='benzene', solvent=None, molecule='ring') + self.assertRaises( + Exception, + solventlibrary.load_entry, + index=4, + label="benzene", + solvent=None, + molecule="ring", + ) # Case 5: when the solventDatabase contains data for co-solvents. - solventlibrary.load_entry(index=5, label='methanol_50_water_50', solvent=None, molecule=['CO', 'O']) - solvent_species_list = [Species().from_smiles('CO'), Species().from_smiles('O')] - self.assertEqual(len(solventlibrary.entries['methanol_50_water_50'].item), 2) - for spc1 in solventlibrary.entries['methanol_50_water_50'].item: - self.assertTrue(any([spc1.is_isomorphic(spc2) for spc2 in solvent_species_list])) + solventlibrary.load_entry( + index=5, label="methanol_50_water_50", solvent=None, molecule=["CO", "O"] + ) + solvent_species_list = [Species().from_smiles("CO"), Species().from_smiles("O")] + self.assertEqual(len(solventlibrary.entries["methanol_50_water_50"].item), 2) + for spc1 in solventlibrary.entries["methanol_50_water_50"].item: + self.assertTrue( + any([spc1.is_isomorphic(spc2) for spc2 in solvent_species_list]) + ) ##################################################### -if __name__ == '__main__': +if __name__ == "__main__": suite = TestLoader().loadTestsFromTestCase(TestSoluteDatabase) TextTestRunner(verbosity=2).run(suite) diff --git a/test/rmgpy/data/surfaceTest.py b/test/rmgpy/data/surfaceTest.py index 173f544fb1..f49a421620 100644 --- a/test/rmgpy/data/surfaceTest.py +++ b/test/rmgpy/data/surfaceTest.py @@ -38,17 +38,18 @@ ################################################### -class TestMetalDatabase(TestCase): +class TestMetalDatabase(TestCase): def setUp(self): self.database = MetalDatabase() - self.database.load(os.path.join(settings['database.directory'], 'surface')) + self.database.load(os.path.join(settings["database.directory"], "surface")) def tearDown(self): """ Reset the database & parameters """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None def test_load_metal_library(self): @@ -58,22 +59,28 @@ def test_load_metal_library(self): index=1, label="Pt111", binding_energies={ - 'H': Energy(-2.75367887E+00, 'eV/molecule'), - 'C': Energy(-7.02515507E+00, 'eV/molecule'), - 'N': Energy(-4.63224568E+00, 'eV/molecule'), - 'O': Energy(-3.81153179E+00, 'eV/molecule'), + "H": Energy(-2.75367887e00, "eV/molecule"), + "C": Energy(-7.02515507e00, "eV/molecule"), + "N": Energy(-4.63224568e00, "eV/molecule"), + "O": Energy(-3.81153179e00, "eV/molecule"), }, - surface_site_density=SurfaceConcentration(2.483E-09, 'mol/cm^2'), + surface_site_density=SurfaceConcentration(2.483e-09, "mol/cm^2"), facet="111", metal="Pt", - short_desc=u"fcc", - long_desc=u""" + short_desc="fcc", + long_desc=""" Calculated by Katrin Blondal and Bjarne Kreitz at Brown University """, ) - self.assertEqual(repr(self.database.get_binding_energies(test_entry.label)), repr(test_entry.binding_energies)) - self.assertEqual(repr(self.database.get_surface_site_density(test_entry.label)), repr(test_entry.surface_site_density)) + self.assertEqual( + repr(self.database.get_binding_energies(test_entry.label)), + repr(test_entry.binding_energies), + ) + self.assertEqual( + repr(self.database.get_surface_site_density(test_entry.label)), + repr(test_entry.surface_site_density), + ) def test_write_entry_to_database(self): """Test we can write an entry to the database""" @@ -82,40 +89,50 @@ def test_write_entry_to_database(self): index=100, label="Me111", binding_energies={ - 'H': Energy(0., 'eV/molecule'), - 'C': Energy(0., 'eV/molecule'), - 'N': Energy(0., 'eV/molecule'), - 'O': Energy(0., 'eV/molecule'), + "H": Energy(0.0, "eV/molecule"), + "C": Energy(0.0, "eV/molecule"), + "N": Energy(0.0, "eV/molecule"), + "O": Energy(0.0, "eV/molecule"), }, - surface_site_density=SurfaceConcentration(0., 'mol/cm^2'), + surface_site_density=SurfaceConcentration(0.0, "mol/cm^2"), facet="111", metal="Me", - short_desc=u"fcc", - long_desc=u""" + short_desc="fcc", + long_desc=""" Test """, ) - MetalLib = self.database.libraries['surface'] + MetalLib = self.database.libraries["surface"] self.database.add_entry(test_entry) # test to see if the entry was added - self.assertEqual(repr(self.database.get_binding_energies(test_entry.label)), repr(test_entry.binding_energies)) - self.assertEqual(repr(self.database.get_surface_site_density(test_entry.label)), repr(test_entry.surface_site_density)) + self.assertEqual( + repr(self.database.get_binding_energies(test_entry.label)), + repr(test_entry.binding_energies), + ) + self.assertEqual( + repr(self.database.get_surface_site_density(test_entry.label)), + repr(test_entry.surface_site_density), + ) # write the new entry - self.database.save(os.path.join(settings['database.directory'], 'surface')) + self.database.save(os.path.join(settings["database.directory"], "surface")) # MetalLib.save_entry(os.path.join(settings['database.directory'], 'surface/libraries/metal.py'), test_entry) # test to see if entry was written - with open(os.path.join(settings['database.directory'], 'surface/libraries/metal.py'), "r") as f: + with open( + os.path.join(settings["database.directory"], "surface/libraries/metal.py"), + "r", + ) as f: if "Me111" in f.read(): self.database.remove_entry(test_entry) - self.database.save(os.path.join(settings['database.directory'], 'surface')) + self.database.save( + os.path.join(settings["database.directory"], "surface") + ) else: raise DatabaseError("Unable to write entry to database.") - def test_load_from_label(self): """Test we can obtain metal parameters from a string""" @@ -133,9 +150,10 @@ def test_load_all_entries_on_one_metal(self): self.assertGreaterEqual(len(self.database.get_all_entries_on_metal("Ni")), 2) self.assertGreaterEqual(len(self.database.get_all_entries_on_metal("Co")), 2) + ##################################################### -if __name__ == '__main__': +if __name__ == "__main__": suite = TestLoader().loadTestsFromTestCase(TestMetalDatabase) TextTestRunner(verbosity=2).run(suite) diff --git a/test/rmgpy/data/thermoTest.py b/test/rmgpy/data/thermoTest.py index 01f4200246..ac60d0132a 100644 --- a/test/rmgpy/data/thermoTest.py +++ b/test/rmgpy/data/thermoTest.py @@ -37,10 +37,22 @@ from external.wip import work_in_progress from rmgpy import settings from rmgpy.data.rmg import RMGDatabase -from rmgpy.data.thermo import ThermoDatabase, ThermoData, ThermoCentralDatabaseInterface, convert_ring_to_sub_molecule, \ - bicyclic_decomposition_for_polyring, combine_cycles, combine_two_rings_into_sub_molecule, \ - find_aromatic_bonds_from_sub_molecule, get_copy_for_one_ring, is_aromatic_ring, is_bicyclic, \ - is_ring_partial_matched, saturate_ring_bonds, split_bicyclic_into_single_rings +from rmgpy.data.thermo import ( + ThermoDatabase, + ThermoData, + ThermoCentralDatabaseInterface, + convert_ring_to_sub_molecule, + bicyclic_decomposition_for_polyring, + combine_cycles, + combine_two_rings_into_sub_molecule, + find_aromatic_bonds_from_sub_molecule, + get_copy_for_one_ring, + is_aromatic_ring, + is_bicyclic, + is_ring_partial_matched, + saturate_ring_bonds, + split_bicyclic_into_single_rings, +) from rmgpy.exceptions import DatabaseError from rmgpy.ml.estimator import MLEstimator from rmgpy.molecule.molecule import Molecule @@ -50,42 +62,51 @@ ################################################################################ + def setUpModule(): """A function that is run ONCE before all unit tests in this module.""" global database database = RMGDatabase() database.load_thermo( - os.path.join(settings['database.directory'], 'thermo'), - thermo_libraries=['DFT_QCI_thermo', 'SABIC_aromatics', 'primaryThermoLibrary'], + os.path.join(settings["database.directory"], "thermo"), + thermo_libraries=["DFT_QCI_thermo", "SABIC_aromatics", "primaryThermoLibrary"], surface=True, ) - database.load_surface(os.path.join(settings['database.directory'], 'surface')) + database.load_surface(os.path.join(settings["database.directory"], "surface")) def tearDownModule(): """A function that is run ONCE after all unit tests in this module.""" from rmgpy.data import rmg + rmg.database = None class TestThermoDatabaseLoading(unittest.TestCase): - def test_failing_loads_thermo_libraries(self): database = ThermoDatabase() - libraries = ['primaryThermoLibrary', 'GRI-Mech3.0', 'I am a library not existing in official RMG'] - path = os.path.join(settings['database.directory'], 'thermo') + libraries = [ + "primaryThermoLibrary", + "GRI-Mech3.0", + "I am a library not existing in official RMG", + ] + path = os.path.join(settings["database.directory"], "thermo") with self.assertRaises(Exception): - database.load_libraries(os.path.join(path, 'libraries'), libraries) + database.load_libraries(os.path.join(path, "libraries"), libraries) def test_loading_external_thermo_library(self): """This tests loading a thermo library which is not in the RMG-database repo""" - thermo_lib_in_db_path = os.path.join(settings['database.directory'], 'thermo', 'libraries', 'primaryNS.py') - thermo_lib_in_test_dir_path = os.path.join(os.path.dirname(rmgpy.__file__), 'test_data', 'copied_thermo_lib.py') + thermo_lib_in_db_path = os.path.join( + settings["database.directory"], "thermo", "libraries", "primaryNS.py" + ) + thermo_lib_in_test_dir_path = os.path.join( + os.path.dirname(rmgpy.__file__), "test_data", "copied_thermo_lib.py" + ) shutil.copyfile(src=thermo_lib_in_db_path, dst=thermo_lib_in_test_dir_path) database = ThermoDatabase() - database.load_libraries(path='', libraries=[thermo_lib_in_test_dir_path]) - self.assertEqual(list(database.libraries.keys()), ['copied_thermo_lib']) + database.load_libraries(path="", libraries=[thermo_lib_in_test_dir_path]) + self.assertEqual(list(database.libraries.keys()), ["copied_thermo_lib"]) os.remove(thermo_lib_in_test_dir_path) @@ -99,16 +120,22 @@ def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" global database cls.database = database.thermo - cls.database.set_binding_energies('Pt111') + cls.database.set_binding_energies("Pt111") cls.databaseWithoutLibraries = ThermoDatabase() - cls.databaseWithoutLibraries.load(os.path.join(settings['database.directory'], 'thermo'), libraries=[], surface=True) - cls.databaseWithoutLibraries.set_binding_energies('Pt111') + cls.databaseWithoutLibraries.load( + os.path.join(settings["database.directory"], "thermo"), + libraries=[], + surface=True, + ) + cls.databaseWithoutLibraries.set_binding_energies("Pt111") # Set up ML estimator - models_path = os.path.join(settings['database.directory'], 'thermo', 'ml', 'main') - hf298_path = os.path.join(models_path, 'hf298') - s298_cp_path = os.path.join(models_path, 's298_cp') + models_path = os.path.join( + settings["database.directory"], "thermo", "ml", "main" + ) + hf298_path = os.path.join(models_path, "hf298") + s298_cp_path = os.path.join(models_path, "s298_cp") cls.ml_estimator = MLEstimator(hf298_path, s298_cp_path) def test_pickle(self): @@ -117,31 +144,41 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + thermodb0 = pickle.loads(pickle.dumps(self.database)) self.assertEqual(thermodb0.library_order, self.database.library_order) - self.assertEqual(sorted(thermodb0.depository.keys()), - sorted(self.database.depository.keys())) + self.assertEqual( + sorted(thermodb0.depository.keys()), sorted(self.database.depository.keys()) + ) - self.assertEqual(sorted(thermodb0.libraries.keys()), - sorted(self.database.libraries.keys())) - self.assertEqual(sorted(thermodb0.groups.keys()), - sorted(self.database.groups.keys())) + self.assertEqual( + sorted(thermodb0.libraries.keys()), sorted(self.database.libraries.keys()) + ) + self.assertEqual( + sorted(thermodb0.groups.keys()), sorted(self.database.groups.keys()) + ) for key, depository0 in thermodb0.depository.items(): depository = self.database.depository[key] self.assertTrue(type(depository0), type(depository)) - self.assertEqual(sorted(depository0.entries.keys()), sorted(depository.entries.keys())) + self.assertEqual( + sorted(depository0.entries.keys()), sorted(depository.entries.keys()) + ) for key, library0 in thermodb0.libraries.items(): library = self.database.libraries[key] self.assertTrue(type(library0), type(library)) - self.assertEqual(sorted(library0.entries.keys()), sorted(library.entries.keys())) + self.assertEqual( + sorted(library0.entries.keys()), sorted(library.entries.keys()) + ) for key, group0 in thermodb0.groups.items(): group = self.database.groups[key] self.assertTrue(type(group0), type(group)) - self.assertEqual(sorted(group0.entries.keys()), sorted(group.entries.keys())) + self.assertEqual( + sorted(group0.entries.keys()), sorted(group.entries.keys()) + ) def test_symmetry_added_by_get_thermo_data(self): """ @@ -149,39 +186,54 @@ def test_symmetry_added_by_get_thermo_data(self): by comping with the method `estimate_thermo_via_group_additivity` """ - spc = Species(molecule=[Molecule().from_smiles('C[CH]C=CC')]) + spc = Species(molecule=[Molecule().from_smiles("C[CH]C=CC")]) thermo_with_sym = self.databaseWithoutLibraries.get_thermo_data(spc) - thermo_without_sym = self.databaseWithoutLibraries.estimate_thermo_via_group_additivity(spc.molecule[0]) + thermo_without_sym = ( + self.databaseWithoutLibraries.estimate_thermo_via_group_additivity( + spc.molecule[0] + ) + ) symmetry_number = spc.get_symmetry_number() - self.assertNotEqual(symmetry_number, spc.molecule[0].get_symmetry_number(), - 'For this test to be robust, species symmetry ({}) and molecule symmetry ({}) ' - 'must be different'.format(symmetry_number, spc.molecule[0].get_symmetry_number())) + self.assertNotEqual( + symmetry_number, + spc.molecule[0].get_symmetry_number(), + "For this test to be robust, species symmetry ({}) and molecule symmetry ({}) " + "must be different".format( + symmetry_number, spc.molecule[0].get_symmetry_number() + ), + ) - symmetry_contribution_to_entropy = - constants.R * math.log(symmetry_number) + symmetry_contribution_to_entropy = -constants.R * math.log(symmetry_number) - self.assertAlmostEqual(thermo_with_sym.get_entropy(298.), - thermo_without_sym.get_entropy(298.) + symmetry_contribution_to_entropy, - msg='The symmetry contribution is wrong {:.3f} /= {:.3f} + {:.3f}'.format( - thermo_with_sym.get_entropy(298.), thermo_without_sym.get_entropy(298.), - symmetry_contribution_to_entropy)) + self.assertAlmostEqual( + thermo_with_sym.get_entropy(298.0), + thermo_without_sym.get_entropy(298.0) + symmetry_contribution_to_entropy, + msg="The symmetry contribution is wrong {:.3f} /= {:.3f} + {:.3f}".format( + thermo_with_sym.get_entropy(298.0), + thermo_without_sym.get_entropy(298.0), + symmetry_contribution_to_entropy, + ), + ) def test_symmetry_contribution_radicals(self): """ Test that the symmetry contribution is correctly added for radicals estimated via the HBI method. - + This is done by testing thermo_data from a database and from group - additivity and ensuring they give the correct value. + additivity and ensuring they give the correct value. """ - spc = Species(molecule=[Molecule().from_smiles('[CH3]')]) + spc = Species(molecule=[Molecule().from_smiles("[CH3]")]) thermo_data_lib = self.database.get_thermo_data(spc) thermo_data_ga = self.databaseWithoutLibraries.get_thermo_data(spc) - self.assertAlmostEqual(thermo_data_lib.get_entropy(298.), thermo_data_ga.get_entropy(298.), 0) + self.assertAlmostEqual( + thermo_data_lib.get_entropy(298.0), thermo_data_ga.get_entropy(298.0), 0 + ) def test_parse_thermo_comments(self): """ @@ -189,6 +241,7 @@ def test_parse_thermo_comments(self): on various thermo comments. """ from rmgpy.thermo import NASA, NASAPolynomial + # Pure group additivity thermo. gav_species = Species( index=3, @@ -196,28 +249,52 @@ def test_parse_thermo_comments(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-1.18833, 0.11272, -4.26393e-05, -2.12017e-08, 1.441e-11, -51642.9, 38.8904], - Tmin=(100, 'K'), Tmax=(1078.35, 'K')), + coeffs=[ + -1.18833, + 0.11272, + -4.26393e-05, + -2.12017e-08, + 1.441e-11, + -51642.9, + 38.8904, + ], + Tmin=(100, "K"), + Tmax=(1078.35, "K"), + ), NASAPolynomial( - coeffs=[26.6057, 0.0538434, -2.22538e-05, 4.22393e-09, -3.00808e-13, -60208.4, -109.218], - Tmin=(1078.35, 'K'), Tmax=(5000, 'K')) + coeffs=[ + 26.6057, + 0.0538434, + -2.22538e-05, + 4.22393e-09, + -3.00808e-13, + -60208.4, + -109.218, + ], + Tmin=(1078.35, "K"), + Tmax=(5000, "K"), + ), ], - Tmin=(100, 'K'), Tmax=(5000, 'K'), + Tmin=(100, "K"), + Tmax=(5000, "K"), comment=""" Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-CsCsHH) + longDistanceInteraction_noncyclic(CsCs-ST) + group(Cs-CbCsHH) + group(Cs-CsHHH) + group(Cs-CsHHH) + group(Cb-Cs) + group(Cb-O2s) + group(Cb-O2s) + group(Cb-H) + group(Cb-H) + group(Cb-H) + group(O2s-CbH) + group(O2s-CbH) + longDistanceInteraction_cyclic(o_OH_OH) + longDistanceInteraction_cyclic(o_OH_OH) + ring(Benzene) -"""), - molecule=[Molecule(smiles="c1c(O)c(O)c(CC(C)CC)cc1")] +""", + ), + molecule=[Molecule(smiles="c1c(O)c(O)c(CC(C)CC)cc1")], ) source = self.database.extract_source_from_comments(gav_species) - self.assertTrue('GAV' in source, 'Should have found that the thermo source is GAV.') - self.assertEqual(len(source['GAV']['group']), 8) - self.assertEqual(len(source['GAV']['longDistanceInteraction_noncyclic']), 1) - self.assertEqual(len(source['GAV']['longDistanceInteraction_cyclic']), 1) - self.assertEqual(len(source['GAV']['ring']), 1) + self.assertTrue( + "GAV" in source, "Should have found that the thermo source is GAV." + ) + self.assertEqual(len(source["GAV"]["group"]), 8) + self.assertEqual(len(source["GAV"]["longDistanceInteraction_noncyclic"]), 1) + self.assertEqual(len(source["GAV"]["longDistanceInteraction_cyclic"]), 1) + self.assertEqual(len(source["GAV"]["ring"]), 1) # Pure library thermo dipk = Species( @@ -226,18 +303,41 @@ def test_parse_thermo_comments(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.35002, 0.017618, -2.46235e-05, 1.7684e-08, -4.87962e-12, 35555.7, 5.75335], - Tmin=(100, 'K'), Tmax=(888.28, 'K')), + coeffs=[ + 3.35002, + 0.017618, + -2.46235e-05, + 1.7684e-08, + -4.87962e-12, + 35555.7, + 5.75335, + ], + Tmin=(100, "K"), + Tmax=(888.28, "K"), + ), NASAPolynomial( - coeffs=[6.36001, 0.00406378, -1.73509e-06, 5.05949e-10, -4.49975e-14, 35021, -8.41155], - Tmin=(888.28, 'K'), Tmax=(5000, 'K')) + coeffs=[ + 6.36001, + 0.00406378, + -1.73509e-06, + 5.05949e-10, + -4.49975e-14, + 35021, + -8.41155, + ], + Tmin=(888.28, "K"), + Tmax=(5000, "K"), + ), ], - Tmin=(100, 'K'), Tmax=(5000, 'K'), comment="""Thermo library: DIPK"""), - molecule=[Molecule(smiles="CC(C)C(=O)C(C)C")] + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""Thermo library: DIPK""", + ), + molecule=[Molecule(smiles="CC(C)C(=O)C(C)C")], ) source = self.database.extract_source_from_comments(dipk) - self.assertTrue('Library' in source) + self.assertTrue("Library" in source) # Mixed library and HBI thermo dipk_rad = Species( @@ -246,20 +346,46 @@ def test_parse_thermo_comments(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[2.90061, 0.0298018, -7.06268e-05, 6.9636e-08, -2.42414e-11, 54431, 5.44492], - Tmin=(100, 'K'), Tmax=(882.19, 'K')), + coeffs=[ + 2.90061, + 0.0298018, + -7.06268e-05, + 6.9636e-08, + -2.42414e-11, + 54431, + 5.44492, + ], + Tmin=(100, "K"), + Tmax=(882.19, "K"), + ), NASAPolynomial( - coeffs=[6.70999, 0.000201027, 6.65617e-07, -7.99543e-11, 4.08721e-15, 54238.6, -9.73662], - Tmin=(882.19, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), - comment="""Thermo library: DIPK + radical(C2CJCHO)"""), - molecule=[Molecule(smiles="C[C](C)C(=O)C(C)C"), Molecule(smiles="CC(C)=C([O])C(C)C")] + coeffs=[ + 6.70999, + 0.000201027, + 6.65617e-07, + -7.99543e-11, + 4.08721e-15, + 54238.6, + -9.73662, + ], + Tmin=(882.19, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""Thermo library: DIPK + radical(C2CJCHO)""", + ), + molecule=[ + Molecule(smiles="C[C](C)C(=O)C(C)C"), + Molecule(smiles="CC(C)=C([O])C(C)C"), + ], ) source = self.database.extract_source_from_comments(dipk_rad) - self.assertTrue('Library' in source) - self.assertTrue('GAV' in source) - self.assertEqual(len(source['GAV']['radical']), 1) + self.assertTrue("Library" in source) + self.assertTrue("GAV" in source) + self.assertEqual(len(source["GAV"]["radical"]), 1) # Pure QM thermo cineole = Species( @@ -268,53 +394,124 @@ def test_parse_thermo_comments(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.324129, 0.0619667, 9.71008e-05, -1.60598e-07, 6.28285e-11, -38699.9, 29.3686], - Tmin=(100, 'K'), Tmax=(985.52, 'K')), + coeffs=[ + -0.324129, + 0.0619667, + 9.71008e-05, + -1.60598e-07, + 6.28285e-11, + -38699.9, + 29.3686, + ], + Tmin=(100, "K"), + Tmax=(985.52, "K"), + ), NASAPolynomial( - coeffs=[20.6043, 0.0586913, -2.22152e-05, 4.19949e-09, -3.06046e-13, -46791, -91.4152], - Tmin=(985.52, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), - comment="""QM MopacMolPM3 calculation attempt 1"""), - molecule=[Molecule(smiles="CC12CCC(CC1)C(C)(C)O2")] + coeffs=[ + 20.6043, + 0.0586913, + -2.22152e-05, + 4.19949e-09, + -3.06046e-13, + -46791, + -91.4152, + ], + Tmin=(985.52, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""QM MopacMolPM3 calculation attempt 1""", + ), + molecule=[Molecule(smiles="CC12CCC(CC1)C(C)(C)O2")], ) source = self.database.extract_source_from_comments(cineole) - self.assertTrue('QM' in source) + self.assertTrue("QM" in source) # Mixed QM and HBI thermo cineole_rad = Species( - index=7, label="CineoleRad", + index=7, + label="CineoleRad", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.2897, 0.0627717, 8.63299e-05, -1.47868e-07, 5.81665e-11, -14017.6, 31.0266], - Tmin=(100, 'K'), Tmax=(988.76, 'K')), + coeffs=[ + -0.2897, + 0.0627717, + 8.63299e-05, + -1.47868e-07, + 5.81665e-11, + -14017.6, + 31.0266, + ], + Tmin=(100, "K"), + Tmax=(988.76, "K"), + ), NASAPolynomial( - coeffs=[20.4836, 0.0562555, -2.13903e-05, 4.05725e-09, -2.96023e-13, -21915, -88.1205], - Tmin=(988.76, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), - comment="""QM MopacMolPM3 calculation attempt 1 + radical(Cs_P)"""), - molecule=[Molecule(smiles="[CH2]C12CCC(CC1)C(C)(C)O2")] + coeffs=[ + 20.4836, + 0.0562555, + -2.13903e-05, + 4.05725e-09, + -2.96023e-13, + -21915, + -88.1205, + ], + Tmin=(988.76, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""QM MopacMolPM3 calculation attempt 1 + radical(Cs_P)""", + ), + molecule=[Molecule(smiles="[CH2]C12CCC(CC1)C(C)(C)O2")], ) source = self.database.extract_source_from_comments(cineole_rad) - self.assertTrue('QM' in source) - self.assertTrue('GAV' in source) - self.assertEqual(len(source['GAV']['radical']), 1) + self.assertTrue("QM" in source) + self.assertTrue("GAV" in source) + self.assertEqual(len(source["GAV"]["radical"]), 1) # No thermo comments other = Species( - index=7, label="CineoleRad", + index=7, + label="CineoleRad", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.2897, 0.0627717, 8.63299e-05, -1.47868e-07, 5.81665e-11, -14017.6, 31.0266], - Tmin=(100, 'K'), Tmax=(988.76, 'K')), + coeffs=[ + -0.2897, + 0.0627717, + 8.63299e-05, + -1.47868e-07, + 5.81665e-11, + -14017.6, + 31.0266, + ], + Tmin=(100, "K"), + Tmax=(988.76, "K"), + ), NASAPolynomial( - coeffs=[20.4836, 0.0562555, -2.13903e-05, 4.05725e-09, -2.96023e-13, -21915, -88.1205], - Tmin=(988.76, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), ), - molecule=[Molecule(smiles="[CH2]C12CCC(CC1)C(C)(C)O2")] + coeffs=[ + 20.4836, + 0.0562555, + -2.13903e-05, + 4.05725e-09, + -2.96023e-13, + -21915, + -88.1205, + ], + Tmin=(988.76, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + ), + molecule=[Molecule(smiles="[CH2]C12CCC(CC1)C(C)(C)O2")], ) # Function should complain if there's no thermo comments @@ -323,57 +520,94 @@ def test_parse_thermo_comments(self): # Check a dummy species that has plus and minus thermo group contributions polycyclic = Species( - index=7, label="dummy", + index=7, + label="dummy", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.2897, 0.0627717, 8.63299e-05, -1.47868e-07, 5.81665e-11, -14017.6, 31.0266], - Tmin=(100, 'K'), Tmax=(988.76, 'K')), + coeffs=[ + -0.2897, + 0.0627717, + 8.63299e-05, + -1.47868e-07, + 5.81665e-11, + -14017.6, + 31.0266, + ], + Tmin=(100, "K"), + Tmax=(988.76, "K"), + ), NASAPolynomial( - coeffs=[20.4836, 0.0562555, -2.13903e-05, 4.05725e-09, -2.96023e-13, -21915, -88.1205], - Tmin=(988.76, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), - comment="""Thermo group additivity estimation: group(Cs-CsCsHH) + group(Cs-CsCsHH) - ring(Benzene)"""), - molecule=[Molecule(smiles="[CH2]C12CCC(CC1)C(C)(C)O2")] + coeffs=[ + 20.4836, + 0.0562555, + -2.13903e-05, + 4.05725e-09, + -2.96023e-13, + -21915, + -88.1205, + ], + Tmin=(988.76, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""Thermo group additivity estimation: group(Cs-CsCsHH) + group(Cs-CsCsHH) - ring(Benzene)""", + ), + molecule=[Molecule(smiles="[CH2]C12CCC(CC1)C(C)(C)O2")], ) source = self.database.extract_source_from_comments(polycyclic) - self.assertTrue('GAV' in source) - self.assertEqual(source['GAV']['ring'][0][1], -1) # the weight of benzene contribution should be -1 - self.assertEqual(source['GAV']['group'][0][1], 2) # weight of the group(Cs-CsCsHH) conbtribution should be 2 + self.assertTrue("GAV" in source) + self.assertEqual( + source["GAV"]["ring"][0][1], -1 + ) # the weight of benzene contribution should be -1 + self.assertEqual( + source["GAV"]["group"][0][1], 2 + ) # weight of the group(Cs-CsCsHH) conbtribution should be 2 def test_species_thermo_generation_hbi_library(self): """Test thermo generation for species objects for HBI correction on library value. - Ensure that molecule list is only reordered, and not changed after matching library value""" - spec = Species().from_smiles('C[CH]c1ccccc1') + Ensure that molecule list is only reordered, and not changed after matching library value + """ + spec = Species().from_smiles("C[CH]c1ccccc1") spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') + self.assertTrue( + "library" in thermo.comment, + "Thermo not found from library, test purpose not fulfilled.", + ) def test_species_thermo_generation_hbi_gav(self): """Test thermo generation for species objects for HBI correction on group additivity value. - Ensure that molecule list is only reordered, and not changed after group additivity""" - spec = Species().from_smiles('C[CH]c1ccccc1') + Ensure that molecule list is only reordered, and not changed after group additivity + """ + spec = Species().from_smiles("C[CH]c1ccccc1") spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.databaseWithoutLibraries.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('group additivity' in thermo.comment, 'Thermo not found from GAV, test purpose not fulfilled.') + self.assertTrue( + "group additivity" in thermo.comment, + "Thermo not found from GAV, test purpose not fulfilled.", + ) def test_species_thermo_generation_library(self): """Test thermo generation for species objects for library value. Ensure that the matched molecule is placed at the beginning of the list.""" - spec = Species().from_smiles('c12ccccc1c(C=[CH])ccc2') - arom = Molecule().from_adjacency_list(""" + spec = Species().from_smiles("c12ccccc1c(C=[CH])ccc2") + arom = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,B} {3,B} {5,B} 2 C u0 p0 c0 {1,B} {4,B} {7,B} @@ -396,10 +630,13 @@ def test_species_thermo_generation_library(self): 19 H u0 p0 c0 {7,S} 20 H u0 p0 c0 {11,S} 21 H u0 p0 c0 {12,S} -""") +""" + ) spec.generate_resonance_structures() - self.assertTrue(arom.is_isomorphic(spec.molecule[0])) # The aromatic structure should be the first one + self.assertTrue( + arom.is_isomorphic(spec.molecule[0]) + ) # The aromatic structure should be the first one # Move the aromatic structure to the end for testing spec.molecule.append(spec.molecule.pop(0)) @@ -408,8 +645,13 @@ def test_species_thermo_generation_library(self): self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue(arom.is_isomorphic(spec.molecule[0])) # The aromatic structure should now be the first one - self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') + self.assertTrue( + arom.is_isomorphic(spec.molecule[0]) + ) # The aromatic structure should now be the first one + self.assertTrue( + "library" in thermo.comment, + "Thermo not found from library, test purpose not fulfilled.", + ) def test_species_thermo_generation_ml(self): """Test thermo generation for species objects based on ML estimation.""" @@ -431,33 +673,47 @@ def test_species_thermo_generation_ml(self): # Make these large so they don't influence estimation ml_uncertainty_cutoffs = dict( - H298=Quantity(1e8, 'kcal/mol'), - S298=Quantity(1e8, 'cal/(mol*K)'), - Cp=Quantity(1e8, 'cal/(mol*K)') + H298=Quantity(1e8, "kcal/mol"), + S298=Quantity(1e8, "cal/(mol*K)"), + Cp=Quantity(1e8, "cal/(mol*K)"), ) - ml_settings['uncertainty_cutoffs'] = ml_uncertainty_cutoffs + ml_settings["uncertainty_cutoffs"] = ml_uncertainty_cutoffs - spec1 = Species().from_smiles('C[CH]c1ccccc1') + spec1 = Species().from_smiles("C[CH]c1ccccc1") spec1.generate_resonance_structures() - spec2 = Species().from_smiles('NC=O') + spec2 = Species().from_smiles("NC=O") - thermo1 = self.database.get_thermo_data_from_ml(spec1, self.ml_estimator, ml_settings) - thermo2 = self.database.get_thermo_data_from_ml(spec2, self.ml_estimator, ml_settings) + thermo1 = self.database.get_thermo_data_from_ml( + spec1, self.ml_estimator, ml_settings + ) + thermo2 = self.database.get_thermo_data_from_ml( + spec2, self.ml_estimator, ml_settings + ) self.assertIsInstance(thermo1, ThermoData) self.assertIsInstance(thermo2, ThermoData) - self.assertTrue('ML Estimation' in thermo1.comment, 'Thermo not from ML estimation, test purpose not fulfilled') - self.assertTrue('ML Estimation' in thermo2.comment, 'Thermo not from ML estimation, test purpose not fulfilled') + self.assertTrue( + "ML Estimation" in thermo1.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) + self.assertTrue( + "ML Estimation" in thermo2.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) # Now make these negative to make sure we don't use ML ml_uncertainty_cutoffs = dict( - H298=Quantity(-1.0, 'kcal/mol'), - S298=Quantity(-1.0, 'cal/(mol*K)'), - Cp=Quantity(-1.0, 'cal/(mol*K)') + H298=Quantity(-1.0, "kcal/mol"), + S298=Quantity(-1.0, "cal/(mol*K)"), + Cp=Quantity(-1.0, "cal/(mol*K)"), ) - ml_settings['uncertainty_cutoffs'] = ml_uncertainty_cutoffs + ml_settings["uncertainty_cutoffs"] = ml_uncertainty_cutoffs - thermo1 = self.database.get_thermo_data_from_ml(spec1, self.ml_estimator, ml_settings) - thermo2 = self.database.get_thermo_data_from_ml(spec2, self.ml_estimator, ml_settings) + thermo1 = self.database.get_thermo_data_from_ml( + spec1, self.ml_estimator, ml_settings + ) + thermo2 = self.database.get_thermo_data_from_ml( + spec2, self.ml_estimator, ml_settings + ) self.assertIsNone(thermo1) self.assertIsNone(thermo2) @@ -478,78 +734,114 @@ def test_thermo_generation_ml_settings(self): only_heterocyclics=False, min_cycle_overlap=0, uncertainty_cutoffs=dict( - H298=Quantity(1e8, 'kcal/mol'), - S298=Quantity(1e8, 'cal/(mol*K)'), - Cp=Quantity(1e8, 'cal/(mol*K)') - ) + H298=Quantity(1e8, "kcal/mol"), + S298=Quantity(1e8, "cal/(mol*K)"), + Cp=Quantity(1e8, "cal/(mol*K)"), + ), ) - spec1 = Species().from_smiles('CCCC') - spec2 = Species().from_smiles('CCCCC') - spec3 = Species().from_smiles('C1CC12CC2') - spec4 = Species().from_smiles('C1CC2CC1O2') + spec1 = Species().from_smiles("CCCC") + spec2 = Species().from_smiles("CCCCC") + spec3 = Species().from_smiles("C1CC12CC2") + spec4 = Species().from_smiles("C1CC2CC1O2") # Test atom limits - thermo = self.database.get_thermo_data_from_ml(spec1, self.ml_estimator, ml_settings) + thermo = self.database.get_thermo_data_from_ml( + spec1, self.ml_estimator, ml_settings + ) self.assertIsNone(thermo) - thermo = self.database.get_thermo_data_from_ml(spec2, self.ml_estimator, ml_settings) + thermo = self.database.get_thermo_data_from_ml( + spec2, self.ml_estimator, ml_settings + ) self.assertIsInstance(thermo, ThermoData) - self.assertTrue('ML Estimation' in thermo.comment, 'Thermo not from ML estimation, test purpose not fulfilled') + self.assertTrue( + "ML Estimation" in thermo.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) # Test cyclic species - ml_settings['only_cyclics'] = True - thermo = self.database.get_thermo_data_from_ml(spec2, self.ml_estimator, ml_settings) + ml_settings["only_cyclics"] = True + thermo = self.database.get_thermo_data_from_ml( + spec2, self.ml_estimator, ml_settings + ) self.assertIsNone(thermo) # Test cyclic species whether it outputs None when_both onlycyclics and heterocyclics are both True. - ml_settings['only_heterocyclics'] = True - thermo = self.database.get_thermo_data_from_ml(spec3, self.ml_estimator, ml_settings) + ml_settings["only_heterocyclics"] = True + thermo = self.database.get_thermo_data_from_ml( + spec3, self.ml_estimator, ml_settings + ) self.assertIsNone(thermo) # Test heterocyclic species when both onlycyclics and heterocyclics are both True. - thermo = self.database.get_thermo_data_from_ml(spec4, self.ml_estimator, ml_settings) + thermo = self.database.get_thermo_data_from_ml( + spec4, self.ml_estimator, ml_settings + ) self.assertIsInstance(thermo, ThermoData) - self.assertTrue('ML Estimation' in thermo.comment, 'Thermo not from ML estimation, test purpose not fulfilled') + self.assertTrue( + "ML Estimation" in thermo.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) # Test cyclic species whether it outputs None when_only heterocyclics is True - ml_settings['only_cyclics'] = False - thermo = self.database.get_thermo_data_from_ml(spec3, self.ml_estimator, ml_settings) + ml_settings["only_cyclics"] = False + thermo = self.database.get_thermo_data_from_ml( + spec3, self.ml_estimator, ml_settings + ) self.assertIsNone(thermo) # Test heterocyclic species when_only heterocyclics is True - thermo = self.database.get_thermo_data_from_ml(spec4, self.ml_estimator, ml_settings) + thermo = self.database.get_thermo_data_from_ml( + spec4, self.ml_estimator, ml_settings + ) self.assertIsInstance(thermo, ThermoData) - self.assertTrue('ML Estimation' in thermo.comment, 'Thermo not from ML estimation, test purpose not fulfilled') + self.assertTrue( + "ML Estimation" in thermo.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) # Test spiro species - ml_settings['only_heterocyclics'] = False - ml_settings['min_cycle_overlap'] = 1 - thermo = self.database.get_thermo_data_from_ml(spec3, self.ml_estimator, ml_settings) + ml_settings["only_heterocyclics"] = False + ml_settings["min_cycle_overlap"] = 1 + thermo = self.database.get_thermo_data_from_ml( + spec3, self.ml_estimator, ml_settings + ) self.assertIsInstance(thermo, ThermoData) - self.assertTrue('ML Estimation' in thermo.comment, 'Thermo not from ML estimation, test purpose not fulfilled') + self.assertTrue( + "ML Estimation" in thermo.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) # Test bridged species - ml_settings['min_cycle_overlap'] = 3 - thermo = self.database.get_thermo_data_from_ml(spec3, self.ml_estimator, ml_settings) + ml_settings["min_cycle_overlap"] = 3 + thermo = self.database.get_thermo_data_from_ml( + spec3, self.ml_estimator, ml_settings + ) self.assertIsNone(thermo) - thermo = self.database.get_thermo_data_from_ml(spec4, self.ml_estimator, ml_settings) + thermo = self.database.get_thermo_data_from_ml( + spec4, self.ml_estimator, ml_settings + ) self.assertIsInstance(thermo, ThermoData) - self.assertTrue('ML Estimation' in thermo.comment, 'Thermo not from ML estimation, test purpose not fulfilled') + self.assertTrue( + "ML Estimation" in thermo.comment, + "Thermo not from ML estimation, test purpose not fulfilled", + ) def test_thermo_estimation_not_affect_database(self): - - poly_root = self.database.groups['polycyclic'].entries['PolycyclicRing'] + poly_root = self.database.groups["polycyclic"].entries["PolycyclicRing"] previous_enthalpy = poly_root.data.get_enthalpy(298) / 4184.0 - smiles = 'C1C2CC1C=CC=C2' + smiles = "C1C2CC1C=CC=C2" spec = Species().from_smiles(smiles) spec.generate_resonance_structures() thermo_gav = self.database.get_thermo_data_from_groups(spec) polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_gav)[1] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - self.assertIn('PolycyclicRing', polycyclic_group_labels) + self.assertIn("PolycyclicRing", polycyclic_group_labels) latter_enthalpy = poly_root.data.get_enthalpy(298) / 4184.0 @@ -557,7 +849,7 @@ def test_thermo_estimation_not_affect_database(self): def test_get_all_thermo_data_fails_quietly(self): """Test that get_all_thermo_data doesn't break when GAV fails.""" - spec = Species().from_smiles('[Ne]') + spec = Species().from_smiles("[Ne]") # Check that GAV fails with self.assertRaises(DatabaseError): @@ -570,103 +862,153 @@ def test_get_all_thermo_data_fails_quietly(self): def test_lowest_h298_for_resonance_structures(self): """Test that the thermo entry with the lowest H298 is selected for a species with resonance structures""" - smiles = '[C]#C[O]' + smiles = "[C]#C[O]" # has H298 ~= 640 kJ/mol; has resonance structure `[C]=C=O` with H298 ~= 380 kJ/mol spec = Species().from_smiles(smiles) thermo_gav1 = self.database.get_thermo_data_from_groups(spec) spec.generate_resonance_structures() thermo_gav2 = self.database.get_thermo_data_from_groups(spec) - self.assertTrue(thermo_gav2.get_enthalpy(298) < thermo_gav1.get_enthalpy(298), - msg="Did not select the molecule with the lowest H298 " - "as a the thermo entry for [C]#C[O] / [C]=C=O") + self.assertTrue( + thermo_gav2.get_enthalpy(298) < thermo_gav1.get_enthalpy(298), + msg="Did not select the molecule with the lowest H298 " + "as a the thermo entry for [C]#C[O] / [C]=C=O", + ) - smiles = 'C=C[CH][O]' + smiles = "C=C[CH][O]" # has H298 ~= 209 kJ/mol; has (a reactive) resonance structure `C=CC=O` with H298 ~= -67 kJ/mol spec = Species().from_smiles(smiles) thermo_gav1 = self.database.get_thermo_data_from_groups(spec) spec.generate_resonance_structures() thermo_gav2 = self.database.get_thermo_data_from_groups(spec) - self.assertTrue(thermo_gav2.get_enthalpy(298) < thermo_gav1.get_enthalpy(298), - msg="Did not select the molecule with the lowest H298 " - "as a the thermo entry for C=C[CH][O] / C=CC=O") + self.assertTrue( + thermo_gav2.get_enthalpy(298) < thermo_gav1.get_enthalpy(298), + msg="Did not select the molecule with the lowest H298 " + "as a the thermo entry for C=C[CH][O] / C=CC=O", + ) - smiles = 'CS(=O)#S(=O)C' - # when using group additivity should instead select CS(=O)S(=O)C which has a lower enthalpy + smiles = "CS(=O)#S(=O)C" + # when using group additivity should instead select CS(=O)S(=O)C which has a lower enthalpy spec = Species().from_smiles(smiles) thermo_gav1 = self.database.get_thermo_data_from_groups(spec) spec.generate_resonance_structures() thermo_gav2 = self.database.get_thermo_data_from_groups(spec) - self.assertTrue(thermo_gav2.get_enthalpy(298) < thermo_gav1.get_enthalpy(298), - msg="Did not select the molecule with the lowest H298 " - "as a the thermo entry for CS(=O)S(=O)C / CS(=O)#S(=O)C") + self.assertTrue( + thermo_gav2.get_enthalpy(298) < thermo_gav1.get_enthalpy(298), + msg="Did not select the molecule with the lowest H298 " + "as a the thermo entry for CS(=O)S(=O)C / CS(=O)#S(=O)C", + ) def test_thermo_for_mixed_reactive_and_nonreactive_molecules(self): """Test that the thermo entry of nonreactive molecules isn't selected for a species, even if it's more stable""" - smiles = '[C]=C=O' # has H298 ~= 640 kJ/mol; has resonance structure `[C]=C=O` with H298 ~= 380 kJ/mol + smiles = "[C]=C=O" # has H298 ~= 640 kJ/mol; has resonance structure `[C]=C=O` with H298 ~= 380 kJ/mol spec = Species().from_smiles(smiles) - thermo_gav1 = self.database.get_thermo_data_from_groups(spec) # thermo of the stable molecule + thermo_gav1 = self.database.get_thermo_data_from_groups( + spec + ) # thermo of the stable molecule spec.generate_resonance_structures() - spec.molecule[0].reactive = False # set the more stable molecule to nonreactive for this check - thermo_gav2 = self.database.get_thermo_data_from_groups(spec) # thermo of the speciesless stable molecule - self.assertTrue(thermo_gav2.get_enthalpy(298) > thermo_gav1.get_enthalpy(298), - msg="Did not select the reactive molecule for thermo") + spec.molecule[ + 0 + ].reactive = False # set the more stable molecule to nonreactive for this check + thermo_gav2 = self.database.get_thermo_data_from_groups( + spec + ) # thermo of the speciesless stable molecule + self.assertTrue( + thermo_gav2.get_enthalpy(298) > thermo_gav1.get_enthalpy(298), + msg="Did not select the reactive molecule for thermo", + ) def test_thermo_for_aromatic_radicals(self): """Test that we use the most aromatic resonance structure for thermo estimation""" - spec = Species(smiles='C=[C]c1ccc2ccccc2c1') # vinylnaphthalene radical + spec = Species(smiles="C=[C]c1ccc2ccccc2c1") # vinylnaphthalene radical spec.generate_resonance_structures() thermo_gav = self.database.get_thermo_data_from_groups(spec) self.assertAlmostEqual(thermo_gav.H298.value_si / 4184, 107, delta=1) - self.assertIn('group additivity', thermo_gav.comment, 'Thermo not found from GAV, test purpose not fulfilled.') - self.assertIn('polycyclic(s2_6_6_naphthalene)', thermo_gav.comment) + self.assertIn( + "group additivity", + thermo_gav.comment, + "Thermo not found from GAV, test purpose not fulfilled.", + ) + self.assertIn("polycyclic(s2_6_6_naphthalene)", thermo_gav.comment) def test_identifying_missing_group(self): """Test identifying a missing GAV group""" # this test should be updated once data is added to the missing group - spc = Species(smiles='S[N+]#[C-]') + spc = Species(smiles="S[N+]#[C-]") spc.generate_resonance_structures() thermo_gav = self.database.get_thermo_data_from_groups(spc) - self.assertIn('missing(N5tc-C2tcS2s)', thermo_gav.comment) + self.assertIn("missing(N5tc-C2tcS2s)", thermo_gav.comment) def test_adsorbate_thermo_generation_gav(self): """Test thermo generation for adsorbate from Group Additivity value. - Ensure that molecule list is only reordered, and not changed after matching library value""" - spec = Species(molecule=[Molecule().from_adjacency_list(""" + Ensure that molecule list is only reordered, and not changed after matching library value + """ + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 X u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -5 H u0 p0 c0 {1,S}""")]) +5 H u0 p0 c0 {1,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.databaseWithoutLibraries.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('group additivity estimation' in thermo.comment, 'Thermo not found from group additivity, test purpose not fulfilled.') - self.assertTrue('radical' in thermo.comment, "Didn't apply radical correction during group estimation.") - self.assertTrue('Adsorption correction' in thermo.comment, 'Adsorption correction not added to thermo.') + self.assertTrue( + "group additivity estimation" in thermo.comment, + "Thermo not found from group additivity, test purpose not fulfilled.", + ) + self.assertTrue( + "radical" in thermo.comment, + "Didn't apply radical correction during group estimation.", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_library(self): """Test thermo generation for adsorbate from gas phase library value. - Ensure that molecule list is only reordered, and not changed after matching library value""" - spec = Species(molecule=[Molecule().from_adjacency_list(""" + Ensure that molecule list is only reordered, and not changed after matching library value + """ + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 X u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -5 H u0 p0 c0 {1,S}""")]) +5 H u0 p0 c0 {1,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') - self.assertFalse('radical' in thermo.comment, "Applied radical correction instead of finding CH3 in the library.") - self.assertTrue('Adsorption correction' in thermo.comment, 'Adsorption correction not added to thermo.') + self.assertTrue( + "library" in thermo.comment, + "Thermo not found from library, test purpose not fulfilled.", + ) + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding CH3 in the library.", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_bidentate(self): """Test thermo generation for a bidentate adsorbate, CH2XCH2X @@ -675,7 +1017,10 @@ def test_adsorbate_thermo_generation_bidentate(self): | | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 {3,S} 2 X u0 p0 c0 {4,S} 3 C u0 p0 c0 {1,S} {4,S} {5,S} {6,S} @@ -683,18 +1028,25 @@ def test_adsorbate_thermo_generation_bidentate(self): 5 H u0 p0 c0 {3,S} 6 H u0 p0 c0 {3,S} 7 H u0 p0 c0 {4,S} -8 H u0 p0 c0 {4,S}""")]) +8 H u0 p0 c0 {4,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - #self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') - self.assertFalse('radical' in thermo.comment, - "Applied radical correction instead of finding CH2=CH2") - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') + # self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding CH2=CH2", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_bidentate_double(self): """Test thermo generation for a bidentate adsorbate, CH=XCH=X @@ -703,23 +1055,33 @@ def test_adsorbate_thermo_generation_bidentate_double(self): ‖ ‖ X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 {3,D} 2 X u0 p0 c0 {4,D} 3 C u0 p0 c0 {1,D} {4,S} {5,S} 4 C u0 p0 c0 {2,D} {3,S} {6,S} 5 H u0 p0 c0 {3,S} -6 H u0 p0 c0 {4,S}""")]) +6 H u0 p0 c0 {4,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertFalse('radical' in thermo.comment, - "Applied radical correction instead of finding CH#CH") - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding CH#CH", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_bidentate_C2(self): """Test thermo generation for a bidentate adsorbate [C]#[C] @@ -729,53 +1091,95 @@ def test_adsorbate_thermo_generation_bidentate_C2(self): X X """ # Start with X-C#C-X - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 {3,S} 2 X u0 p0 c0 {4,S} 3 C u0 p0 c0 {1,S} {4,T} -4 C u0 p0 c0 {2,S} {3,T}""")]) +4 C u0 p0 c0 {2,S} {3,T}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertFalse('radical' in thermo.comment, - "Applied radical correction instead of finding C2(T) directly in library") - self.assertEqual(thermo.label, 'C2(T)XX', 'Should have found triplet C2 in the gas phase library') - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding C2(T) directly in library", + ) + self.assertEqual( + thermo.label, + "C2(T)XX", + "Should have found triplet C2 in the gas phase library", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) # Now see what happens for X=C=C=X - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 {3,D} 2 X u0 p0 c0 {4,D} 3 C u0 p0 c0 {1,D} {4,D} -4 C u0 p0 c0 {2,D} {3,D}""")]) +4 C u0 p0 c0 {2,D} {3,D}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertFalse('radical' in thermo.comment, - "Applied radical correction instead of finding C2(T) directly in library") - self.assertEqual(thermo.label, 'C2(T)XX', 'Should have found triplet C2 in the gas phase library') - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') - # Now see what happens for X#C-C#X - spec = Species(molecule=[Molecule().from_adjacency_list(""" + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding C2(T) directly in library", + ) + self.assertEqual( + thermo.label, + "C2(T)XX", + "Should have found triplet C2 in the gas phase library", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) + # Now see what happens for X#C-C#X + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 {3,T} 2 X u0 p0 c0 {4,T} 3 C u0 p0 c0 {1,T} {4,S} -4 C u0 p0 c0 {2,T} {3,S}""")]) +4 C u0 p0 c0 {2,T} {3,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertFalse('radical' in thermo.comment, - "Applied radical correction instead of finding C2(T) directly in library") - self.assertEqual(thermo.label, 'C2(T)XX', 'Should have found triplet C2 in the gas phase library') - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding C2(T) directly in library", + ) + self.assertEqual( + thermo.label, + "C2(T)XX", + "Should have found triplet C2 in the gas phase library", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_bidentate_asymmetric(self): """Test thermo generation for a bidentate adsorbate, CH=XCH2X @@ -784,24 +1188,33 @@ def test_adsorbate_thermo_generation_bidentate_asymmetric(self): ‖ | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 {3,S} 2 X u0 p0 c0 {4,D} 3 C u0 p0 c0 {1,S} {4,S} {5,S} {6,S} 4 C u0 p0 c0 {2,D} {3,S} {7,S} 5 H u0 p0 c0 {3,S} 6 H u0 p0 c0 {3,S} -7 H u0 p0 c0 {4,S}""")]) +7 H u0 p0 c0 {4,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertFalse('radical' in thermo.comment, - "Applied radical correction instead of finding C2H3 in the DFT library") - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') - + self.assertFalse( + "radical" in thermo.comment, + "Applied radical correction instead of finding C2H3 in the DFT library", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_bidentate_asymmetric_NNOH(self): """Test thermo generation for a bidentate adsorbate, N(=X)N(X)OH @@ -810,24 +1223,34 @@ def test_adsorbate_thermo_generation_bidentate_asymmetric_NNOH(self): ‖ | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {2,S} {4,S} 2 N u0 p1 c0 {1,S} {3,S} {5,S} 3 N u0 p1 c0 {2,S} {6,D} 4 H u0 p0 c0 {1,S} 5 X u0 p0 c0 {2,S} -6 X u0 p0 c0 {3,D}""")]) +6 X u0 p0 c0 {3,D}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') - match_str = 'Gas phase thermo for ON=[N]' - self.assertEqual(thermo.comment[0:len(match_str)], match_str, - 'Gas phase species in thermo.comment should be ON=[N]') - + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) + match_str = "Gas phase thermo for ON=[N]" + self.assertEqual( + thermo.comment[0 : len(match_str)], + match_str, + "Gas phase species in thermo.comment should be ON=[N]", + ) def test_adsorbate_thermo_generation_bidentate_OO(self): """Test thermo generation for a bidentate adsorbate, [X]OO[X] @@ -836,20 +1259,27 @@ def test_adsorbate_thermo_generation_bidentate_OO(self): | | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {2,S} {3,S} 2 O u0 p2 c0 {1,S} {4,S} 3 X u0 p0 c0 {1,S} -4 X u0 p0 c0 {2,S}""")]) +4 X u0 p0 c0 {2,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') - self.assertEqual(thermo.label, 'O2XX', 'thermo.label should be O2XX') - + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) + self.assertEqual(thermo.label, "O2XX", "thermo.label should be O2XX") def test_adsorbate_thermo_generation_bidentate_CO(self): """Test thermo generation for a bidentate adsorbate, [X][C-]=[O+][X] @@ -858,73 +1288,95 @@ def test_adsorbate_thermo_generation_bidentate_CO(self): | | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ [Pt][C-]=[O+][Pt] 1 O u0 p1 c+1 {2,D} {4,S} 2 C u0 p1 c-1 {1,D} {3,S} 3 X u0 p0 c0 {2,S} -4 X u0 p0 c0 {1,S}""")]) +4 X u0 p0 c0 {1,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') - self.assertEqual(thermo.label, 'COXX', 'thermo.label should be COXX') - + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) + self.assertEqual(thermo.label, "COXX", "thermo.label should be COXX") def test_adsorbate_thermo_raises_error(self): - """Test thermo generation group tree error handling. - """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + """Test thermo generation group tree error handling.""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 N u0 p1 c0 {2,D} {4,S} 2 N u0 p0 c+1 {1,D} {3,D} 3 N u0 p2 c-1 {2,D} 4 X u0 p0 c0 {1,S} -""")]) - groups = self.database.groups['adsorptionPt111'].entries +""" + ) + ] + ) + groups = self.database.groups["adsorptionPt111"].entries # save a few things we're about to change - _nstarparent = groups['N*'].parent - _nstardata = groups['N*'].data - _ostardata = groups['O*'].data + _nstarparent = groups["N*"].parent + _nstardata = groups["N*"].data + _ostardata = groups["O*"].data # change the database to cause errors - groups['N*'].data = None - groups['N*'].parent = None - with self.assertRaisesRegex(DatabaseError, 'Could not find an adsorption correction'): + groups["N*"].data = None + groups["N*"].parent = None + with self.assertRaisesRegex( + DatabaseError, "Could not find an adsorption correction" + ): thermo = self.database.get_thermo_data(spec) - groups['N*'].data = 'O*' - groups['O*'].data = 'N*' - with self.assertRaisesRegex(DatabaseError, 'circular reference'): + groups["N*"].data = "O*" + groups["O*"].data = "N*" + with self.assertRaisesRegex(DatabaseError, "circular reference"): thermo = self.database.get_thermo_data(spec) - groups['N*'].data = 'O*' - groups['O*'].data = 'foobar' - with self.assertRaisesRegex(DatabaseError, 'non-existing group'): + groups["N*"].data = "O*" + groups["O*"].data = "foobar" + with self.assertRaisesRegex(DatabaseError, "non-existing group"): thermo = self.database.get_thermo_data(spec) # Now restore the database to working order - groups['N*'].parent = _nstarparent - groups['N*'].data = _nstardata - groups['O*'].data = _ostardata + groups["N*"].parent = _nstarparent + groups["N*"].data = _nstardata + groups["O*"].data = _ostardata def test_adsorbate_thermo_generation_bidentate_weird_CO(self): """Test thermo generation for a bidentate adsorbate weird resonance of CO - + C-:O: # | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {2,S} {4,S} 2 C u0 p0 c0 {1,S} {3,T} 3 X u0 p0 c0 {2,T} -4 X u0 p0 c0 {1,S}""")]) +4 X u0 p0 c0 {1,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - self.assertTrue('Adsorption correction' in thermo.comment, - 'Adsorption correction not added to thermo.') + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) def test_adsorbate_thermo_generation_bidentate_nonadjacent(self): """Test thermo generation for a bidentate adsorbate, CH2X-CH2-CH2X @@ -933,7 +1385,10 @@ def test_adsorbate_thermo_generation_bidentate_nonadjacent(self): | | X X """ - spec = Species(molecule=[Molecule().from_adjacency_list(""" + spec = Species( + molecule=[ + Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {10,S} 3 C u0 p0 c0 {1,S} {8,S} {9,S} {11,S} @@ -944,18 +1399,26 @@ def test_adsorbate_thermo_generation_bidentate_nonadjacent(self): 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {3,S} 10 X u0 p0 c0 {2,S} -11 X u0 p0 c0 {3,S}""")]) +11 X u0 p0 c0 {3,S}""" + ) + ] + ) spec.generate_resonance_structures() initial = list(spec.molecule) # Make a copy of the list thermo = self.database.get_thermo_data(spec) self.assertEqual(len(initial), len(spec.molecule)) self.assertEqual(set(initial), set(spec.molecule)) - #self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') - self.assertTrue('radical' in thermo.comment, - "Expected to need radical correctinos to find CH2j-CH2-CH2j") - self.assertTrue('Adsorption correction' in thermo.comment, - "Adsorption correction not added to thermo.") + # self.assertTrue('library' in thermo.comment, 'Thermo not found from library, test purpose not fulfilled.') + self.assertTrue( + "radical" in thermo.comment, + "Expected to need radical correctinos to find CH2j-CH2-CH2j", + ) + self.assertTrue( + "Adsorption correction" in thermo.comment, + "Adsorption correction not added to thermo.", + ) + class TestThermoAccuracy(unittest.TestCase): """ @@ -976,26 +1439,180 @@ def setUp(self): self.testCases = [ # SMILES symm H298 S298 Cp300 Cp400 Cp500 Cp600 Cp800 Cp1000 Cp1500 - # 1,3-hexadiene decomposition products - ['C=CC=CCC', 3, 13.45, 86.37, 29.49, 37.67, 44.54, 50.12, 58.66, 64.95, 74.71], - ['[CH]=CC=CCC', 3, 72.55, 87.76, 29.30, 36.92, 43.18, 48.20, 55.84, 61.46, 70.18], - ['C=[C]C=CCC', 3, 61.15, 87.08, 29.68, 36.91, 43.03, 48.11, 55.96, 61.78, 71.54], - ['C=C[C]=CCC', 3, 61.15, 87.08, 29.68, 36.91, 43.03, 48.11, 55.96, 61.78, 71.54], - ['C=CC=[C]CC', 3, 70.35, 88.18, 29.15, 36.46, 42.6, 47.6, 55.32, 61.04, 69.95], - ['C=CC=C[CH]C', 3, 38.24, 84.41, 27.79, 35.46, 41.94, 47.43, 55.74, 61.92, 71.86], - ['C=CC=CC[CH2]', 2, 62.45, 89.78, 28.72, 36.31, 42.63, 47.72, 55.50, 61.21, 70.05], - ['[CH3]', 6, 34.81, 46.37, 9.14, 10.18, 10.81, 11.34, 12.57, 13.71, 15.2], - ['C=CC=C[CH2]', 2, 46.11, 75.82, 22.54, 28.95, 34.24, 38.64, 45.14, 49.97, 57.85], - ['[CH2]C', 6, 28.6, 59.87, 11.73, 14.47, 17.05, 19.34, 23.02, 25.91, 31.53], - ['C=CC=[CH]', 1, 85.18, 69.37, 18.93, 23.55, 27.16, 29.92, 34.02, 37.03, 41.81], - ['C=[CH]', 1, 71.62, 56.61, 10.01, 11.97, 13.66, 15.08, 17.32, 19.05, 21.85], - ['[CH]=CCC', 3, 58.99, 75.0, 20.38, 25.34, 29.68, 33.36, 39.14, 43.48, 50.22], - + [ + "C=CC=CCC", + 3, + 13.45, + 86.37, + 29.49, + 37.67, + 44.54, + 50.12, + 58.66, + 64.95, + 74.71, + ], + [ + "[CH]=CC=CCC", + 3, + 72.55, + 87.76, + 29.30, + 36.92, + 43.18, + 48.20, + 55.84, + 61.46, + 70.18, + ], + [ + "C=[C]C=CCC", + 3, + 61.15, + 87.08, + 29.68, + 36.91, + 43.03, + 48.11, + 55.96, + 61.78, + 71.54, + ], + [ + "C=C[C]=CCC", + 3, + 61.15, + 87.08, + 29.68, + 36.91, + 43.03, + 48.11, + 55.96, + 61.78, + 71.54, + ], + [ + "C=CC=[C]CC", + 3, + 70.35, + 88.18, + 29.15, + 36.46, + 42.6, + 47.6, + 55.32, + 61.04, + 69.95, + ], + [ + "C=CC=C[CH]C", + 3, + 38.24, + 84.41, + 27.79, + 35.46, + 41.94, + 47.43, + 55.74, + 61.92, + 71.86, + ], + [ + "C=CC=CC[CH2]", + 2, + 62.45, + 89.78, + 28.72, + 36.31, + 42.63, + 47.72, + 55.50, + 61.21, + 70.05, + ], + ["[CH3]", 6, 34.81, 46.37, 9.14, 10.18, 10.81, 11.34, 12.57, 13.71, 15.2], + [ + "C=CC=C[CH2]", + 2, + 46.11, + 75.82, + 22.54, + 28.95, + 34.24, + 38.64, + 45.14, + 49.97, + 57.85, + ], + ["[CH2]C", 6, 28.6, 59.87, 11.73, 14.47, 17.05, 19.34, 23.02, 25.91, 31.53], + [ + "C=CC=[CH]", + 1, + 85.18, + 69.37, + 18.93, + 23.55, + 27.16, + 29.92, + 34.02, + 37.03, + 41.81, + ], + [ + "C=[CH]", + 1, + 71.62, + 56.61, + 10.01, + 11.97, + 13.66, + 15.08, + 17.32, + 19.05, + 21.85, + ], + [ + "[CH]=CCC", + 3, + 58.99, + 75.0, + 20.38, + 25.34, + 29.68, + 33.36, + 39.14, + 43.48, + 50.22, + ], # Cyclic Structures - ['C1CCCCC1', 12, -29.45, 69.71, 27.20, 37.60, 46.60, 54.80, 67.50, 76.20, 88.50], - ['C1CCC1', 8, 6.51, 63.35, 17.39, 23.91, 29.86, 34.76, 42.40, 47.98, 56.33], - ['C1C=CC=C1', 2, 32.5, 65.5, 18.16, 24.71, 30.25, 34.7, 41.25, 45.83, 52.61], + [ + "C1CCCCC1", + 12, + -29.45, + 69.71, + 27.20, + 37.60, + 46.60, + 54.80, + 67.50, + 76.20, + 88.50, + ], + ["C1CCC1", 8, 6.51, 63.35, 17.39, 23.91, 29.86, 34.76, 42.40, 47.98, 56.33], + [ + "C1C=CC=C1", + 2, + 32.5, + 65.5, + 18.16, + 24.71, + 30.25, + 34.7, + 41.25, + 45.83, + 52.61, + ], ] @work_in_progress @@ -1003,30 +1620,61 @@ def test_new_thermo_generation(self): """ Test that the new ThermoDatabase generates appropriate thermo data. """ - for smiles, symm, H298, S298, Cp300, Cp400, Cp500, Cp600, Cp800, Cp1000, Cp1500 in self.testCases: + for ( + smiles, + symm, + H298, + S298, + Cp300, + Cp400, + Cp500, + Cp600, + Cp800, + Cp1000, + Cp1500, + ) in self.testCases: cp_list = [Cp300, Cp400, Cp500, Cp600, Cp800, Cp1000, Cp1500] species = Species().from_smiles(smiles) species.generate_resonance_structures() thermo_data = self.database.get_thermo_data_from_groups(species) molecule = species.molecule[0] for mol in species.molecule[1:]: - thermo_data0 = self.database.get_all_thermo_data(Species(molecule=[mol]))[0][0] - for data in self.database.get_all_thermo_data(Species(molecule=[mol]))[1:]: + thermo_data0 = self.database.get_all_thermo_data( + Species(molecule=[mol]) + )[0][0] + for data in self.database.get_all_thermo_data(Species(molecule=[mol]))[ + 1: + ]: if data[0].get_enthalpy(298) < thermo_data0.get_enthalpy(298): thermo_data0 = data[0] if thermo_data0.get_enthalpy(298) < thermo_data.get_enthalpy(298): thermo_data = thermo_data0 molecule = mol - self.assertAlmostEqual(H298, thermo_data.get_enthalpy(298) / 4184, places=1, - msg="H298 error for {0}. Expected {1}, but calculated {2}.".format( - smiles, H298, thermo_data.get_enthalpy(298) / 4184)) - self.assertAlmostEqual(S298, thermo_data.get_entropy(298) / 4.184, places=1, - msg="S298 error for {0}. Expected {1}, but calculated {2}.".format( - smiles, S298, thermo_data.get_entropy(298) / 4.184)) + self.assertAlmostEqual( + H298, + thermo_data.get_enthalpy(298) / 4184, + places=1, + msg="H298 error for {0}. Expected {1}, but calculated {2}.".format( + smiles, H298, thermo_data.get_enthalpy(298) / 4184 + ), + ) + self.assertAlmostEqual( + S298, + thermo_data.get_entropy(298) / 4.184, + places=1, + msg="S298 error for {0}. Expected {1}, but calculated {2}.".format( + smiles, S298, thermo_data.get_entropy(298) / 4.184 + ), + ) for T, Cp in zip(self.Tlist, cp_list): - self.assertAlmostEqual(Cp, thermo_data.get_heat_capacity(T) / 4.184, places=1, - msg="Cp{3} error for {0}. Expected {1} but calculated {2}.".format( - smiles, Cp, thermo_data.get_heat_capacity(T) / 4.184, T)) + self.assertAlmostEqual( + Cp, + thermo_data.get_heat_capacity(T) / 4.184, + places=1, + msg="Cp{3} error for {0}. Expected {1} but calculated {2}.".format( + smiles, Cp, thermo_data.get_heat_capacity(T) / 4.184, T + ), + ) def test_symmetry_number_generation(self): """ @@ -1035,18 +1683,34 @@ def test_symmetry_number_generation(self): This uses the new thermo database to generate the H298, used to select the stablest resonance isomer. """ - for smiles, symm, H298, S298, Cp300, Cp400, Cp500, Cp600, Cp800, Cp1000, Cp1500 in self.testCases: + for ( + smiles, + symm, + H298, + S298, + Cp300, + Cp400, + Cp500, + Cp600, + Cp800, + Cp1000, + Cp1500, + ) in self.testCases: species = Species().from_smiles(smiles) calc_symm = species.get_symmetry_number() - self.assertEqual(symm, calc_symm, - msg="Symmetry number error for {0}. Expected {1} but calculated {2}.".format( - smiles, symm, calc_symm)) + self.assertEqual( + symm, + calc_symm, + msg="Symmetry number error for {0}. Expected {1} but calculated {2}.".format( + smiles, symm, calc_symm + ), + ) class TestThermoAccuracyAromatics(TestThermoAccuracy): """ Contains tests for accuracy of thermo estimates and symmetry calculations for aromatics only. - + A copy of the above class, but with different test compounds. """ @@ -1054,59 +1718,85 @@ def setUp(self): self.Tlist = [300, 400, 500, 600, 800, 1000, 1500] self.testCases = [ # SMILES symm H298 S298 Cp300 Cp400 Cp500 Cp600 Cp800 Cp1000 Cp1500 - ['c1ccccc1', 12, 19.80, 64.24, 19.44, 26.64, 32.76, 37.80, 45.24, 50.46, 58.38], - ['c1ccc2ccccc2c1', 4, 36.0, 79.49, 31.94, 42.88, 52.08, 59.62, 70.72, 78.68, 90.24], + [ + "c1ccccc1", + 12, + 19.80, + 64.24, + 19.44, + 26.64, + 32.76, + 37.80, + 45.24, + 50.46, + 58.38, + ], + [ + "c1ccc2ccccc2c1", + 4, + 36.0, + 79.49, + 31.94, + 42.88, + 52.08, + 59.62, + 70.72, + 78.68, + 90.24, + ], ] def __init__(self, *args, **kwargs): super(TestThermoAccuracyAromatics, self).__init__(*args, **kwargs) - self._testMethodDoc = self._testMethodDoc.strip().split('\n')[0] + " for Aromatics.\n" + self._testMethodDoc = ( + self._testMethodDoc.strip().split("\n")[0] + " for Aromatics.\n" + ) def test_long_distance_interaction_in_aromatic_molecule(self): """ Test long distance interaction is properly calculated for aromatic molecule. """ - spec = Species().from_smiles('c(O)1c(O)c(C=O)c(C=O)c(O)c(C=O)1') + spec = Species().from_smiles("c(O)1c(O)c(C=O)c(C=O)c(O)c(C=O)1") spec.generate_resonance_structures() thermo = self.database.get_thermo_data_from_groups(spec) - self.assertIn('o_OH_OH', thermo.comment) - self.assertIn('o_OH_CHO', thermo.comment) - self.assertIn('o_CHO_CHO', thermo.comment) - self.assertIn('m_CHO_CHO', thermo.comment) - self.assertIn('p_OH_OH', thermo.comment) - self.assertIn('p_OH_CHO', thermo.comment) - self.assertIn('p_CHO_CHO', thermo.comment) + self.assertIn("o_OH_OH", thermo.comment) + self.assertIn("o_OH_CHO", thermo.comment) + self.assertIn("o_CHO_CHO", thermo.comment) + self.assertIn("m_CHO_CHO", thermo.comment) + self.assertIn("p_OH_OH", thermo.comment) + self.assertIn("p_OH_CHO", thermo.comment) + self.assertIn("p_CHO_CHO", thermo.comment) def test_long_distance_interaction_in_aromatic_radical(self): """ Test long distance interaction is properly calculated for aromatic radical. """ - spec = Species().from_smiles('c([O])1c(C=O)c(C=O)c(OC)cc1') + spec = Species().from_smiles("c([O])1c(C=O)c(C=O)c(OC)cc1") spec.generate_resonance_structures() thermo = self.database.get_thermo_data_from_groups(spec) - self.assertNotIn('o_OH_CHO', thermo.comment) - self.assertNotIn('p_OH_MeO', thermo.comment) - self.assertIn('o_Oj_CHO', thermo.comment) - self.assertIn('m_Oj_CHO', thermo.comment) - self.assertIn('p_Oj_OCH3', thermo.comment) - self.assertIn('o_CHO_CHO', thermo.comment) - self.assertIn('o_CHO_MeO', thermo.comment) + self.assertNotIn("o_OH_CHO", thermo.comment) + self.assertNotIn("p_OH_MeO", thermo.comment) + self.assertIn("o_Oj_CHO", thermo.comment) + self.assertIn("m_Oj_CHO", thermo.comment) + self.assertIn("p_Oj_OCH3", thermo.comment) + self.assertIn("o_CHO_CHO", thermo.comment) + self.assertIn("o_CHO_MeO", thermo.comment) def test_long_distance_interaction_in_aromatic_biradical(self): """ Test long distance interaction is properly calculated for aromatic biradical. """ - spec = Species().from_smiles('c([O])1c([C]=O)cc(C=O)cc1') + spec = Species().from_smiles("c([O])1c([C]=O)cc(C=O)cc1") spec.generate_resonance_structures() thermo = self.database.get_thermo_data_from_groups(spec) - self.assertNotIn('o_OH_CHO', thermo.comment) - self.assertNotIn('m_CHO_CHO', thermo.comment) - self.assertNotIn('p_OH_CHO', thermo.comment) - self.assertNotIn('o_Oj_CHO', thermo.comment) - self.assertIn('m_Cj=O_CHO', thermo.comment) + self.assertNotIn("o_OH_CHO", thermo.comment) + self.assertNotIn("m_CHO_CHO", thermo.comment) + self.assertNotIn("p_OH_CHO", thermo.comment) + self.assertNotIn("o_Oj_CHO", thermo.comment) + self.assertIn("m_Cj=O_CHO", thermo.comment) class TestCyclicThermo(unittest.TestCase): @@ -1124,19 +1814,23 @@ def test_compute_group_additivity_thermo_for_two_ring_molecule(self): """ The molecule being tested has two rings, one is 13cyclohexadiene5methylene the other is benzene ring. This method is to test thermo estimation will - give two different corrections accordingly. + give two different corrections accordingly. """ - spec = Species().from_smiles('CCCCCCCCCCCC(CC=C1C=CC=CC1)c1ccccc1') + spec = Species().from_smiles("CCCCCCCCCCCC(CC=C1C=CC=CC1)c1ccccc1") spec.generate_resonance_structures() thermo = self.database.get_thermo_data_from_groups(spec) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo + ) self.assertEqual(len(ring_groups), 2) self.assertEqual(len(polycyclic_groups), 0) - expected_matched_rings_labels = ['13cyclohexadiene5methylene', 'Benzene'] - expected_matched_rings = [self.database.groups['ring'].entries[label] - for label in expected_matched_rings_labels] + expected_matched_rings_labels = ["13cyclohexadiene5methylene", "Benzene"] + expected_matched_rings = [ + self.database.groups["ring"].entries[label] + for label in expected_matched_rings_labels + ] self.assertEqual(set(ring_groups), set(expected_matched_rings)) @@ -1144,21 +1838,27 @@ def test_thermo_for_monocyclic_and_polycyclic_same_molecule(self): """ Test a molecule that has both a polycyclic and a monocyclic ring in the same molecule """ - spec = Species().from_smiles('C(CCC1C2CCC1CC2)CC1CCC1') + spec = Species().from_smiles("C(CCC1C2CCC1CC2)CC1CCC1") spec.generate_resonance_structures() thermo = self.database.get_thermo_data_from_groups(spec) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo + ) self.assertEqual(len(ring_groups), 1) self.assertEqual(len(polycyclic_groups), 1) - expected_matched_rings_labels = ['Cyclobutane'] - expected_matched_rings = [self.database.groups['ring'].entries[label] - for label in expected_matched_rings_labels] + expected_matched_rings_labels = ["Cyclobutane"] + expected_matched_rings = [ + self.database.groups["ring"].entries[label] + for label in expected_matched_rings_labels + ] self.assertEqual(set(ring_groups), set(expected_matched_rings)) - expected_matched_polyrings_labels = ['s3_5_5_ane'] - expected_matched_polyrings = [self.database.groups['polycyclic'].entries[label] - for label in expected_matched_polyrings_labels] + expected_matched_polyrings_labels = ["s3_5_5_ane"] + expected_matched_polyrings = [ + self.database.groups["polycyclic"].entries[label] + for label in expected_matched_polyrings_labels + ] self.assertEqual(set(polycyclic_groups), set(expected_matched_polyrings)) @@ -1168,7 +1868,7 @@ def test_get_ring_groups_from_comments(self): """ from rmgpy.thermo.thermoengine import generate_thermo_data - smi = 'C12C(C3CCC2C3)C4CCC1C4' # two norbornane rings fused together + smi = "C12C(C3CCC2C3)C4CCC1C4" # two norbornane rings fused together spc = Species().from_smiles(smi) spc.thermo = generate_thermo_data(spc) @@ -1181,16 +1881,16 @@ def test_remove_group(self): """ # load up test data designed for this test database2 = ThermoDatabase() - path = os.path.join(os.path.dirname(rmgpy.__file__), 'data/test_data/') - database2.load(os.path.join(path, 'thermo'), depository=False) + path = os.path.join(os.path.dirname(rmgpy.__file__), "data/test_data/") + database2.load(os.path.join(path, "thermo"), depository=False) # load up the thermo radical database as a test - rad_group = database2.groups['radical'] + rad_group = database2.groups["radical"] # use root as removed groups parent, which should be an LogicOr node root = rad_group.top[0] # use group to remove as - group_to_remove = rad_group.entries['RJ'] + group_to_remove = rad_group.entries["RJ"] children = group_to_remove.children # remove the group @@ -1212,51 +1912,66 @@ def test_remove_group(self): # if group_to_remove is a pointer and another node pointed to it, we copy # group_to_remove pointer - self.assertIs(rad_group.entries['OJ'].data, group_to_remove.data) + self.assertIs(rad_group.entries["OJ"].data, group_to_remove.data) # Remove an entry with a ThermoData object - group_to_remove2 = rad_group.entries['CsJ'] + group_to_remove2 = rad_group.entries["CsJ"] rad_group.remove_group(group_to_remove2) # If group_to_remove was a data object, we point toward parent instead - self.assertEqual(rad_group.entries['RJ2_triplet'].data, group_to_remove2.parent.label) + self.assertEqual( + rad_group.entries["RJ2_triplet"].data, group_to_remove2.parent.label + ) # If the parent pointed toward group_to_remove, we need should have copied data object Tlist = [300, 400, 500, 600, 800, 1000, 1500] self.assertNotIsInstance(group_to_remove2.parent.data, str) - self.assertEqual(group_to_remove2.parent.data.get_enthalpy(298), group_to_remove2.data.get_enthalpy(298)) - self.assertEqual(group_to_remove2.parent.data.get_entropy(298), group_to_remove2.data.get_entropy(298)) - self.assertTrue(all([group_to_remove2.parent.data.get_heat_capacity(x) == group_to_remove2.data.get_heat_capacity(x) - for x in Tlist])) + self.assertEqual( + group_to_remove2.parent.data.get_enthalpy(298), + group_to_remove2.data.get_enthalpy(298), + ) + self.assertEqual( + group_to_remove2.parent.data.get_entropy(298), + group_to_remove2.data.get_entropy(298), + ) + self.assertTrue( + all( + [ + group_to_remove2.parent.data.get_heat_capacity(x) + == group_to_remove2.data.get_heat_capacity(x) + for x in Tlist + ] + ) + ) def test_is_ring_partial_matched(self): - # create testing molecule - smiles = 'C1CC2CCCC3CCCC(C1)C23' + smiles = "C1CC2CCCC3CCCC(C1)C23" mol = Molecule().from_smiles(smiles) polyring = [atom for atom in mol.atoms if atom.is_non_hydrogen()] # create matched group - matched_group = self.database.groups['polycyclic'].entries['PolycyclicRing'].item + matched_group = ( + self.database.groups["polycyclic"].entries["PolycyclicRing"].item + ) # test self.assertTrue(is_ring_partial_matched(polyring, matched_group)) def test_add_ring_correction_thermo_data_from_tree_for_existing_tricyclic(self): - # create testing molecule: C1CC2C3CCC(C3)C2C1 # this tricyclic molecule is already in polycyclic database # so algorithm should give complete match: s2-3_5_5_5_ane - smiles = 'C1CC2C3CCC(C3)C2C1' + smiles = "C1CC2C3CCC(C3)C2C1" mol = Molecule().from_smiles(smiles) polyring = mol.get_disparate_cycles()[1][0] - poly_groups = self.database.groups['polycyclic'] + poly_groups = self.database.groups["polycyclic"] _, matched_entry, _ = self.database._add_ring_correction_thermo_data_from_tree( - None, poly_groups, mol, polyring) + None, poly_groups, mol, polyring + ) - self.assertEqual(matched_entry.label, 's2-3_5_5_5_ane') + self.assertEqual(matched_entry.label, "s2-3_5_5_5_ane") def test_add_poly_ring_correction_thermo_data_from_heuristic_using_pyrene(self): - # create testing molecule: Pyrene with two ring of aromatic version # the other two ring of kekulized version # @@ -1264,7 +1979,7 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_pyrene(self): # RMG cannot parse the adjacencyList of that isomer correctly # so here we start with pyrene radical and get the two aromatic ring isomer # then saturate it. - smiles = 'C1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23' + smiles = "C1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() mols = [] @@ -1291,27 +2006,34 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_pyrene(self): ) self.database._add_poly_ring_correction_thermo_data_from_heuristic( - thermo_data, polyring) + thermo_data, polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ( + ring_groups, + polycyclic_groups, + ) = self.database.get_ring_groups_from_comments(thermo_data) ring_group_labels += [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels += [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] - - self.assertIn('Benzene', ring_group_labels) - self.assertIn('Cyclohexene', ring_group_labels) - self.assertIn('s2_6_6_ben_ene_1', polycyclic_group_labels) - self.assertIn('s2_6_6_diene_2_7', polycyclic_group_labels) - - def test_add_poly_ring_correction_thermo_data_from_heuristic_using_aromatic_tricyclic(self): - + polycyclic_group_labels += [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] + + self.assertIn("Benzene", ring_group_labels) + self.assertIn("Cyclohexene", ring_group_labels) + self.assertIn("s2_6_6_ben_ene_1", polycyclic_group_labels) + self.assertIn("s2_6_6_diene_2_7", polycyclic_group_labels) + + def test_add_poly_ring_correction_thermo_data_from_heuristic_using_aromatic_tricyclic( + self, + ): # create testing molecule # # creating it seems not natural in RMG, that's because # RMG cannot parse the adjacencyList of that isomer correctly # so here we start with kekulized version and generate_resonance_structures # and pick the one with two aromatic rings - smiles = 'C1=CC2C=CC=C3C=CC(=C1)C=23' + smiles = "C1=CC2C=CC=C3C=CC(=C1)C=23" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() for mol in spe.molecule: @@ -1335,22 +2057,28 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_aromatic_tric ) self.database._add_poly_ring_correction_thermo_data_from_heuristic( - thermo_data, polyring) + thermo_data, polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo_data + ) ring_group_labels = [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] - - self.assertIn('Benzene', ring_group_labels) - self.assertIn('Cyclopentene', ring_group_labels) - self.assertIn('s2_5_6_indene', polycyclic_group_labels) - self.assertIn('s2_6_6_naphthalene', polycyclic_group_labels) + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - def test_add_poly_ring_correction_thermo_data_from_heuristic_using_alkane_tricyclic(self): + self.assertIn("Benzene", ring_group_labels) + self.assertIn("Cyclopentene", ring_group_labels) + self.assertIn("s2_5_6_indene", polycyclic_group_labels) + self.assertIn("s2_6_6_naphthalene", polycyclic_group_labels) + def test_add_poly_ring_correction_thermo_data_from_heuristic_using_alkane_tricyclic( + self, + ): # create testing molecule - smiles = 'C1CC2CCCC3C(C1)C23' + smiles = "C1CC2CCCC3C(C1)C23" mol = Molecule().from_smiles(smiles) # extract polyring from the molecule @@ -1364,21 +2092,28 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_alkane_tricyc ) self.database._add_poly_ring_correction_thermo_data_from_heuristic( - thermo_data, polyring) + thermo_data, polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo_data + ) ring_group_labels = [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - self.assertIn('Cyclohexane', ring_group_labels) - self.assertIn('Cyclopropane', ring_group_labels) - self.assertIn('s2_6_6_ane', polycyclic_group_labels) - self.assertIn('s2_3_6_ane', polycyclic_group_labels) + self.assertIn("Cyclohexane", ring_group_labels) + self.assertIn("Cyclopropane", ring_group_labels) + self.assertIn("s2_6_6_ane", polycyclic_group_labels) + self.assertIn("s2_3_6_ane", polycyclic_group_labels) - def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsaturated_polycyclics1(self): + def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsaturated_polycyclics1( + self, + ): """ - Test proper thermo estimation for highly unsaturated polycyclic whose decomposed + Test proper thermo estimation for highly unsaturated polycyclic whose decomposed bicyclics are not stored in database. Those bicyclics thermo will be estimated through a heuristic formula. @@ -1386,7 +2121,7 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsatu have been added to database. """ # create testing molecule - smiles = '[CH]=C1C2=C=C3C=CC1C=C32' + smiles = "[CH]=C1C2=C=C3C=CC1C=C32" mol = Molecule().from_smiles(smiles) # extract polyring from the molecule @@ -1400,31 +2135,38 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsatu ) self.database._add_poly_ring_correction_thermo_data_from_heuristic( - thermo_data, polyring) + thermo_data, polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo_data + ) ring_group_labels = [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - self.assertIn('1,4-Cyclohexadiene', ring_group_labels) - self.assertIn('Cyclopentene', ring_group_labels) - self.assertIn('cyclobutadiene_13', ring_group_labels) - self.assertIn('s3_5_6_ane', polycyclic_group_labels) - self.assertIn('s2_4_6_ane', polycyclic_group_labels) - self.assertIn('s2_4_5_ane', polycyclic_group_labels) + self.assertIn("1,4-Cyclohexadiene", ring_group_labels) + self.assertIn("Cyclopentene", ring_group_labels) + self.assertIn("cyclobutadiene_13", ring_group_labels) + self.assertIn("s3_5_6_ane", polycyclic_group_labels) + self.assertIn("s2_4_6_ane", polycyclic_group_labels) + self.assertIn("s2_4_5_ane", polycyclic_group_labels) - def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsaturated_polycyclics2(self): + def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsaturated_polycyclics2( + self, + ): """ - Test proper thermo estimation for highly unsaturated polycyclic whose decomposed + Test proper thermo estimation for highly unsaturated polycyclic whose decomposed bicyclics are not stored in database. Those bicyclics thermo will be estimated through a heuristic formula. - + In the future, the test assertion may be updated if some of the decomposed bicyclics have been added to database. """ # create testing molecule - smiles = 'C1=C2C#CC3C=CC1C=C23' + smiles = "C1=C2C#CC3C=CC1C=C23" mol = Molecule().from_smiles(smiles) # extract polyring from the molecule @@ -1438,70 +2180,87 @@ def test_add_poly_ring_correction_thermo_data_from_heuristic_using_highly_unsatu ) self.database._add_poly_ring_correction_thermo_data_from_heuristic( - thermo_data, polyring) + thermo_data, polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo_data + ) ring_group_labels = [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - self.assertIn('1,4-Cyclohexadiene', ring_group_labels) - self.assertIn('Cyclopentyne', ring_group_labels) - self.assertIn('Cyclopentadiene', ring_group_labels) - self.assertIn('s3_5_6_ane', polycyclic_group_labels) - self.assertIn('s2_5_6_ane', polycyclic_group_labels) - self.assertIn('s2_5_5_ane', polycyclic_group_labels) + self.assertIn("1,4-Cyclohexadiene", ring_group_labels) + self.assertIn("Cyclopentyne", ring_group_labels) + self.assertIn("Cyclopentadiene", ring_group_labels) + self.assertIn("s3_5_6_ane", polycyclic_group_labels) + self.assertIn("s2_5_6_ane", polycyclic_group_labels) + self.assertIn("s2_5_5_ane", polycyclic_group_labels) def test_get_bicyclic_correction_thermo_data_from_heuristic1(self): """ Test bicyclic correction estimated properly from heuristic formula - The test molecule "C1=CCC2C1=C2" has a shared atom with Cd atomtype, - but in the correction estimation we stil expect the five-member ring + The test molecule "C1=CCC2C1=C2" has a shared atom with Cd atomtype, + but in the correction estimation we stil expect the five-member ring part to match Cyclopentene """ - smiles = 'C1=CCC2C1=C2' + smiles = "C1=CCC2C1=C2" mol = Molecule().from_smiles(smiles) # extract polyring from the molecule polyring = mol.get_disparate_cycles()[1][0] - thermo_data = self.database.get_bicyclic_correction_thermo_data_from_heuristic(polyring) + thermo_data = self.database.get_bicyclic_correction_thermo_data_from_heuristic( + polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo_data + ) ring_group_labels = [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - self.assertIn('Cyclopentane', ring_group_labels) - self.assertIn('Cyclopropane', ring_group_labels) - self.assertIn('Cyclopentene', ring_group_labels) - self.assertIn('Cyclopropene', ring_group_labels) - self.assertIn('s2_3_5_ane', polycyclic_group_labels) + self.assertIn("Cyclopentane", ring_group_labels) + self.assertIn("Cyclopropane", ring_group_labels) + self.assertIn("Cyclopentene", ring_group_labels) + self.assertIn("Cyclopropene", ring_group_labels) + self.assertIn("s2_3_5_ane", polycyclic_group_labels) def test_get_bicyclic_correction_thermo_data_from_heuristic2(self): """ Test bicyclic correction estimated properly from heuristic formula - The test molecule "C1=CCC2=C1C2" doesn't have controversial shared + The test molecule "C1=CCC2=C1C2" doesn't have controversial shared atomtypes in correction estimation, which is regarded as a simple case. """ - smiles = 'C1=CCC2=C1C2' + smiles = "C1=CCC2=C1C2" mol = Molecule().from_smiles(smiles) # extract polyring from the molecule polyring = mol.get_disparate_cycles()[1][0] - thermo_data = self.database.get_bicyclic_correction_thermo_data_from_heuristic(polyring) + thermo_data = self.database.get_bicyclic_correction_thermo_data_from_heuristic( + polyring + ) - ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments(thermo_data) + ring_groups, polycyclic_groups = self.database.get_ring_groups_from_comments( + thermo_data + ) ring_group_labels = [ringGroup.label for ringGroup in ring_groups] - polycyclic_group_labels = [polycyclicGroup.label for polycyclicGroup in polycyclic_groups] + polycyclic_group_labels = [ + polycyclicGroup.label for polycyclicGroup in polycyclic_groups + ] - self.assertIn('Cyclopentane', ring_group_labels) - self.assertIn('Cyclopropane', ring_group_labels) - self.assertIn('Cyclopentadiene', ring_group_labels) - self.assertIn('Cyclopropene', ring_group_labels) - self.assertIn('s2_3_5_ane', polycyclic_group_labels) + self.assertIn("Cyclopentane", ring_group_labels) + self.assertIn("Cyclopropane", ring_group_labels) + self.assertIn("Cyclopentadiene", ring_group_labels) + self.assertIn("Cyclopropene", ring_group_labels) + self.assertIn("s2_3_5_ane", polycyclic_group_labels) class TestMolecularManipulationInvolvedInThermoEstimation(unittest.TestCase): @@ -1510,11 +2269,10 @@ class TestMolecularManipulationInvolvedInThermoEstimation(unittest.TestCase): """ def test_convert_ring_to_sub_molecule(self): - # list out testing moleculess - smiles1 = 'C1CCCCC1' - smiles2 = 'C1CCC2CCCCC2C1' - smiles3 = 'C1CC2CCCC3CCCC(C1)C23' + smiles1 = "C1CCCCC1" + smiles2 = "C1CCC2CCCCC2C1" + smiles3 = "C1CC2CCCC3CCCC(C1)C23" mol1 = Molecule().from_smiles(smiles1) mol2 = Molecule().from_smiles(smiles2) mol3 = Molecule().from_smiles(smiles3) @@ -1562,7 +2320,7 @@ def test_get_copy_for_one_ring(self): an atom object list that contains deep copies of the atoms """ - test_atom_list = Molecule(smiles='C1CCCCC1').atoms + test_atom_list = Molecule(smiles="C1CCCCC1").atoms copied_atom_list = get_copy_for_one_ring(test_atom_list) test_molecule = Molecule(atoms=test_atom_list) @@ -1577,8 +2335,8 @@ def test_to_fail_combine_two_rings_into_sub_molecule(self): Test that if two non-overlapped rings lead to AssertionError """ - smiles1 = 'C1CCCCC1' - smiles2 = 'C1CCCCC1' + smiles1 = "C1CCCCC1" + smiles2 = "C1CCCCC1" mol1 = Molecule().from_smiles(smiles1) mol2 = Molecule().from_smiles(smiles2) @@ -1588,9 +2346,8 @@ def test_to_fail_combine_two_rings_into_sub_molecule(self): combine_two_rings_into_sub_molecule(ring1, ring2) def test_combine_two_rings_into_sub_molecule(self): - # create testing molecule - smiles1 = 'C1CCC2CCCCC2C1' + smiles1 = "C1CCC2CCCCC2C1" mol1 = Molecule().from_smiles(smiles1) # get two SSSRs @@ -1612,10 +2369,9 @@ def test_combine_two_rings_into_sub_molecule(self): self.assertEqual(len(bonds), 11) def test_is_aromatic_ring(self): - # create testing rings - smiles1 = 'C1CCC1' - smiles2 = 'C1CCCCC1' + smiles1 = "C1CCC1" + smiles2 = "C1CCCCC1" adj3 = """1 C u0 p0 c0 {2,B} {6,B} {7,S} 2 C u0 p0 c0 {1,B} {3,B} {8,S} 3 C u0 p0 c0 {2,B} {4,B} {9,S} @@ -1632,9 +2388,15 @@ def test_is_aromatic_ring(self): mol1 = Molecule().from_smiles(smiles1) mol2 = Molecule().from_smiles(smiles2) mol3 = Molecule().from_adjacency_list(adj3) - ring1mol = Molecule(atoms=[atom for atom in mol1.atoms if atom.is_non_hydrogen()]) - ring2mol = Molecule(atoms=[atom for atom in mol2.atoms if atom.is_non_hydrogen()]) - ring3mol = Molecule(atoms=[atom for atom in mol3.atoms if atom.is_non_hydrogen()]) + ring1mol = Molecule( + atoms=[atom for atom in mol1.atoms if atom.is_non_hydrogen()] + ) + ring2mol = Molecule( + atoms=[atom for atom in mol2.atoms if atom.is_non_hydrogen()] + ) + ring3mol = Molecule( + atoms=[atom for atom in mol3.atoms if atom.is_non_hydrogen()] + ) # check with expected results self.assertEqual(is_aromatic_ring(ring1mol), False) @@ -1647,7 +2409,7 @@ def test_is_bicyclic1(self): The test molecule is bicyclic, we expect is_bicyclic() returns True. """ - smiles = 'C1=CCC2C1=C2' + smiles = "C1=CCC2C1=C2" mol = Molecule().from_smiles(smiles) polyring = mol.get_disparate_cycles()[1][0] @@ -1656,17 +2418,16 @@ def test_is_bicyclic1(self): def test_is_bicyclic2(self): """ Test is_bicyclic identifies bicyclic correctly - The test molecule is tetracyclic, we expect + The test molecule is tetracyclic, we expect is_bicyclic() returns False """ - smiles = 'C1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23' + smiles = "C1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23" mol = Molecule().from_smiles(smiles) polyring = mol.get_disparate_cycles()[1][0] self.assertFalse(is_bicyclic(polyring)) def test_find_aromatic_bonds_from_sub_molecule(self): - smiles = "C1=CC=C2C=CC=CC2=C1" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() @@ -1686,7 +2447,6 @@ def test_find_aromatic_bonds_from_sub_molecule(self): self.assertEqual(len(find_aromatic_bonds_from_sub_molecule(submol2)), 6) def test_bicyclic_decomposition_for_polyring_using_pyrene(self): - # create testing molecule: Pyrene with two ring of aromatic version # the other two ring of kekulized version # @@ -1694,7 +2454,7 @@ def test_bicyclic_decomposition_for_polyring_using_pyrene(self): # RMG cannot parse the adjacencyList of that isomer correctly # so here we start with pyrene radical and get the two aromatic ring isomer # then saturate it. - smiles = 'C1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23' + smiles = "C1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() for mol in spe.molecule: @@ -1710,7 +2470,9 @@ def test_bicyclic_decomposition_for_polyring_using_pyrene(self): # extract polyring from the molecule polyring = mol.get_disparate_cycles()[1][0] - bicyclic_list, ring_occurrences_dict = bicyclic_decomposition_for_polyring(polyring) + bicyclic_list, ring_occurrences_dict = bicyclic_decomposition_for_polyring( + polyring + ) for bicyclic in bicyclic_list: bicyclic.delete_hydrogens() @@ -1734,17 +2496,18 @@ def test_bicyclic_decomposition_for_polyring_using_pyrene(self): aromatic_bond_num_in_bicyclics.append(aromatic_bond_num) aromatic_bond_num_in_bicyclics = sorted(aromatic_bond_num_in_bicyclics) expected_aromatic_bond_num_in_bicyclics = [0, 6, 6, 6, 6] - self.assertEqual(aromatic_bond_num_in_bicyclics, expected_aromatic_bond_num_in_bicyclics) + self.assertEqual( + aromatic_bond_num_in_bicyclics, expected_aromatic_bond_num_in_bicyclics + ) def test_bicyclic_decomposition_for_polyring_using_aromatic_tricyclic(self): - # create testing molecule # # creating it seems not natural in RMG, that's because # RMG cannot parse the adjacencyList of that isomer correctly # so here we start with kekulized version and generate_resonance_structures # and pick the one with two aromatic rings - smiles = 'C1=CC2C=CC=C3C=CC(=C1)C=23' + smiles = "C1=CC2C=CC=C3C=CC(=C1)C=23" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() for mol in spe.molecule: @@ -1760,7 +2523,9 @@ def test_bicyclic_decomposition_for_polyring_using_aromatic_tricyclic(self): # extract polyring from the molecule polyring = mol.get_disparate_cycles()[1][0] - bicyclic_list, ring_occurrences_dict = bicyclic_decomposition_for_polyring(polyring) + bicyclic_list, ring_occurrences_dict = bicyclic_decomposition_for_polyring( + polyring + ) for bicyclic in bicyclic_list: bicyclic.delete_hydrogens() @@ -1784,18 +2549,21 @@ def test_bicyclic_decomposition_for_polyring_using_aromatic_tricyclic(self): aromatic_bond_num_in_bicyclics.append(aromatic_bond_num) aromatic_bond_num_in_bicyclics = sorted(aromatic_bond_num_in_bicyclics) expected_aromatic_bond_num_in_bicyclics = [6, 6, 11] - self.assertEqual(aromatic_bond_num_in_bicyclics, expected_aromatic_bond_num_in_bicyclics) + self.assertEqual( + aromatic_bond_num_in_bicyclics, expected_aromatic_bond_num_in_bicyclics + ) def test_bicyclic_decomposition_for_polyring_using_alkane_tricyclic(self): - # create testing molecule - smiles = 'C1CC2CCCC3C(C1)C23' + smiles = "C1CC2CCCC3C(C1)C23" mol = Molecule().from_smiles(smiles) # extract polyring from the molecule polyring = mol.get_disparate_cycles()[1][0] - bicyclic_list, ring_occurrences_dict = bicyclic_decomposition_for_polyring(polyring) + bicyclic_list, ring_occurrences_dict = bicyclic_decomposition_for_polyring( + polyring + ) for bicyclic in bicyclic_list: bicyclic.delete_hydrogens() @@ -1819,14 +2587,16 @@ def test_bicyclic_decomposition_for_polyring_using_alkane_tricyclic(self): aromatic_bond_num_in_bicyclics.append(aromatic_bond_num) aromatic_bond_num_in_bicyclics = sorted(aromatic_bond_num_in_bicyclics) expected_aromatic_bond_num_in_bicyclics = [0, 0, 0] - self.assertEqual(aromatic_bond_num_in_bicyclics, expected_aromatic_bond_num_in_bicyclics) + self.assertEqual( + aromatic_bond_num_in_bicyclics, expected_aromatic_bond_num_in_bicyclics + ) def test_combine_cycles(self): """ This method tests the combine_cycles method, which simply joins two lists together without duplication. """ - main_cycle = Molecule(smiles='C1CCC2CCCCC2C1').atoms + main_cycle = Molecule(smiles="C1CCC2CCCCC2C1").atoms test_cycle1 = main_cycle[0:8] test_cycle2 = main_cycle[6:] joined_cycle = combine_cycles(test_cycle1, test_cycle2) @@ -1834,10 +2604,10 @@ def test_combine_cycles(self): def test_split_bicyclic_into_single_rings1(self): """ - Test bicyclic molecule "C1=CCC2C1=C2" can be divided into + Test bicyclic molecule "C1=CCC2C1=C2" can be divided into individual rings properly """ - smiles = 'C1=CCC2C1=C2' + smiles = "C1=CCC2C1=C2" mol = Molecule().from_smiles(smiles) bicyclic = mol.get_disparate_cycles()[1][0] @@ -1845,16 +2615,17 @@ def test_split_bicyclic_into_single_rings1(self): single_ring_submols = split_bicyclic_into_single_rings(bicyclic_submol) self.assertEqual(len(single_ring_submols), 2) - single_ring_submol_a, single_ring_submol_b = sorted(single_ring_submols, - key=lambda submol: len(submol.atoms)) + single_ring_submol_a, single_ring_submol_b = sorted( + single_ring_submols, key=lambda submol: len(submol.atoms) + ) single_ring_submol_a.saturate_unfilled_valence() single_ring_submol_b.saturate_unfilled_valence() - expected_submol_a = Molecule().from_smiles('C1=CC1') + expected_submol_a = Molecule().from_smiles("C1=CC1") expected_submol_a.update_connectivity_values() - expected_submol_b = Molecule().from_smiles('C1=CCCC1') + expected_submol_b = Molecule().from_smiles("C1=CCCC1") expected_submol_b.update_connectivity_values() self.assertTrue(single_ring_submol_a.is_isomorphic(expected_submol_a)) @@ -1862,11 +2633,11 @@ def test_split_bicyclic_into_single_rings1(self): def test_split_bicyclic_into_single_rings2(self): """ - Test bicyclic molecule "C1=CCC2=C1C2" can be divided into + Test bicyclic molecule "C1=CCC2=C1C2" can be divided into individual rings properly """ - smiles = 'C1=CCC2=C1C2' + smiles = "C1=CCC2=C1C2" mol = Molecule().from_smiles(smiles) bicyclic = mol.get_disparate_cycles()[1][0] @@ -1874,16 +2645,17 @@ def test_split_bicyclic_into_single_rings2(self): single_ring_submols = split_bicyclic_into_single_rings(bicyclic_submol) self.assertEqual(len(single_ring_submols), 2) - single_ring_submol_a, single_ring_submol_b = sorted(single_ring_submols, - key=lambda submol: len(submol.atoms)) + single_ring_submol_a, single_ring_submol_b = sorted( + single_ring_submols, key=lambda submol: len(submol.atoms) + ) single_ring_submol_a.saturate_unfilled_valence() single_ring_submol_b.saturate_unfilled_valence() - expected_submol_a = Molecule().from_smiles('C1=CC1') + expected_submol_a = Molecule().from_smiles("C1=CC1") expected_submol_a.update_connectivity_values() - expected_submol_b = Molecule().from_smiles('C1=CC=CC1') + expected_submol_b = Molecule().from_smiles("C1=CC=CC1") expected_submol_b.update_connectivity_values() self.assertTrue(single_ring_submol_a.is_isomorphic(expected_submol_a)) @@ -1893,26 +2665,30 @@ def test_saturate_ring_bonds1(self): """ Test unsaturated bonds of "C1=CCC2=C1C2" to be saturated properly """ - smiles = 'C1=CCC2=C1C2' + smiles = "C1=CCC2=C1C2" mol = Molecule().from_smiles(smiles) ring_submol = convert_ring_to_sub_molecule(mol.get_disparate_cycles()[1][0])[0] saturated_ring_submol, already_saturated = saturate_ring_bonds(ring_submol) - expected_saturated_ring_submol = Molecule().from_smiles('C1CCC2C1C2') + expected_saturated_ring_submol = Molecule().from_smiles("C1CCC2C1C2") expected_saturated_ring_submol.update_connectivity_values() self.assertFalse(already_saturated) - self.assertEqual(saturated_ring_submol.multiplicity, - expected_saturated_ring_submol.multiplicity) - self.assertTrue(saturated_ring_submol.is_isomorphic(expected_saturated_ring_submol)) + self.assertEqual( + saturated_ring_submol.multiplicity, + expected_saturated_ring_submol.multiplicity, + ) + self.assertTrue( + saturated_ring_submol.is_isomorphic(expected_saturated_ring_submol) + ) def test_saturate_ring_bonds2(self): """ Test unsaturated bonds of "C1=CC=C2CCCCC2=C1" to be saturated properly """ - smiles = 'C1=CC=C2CCCCC2=C1' + smiles = "C1=CC=C2CCCCC2=C1" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() mol = spe.molecule[0] @@ -1920,22 +2696,26 @@ def test_saturate_ring_bonds2(self): saturated_ring_submol, already_saturated = saturate_ring_bonds(ring_submol) - expected_spe = Species().from_smiles('C1=CC=C2CCCCC2=C1') + expected_spe = Species().from_smiles("C1=CC=C2CCCCC2=C1") expected_spe.generate_resonance_structures() expected_saturated_ring_submol = expected_spe.molecule[0] expected_saturated_ring_submol.update_connectivity_values() self.assertTrue(already_saturated) - self.assertEqual(saturated_ring_submol.multiplicity, - expected_saturated_ring_submol.multiplicity) - self.assertTrue(saturated_ring_submol.is_isomorphic(expected_saturated_ring_submol)) + self.assertEqual( + saturated_ring_submol.multiplicity, + expected_saturated_ring_submol.multiplicity, + ) + self.assertTrue( + saturated_ring_submol.is_isomorphic(expected_saturated_ring_submol) + ) def test_saturate_ring_bonds3(self): """ Test unsaturated bonds of "C1=CC=C2CC=CCC2=C1" to be saturated properly """ - smiles = 'C1=CC=C2CC=CCC2=C1' + smiles = "C1=CC=C2CC=CCC2=C1" spe = Species().from_smiles(smiles) spe.generate_resonance_structures() mol = spe.molecule[0] @@ -1943,26 +2723,32 @@ def test_saturate_ring_bonds3(self): saturated_ring_submol, already_saturated = saturate_ring_bonds(ring_submol) - expected_spe = Species().from_smiles('C1=CC=C2CCCCC2=C1') + expected_spe = Species().from_smiles("C1=CC=C2CCCCC2=C1") expected_spe.generate_resonance_structures() expected_saturated_ring_submol = expected_spe.molecule[0] expected_saturated_ring_submol.update_connectivity_values() self.assertFalse(already_saturated) - self.assertEqual(saturated_ring_submol.multiplicity, - expected_saturated_ring_submol.multiplicity) - self.assertTrue(saturated_ring_submol.is_isomorphic(expected_saturated_ring_submol)) + self.assertEqual( + saturated_ring_submol.multiplicity, + expected_saturated_ring_submol.multiplicity, + ) + self.assertTrue( + saturated_ring_submol.is_isomorphic(expected_saturated_ring_submol) + ) def get_testing_tcd_authentication_info(): try: - host = os.environ['TCD_HOST'] - port = int(os.environ['TCD_PORT']) - username = os.environ['TCD_USER'] - password = os.environ['TCD_PW'] + host = os.environ["TCD_HOST"] + port = int(os.environ["TCD_PORT"]) + username = os.environ["TCD_USER"] + password = os.environ["TCD_PW"] except KeyError: - print('Thermo Central Database Authentication Environment Variables Not Completely Set!') + print( + "Thermo Central Database Authentication Environment Variables Not Completely Set!" + ) return None, 0, None, None return host, port, username, password @@ -1975,15 +2761,15 @@ def is_tcd_available(): host = get_testing_tcd_authentication_info()[0] if host is not None: - arg = '-n' if platform.system() == 'Windows' else '-c' - result = subprocess.call(['ping', arg, '1', host]) == 0 + arg = "-n" if platform.system() == "Windows" else "-c" + result = subprocess.call(["ping", arg, "1", host]) == 0 else: result = False return result -@unittest.skip('Skipping TCD unit tests because database is offline.') +@unittest.skip("Skipping TCD unit tests because database is offline.") class TestThermoCentralDatabaseInterface(unittest.TestCase): """ Contains unit tests for methods of ThermoCentralDatabaseInterface @@ -1997,19 +2783,23 @@ def setUpClass(cls): def connect_to_test_central_database(self): host, port, username, password = get_testing_tcd_authentication_info() - application = 'test' + application = "test" - tcdi = ThermoCentralDatabaseInterface(host, port, username, password, application) + tcdi = ThermoCentralDatabaseInterface( + host, port, username, password, application + ) return tcdi def test_connect_failure(self): - host = 'somehost' + host = "somehost" port = 27017 - username = 'me' - password = 'pswd' - application = 'test' + username = "me" + password = "pswd" + application = "test" - tcdi = ThermoCentralDatabaseInterface(host, port, username, password, application) + tcdi = ThermoCentralDatabaseInterface( + host, port, username, password, application + ) self.assertTrue(tcdi.client is None) @@ -2020,59 +2810,67 @@ def test_connect_success(self): def test_satisfy_registration_requirements1(self): """ - the species is non-cyclic, currently regarded no need to + the species is non-cyclic, currently regarded no need to register in thermo central database """ tcdi = self.connect_to_test_central_database() - species = Species().from_smiles('C[CH2]') + species = Species().from_smiles("C[CH2]") thermo_data = self.database.get_thermo_data_from_groups(species) - self.assertFalse(tcdi.satisfy_registration_requirements(species, thermo_data, self.database)) + self.assertFalse( + tcdi.satisfy_registration_requirements(species, thermo_data, self.database) + ) def test_satisfy_registration_requirements2(self): """ - the species is for non-cyclic, so no need to register in + the species is for non-cyclic, so no need to register in thermo central database """ tcdi = self.connect_to_test_central_database() - species = Species().from_smiles('CC') + species = Species().from_smiles("CC") thermo_data = self.database.get_thermo_data_from_groups(species) - self.assertFalse(tcdi.satisfy_registration_requirements(species, thermo_data, self.database)) + self.assertFalse( + tcdi.satisfy_registration_requirements(species, thermo_data, self.database) + ) def test_satisfy_registration_requirements3(self): """ - the thermo is exact match, so no need to register in + the thermo is exact match, so no need to register in thermo central database """ tcdi = self.connect_to_test_central_database() - species = Species().from_smiles('C1CC1') + species = Species().from_smiles("C1CC1") thermo_data = self.database.get_thermo_data_from_groups(species) - self.assertFalse(tcdi.satisfy_registration_requirements(species, thermo_data, self.database)) + self.assertFalse( + tcdi.satisfy_registration_requirements(species, thermo_data, self.database) + ) def test_satisfy_registration_requirements4(self): """ - the thermo is from library, so no need to register in + the thermo is from library, so no need to register in thermo central database """ tcdi = self.connect_to_test_central_database() - species = Species().from_smiles('[H][H]') + species = Species().from_smiles("[H][H]") thermo_data = self.database.get_thermo_data_from_libraries(species) - self.assertFalse(tcdi.satisfy_registration_requirements(species, thermo_data, self.database)) + self.assertFalse( + tcdi.satisfy_registration_requirements(species, thermo_data, self.database) + ) def test_satisfy_registration_requirements5(self): """ - the thermo is matching generic node, so it needs to register in + the thermo is matching generic node, so it needs to register in thermo central database In the future, if RMG-database includes corresponding exact match @@ -2080,15 +2878,17 @@ def test_satisfy_registration_requirements5(self): """ tcdi = self.connect_to_test_central_database() - species = Species().from_smiles('C1C=CC2C=CC2=C1') + species = Species().from_smiles("C1C=CC2C=CC2=C1") thermo_data = self.database.get_thermo_data_from_groups(species) - self.assertTrue(tcdi.satisfy_registration_requirements(species, thermo_data, self.database)) + self.assertTrue( + tcdi.satisfy_registration_requirements(species, thermo_data, self.database) + ) def test_satisfy_registration_requirements6(self): """ - the thermo is matching generic node, so it needs to register in + the thermo is matching generic node, so it needs to register in thermo central database In the future, if RMG-database includes corresponding exact match @@ -2096,11 +2896,13 @@ def test_satisfy_registration_requirements6(self): """ tcdi = self.connect_to_test_central_database() - species = Species().from_smiles('C1=C=C2CC23C=CC=1C=C3') + species = Species().from_smiles("C1=C=C2CC23C=CC=1C=C3") thermo_data = self.database.get_thermo_data_from_groups(species) - self.assertTrue(tcdi.satisfy_registration_requirements(species, thermo_data, self.database)) + self.assertTrue( + tcdi.satisfy_registration_requirements(species, thermo_data, self.database) + ) def test_register_in_central_thermo_db1(self): """ @@ -2109,71 +2911,81 @@ def test_register_in_central_thermo_db1(self): """ # connect to thermo central database host, port, username, password = get_testing_tcd_authentication_info() - application = 'test' - tcdi = ThermoCentralDatabaseInterface(host, port, username, password, application) + application = "test" + tcdi = ThermoCentralDatabaseInterface( + host, port, username, password, application + ) # prepare species to register - species = Species().from_smiles('C1=C=C2CC23C=CC=1C=C3') + species = Species().from_smiles("C1=C=C2CC23C=CC=1C=C3") expected_aug_inchi = "InChI=1S/C10H6/c1-2-9-7-10(9)5-3-8(1)4-6-10/h3-6H,7H2" # select registration table # and clean previous data - db = getattr(tcdi.client, 'thermoCentralDB') - registration_table = getattr(db, 'registration_table') - results_table = getattr(db, 'results_table') + db = getattr(tcdi.client, "thermoCentralDB") + registration_table = getattr(db, "registration_table") + results_table = getattr(db, "results_table") registration_table.delete_many({"aug_inchi": expected_aug_inchi}) results_table.delete_many({"aug_inchi": expected_aug_inchi}) tcdi.register_in_central_thermo_db(species) - registered_species_entries = list(registration_table.find({"aug_inchi": expected_aug_inchi})) + registered_species_entries = list( + registration_table.find({"aug_inchi": expected_aug_inchi}) + ) # should expect only one registered such species self.assertEqual(len(registered_species_entries), 1) registered_species_entry = registered_species_entries[0] # check all the columns are expected - registered_species = Species().from_smiles(str(registered_species_entry['SMILES_input'])) - self.assertEqual(registered_species_entry['aug_inchi'], expected_aug_inchi) + registered_species = Species().from_smiles( + str(registered_species_entry["SMILES_input"]) + ) + self.assertEqual(registered_species_entry["aug_inchi"], expected_aug_inchi) self.assertTrue(registered_species.is_isomorphic(species)) - self.assertIn(registered_species_entry['status'], ['pending', 'submitted']) + self.assertIn(registered_species_entry["status"], ["pending", "submitted"]) # clean up the table registration_table.delete_many({"aug_inchi": expected_aug_inchi}) def test_register_in_central_thermo_db2(self): """ - Test situation where registration_table has species as the one going + Test situation where registration_table has species as the one going to be registered """ # connect to thermo central database host, port, username, password = get_testing_tcd_authentication_info() - application = 'test' + application = "test" - tcdi = ThermoCentralDatabaseInterface(host, port, username, password, application) + tcdi = ThermoCentralDatabaseInterface( + host, port, username, password, application + ) # prepare species to register - species = Species().from_smiles('C1=C=C2CC23C=CC=1C=C3') + species = Species().from_smiles("C1=C=C2CC23C=CC=1C=C3") expected_aug_inchi = "InChI=1S/C10H6/c1-2-9-7-10(9)5-3-8(1)4-6-10/h3-6H,7H2" # select registration table # and clean previous data - db = getattr(tcdi.client, 'thermoCentralDB') - registration_table = getattr(db, 'registration_table') - results_table = getattr(db, 'results_table') + db = getattr(tcdi.client, "thermoCentralDB") + registration_table = getattr(db, "registration_table") + results_table = getattr(db, "results_table") registration_table.delete_many({"aug_inchi": expected_aug_inchi}) registration_table.insert_one({"aug_inchi": expected_aug_inchi}) results_table.delete_many({"aug_inchi": expected_aug_inchi}) tcdi.register_in_central_thermo_db(species) - registered_species_entries = list(registration_table.find({"aug_inchi": expected_aug_inchi})) + registered_species_entries = list( + registration_table.find({"aug_inchi": expected_aug_inchi}) + ) # should expect only one registered such species self.assertEqual(len(registered_species_entries), 1) registered_species_entry = registered_species_entries[0] # check all the columns are expected - self.assertEqual(registered_species_entry['aug_inchi'], expected_aug_inchi) + self.assertEqual(registered_species_entry["aug_inchi"], expected_aug_inchi) self.assertTrue(len(registered_species_entry), 2) # clean up the table @@ -2181,31 +2993,35 @@ def test_register_in_central_thermo_db2(self): def test_register_in_central_thermo_db3(self): """ - Test situation where results_table has species as the one going + Test situation where results_table has species as the one going to be registered """ # connect to thermo central database host, port, username, password = get_testing_tcd_authentication_info() - application = 'test' + application = "test" - tcdi = ThermoCentralDatabaseInterface(host, port, username, password, application) + tcdi = ThermoCentralDatabaseInterface( + host, port, username, password, application + ) # prepare species to register - species = Species().from_smiles('C1=C=C2CC23C=CC=1C=C3') + species = Species().from_smiles("C1=C=C2CC23C=CC=1C=C3") expected_aug_inchi = "InChI=1S/C10H6/c1-2-9-7-10(9)5-3-8(1)4-6-10/h3-6H,7H2" # select registration table # and clean previous data - db = getattr(tcdi.client, 'thermoCentralDB') - registration_table = getattr(db, 'registration_table') - results_table = getattr(db, 'results_table') + db = getattr(tcdi.client, "thermoCentralDB") + registration_table = getattr(db, "registration_table") + results_table = getattr(db, "results_table") registration_table.delete_many({"aug_inchi": expected_aug_inchi}) results_table.delete_many({"aug_inchi": expected_aug_inchi}) results_table.insert_one({"aug_inchi": expected_aug_inchi}) tcdi.register_in_central_thermo_db(species) - registered_species_entries = list(registration_table.find({"aug_inchi": expected_aug_inchi})) + registered_species_entries = list( + registration_table.find({"aug_inchi": expected_aug_inchi}) + ) # should expect only one registered such species self.assertEqual(len(registered_species_entries), 0) @@ -2216,5 +3032,5 @@ def test_register_in_central_thermo_db3(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/transportTest.py b/test/rmgpy/data/transportTest.py index c4d45b3983..6fcc186aad 100644 --- a/test/rmgpy/data/transportTest.py +++ b/test/rmgpy/data/transportTest.py @@ -41,6 +41,7 @@ ################################################################################ + class TestCriticalPointGroupContribution(unittest.TestCase): """ Contains unit test of the :class: 'criticalPointGroupContribution' class @@ -51,7 +52,7 @@ def setUp(self): A function run before each unit test in this class. """ self.Tc = 0.0141 - self.Pc = -.0012 + self.Pc = -0.0012 self.Vc = 65 self.Tb = 23.58 self.structureIndex = 1 @@ -92,33 +93,66 @@ def test_structure_index(self): """ Test that the CriticalPointGroupContribution structureIndex property was properly set. """ - self.assertAlmostEqual(self.criticalPointContribution.structureIndex, self.structureIndex, 6) + self.assertAlmostEqual( + self.criticalPointContribution.structureIndex, self.structureIndex, 6 + ) def test_pickle(self): """ Test that a CriticalPointGroupContribution object can be pickled and unpickled with no loss of information. """ import pickle - criticalPointContribution = pickle.loads(pickle.dumps(self.criticalPointContribution, -1)) - self.assertAlmostEqual(self.criticalPointContribution.Tc, criticalPointContribution.Tc, 4) - self.assertAlmostEqual(self.criticalPointContribution.Pc, criticalPointContribution.Pc, 4) - self.assertAlmostEqual(self.criticalPointContribution.Vc, criticalPointContribution.Vc, 4) - self.assertAlmostEqual(self.criticalPointContribution.Tb, criticalPointContribution.Tb, 4) - self.assertAlmostEqual(self.criticalPointContribution.structureIndex, criticalPointContribution.structureIndex, 4) + + criticalPointContribution = pickle.loads( + pickle.dumps(self.criticalPointContribution, -1) + ) + self.assertAlmostEqual( + self.criticalPointContribution.Tc, criticalPointContribution.Tc, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.Pc, criticalPointContribution.Pc, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.Vc, criticalPointContribution.Vc, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.Tb, criticalPointContribution.Tb, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.structureIndex, + criticalPointContribution.structureIndex, + 4, + ) def test_repr(self): """ Test that a CriticalPointGroupContribution object can be reconstructed from its repr() output with no loss of information """ namespace = {} - exec('criticalPointContribution = {0!r}'.format(self.criticalPointContribution), globals(), namespace) - self.assertIn('criticalPointContribution', namespace) - criticalPointContribution = namespace['criticalPointContribution'] - self.assertAlmostEqual(self.criticalPointContribution.Tc, criticalPointContribution.Tc, 4) - self.assertAlmostEqual(self.criticalPointContribution.Pc, criticalPointContribution.Pc, 4) - self.assertAlmostEqual(self.criticalPointContribution.Vc, criticalPointContribution.Vc, 4) - self.assertAlmostEqual(self.criticalPointContribution.Tb, criticalPointContribution.Tb, 4) - self.assertAlmostEqual(self.criticalPointContribution.structureIndex, criticalPointContribution.structureIndex, 4) + exec( + "criticalPointContribution = {0!r}".format(self.criticalPointContribution), + globals(), + namespace, + ) + self.assertIn("criticalPointContribution", namespace) + criticalPointContribution = namespace["criticalPointContribution"] + self.assertAlmostEqual( + self.criticalPointContribution.Tc, criticalPointContribution.Tc, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.Pc, criticalPointContribution.Pc, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.Vc, criticalPointContribution.Vc, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.Tb, criticalPointContribution.Tb, 4 + ) + self.assertAlmostEqual( + self.criticalPointContribution.structureIndex, + criticalPointContribution.structureIndex, + 4, + ) class TestTransportDatabase(unittest.TestCase): @@ -130,40 +164,62 @@ class TestTransportDatabase(unittest.TestCase): def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" cls.database = TransportDatabase() - cls.database.load(os.path.join(settings['database.directory'], 'transport'), - ['GRI-Mech', 'PrimaryTransportLibrary']) + cls.database.load( + os.path.join(settings["database.directory"], "transport"), + ["GRI-Mech", "PrimaryTransportLibrary"], + ) cls.speciesList = [ - Species().from_smiles('C'), - Species().from_smiles('CCCC'), - Species().from_smiles('O'), - Species().from_smiles('[CH3]'), - Species().from_smiles('[OH]'), - Species().from_smiles('c1ccccc1'), + Species().from_smiles("C"), + Species().from_smiles("CCCC"), + Species().from_smiles("O"), + Species().from_smiles("[CH3]"), + Species().from_smiles("[OH]"), + Species().from_smiles("c1ccccc1"), ] def test_joback(self): """Test transport property estimation via Joback groups.""" self.testCases = [ - ['acetone', 'CC(=O)C', Length(5.36421, 'angstroms'), Energy(3.20446, 'kJ/mol'), "Epsilon & sigma estimated with Tc=500.53 K, Pc=47.11 bar (from Joback method)"], - ['cyclopenta-1,2-diene', 'C1=C=CCC1', None, None, None], # not sure what to expect, we just want to make sure it doesn't crash - ['benzene', 'c1ccccc1', None, None, None], - ['N-methylmethanamine', 'CNC', None, None, None], - ['imidazole', 'c1ncc[nH]1', None, None, None], + [ + "acetone", + "CC(=O)C", + Length(5.36421, "angstroms"), + Energy(3.20446, "kJ/mol"), + "Epsilon & sigma estimated with Tc=500.53 K, Pc=47.11 bar (from Joback method)", + ], + [ + "cyclopenta-1,2-diene", + "C1=C=CCC1", + None, + None, + None, + ], # not sure what to expect, we just want to make sure it doesn't crash + ["benzene", "c1ccccc1", None, None, None], + ["N-methylmethanamine", "CNC", None, None, None], + ["imidazole", "c1ncc[nH]1", None, None, None], ] # values calculate from joback's estimations for name, smiles, sigma, epsilon, comment in self.testCases: species = Species().from_smiles(smiles) - transport_data, blank, blank2 = self.database.get_transport_properties_via_group_estimates(species) + ( + transport_data, + blank, + blank2, + ) = self.database.get_transport_properties_via_group_estimates(species) # check Joback worked. # If we don't know what to expect, don't check (just make sure we didn't crash) if comment: self.assertTrue(transport_data.comment == comment) if sigma: - self.assertAlmostEqual(transport_data.sigma.value_si * 1e10, sigma.value_si * 1e10, 4) + self.assertAlmostEqual( + transport_data.sigma.value_si * 1e10, sigma.value_si * 1e10, 4 + ) if epsilon: - self.assertAlmostEqual(transport_data.epsilon.value_si, epsilon.value_si, 1) + self.assertAlmostEqual( + transport_data.epsilon.value_si, epsilon.value_si, 1 + ) @work_in_progress def test_joback_on_benzene_bonds(self): @@ -174,7 +230,8 @@ def test_joback_on_benzene_bonds(self): If this test fails as WIP, then the method ``get_transport_properties_via_group_estimates`` needs to be updated so that aromatic molecules are not kekulized. See RMG-Py PR#1936 """ - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ 1 C u0 p0 {2,B} {6,B} {7,S} 2 C u0 p0 {1,B} {3,B} {8,S} 3 C u0 p0 {2,B} {4,B} {9,S} @@ -187,33 +244,48 @@ def test_joback_on_benzene_bonds(self): 10 H u0 p0 {4,S} 11 H u0 p0 {5,S} 12 H u0 p0 {6,S} - """) - - critical_point = self.database.estimate_critical_properties_via_group_additivity(molecule) + """ + ) + + critical_point = ( + self.database.estimate_critical_properties_via_group_additivity(molecule) + ) self.assertIsNotNone(critical_point) def test_Tb_correction_for_halogens(self): """ - Test that the halogen `Tb` correction is applied to the critical point estimated from + Test that the halogen `Tb` correction is applied to the critical point estimated from group additivity """ - partial_F_mol1 = Molecule(smiles='CCF') # partially fluorinated without other halogens - partial_F_mol2 = Molecule(smiles='ClCCF') # partially fluorinated with other halogens - per_F_mol = Molecule(smiles='FC(F)(F)C(F)(F)F') # perfluorinated - partial_hal_mol = Molecule(smiles='BrCCCl') # partially halogenated without fluorine - per_hal_mol1 = Molecule(smiles='BrC(F)(Cl)C(Br)(F)Cl') # perhalogenated with fluorine - per_hal_mol2 = Molecule(smiles='BrC(Cl)(Cl)C(Cl)(Br)Cl') # perhalogenated without fluorine - - for mol,comment in [ - (partial_F_mol1,'with partial fluorination Tb correction (-25 K)'), - (partial_F_mol2,'with partial fluorination Tb correction (-25 K)'), - (per_F_mol,'with perfluorinated Tb correction (-45.57 K)'), - (partial_hal_mol,'with partial halogenation Tb correction (+11.43 K)'), - (per_hal_mol1,'with perhalogenated Tb correction (-53.55 K)'), - (per_hal_mol2,'with perhalogenated Tb correction (-53.55 K)') + partial_F_mol1 = Molecule( + smiles="CCF" + ) # partially fluorinated without other halogens + partial_F_mol2 = Molecule( + smiles="ClCCF" + ) # partially fluorinated with other halogens + per_F_mol = Molecule(smiles="FC(F)(F)C(F)(F)F") # perfluorinated + partial_hal_mol = Molecule( + smiles="BrCCCl" + ) # partially halogenated without fluorine + per_hal_mol1 = Molecule( + smiles="BrC(F)(Cl)C(Br)(F)Cl" + ) # perhalogenated with fluorine + per_hal_mol2 = Molecule( + smiles="BrC(Cl)(Cl)C(Cl)(Br)Cl" + ) # perhalogenated without fluorine + + for mol, comment in [ + (partial_F_mol1, "with partial fluorination Tb correction (-25 K)"), + (partial_F_mol2, "with partial fluorination Tb correction (-25 K)"), + (per_F_mol, "with perfluorinated Tb correction (-45.57 K)"), + (partial_hal_mol, "with partial halogenation Tb correction (+11.43 K)"), + (per_hal_mol1, "with perhalogenated Tb correction (-53.55 K)"), + (per_hal_mol2, "with perhalogenated Tb correction (-53.55 K)"), ]: - critical_point = self.database.estimate_critical_properties_via_group_additivity(mol) - self.assertEqual(critical_point.comment,comment) + critical_point = ( + self.database.estimate_critical_properties_via_group_additivity(mol) + ) + self.assertEqual(critical_point.comment, comment) def test_get_transport_properties(self): """Test that we can retrieve best transport properties for a species.""" @@ -239,5 +311,5 @@ def test_get_all_transport_properties(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/arrheniusTest.py b/test/rmgpy/kinetics/arrheniusTest.py index e9176dc1b3..1f2575eca4 100644 --- a/test/rmgpy/kinetics/arrheniusTest.py +++ b/test/rmgpy/kinetics/arrheniusTest.py @@ -37,7 +37,14 @@ import numpy as np import rmgpy.constants as constants -from rmgpy.kinetics.arrhenius import Arrhenius, ArrheniusEP, ArrheniusBM, PDepArrhenius, MultiArrhenius, MultiPDepArrhenius +from rmgpy.kinetics.arrhenius import ( + Arrhenius, + ArrheniusEP, + ArrheniusBM, + PDepArrhenius, + MultiArrhenius, + MultiPDepArrhenius, +) from rmgpy.molecule.molecule import Molecule from rmgpy.reaction import Reaction from rmgpy.species import Species @@ -46,6 +53,7 @@ ################################################################################ + class TestArrhenius(unittest.TestCase): """ Contains unit tests of the :class:`Arrhenius` class. @@ -58,10 +66,10 @@ def setUp(self): self.A = 1.0e12 self.n = 0.5 self.Ea = 41.84 - self.T0 = 1. - self.Tmin = 300. - self.Tmax = 3000. - self.comment = 'C2H6' + self.T0 = 1.0 + self.Tmin = 300.0 + self.Tmax = 3000.0 + self.comment = "C2H6" self.arrhenius = Arrhenius( A=(self.A, "cm^3/(mol*s)"), n=self.n, @@ -119,7 +127,9 @@ def test_is_temperature_valid(self): Test the Arrhenius.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, True, True, True], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, True, True, True], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.arrhenius.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -130,7 +140,19 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) kexplist = np.array( - [1.6721e-4, 6.8770e1, 5.5803e3, 5.2448e4, 2.0632e5, 5.2285e5, 1.0281e6, 1.7225e6, 2.5912e6, 3.6123e6]) + [ + 1.6721e-4, + 6.8770e1, + 5.5803e3, + 5.2448e4, + 2.0632e5, + 5.2285e5, + 1.0281e6, + 1.7225e6, + 2.5912e6, + 3.6123e6, + ] + ) for T, kexp in zip(Tlist, kexplist): kact = self.arrhenius.get_rate_coefficient(T) self.assertAlmostEqual(kexp, kact, delta=1e-4 * kexp) @@ -139,7 +161,9 @@ def test_change_t0(self): """ Test the Arrhenius.change_t0() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.arrhenius.get_rate_coefficient(T) for T in Tlist]) self.arrhenius.change_t0(300) self.assertEqual(self.arrhenius.T0.value_si, 300) @@ -151,13 +175,17 @@ def test_fit_to_data(self): """ Test the Arrhenius.fit_to_data() method. """ - Tdata = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tdata = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) kdata = np.array([self.arrhenius.get_rate_coefficient(T) for T in Tdata]) arrhenius = Arrhenius().fit_to_data(Tdata, kdata, kunits="m^3/(mol*s)") self.assertEqual(float(self.arrhenius.T0.value_si), 1) for T, k in zip(Tdata, kdata): self.assertAlmostEqual(k, arrhenius.get_rate_coefficient(T), delta=1e-6 * k) - self.assertAlmostEqual(arrhenius.A.value_si, self.arrhenius.A.value_si, delta=1e0) + self.assertAlmostEqual( + arrhenius.A.value_si, self.arrhenius.A.value_si, delta=1e0 + ) self.assertAlmostEqual(arrhenius.n.value_si, self.arrhenius.n.value_si, 1, 4) self.assertAlmostEqual(arrhenius.Ea.value_si, self.arrhenius.Ea.value_si, 2) self.assertAlmostEqual(arrhenius.T0.value_si, self.arrhenius.T0.value_si, 4) @@ -166,13 +194,19 @@ def test_fit_to_negative_data(self): """ Test the Arrhenius.fit_to_data() method on negative rates """ - Tdata = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tdata = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) kdata = np.array([-1 * self.arrhenius.get_rate_coefficient(T) for T in Tdata]) arrhenius = Arrhenius().fit_to_data(Tdata, kdata, kunits="m^3/(mol*s)") self.assertEqual(float(self.arrhenius.T0.value_si), 1) for T, k in zip(Tdata, kdata): - self.assertAlmostEqual(k, arrhenius.get_rate_coefficient(T), delta=1e-6 * abs(k)) - self.assertAlmostEqual(arrhenius.A.value_si, -1 * self.arrhenius.A.value_si, delta=1e0) + self.assertAlmostEqual( + k, arrhenius.get_rate_coefficient(T), delta=1e-6 * abs(k) + ) + self.assertAlmostEqual( + arrhenius.A.value_si, -1 * self.arrhenius.A.value_si, delta=1e0 + ) self.assertAlmostEqual(arrhenius.n.value_si, self.arrhenius.n.value_si, 1, 4) self.assertAlmostEqual(arrhenius.Ea.value_si, self.arrhenius.Ea.value_si, 2) self.assertAlmostEqual(arrhenius.T0.value_si, self.arrhenius.T0.value_si, 4) @@ -183,6 +217,7 @@ def test_pickle(self): of information. """ import pickle + arrhenius = pickle.loads(pickle.dumps(self.arrhenius, -1)) self.assertAlmostEqual(self.arrhenius.A.value, arrhenius.A.value, delta=1e0) self.assertEqual(self.arrhenius.A.units, arrhenius.A.units) @@ -203,9 +238,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('arrhenius = {0!r}'.format(self.arrhenius), globals(), namespace) - self.assertIn('arrhenius', namespace) - arrhenius = namespace['arrhenius'] + exec("arrhenius = {0!r}".format(self.arrhenius), globals(), namespace) + self.assertIn("arrhenius", namespace) + arrhenius = namespace["arrhenius"] self.assertAlmostEqual(self.arrhenius.A.value, arrhenius.A.value, delta=1e0) self.assertEqual(self.arrhenius.A.units, arrhenius.A.units) self.assertAlmostEqual(self.arrhenius.n.value, arrhenius.n.value, 4) @@ -223,7 +258,9 @@ def test_change_rate(self): """ Test the Arrhenius.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.arrhenius.get_rate_coefficient(T) for T in Tlist]) self.arrhenius.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -232,7 +269,7 @@ def test_change_rate(self): def test_to_cantera_kinetics(self): """ - Test that the Arrhenius cantera object can be set properly within + Test that the Arrhenius cantera object can be set properly within a cantera Reaction object """ ctArrhenius = self.arrhenius.to_cantera_kinetics() @@ -246,7 +283,9 @@ def test_to_arrhenius_ep(self): """ arr_rate = self.arrhenius.get_rate_coefficient(500) arr_ep = self.arrhenius.to_arrhenius_ep() - arr_ep_rate = arr_ep.get_rate_coefficient(500, 10) # the second number should not matter + arr_ep_rate = arr_ep.get_rate_coefficient( + 500, 10 + ) # the second number should not matter self.assertAlmostEqual(arr_rate, arr_ep_rate) def test_to_arrhenius_ep_with_alpha_and_hrxn(self): @@ -256,7 +295,7 @@ def test_to_arrhenius_ep_with_alpha_and_hrxn(self): hrxn = 5 arr_rate = self.arrhenius.get_rate_coefficient(500) arr_ep = self.arrhenius.to_arrhenius_ep(alpha=1, dHrxn=hrxn) - self.assertAlmostEqual(1., arr_ep.alpha.value_si) + self.assertAlmostEqual(1.0, arr_ep.alpha.value_si) arr_ep_rate = arr_ep.get_rate_coefficient(500, hrxn) self.assertAlmostEqual(arr_rate, arr_ep_rate) @@ -267,6 +306,7 @@ def test_to_arrhenius_ep_throws_error_with_just_alpha(self): ################################################################################ + class TestArrheniusEP(unittest.TestCase): """ Contains unit tests of the :class:`ArrheniusEP` class. @@ -280,9 +320,9 @@ def setUp(self): self.n = 0.5 self.alpha = 0.5 self.E0 = 41.84 - self.Tmin = 300. - self.Tmax = 3000. - self.comment = 'C2H6' + self.Tmin = 300.0 + self.Tmax = 3000.0 + self.comment = "C2H6" self.arrhenius = ArrheniusEP( A=(self.A, "cm^3/(mol*s)"), n=self.n, @@ -340,7 +380,9 @@ def test_is_temperature_valid(self): Test the ArrheniusEP.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, True, True, True], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, True, True, True], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.arrhenius.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -351,9 +393,23 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) kexplist = np.array( - [1.6721e-4, 6.8770e1, 5.5803e3, 5.2448e4, 2.0632e5, 5.2285e5, 1.0281e6, 1.7225e6, 2.5912e6, 3.6123e6]) + [ + 1.6721e-4, + 6.8770e1, + 5.5803e3, + 5.2448e4, + 2.0632e5, + 5.2285e5, + 1.0281e6, + 1.7225e6, + 2.5912e6, + 3.6123e6, + ] + ) for T, kexp in zip(Tlist, kexplist): - kact = self.arrhenius.get_rate_coefficient(T, ) + kact = self.arrhenius.get_rate_coefficient( + T, + ) self.assertAlmostEqual(kexp, kact, delta=1e-4 * kexp) def test_pickle(self): @@ -362,6 +418,7 @@ def test_pickle(self): of information. """ import pickle + arrhenius = pickle.loads(pickle.dumps(self.arrhenius, -1)) self.assertAlmostEqual(self.arrhenius.A.value, arrhenius.A.value, delta=1e0) self.assertEqual(self.arrhenius.A.units, arrhenius.A.units) @@ -381,9 +438,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('arrhenius = {0!r}'.format(self.arrhenius), globals(), namespace) - self.assertIn('arrhenius', namespace) - arrhenius = namespace['arrhenius'] + exec("arrhenius = {0!r}".format(self.arrhenius), globals(), namespace) + self.assertIn("arrhenius", namespace) + arrhenius = namespace["arrhenius"] self.assertAlmostEqual(self.arrhenius.A.value, arrhenius.A.value, delta=1e0) self.assertEqual(self.arrhenius.A.units, arrhenius.A.units) self.assertAlmostEqual(self.arrhenius.n.value, arrhenius.n.value, 4) @@ -400,7 +457,9 @@ def test_change_rate(self): """ Test the ArrheniusEP.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.arrhenius.get_rate_coefficient(T) for T in Tlist]) self.arrhenius.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -410,6 +469,7 @@ def test_change_rate(self): ################################################################################ + class TestArrheniusBM(unittest.TestCase): """ Contains unit tests of the :class:`ArrheniusBM` class. @@ -419,46 +479,107 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.A = 8.00037e+12 + self.A = 8.00037e12 self.n = 0.391734 self.w0 = 798000 self.E0 = 115905 - self.Tmin = 300. - self.Tmax = 2000. - self.comment = 'rxn001084' + self.Tmin = 300.0 + self.Tmax = 2000.0 + self.comment = "rxn001084" self.arrhenius_bm = ArrheniusBM( A=(self.A, "s^-1"), n=self.n, - w0=(self.w0, 'J/mol'), + w0=(self.w0, "J/mol"), E0=(self.E0, "J/mol"), Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), comment=self.comment, ) - self.rsmi = 'NC(=NC=O)O' - self.psmi = 'O=CNC(=O)N' - self.arrhenius = Arrhenius(A=(8.00037e+12,'s^-1'), - n=0.391734, - Ea=(94.5149,'kJ/mol'), - T0=(1,'K'), - Tmin=(300,'K'), - Tmax=(2000,'K'), - comment="""Fitted to 50 data points; dA = *|/ 1.18377, dn = +|- 0.0223855, dEa = +|- 0.115431 kJ/mol""" - ) - - self.r_thermo = NASA(polynomials=[ - NASAPolynomial(coeffs=[3.90453,0.0068491,0.000125755,-2.92973e-07,2.12971e-10,-45444.2,10.0669], Tmin=(10,'K'), Tmax=(433.425,'K')), - NASAPolynomial(coeffs=[2.09778,0.0367646,-2.36023e-05,7.24527e-09,-8.51275e-13,-45412,15.8381], Tmin=(433.425,'K'), Tmax=(3000,'K'))], - Tmin=(10,'K'), Tmax=(3000,'K'), E0=(-377.851,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(232.805,'J/(mol*K)'), - comment="""Thermo library: Spiekermann_refining_elementary_reactions""" - ) - self.p_thermo = NASA(polynomials=[ - NASAPolynomial(coeffs=[3.88423,0.00825528,0.000133399,-3.31802e-07,2.52823e-10,-51045.1,10.3937], Tmin=(10,'K'), Tmax=(428.701,'K')), - NASAPolynomial(coeffs=[2.89294,0.0351772,-2.26349e-05,7.00331e-09,-8.2982e-13,-51122.5,12.4424], Tmin=(428.701,'K'), Tmax=(3000,'K'))], - Tmin=(10,'K'), Tmax=(3000,'K'), E0=(-424.419,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(232.805,'J/(mol*K)'), - comment="""Thermo library: Spiekermann_refining_elementary_reactions""" - ) + self.rsmi = "NC(=NC=O)O" + self.psmi = "O=CNC(=O)N" + self.arrhenius = Arrhenius( + A=(8.00037e12, "s^-1"), + n=0.391734, + Ea=(94.5149, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2000, "K"), + comment="""Fitted to 50 data points; dA = *|/ 1.18377, dn = +|- 0.0223855, dEa = +|- 0.115431 kJ/mol""", + ) + + self.r_thermo = NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.90453, + 0.0068491, + 0.000125755, + -2.92973e-07, + 2.12971e-10, + -45444.2, + 10.0669, + ], + Tmin=(10, "K"), + Tmax=(433.425, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.09778, + 0.0367646, + -2.36023e-05, + 7.24527e-09, + -8.51275e-13, + -45412, + 15.8381, + ], + Tmin=(433.425, "K"), + Tmax=(3000, "K"), + ), + ], + Tmin=(10, "K"), + Tmax=(3000, "K"), + E0=(-377.851, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(232.805, "J/(mol*K)"), + comment="""Thermo library: Spiekermann_refining_elementary_reactions""", + ) + self.p_thermo = NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.88423, + 0.00825528, + 0.000133399, + -3.31802e-07, + 2.52823e-10, + -51045.1, + 10.3937, + ], + Tmin=(10, "K"), + Tmax=(428.701, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.89294, + 0.0351772, + -2.26349e-05, + 7.00331e-09, + -8.2982e-13, + -51122.5, + 12.4424, + ], + Tmin=(428.701, "K"), + Tmax=(3000, "K"), + ), + ], + Tmin=(10, "K"), + Tmax=(3000, "K"), + E0=(-424.419, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(232.805, "J/(mol*K)"), + comment="""Thermo library: Spiekermann_refining_elementary_reactions""", + ) def test_a_factor(self): """ @@ -501,7 +622,9 @@ def test_is_temperature_valid(self): Test the ArrheniusBM.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, True, True, True], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, True, True, True], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.arrhenius_bm.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -512,15 +635,27 @@ def test_fit_to_data(self): """ reactant = Molecule(smiles=self.rsmi) product = Molecule(smiles=self.psmi) - reaction = Reaction(reactants=[Species(molecule=[reactant], thermo=self.r_thermo,)], - products=[Species(molecule=[product], thermo=self.p_thermo)], - kinetics=self.arrhenius, - ) - + reaction = Reaction( + reactants=[ + Species( + molecule=[reactant], + thermo=self.r_thermo, + ) + ], + products=[Species(molecule=[product], thermo=self.p_thermo)], + kinetics=self.arrhenius, + ) + arrhenius_bm = ArrheniusBM().fit_to_reactions([reaction], w0=self.w0) - self.assertAlmostEqual(arrhenius_bm.A.value_si, self.arrhenius_bm.A.value_si, delta=1.5e1) - self.assertAlmostEqual(arrhenius_bm.n.value_si, self.arrhenius_bm.n.value_si, 1, 4) - self.assertAlmostEqual(arrhenius_bm.E0.value_si, self.arrhenius_bm.E0.value_si, 1) + self.assertAlmostEqual( + arrhenius_bm.A.value_si, self.arrhenius_bm.A.value_si, delta=1.5e1 + ) + self.assertAlmostEqual( + arrhenius_bm.n.value_si, self.arrhenius_bm.n.value_si, 1, 4 + ) + self.assertAlmostEqual( + arrhenius_bm.E0.value_si, self.arrhenius_bm.E0.value_si, 1 + ) def test_get_activation_energy(self): """ @@ -533,6 +668,7 @@ def test_get_activation_energy(self): ################################################################################ + class TestPDepArrhenius(unittest.TestCase): """ Contains unit tests of the :class:`PDepArrhenius` class. @@ -583,7 +719,9 @@ def test_pressures(self): """ self.assertEqual(len(self.kinetics.pressures.value_si), 2) for i in range(2): - self.assertAlmostEqual(self.kinetics.pressures.value_si[i] * 1e-5, self.pressures[i], 4) + self.assertAlmostEqual( + self.kinetics.pressures.value_si[i] * 1e-5, self.pressures[i], 4 + ) def test_arrhenius(self): """ @@ -591,18 +729,42 @@ def test_arrhenius(self): """ self.assertEqual(len(self.kinetics.arrhenius), 2) for i in range(2): - self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, self.arrhenius[i].A.value, delta=1e0) - self.assertEqual(self.kinetics.arrhenius[i].A.units, self.arrhenius[i].A.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, self.arrhenius[i].n.value, 4) - self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, self.arrhenius[i].Ea.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].Ea.units, self.arrhenius[i].Ea.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, self.arrhenius[i].T0.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].T0.units, self.arrhenius[i].T0.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].Tmin.value, self.arrhenius[i].Tmin.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].Tmin.units, self.arrhenius[i].Tmin.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].Tmax.value, self.arrhenius[i].Tmax.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].Tmax.units, self.arrhenius[i].Tmax.units) - self.assertEqual(self.kinetics.arrhenius[i].comment, self.arrhenius[i].comment) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].A.value, self.arrhenius[i].A.value, delta=1e0 + ) + self.assertEqual( + self.kinetics.arrhenius[i].A.units, self.arrhenius[i].A.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].n.value, self.arrhenius[i].n.value, 4 + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].Ea.value, self.arrhenius[i].Ea.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].Ea.units, self.arrhenius[i].Ea.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].T0.value, self.arrhenius[i].T0.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].T0.units, self.arrhenius[i].T0.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].Tmin.value, self.arrhenius[i].Tmin.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].Tmin.units, self.arrhenius[i].Tmin.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].Tmax.value, self.arrhenius[i].Tmax.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].Tmax.units, self.arrhenius[i].Tmax.units + ) + self.assertEqual( + self.kinetics.arrhenius[i].comment, self.arrhenius[i].comment + ) def test_temperature_min(self): """ @@ -645,26 +807,74 @@ def test_get_rate_coefficient(self): Test the PDepArrhenius.get_rate_coefficient() method. """ P = 1e4 - for T in [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]: + for T in [ + 300, + 400, + 500, + 600, + 700, + 800, + 900, + 1000, + 1100, + 1200, + 1300, + 1400, + 1500, + ]: k0 = self.kinetics.get_rate_coefficient(T, P) k1 = self.arrhenius0.get_rate_coefficient(T) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) P = 1e6 - for T in [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]: + for T in [ + 300, + 400, + 500, + 600, + 700, + 800, + 900, + 1000, + 1100, + 1200, + 1300, + 1400, + 1500, + ]: k0 = self.kinetics.get_rate_coefficient(T, P) k1 = self.arrhenius1.get_rate_coefficient(T) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) P = 1e5 - for T in [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]: + for T in [ + 300, + 400, + 500, + 600, + 700, + 800, + 900, + 1000, + 1100, + 1200, + 1300, + 1400, + 1500, + ]: k0 = self.kinetics.get_rate_coefficient(T, P) - k1 = math.sqrt(self.arrhenius0.get_rate_coefficient(T) * self.arrhenius1.get_rate_coefficient(T)) + k1 = math.sqrt( + self.arrhenius0.get_rate_coefficient(T) + * self.arrhenius1.get_rate_coefficient(T) + ) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) def test_fit_to_data(self): """ Test the PDepArrhenius.fit_to_data() method. """ - Tdata = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500], np.float) + Tdata = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500], + np.float, + ) Pdata = np.array([1e4, 3e4, 1e5, 3e5, 1e6], np.float) kdata = np.zeros([len(Tdata), len(Pdata)], np.float) for t in range(len(Tdata)): @@ -673,8 +883,11 @@ def test_fit_to_data(self): kinetics = PDepArrhenius().fit_to_data(Tdata, Pdata, kdata, kunits="s^-1") for t in range(len(Tdata)): for p in range(len(Pdata)): - self.assertAlmostEqual(kinetics.get_rate_coefficient(Tdata[t], Pdata[p]), kdata[t, p], - delta=1e-6 * kdata[t, p]) + self.assertAlmostEqual( + kinetics.get_rate_coefficient(Tdata[t], Pdata[p]), + kdata[t, p], + delta=1e-6 * kdata[t, p], + ) def test_pickle(self): """ @@ -682,6 +895,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + kinetics = pickle.loads(pickle.dumps(self.kinetics, -1)) Narrh = 2 self.assertEqual(len(self.kinetics.pressures.value), Narrh) @@ -689,14 +903,32 @@ def test_pickle(self): self.assertEqual(len(self.kinetics.arrhenius), Narrh) self.assertEqual(len(kinetics.arrhenius), Narrh) for i in range(Narrh): - self.assertAlmostEqual(self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4) - self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, kinetics.arrhenius[i].A.value, delta=1e0) - self.assertEqual(self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value) - self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units) + self.assertAlmostEqual( + self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4 + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].A.value, + kinetics.arrhenius[i].A.value, + delta=1e0, + ) + self.assertEqual( + self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units + ) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) self.assertAlmostEqual(self.kinetics.Tmax.value, kinetics.Tmax.value, 4) @@ -713,23 +945,41 @@ def test_repr(self): from its repr() output with no loss of information. """ namespace = {} - exec('kinetics = {0!r}'.format(self.kinetics), globals(), namespace) - self.assertIn('kinetics', namespace) - kinetics = namespace['kinetics'] + exec("kinetics = {0!r}".format(self.kinetics), globals(), namespace) + self.assertIn("kinetics", namespace) + kinetics = namespace["kinetics"] Narrh = 2 self.assertEqual(len(self.kinetics.pressures.value), Narrh) self.assertEqual(len(kinetics.pressures.value), Narrh) self.assertEqual(len(self.kinetics.arrhenius), Narrh) self.assertEqual(len(kinetics.arrhenius), Narrh) for i in range(Narrh): - self.assertAlmostEqual(self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4) - self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, kinetics.arrhenius[i].A.value, delta=1e0) - self.assertEqual(self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value) - self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units) - self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4) - self.assertEqual(self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units) + self.assertAlmostEqual( + self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4 + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].A.value, + kinetics.arrhenius[i].A.value, + delta=1e0, + ) + self.assertEqual( + self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units + ) + self.assertAlmostEqual( + self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4 + ) + self.assertEqual( + self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units + ) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) self.assertAlmostEqual(self.kinetics.Tmax.value, kinetics.Tmax.value, 4) @@ -744,7 +994,9 @@ def test_change_rate(self): """ Test the PDepArrhenius.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.kinetics.get_rate_coefficient(T, 1e5) for T in Tlist]) self.kinetics.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -754,6 +1006,7 @@ def test_change_rate(self): ################################################################################ + class TestMultiArrhenius(unittest.TestCase): """ Contains unit tests of the :class:`MultiArrhenius` class. @@ -763,9 +1016,9 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.Tmin = 350. - self.Tmax = 1500. - self.comment = 'Comment' + self.Tmin = 350.0 + self.Tmax = 1500.0 + self.comment = "Comment" self.arrhenius = [ Arrhenius( A=(9.3e-14, "cm^3/(molecule*s)"), @@ -828,7 +1081,9 @@ def test_is_temperature_valid(self): Test the MultiArrhenius.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, False, False, False], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, False, False, False], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.kinetics.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -839,8 +1094,19 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) kexplist = np.array( - [2.85400e-06, 4.00384e-01, 2.73563e+01, 8.50699e+02, 1.20181e+04, 7.56312e+04, 2.84724e+05, 7.71702e+05, - 1.67743e+06, 3.12290e+06]) + [ + 2.85400e-06, + 4.00384e-01, + 2.73563e01, + 8.50699e02, + 1.20181e04, + 7.56312e04, + 2.84724e05, + 7.71702e05, + 1.67743e06, + 3.12290e06, + ] + ) for T, kexp in zip(Tlist, kexplist): kact = self.kinetics.get_rate_coefficient(T) self.assertAlmostEqual(kexp, kact, delta=1e-4 * kexp) @@ -851,6 +1117,7 @@ def test_pickle(self): of information. """ import pickle + kinetics = pickle.loads(pickle.dumps(self.kinetics, -1)) self.assertEqual(len(self.kinetics.arrhenius), len(kinetics.arrhenius)) for arrh0, arrh in zip(self.kinetics.arrhenius, kinetics.arrhenius): @@ -873,9 +1140,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('kinetics = {0!r}'.format(self.kinetics), globals(), namespace) - self.assertIn('kinetics', namespace) - kinetics = namespace['kinetics'] + exec("kinetics = {0!r}".format(self.kinetics), globals(), namespace) + self.assertIn("kinetics", namespace) + kinetics = namespace["kinetics"] self.assertEqual(len(self.kinetics.arrhenius), len(kinetics.arrhenius)) for arrh0, arrh in zip(self.kinetics.arrhenius, kinetics.arrhenius): self.assertAlmostEqual(arrh0.A.value, arrh.A.value, delta=1e-18) @@ -912,7 +1179,9 @@ def test_to_arrhenius_temperature_range(self): self.assertAlmostEqual(fitted.Tmin.value_si, 800.0) self.assertAlmostEqual(fitted.Tmax.value_si, 1200.0) for T in [800, 1000, 1200]: - self.assertAlmostEqual(fitted.get_rate_coefficient(T) / answer.get_rate_coefficient(T), 1.0) + self.assertAlmostEqual( + fitted.get_rate_coefficient(T) / answer.get_rate_coefficient(T), 1.0 + ) def test_to_arrhenius_multiple(self): """ @@ -923,13 +1192,19 @@ def test_to_arrhenius_multiple(self): self.assertAlmostEqual(fitted.Tmin.value_si, 800.0) self.assertAlmostEqual(fitted.Tmax.value_si, 1200.0) for T in [800, 1000, 1200]: - self.assertAlmostEqual(fitted.get_rate_coefficient(T) / answer.get_rate_coefficient(T), 1.0, delta=0.05) + self.assertAlmostEqual( + fitted.get_rate_coefficient(T) / answer.get_rate_coefficient(T), + 1.0, + delta=0.05, + ) def test_change_rate(self): """ Test the MultiArrhenius.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.kinetics.get_rate_coefficient(T) for T in Tlist]) self.kinetics.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -939,6 +1214,7 @@ def test_change_rate(self): ################################################################################ + class TestMultiPDepArrhenius(unittest.TestCase): """ Contains unit tests of the :class:`MultiPDepArrhenius` class. @@ -948,12 +1224,12 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.Tmin = 350. - self.Tmax = 1500. + self.Tmin = 350.0 + self.Tmax = 1500.0 self.Pmin = 1e-1 self.Pmax = 1e1 self.pressures = np.array([1e-1, 1e1]) - self.comment = 'CH3 + C2H6 <=> CH4 + C2H5 (Baulch 2005)' + self.comment = "CH3 + C2H6 <=> CH4 + C2H5 (Baulch 2005)" self.arrhenius = [ PDepArrhenius( pressures=(self.pressures, "bar"), @@ -1062,7 +1338,9 @@ def test_is_temperature_valid(self): Test the MultiPDepArrhenius.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, False, False, False], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, False, False, False], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.kinetics.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -1083,14 +1361,46 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) Plist = np.array([1e4, 1e5, 1e6]) - kexplist = np.array([ - [2.85400e-08, 4.00384e-03, 2.73563e-01, 8.50699e+00, 1.20181e+02, 7.56312e+02, 2.84724e+03, 7.71702e+03, - 1.67743e+04, 3.12290e+04], - [2.85400e-07, 4.00384e-02, 2.73563e+00, 8.50699e+01, 1.20181e+03, 7.56312e+03, 2.84724e+04, 7.71702e+04, - 1.67743e+05, 3.12290e+05], - [2.85400e-06, 4.00384e-01, 2.73563e+01, 8.50699e+02, 1.20181e+04, 7.56312e+04, 2.84724e+05, 7.71702e+05, - 1.67743e+06, 3.12290e+06], - ]).T + kexplist = np.array( + [ + [ + 2.85400e-08, + 4.00384e-03, + 2.73563e-01, + 8.50699e00, + 1.20181e02, + 7.56312e02, + 2.84724e03, + 7.71702e03, + 1.67743e04, + 3.12290e04, + ], + [ + 2.85400e-07, + 4.00384e-02, + 2.73563e00, + 8.50699e01, + 1.20181e03, + 7.56312e03, + 2.84724e04, + 7.71702e04, + 1.67743e05, + 3.12290e05, + ], + [ + 2.85400e-06, + 4.00384e-01, + 2.73563e01, + 8.50699e02, + 1.20181e04, + 7.56312e04, + 2.84724e05, + 7.71702e05, + 1.67743e06, + 3.12290e06, + ], + ] + ).T for i in range(Tlist.shape[0]): for j in range(Plist.shape[0]): kexp = kexplist[i, j] @@ -1104,18 +1414,52 @@ def test_get_rate_coefficient_diff_plist(self): # modify the MultiPDepArrhenius object with an additional entry pressures = np.array([1e-1, 1e-1, 1e1]) self.kinetics.arrhenius[0].pressures = (pressures, "bar") - self.kinetics.arrhenius[0].arrhenius.insert(0, self.kinetics.arrhenius[0].arrhenius[0]) + self.kinetics.arrhenius[0].arrhenius.insert( + 0, self.kinetics.arrhenius[0].arrhenius[0] + ) Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) Plist = np.array([1e4, 1e5, 1e6]) - kexplist = np.array([ - [2.85400e-08, 4.00384e-03, 2.73563e-01, 8.50699e+00, 1.20181e+02, 7.56312e+02, 2.84724e+03, 7.71702e+03, - 1.67743e+04, 3.12290e+04], - [2.85400e-07, 4.00384e-02, 2.73563e+00, 8.50699e+01, 1.20181e+03, 7.56312e+03, 2.84724e+04, 7.71702e+04, - 1.67743e+05, 3.12290e+05], - [2.85400e-06, 4.00384e-01, 2.73563e+01, 8.50699e+02, 1.20181e+04, 7.56312e+04, 2.84724e+05, 7.71702e+05, - 1.67743e+06, 3.12290e+06], - ]).T + kexplist = np.array( + [ + [ + 2.85400e-08, + 4.00384e-03, + 2.73563e-01, + 8.50699e00, + 1.20181e02, + 7.56312e02, + 2.84724e03, + 7.71702e03, + 1.67743e04, + 3.12290e04, + ], + [ + 2.85400e-07, + 4.00384e-02, + 2.73563e00, + 8.50699e01, + 1.20181e03, + 7.56312e03, + 2.84724e04, + 7.71702e04, + 1.67743e05, + 3.12290e05, + ], + [ + 2.85400e-06, + 4.00384e-01, + 2.73563e01, + 8.50699e02, + 1.20181e04, + 7.56312e04, + 2.84724e05, + 7.71702e05, + 1.67743e06, + 3.12290e06, + ], + ] + ).T for i in range(Tlist.shape[0]): for j in range(Plist.shape[0]): kexp = kexplist[i, j] @@ -1128,6 +1472,7 @@ def test_pickle(self): no loss of information. """ import pickle + kinetics = pickle.loads(pickle.dumps(self.kinetics, -1)) self.assertEqual(len(self.kinetics.arrhenius), len(kinetics.arrhenius)) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) @@ -1142,9 +1487,9 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('kinetics = {0!r}'.format(self.kinetics), globals(), namespace) - self.assertIn('kinetics', namespace) - kinetics = namespace['kinetics'] + exec("kinetics = {0!r}".format(self.kinetics), globals(), namespace) + self.assertIn("kinetics", namespace) + kinetics = namespace["kinetics"] self.assertEqual(len(self.kinetics.arrhenius), len(kinetics.arrhenius)) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) @@ -1156,7 +1501,9 @@ def test_change_rate(self): """ Test the PDepMultiArrhenius.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.kinetics.get_rate_coefficient(T, 1e5) for T in Tlist]) self.kinetics.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -1173,25 +1520,274 @@ def test_generate_reverse_rate_coefficient(self): from rmgpy.molecule import Molecule from rmgpy.data.kinetics import LibraryReaction from rmgpy.thermo import NASA, NASAPolynomial - test_reaction = LibraryReaction(reactants=[Species(label="C2H3", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[3.12502,0.00235137,2.36803e-05,-3.35092e-08,1.39444e-11,34524.3,8.81538], Tmin=(200,"K"), Tmax=(1000,"K")), NASAPolynomial(coeffs=[4.37211,0.00746869,-2.64716e-06,4.22753e-10,-2.44958e-14,33805.2,0.428772], Tmin=(1000,"K"), Tmax=(6000,"K"))], Tmin=(200,"K"), Tmax=(6000,"K"), E0=(285.696,"kJ/mol"), Cp0=(33.2579,"J/mol/K"), CpInf=(108.088,"J/mol/K"), comment="""ATcT3E\nC2H3 ATcT ver. 1.122, DHf298 = 296.91 ± 0.33 kJ/mol - fit JAN17"""), molecule=[Molecule(smiles="[CH]=C")], molecular_weight=(27.0452,"amu")), - Species(label="CH2O", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[4.77187,-0.00976266,3.70122e-05,-3.76922e-08,1.31327e-11,-14379.8,0.696586], Tmin=(200,"K"), Tmax=(1000,"K")), NASAPolynomial(coeffs=[2.91333,0.0067004,-2.55521e-06,4.27795e-10,-2.44073e-14,-14462.2,7.43823], Tmin=(1000,"K"), Tmax=(6000,"K"))], Tmin=(200,"K"), Tmax=(6000,"K"), E0=(-119.527,"kJ/mol"), Cp0=(33.2579,"J/mol/K"), CpInf=(83.1447,"J/mol/K"), comment="""ATcT3E\nH2CO ATcT ver. 1.122, DHf298 = -109.188 ± 0.099 kJ/mol - fit JAN17"""), molecule=[Molecule(smiles="C=O")], molecular_weight=(30.026,"amu"))], - products=[Species(label="C2H4", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[3.65151,-0.00535067,5.16486e-05,-6.36869e-08,2.50743e-11,5114.51,5.38561], Tmin=(200,"K"), Tmax=(1000,"K")), NASAPolynomial(coeffs=[4.14446,0.0102648,-3.61247e-06,5.74009e-10,-3.39296e-14,4190.59,-1.14778], Tmin=(1000,"K"), Tmax=(6000,"K"))], Tmin=(200,"K"), Tmax=(6000,"K"), E0=(42.06,"kJ/mol"), Cp0=(33.2579,"J/mol/K"), CpInf=(133.032,"J/mol/K"), comment="""ATcT3E\nC2H4 ATcT ver. 1.122, DHf298 = 52.45 ± 0.13 kJ/mol - fit JAN17"""), molecule=[Molecule(smiles="C=C")], molecular_weight=(28.0532,"amu")), - Species(label="HCO", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[3.97075,-0.00149122,9.54042e-06,-8.8272e-09,2.67645e-12,3842.03,4.4466], Tmin=(200,"K"), Tmax=(1000,"K")), NASAPolynomial(coeffs=[3.85781,0.00264114,-7.44177e-07,1.23313e-10,-8.88959e-15,3616.43,3.92451], Tmin=(1000,"K"), Tmax=(6000,"K"))], Tmin=(200,"K"), Tmax=(6000,"K"), E0=(32.0237,"kJ/mol"), Cp0=(33.2579,"J/mol/K"), CpInf=(58.2013,"J/mol/K"), comment="""HCO ATcT ver. 1.122, DHf298 = 41.803 ± 0.099 kJ/mol - fit JAN17"""), molecule=[Molecule(smiles="[CH]=O")], molecular_weight=(29.018,"amu"))], - kinetics=MultiPDepArrhenius(arrhenius=[PDepArrhenius(pressures=([0.001,0.01,0.1,1,10,100,1000],"atm"), - arrhenius=[Arrhenius(A=(1.1e+07,"cm^3/(mol*s)"), n=1.09, Ea=(1807,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(2.5e+07,"cm^3/(mol*s)"), n=0.993, Ea=(1995,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(2.5e+08,"cm^3/(mol*s)"), n=0.704, Ea=(2596,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(1.4e+10,"cm^3/(mol*s)"), n=0.209, Ea=(3934,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(3.5e+13,"cm^3/(mol*s)"), n=-0.726, Ea=(6944,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(3.3e+14,"cm^3/(mol*s)"), n=-0.866, Ea=(10966,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(17,"cm^3/(mol*s)"), n=3.17, Ea=(9400,"cal/mol"), T0=(1,"K"))]), - PDepArrhenius(pressures=([0.001,0.01,0.1,1,10,100,1000],"atm"), - arrhenius=[Arrhenius(A=(-2.3e+16,"cm^3/(mol*s)"), n=-1.269, Ea=(20617,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(-5.2e+16,"cm^3/(mol*s)"), n=-1.366, Ea=(20805,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(-1.5e+18,"cm^3/(mol*s)"), n=-1.769, Ea=(22524,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(-8.5e+19,"cm^3/(mol*s)"), n=-2.264, Ea=(23862,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(-4.4e+23,"cm^3/(mol*s)"), n=-3.278, Ea=(27795,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(-4.2e+24,"cm^3/(mol*s)"), n=-3.418, Ea=(31817,"cal/mol"), T0=(1,"K")), - Arrhenius(A=(-2.1e+11,"cm^3/(mol*s)"), n=0.618, Ea=(30251,"cal/mol"), T0=(1,"K"))]) - ]), duplicate=True) + + test_reaction = LibraryReaction( + reactants=[ + Species( + label="C2H3", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.12502, + 0.00235137, + 2.36803e-05, + -3.35092e-08, + 1.39444e-11, + 34524.3, + 8.81538, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 4.37211, + 0.00746869, + -2.64716e-06, + 4.22753e-10, + -2.44958e-14, + 33805.2, + 0.428772, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + E0=(285.696, "kJ/mol"), + Cp0=(33.2579, "J/mol/K"), + CpInf=(108.088, "J/mol/K"), + comment="""ATcT3E\nC2H3 ATcT ver. 1.122, DHf298 = 296.91 ± 0.33 kJ/mol - fit JAN17""", + ), + molecule=[Molecule(smiles="[CH]=C")], + molecular_weight=(27.0452, "amu"), + ), + Species( + label="CH2O", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.77187, + -0.00976266, + 3.70122e-05, + -3.76922e-08, + 1.31327e-11, + -14379.8, + 0.696586, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.91333, + 0.0067004, + -2.55521e-06, + 4.27795e-10, + -2.44073e-14, + -14462.2, + 7.43823, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + E0=(-119.527, "kJ/mol"), + Cp0=(33.2579, "J/mol/K"), + CpInf=(83.1447, "J/mol/K"), + comment="""ATcT3E\nH2CO ATcT ver. 1.122, DHf298 = -109.188 ± 0.099 kJ/mol - fit JAN17""", + ), + molecule=[Molecule(smiles="C=O")], + molecular_weight=(30.026, "amu"), + ), + ], + products=[ + Species( + label="C2H4", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.65151, + -0.00535067, + 5.16486e-05, + -6.36869e-08, + 2.50743e-11, + 5114.51, + 5.38561, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 4.14446, + 0.0102648, + -3.61247e-06, + 5.74009e-10, + -3.39296e-14, + 4190.59, + -1.14778, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + E0=(42.06, "kJ/mol"), + Cp0=(33.2579, "J/mol/K"), + CpInf=(133.032, "J/mol/K"), + comment="""ATcT3E\nC2H4 ATcT ver. 1.122, DHf298 = 52.45 ± 0.13 kJ/mol - fit JAN17""", + ), + molecule=[Molecule(smiles="C=C")], + molecular_weight=(28.0532, "amu"), + ), + Species( + label="HCO", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.97075, + -0.00149122, + 9.54042e-06, + -8.8272e-09, + 2.67645e-12, + 3842.03, + 4.4466, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.85781, + 0.00264114, + -7.44177e-07, + 1.23313e-10, + -8.88959e-15, + 3616.43, + 3.92451, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + E0=(32.0237, "kJ/mol"), + Cp0=(33.2579, "J/mol/K"), + CpInf=(58.2013, "J/mol/K"), + comment="""HCO ATcT ver. 1.122, DHf298 = 41.803 ± 0.099 kJ/mol - fit JAN17""", + ), + molecule=[Molecule(smiles="[CH]=O")], + molecular_weight=(29.018, "amu"), + ), + ], + kinetics=MultiPDepArrhenius( + arrhenius=[ + PDepArrhenius( + pressures=([0.001, 0.01, 0.1, 1, 10, 100, 1000], "atm"), + arrhenius=[ + Arrhenius( + A=(1.1e07, "cm^3/(mol*s)"), + n=1.09, + Ea=(1807, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(2.5e07, "cm^3/(mol*s)"), + n=0.993, + Ea=(1995, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(2.5e08, "cm^3/(mol*s)"), + n=0.704, + Ea=(2596, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(1.4e10, "cm^3/(mol*s)"), + n=0.209, + Ea=(3934, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(3.5e13, "cm^3/(mol*s)"), + n=-0.726, + Ea=(6944, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(3.3e14, "cm^3/(mol*s)"), + n=-0.866, + Ea=(10966, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(17, "cm^3/(mol*s)"), + n=3.17, + Ea=(9400, "cal/mol"), + T0=(1, "K"), + ), + ], + ), + PDepArrhenius( + pressures=([0.001, 0.01, 0.1, 1, 10, 100, 1000], "atm"), + arrhenius=[ + Arrhenius( + A=(-2.3e16, "cm^3/(mol*s)"), + n=-1.269, + Ea=(20617, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(-5.2e16, "cm^3/(mol*s)"), + n=-1.366, + Ea=(20805, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(-1.5e18, "cm^3/(mol*s)"), + n=-1.769, + Ea=(22524, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(-8.5e19, "cm^3/(mol*s)"), + n=-2.264, + Ea=(23862, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(-4.4e23, "cm^3/(mol*s)"), + n=-3.278, + Ea=(27795, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(-4.2e24, "cm^3/(mol*s)"), + n=-3.418, + Ea=(31817, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(-2.1e11, "cm^3/(mol*s)"), + n=0.618, + Ea=(30251, "cal/mol"), + T0=(1, "K"), + ), + ], + ), + ] + ), + duplicate=True, + ) test_reaction.generate_reverse_rate_coefficient() diff --git a/test/rmgpy/kinetics/chebyshevTest.py b/test/rmgpy/kinetics/chebyshevTest.py index 39fc3a7ab9..5e3d835d32 100644 --- a/test/rmgpy/kinetics/chebyshevTest.py +++ b/test/rmgpy/kinetics/chebyshevTest.py @@ -41,6 +41,7 @@ ################################################################################ + class TestChebyshev(unittest.TestCase): """ Contains unit tests of the Chebyshev class. @@ -50,18 +51,20 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.Tmin = 300. - self.Tmax = 2000. + self.Tmin = 300.0 + self.Tmax = 2000.0 self.Pmin = 0.01 - self.Pmax = 100. - self.coeffs = np.array([ - [11.67723, 0.729281, -0.11984, 0.00882175], - [-1.02669, 0.853639, -0.0323485, -0.027367], - [-0.447011, 0.244144, 0.0559122, -0.0101723], - [-0.128261, 0.0111596, 0.0281176, 0.00604353], - [-0.0117034, -0.0235646, 0.00061009, 0.00401309], - [0.0155433, -0.0136846, -0.00463048, -0.000261353], - ]) + self.Pmax = 100.0 + self.coeffs = np.array( + [ + [11.67723, 0.729281, -0.11984, 0.00882175], + [-1.02669, 0.853639, -0.0323485, -0.027367], + [-0.447011, 0.244144, 0.0559122, -0.0101723], + [-0.128261, 0.0111596, 0.0281176, 0.00604353], + [-0.0117034, -0.0235646, 0.00061009, 0.00401309], + [0.0155433, -0.0136846, -0.00463048, -0.000261353], + ] + ) self.comment = """acetyl + O2 -> acetylperoxy""" self.chebyshev = Chebyshev( coeffs=self.coeffs, @@ -82,7 +85,8 @@ def test_coeffs(self): for j in range(self.chebyshev.coeffs.value.shape[1]): C0 = float(self.coeffs[i, j]) C = float(self.chebyshev.coeffs.value_si[i, j]) - if i == 0 and j == 0: C0 -= 6 # Unit conversion from cm^3/(mol*s) to m^3/(mol*s) + if i == 0 and j == 0: + C0 -= 6 # Unit conversion from cm^3/(mol*s) to m^3/(mol*s) self.assertAlmostEqual(C0, C, delta=1e-6 * C0) def test_temperature_min(self): @@ -118,7 +122,7 @@ def test_comment(self): def test_is_pressure_dependent(self): """ Test the Chebyshev.is_pressure_dependent() method. - + """ self.assertTrue(self.chebyshev.is_pressure_dependent()) @@ -128,32 +132,71 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([300, 500, 1000, 1500]) Plist = np.array([1e4, 1e5, 1e6]) - Kexp = np.array([ - [2.29100e+06, 2.58452e+06, 2.57204e+06], - [1.10198e+06, 2.04037e+06, 2.57428e+06], - [4.37919e+04, 2.36481e+05, 8.57727e+05], - [5.20144e+03, 4.10123e+04, 2.50401e+05], - ]) + Kexp = np.array( + [ + [2.29100e06, 2.58452e06, 2.57204e06], + [1.10198e06, 2.04037e06, 2.57428e06], + [4.37919e04, 2.36481e05, 8.57727e05], + [5.20144e03, 4.10123e04, 2.50401e05], + ] + ) for t in range(Tlist.shape[0]): for p in range(Plist.shape[0]): Kact = self.chebyshev.get_rate_coefficient(Tlist[t], Plist[p]) - self.assertAlmostEqual(Kact / Kexp[t, p], 1.0, 4, '{0} != {1} within 4 places'.format(Kexp[t, p], Kact)) + self.assertAlmostEqual( + Kact / Kexp[t, p], + 1.0, + 4, + "{0} != {1} within 4 places".format(Kexp[t, p], Kact), + ) def test_fit_to_data(self): """ Test the Chebyshev.fit_to_data() method. """ Tdata = np.array( - [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000]) + [ + 300, + 400, + 500, + 600, + 700, + 800, + 900, + 1000, + 1100, + 1200, + 1300, + 1400, + 1500, + 1600, + 1700, + 1800, + 1900, + 2000, + ] + ) Pdata = np.array([3e3, 1e4, 3e4, 1e5, 3e5, 1e6, 3e7]) nT = len(Tdata) nP = len(Pdata) kdata = np.zeros((nT, nP)) for t in range(nT): for p in range(nP): - kdata[t, p] = self.chebyshev.get_rate_coefficient(Tdata[t], Pdata[p]) * 1e6 - chebyshev = Chebyshev().fit_to_data(Tdata, Pdata, kdata, kunits="cm^3/(mol*s)", degreeT=6, degreeP=4, Tmin=300, - Tmax=2000, Pmin=0.1, Pmax=10.) + kdata[t, p] = ( + self.chebyshev.get_rate_coefficient(Tdata[t], Pdata[p]) * 1e6 + ) + chebyshev = Chebyshev().fit_to_data( + Tdata, + Pdata, + kdata, + kunits="cm^3/(mol*s)", + degreeT=6, + degreeP=4, + Tmin=300, + Tmax=2000, + Pmin=0.1, + Pmax=10.0, + ) for t in range(nT): for p in range(nP): kfit = chebyshev.get_rate_coefficient(Tdata[t], Pdata[p]) * 1e6 @@ -162,7 +205,7 @@ def test_fit_to_data(self): def test_fit_to_data2(self): """ Test the Chebyshev.fit_to_data() method throws error without enough degrees of freedom. - + Here only 3 temperatures are given, but the polynomial desired has 6 parameters. """ Tdata = np.array([300, 1200, 2000]) @@ -174,8 +217,18 @@ def test_fit_to_data2(self): for p in range(nP): kdata[t, p] = self.chebyshev.get_rate_coefficient(Tdata[t], Pdata[p]) with self.assertRaises(KineticsError): - Chebyshev().fit_to_data(Tdata, Pdata, kdata, kunits="cm^3/(mol*s)", degreeT=12, degreeP=8, Tmin=300, - Tmax=2000, Pmin=0.1, Pmax=10.) + Chebyshev().fit_to_data( + Tdata, + Pdata, + kdata, + kunits="cm^3/(mol*s)", + degreeT=12, + degreeP=8, + Tmin=300, + Tmax=2000, + Pmin=0.1, + Pmax=10.0, + ) def test_pickle(self): """ @@ -183,9 +236,14 @@ def test_pickle(self): of information. """ import pickle + chebyshev = pickle.loads(pickle.dumps(self.chebyshev, -1)) - self.assertEqual(self.chebyshev.coeffs.value.shape[0], chebyshev.coeffs.value.shape[0]) - self.assertEqual(self.chebyshev.coeffs.value.shape[1], chebyshev.coeffs.value.shape[1]) + self.assertEqual( + self.chebyshev.coeffs.value.shape[0], chebyshev.coeffs.value.shape[0] + ) + self.assertEqual( + self.chebyshev.coeffs.value.shape[1], chebyshev.coeffs.value.shape[1] + ) for i in range(self.chebyshev.coeffs.value.shape[0]): for j in range(self.chebyshev.coeffs.value.shape[1]): C0 = self.chebyshev.coeffs.value_si[i, j] @@ -207,11 +265,15 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('chebyshev = {0!r}'.format(self.chebyshev), globals(), namespace) - self.assertIn('chebyshev', namespace) - chebyshev = namespace['chebyshev'] - self.assertEqual(self.chebyshev.coeffs.value.shape[0], chebyshev.coeffs.value.shape[0]) - self.assertEqual(self.chebyshev.coeffs.value.shape[1], chebyshev.coeffs.value.shape[1]) + exec("chebyshev = {0!r}".format(self.chebyshev), globals(), namespace) + self.assertIn("chebyshev", namespace) + chebyshev = namespace["chebyshev"] + self.assertEqual( + self.chebyshev.coeffs.value.shape[0], chebyshev.coeffs.value.shape[0] + ) + self.assertEqual( + self.chebyshev.coeffs.value.shape[1], chebyshev.coeffs.value.shape[1] + ) for i in range(self.chebyshev.coeffs.value.shape[0]): for j in range(self.chebyshev.coeffs.value.shape[1]): C0 = self.chebyshev.coeffs.value[i, j] @@ -231,7 +293,9 @@ def test_change_rate(self): """ Test the Chebyshev.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.chebyshev.get_rate_coefficient(T, 1e5) for T in Tlist]) self.chebyshev.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -244,6 +308,7 @@ def test_is_identical_to(self): """ # Trivial case, compare to a KineticsModel from rmgpy.kinetics.model import KineticsModel + self.assertFalse(self.chebyshev.is_identical_to(KineticsModel())) # Compare to identical Chebyshev @@ -331,5 +396,5 @@ def test_is_identical_to(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/diffusionLimitedTest.py b/test/rmgpy/kinetics/diffusionLimitedTest.py index 2cff6c9d1a..c661b7625f 100644 --- a/test/rmgpy/kinetics/diffusionLimitedTest.py +++ b/test/rmgpy/kinetics/diffusionLimitedTest.py @@ -47,6 +47,7 @@ ################################################################################ + class TestDiffusionLimited(unittest.TestCase): """ Contains unit tests of the DiffusionLimited class. @@ -61,132 +62,320 @@ def setUp(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.772759, 0.093255, -5.84447e-05, 1.8557e-08, -2.37127e-12, -3926.9, 37.6131], - Tmin=(298, 'K'), Tmax=(1390, 'K')), + coeffs=[ + -0.772759, + 0.093255, + -5.84447e-05, + 1.8557e-08, + -2.37127e-12, + -3926.9, + 37.6131, + ], + Tmin=(298, "K"), + Tmax=(1390, "K"), + ), NASAPolynomial( - coeffs=[25.051, 0.036948, -1.25765e-05, 1.94628e-09, -1.12669e-13, -13330.1, -102.557], - Tmin=(1390, 'K'), Tmax=(5000, 'K')) + coeffs=[ + 25.051, + 0.036948, + -1.25765e-05, + 1.94628e-09, + -1.12669e-13, + -13330.1, + -102.557, + ], + Tmin=(1390, "K"), + Tmax=(5000, "K"), + ), ], - Tmin=(298, 'K'), Tmax=(5000, 'K'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(577.856, 'J/(mol*K)'), - comment="""Thermo library: JetSurF0.2"""), - molecule=[Molecule(smiles="[CH2]CCCCCCC")] + Tmin=(298, "K"), + Tmax=(5000, "K"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(577.856, "J/(mol*K)"), + comment="""Thermo library: JetSurF0.2""", + ), + molecule=[Molecule(smiles="[CH2]CCCCCCC")], ) octyl_sec = Species( label="", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.304233, 0.0880077, -4.90743e-05, 1.21858e-08, -8.87773e-13, -5237.93, 36.6583], - Tmin=(298, 'K'), Tmax=(1383, 'K')), + coeffs=[ + -0.304233, + 0.0880077, + -4.90743e-05, + 1.21858e-08, + -8.87773e-13, + -5237.93, + 36.6583, + ], + Tmin=(298, "K"), + Tmax=(1383, "K"), + ), NASAPolynomial( - coeffs=[24.9044, 0.0366394, -1.2385e-05, 1.90835e-09, -1.10161e-13, -14713.5, -101.345], - Tmin=(1383, 'K'), Tmax=(5000, 'K')) + coeffs=[ + 24.9044, + 0.0366394, + -1.2385e-05, + 1.90835e-09, + -1.10161e-13, + -14713.5, + -101.345, + ], + Tmin=(1383, "K"), + Tmax=(5000, "K"), + ), ], - Tmin=(298, 'K'), Tmax=(5000, 'K'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(577.856, 'J/(mol*K)'), - comment="""Thermo library: JetSurF0.2"""), - molecule=[Molecule(smiles="CC[CH]CCCCC")] + Tmin=(298, "K"), + Tmax=(5000, "K"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(577.856, "J/(mol*K)"), + comment="""Thermo library: JetSurF0.2""", + ), + molecule=[Molecule(smiles="CC[CH]CCCCC")], ) ethane = Species( label="", thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([10.294, 12.643, 14.933, 16.932, 20.033, 22.438, 26.281], 'cal/(mol*K)'), - H298=(12.549, 'kcal/mol'), - S298=(52.379, 'cal/(mol*K)'), - Cp0=(33.2579, 'J/(mol*K)'), CpInf=(133.032, 'J/(mol*K)'), comment="""Thermo library: CH"""), - molecule=[Molecule(smiles="C=C")] + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.294, 12.643, 14.933, 16.932, 20.033, 22.438, 26.281], + "cal/(mol*K)", + ), + H298=(12.549, "kcal/mol"), + S298=(52.379, "cal/(mol*K)"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(133.032, "J/(mol*K)"), + comment="""Thermo library: CH""", + ), + molecule=[Molecule(smiles="C=C")], ) decyl = Species( label="", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-1.31358, 0.117973, -7.51843e-05, 2.43331e-08, -3.17523e-12, -9689.68, 43.501], - Tmin=(298, 'K'), Tmax=(1390, 'K')), + coeffs=[ + -1.31358, + 0.117973, + -7.51843e-05, + 2.43331e-08, + -3.17523e-12, + -9689.68, + 43.501, + ], + Tmin=(298, "K"), + Tmax=(1390, "K"), + ), NASAPolynomial( - coeffs=[31.5697, 0.0455818, -1.54995e-05, 2.39711e-09, -1.3871e-13, -21573.8, -134.709], - Tmin=(1390, 'K'), Tmax=(5000, 'K')) + coeffs=[ + 31.5697, + 0.0455818, + -1.54995e-05, + 2.39711e-09, + -1.3871e-13, + -21573.8, + -134.709, + ], + Tmin=(1390, "K"), + Tmax=(5000, "K"), + ), ], - Tmin=(298, 'K'), Tmax=(5000, 'K'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(719.202, 'J/(mol*K)'), - comment="""Thermo library: JetSurF0.2"""), - molecule=[Molecule(smiles="[CH2]CCCCCCCCC")] + Tmin=(298, "K"), + Tmax=(5000, "K"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(719.202, "J/(mol*K)"), + comment="""Thermo library: JetSurF0.2""", + ), + molecule=[Molecule(smiles="[CH2]CCCCCCCCC")], ) acetone = Species( label="", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.75568, 0.0264934, -6.55661e-05, 1.94971e-07, -1.82059e-10, -27905.3, 9.0162], - Tmin=(10, 'K'), Tmax=(422.477, 'K')), + coeffs=[ + 3.75568, + 0.0264934, + -6.55661e-05, + 1.94971e-07, + -1.82059e-10, + -27905.3, + 9.0162, + ], + Tmin=(10, "K"), + Tmax=(422.477, "K"), + ), NASAPolynomial( - coeffs=[0.701289, 0.0344988, -1.9736e-05, 5.48052e-09, -5.92612e-13, -27460.6, 23.329], - Tmin=(422.477, 'K'), Tmax=(3000, 'K')) + coeffs=[ + 0.701289, + 0.0344988, + -1.9736e-05, + 5.48052e-09, + -5.92612e-13, + -27460.6, + 23.329, + ], + Tmin=(422.477, "K"), + Tmax=(3000, "K"), + ), ], - Tmin=(10, 'K'), Tmax=(3000, 'K'), E0=(-232.025, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), - CpInf=(232.805, 'J/(mol*K)')), - molecule=[Molecule(smiles="CC(=O)C")] + Tmin=(10, "K"), + Tmax=(3000, "K"), + E0=(-232.025, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(232.805, "J/(mol*K)"), + ), + molecule=[Molecule(smiles="CC(=O)C")], ) peracetic_acid = Species( label="", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.81786, 0.016419, 3.32204e-05, -8.98403e-08, 6.63474e-11, -42057.8, 9.65245], - Tmin=(10, 'K'), Tmax=(354.579, 'K')), + coeffs=[ + 3.81786, + 0.016419, + 3.32204e-05, + -8.98403e-08, + 6.63474e-11, + -42057.8, + 9.65245, + ], + Tmin=(10, "K"), + Tmax=(354.579, "K"), + ), NASAPolynomial( - coeffs=[2.75993, 0.0283534, -1.72659e-05, 5.08158e-09, -5.77773e-13, -41982.8, 13.6595], - Tmin=(354.579, 'K'), Tmax=(3000, 'K')) + coeffs=[ + 2.75993, + 0.0283534, + -1.72659e-05, + 5.08158e-09, + -5.77773e-13, + -41982.8, + 13.6595, + ], + Tmin=(354.579, "K"), + Tmax=(3000, "K"), + ), ], - Tmin=(10, 'K'), Tmax=(3000, 'K'), E0=(-349.698, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), - CpInf=(199.547, 'J/(mol*K)')), - molecule=[Molecule(smiles="CC(=O)OO")] + Tmin=(10, "K"), + Tmax=(3000, "K"), + E0=(-349.698, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(199.547, "J/(mol*K)"), + ), + molecule=[Molecule(smiles="CC(=O)OO")], ) acetic_acid = Species( label="", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.97665, 0.00159915, 8.5542e-05, -1.76486e-07, 1.20201e-10, -53911.5, 8.99309], - Tmin=(10, 'K'), Tmax=(375.616, 'K')), + coeffs=[ + 3.97665, + 0.00159915, + 8.5542e-05, + -1.76486e-07, + 1.20201e-10, + -53911.5, + 8.99309, + ], + Tmin=(10, "K"), + Tmax=(375.616, "K"), + ), NASAPolynomial( - coeffs=[1.57088, 0.0272146, -1.67357e-05, 5.01453e-09, -5.82273e-13, -53730.7, 18.2442], - Tmin=(375.616, 'K'), Tmax=(3000, 'K')) + coeffs=[ + 1.57088, + 0.0272146, + -1.67357e-05, + 5.01453e-09, + -5.82273e-13, + -53730.7, + 18.2442, + ], + Tmin=(375.616, "K"), + Tmax=(3000, "K"), + ), ], - Tmin=(10, 'K'), Tmax=(3000, 'K'), E0=(-448.245, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), - CpInf=(182.918, 'J/(mol*K)')), - molecule=[Molecule(smiles="CC(=O)O")] + Tmin=(10, "K"), + Tmax=(3000, "K"), + E0=(-448.245, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(182.918, "J/(mol*K)"), + ), + molecule=[Molecule(smiles="CC(=O)O")], ) criegee = Species( label="", thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.23876, 0.0679583, -3.35611e-05, 7.91519e-10, 3.13038e-12, -77986, 13.6438], - Tmin=(10, 'K'), Tmax=(1053.46, 'K')), + coeffs=[ + 3.23876, + 0.0679583, + -3.35611e-05, + 7.91519e-10, + 3.13038e-12, + -77986, + 13.6438, + ], + Tmin=(10, "K"), + Tmax=(1053.46, "K"), + ), NASAPolynomial( - coeffs=[9.84525, 0.0536795, -2.86165e-05, 7.39945e-09, -7.48482e-13, -79977.6, -21.4187], - Tmin=(1053.46, 'K'), Tmax=(3000, 'K')) + coeffs=[ + 9.84525, + 0.0536795, + -2.86165e-05, + 7.39945e-09, + -7.48482e-13, + -79977.6, + -21.4187, + ], + Tmin=(1053.46, "K"), + Tmax=(3000, "K"), + ), ], - Tmin=(10, 'K'), Tmax=(3000, 'K'), E0=(-648.47, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), - CpInf=(457.296, 'J/(mol*K)')), - molecule=[Molecule(smiles="CC(=O)OOC(C)(O)C")] + Tmin=(10, "K"), + Tmax=(3000, "K"), + E0=(-648.47, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(457.296, "J/(mol*K)"), + ), + molecule=[Molecule(smiles="CC(=O)OOC(C)(O)C")], ) self.database = SolvationDatabase() - self.database.load(os.path.join(settings['database.directory'], 'solvation')) - self.solvent = 'octane' - diffusion_limiter.enable(self.database.get_solvent_data(self.solvent), self.database) + self.database.load(os.path.join(settings["database.directory"], "solvation")) + self.solvent = "octane" + diffusion_limiter.enable( + self.database.get_solvent_data(self.solvent), self.database + ) self.T = 298 self.uni_reaction = Reaction(reactants=[octyl_pri], products=[octyl_sec]) - self.uni_reaction.kinetics = Arrhenius(A=(2.0, '1/s'), n=0, Ea=(0, 'kJ/mol')) + self.uni_reaction.kinetics = Arrhenius(A=(2.0, "1/s"), n=0, Ea=(0, "kJ/mol")) self.bi_uni_reaction = Reaction(reactants=[octyl_pri, ethane], products=[decyl]) - self.bi_uni_reaction.kinetics = Arrhenius(A=(1.0E-22, 'cm^3/molecule/s'), n=0, Ea=(0, 'kJ/mol')) - self.tri_bi_reaction = Reaction(reactants=[acetone, peracetic_acid, acetic_acid], - products=[criegee, acetic_acid]) - self.tri_bi_reaction.kinetics = Arrhenius(A=(1.07543e-11, 'cm^6/(mol^2*s)'), n=5.47295, Ea=(-38.5379, 'kJ/mol')) + self.bi_uni_reaction.kinetics = Arrhenius( + A=(1.0e-22, "cm^3/molecule/s"), n=0, Ea=(0, "kJ/mol") + ) + self.tri_bi_reaction = Reaction( + reactants=[acetone, peracetic_acid, acetic_acid], + products=[criegee, acetic_acid], + ) + self.tri_bi_reaction.kinetics = Arrhenius( + A=(1.07543e-11, "cm^6/(mol^2*s)"), n=5.47295, Ea=(-38.5379, "kJ/mol") + ) self.intrinsic_rates = { - self.uni_reaction: self.uni_reaction.kinetics.get_rate_coefficient(self.T, P=100e5), - self.bi_uni_reaction: self.bi_uni_reaction.kinetics.get_rate_coefficient(self.T, P=100e5), - self.tri_bi_reaction: self.tri_bi_reaction.kinetics.get_rate_coefficient(self.T, P=100e5), + self.uni_reaction: self.uni_reaction.kinetics.get_rate_coefficient( + self.T, P=100e5 + ), + self.bi_uni_reaction: self.bi_uni_reaction.kinetics.get_rate_coefficient( + self.T, P=100e5 + ), + self.tri_bi_reaction: self.tri_bi_reaction.kinetics.get_rate_coefficient( + self.T, P=100e5 + ), } def tearDown(self): @@ -205,20 +394,28 @@ def test_get_effective_rate_2_to_1(self): Tests that the effective rate is limited in the forward direction for a 2 -> 1 reaction """ - effective_rate = diffusion_limiter.get_effective_rate(self.bi_uni_reaction, self.T) + effective_rate = diffusion_limiter.get_effective_rate( + self.bi_uni_reaction, self.T + ) self.assertTrue(effective_rate < self.intrinsic_rates[self.bi_uni_reaction]) - self.assertTrue(effective_rate >= 0.2 * self.intrinsic_rates[self.bi_uni_reaction]) + self.assertTrue( + effective_rate >= 0.2 * self.intrinsic_rates[self.bi_uni_reaction] + ) def test_get_effective_rate_3_to_2(self): """ Tests that the effective rate is limited for a 3 -> 2 reaction """ - effective_rate = diffusion_limiter.get_effective_rate(self.tri_bi_reaction, self.T) + effective_rate = diffusion_limiter.get_effective_rate( + self.tri_bi_reaction, self.T + ) self.assertTrue(effective_rate < self.intrinsic_rates[self.tri_bi_reaction]) - self.assertTrue(effective_rate >= 0.2 * self.intrinsic_rates[self.tri_bi_reaction]) + self.assertTrue( + effective_rate >= 0.2 * self.intrinsic_rates[self.tri_bi_reaction] + ) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/falloffTest.py b/test/rmgpy/kinetics/falloffTest.py index de267d8254..a622f9e155 100644 --- a/test/rmgpy/kinetics/falloffTest.py +++ b/test/rmgpy/kinetics/falloffTest.py @@ -43,6 +43,7 @@ ################################################################################ + class TestThirdBody(unittest.TestCase): """ Contains unit tests of the ThirdBody class. @@ -53,16 +54,24 @@ def setUp(self): A function run before each unit test in this class. """ self.arrheniusLow = Arrhenius( - A=(2.62e+33, "cm^6/(mol^2*s)"), + A=(2.62e33, "cm^6/(mol^2*s)"), n=-4.76, Ea=(10.21, "kJ/mol"), T0=(1, "K"), ) - self.efficiencies = {"C": 3, "C(=O)=O": 2, "CC": 3, "O": 6, "[Ar]": 0.7, "[C]=O": 1.5, "[H][H]": 2} - self.Tmin = 300. - self.Tmax = 2000. + self.efficiencies = { + "C": 3, + "C(=O)=O": 2, + "CC": 3, + "O": 6, + "[Ar]": 0.7, + "[C]=O": 1.5, + "[H][H]": 2, + } + self.Tmin = 300.0 + self.Tmax = 2000.0 self.Pmin = 0.01 - self.Pmax = 100. + self.Pmax = 100.0 self.comment = """H + CH3 -> CH4""" self.thirdBody = ThirdBody( arrheniusLow=self.arrheniusLow, @@ -122,8 +131,10 @@ def test_get_effective_pressure(self): """ P = 1.0 # Test that each pure bath gas gives the correct effective pressure - # Create list of species objects - species = [Species(molecule=[mol]) for mol in self.thirdBody.efficiencies.keys()] + # Create list of species objects + species = [ + Species(molecule=[mol]) for mol in self.thirdBody.efficiencies.keys() + ] for mol, eff in self.thirdBody.efficiencies.items(): for spec in species: if spec.is_isomorphic(mol): @@ -183,14 +194,21 @@ def test_get_effective_collider_efficiencies(self): Test the get_effective_collider_efficiencies() method """ # Create list of molecules - molecules = [Molecule(smiles=smiles) for smiles in ["C", "C(=O)=O", "CC", "O", "[Ar]", "[C]=O", "[H][H]"]] - method_efficiencies = self.thirdBody.get_effective_collider_efficiencies(molecules) + molecules = [ + Molecule(smiles=smiles) + for smiles in ["C", "C(=O)=O", "CC", "O", "[Ar]", "[C]=O", "[H][H]"] + ] + method_efficiencies = self.thirdBody.get_effective_collider_efficiencies( + molecules + ) efficiencies = np.array([3, 2, 3, 6, 0.7, 1.5, 2]) np.testing.assert_array_almost_equal(efficiencies, method_efficiencies) # Use a smaller list of molecules molecules = [Molecule(smiles=smiles) for smiles in ["C", "CC", "[Ar]"]] - method_efficiencies = self.thirdBody.get_effective_collider_efficiencies(molecules) + method_efficiencies = self.thirdBody.get_effective_collider_efficiencies( + molecules + ) efficiencies = np.array([3, 3, 0.7]) np.testing.assert_array_almost_equal(efficiencies, method_efficiencies) @@ -200,12 +218,14 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([300, 500, 1000, 1500]) Plist = np.array([1e4, 1e5, 1e6]) - Kexp = np.array([ - [2.83508e+08, 2.83508e+09, 2.83508e+10], - [7.68759e+07, 7.68759e+08, 7.68759e+09], - [4.84353e+06, 4.84353e+07, 4.84353e+08], - [7.05740e+05, 7.05740e+06, 7.05740e+07], - ]) + Kexp = np.array( + [ + [2.83508e08, 2.83508e09, 2.83508e10], + [7.68759e07, 7.68759e08, 7.68759e09], + [4.84353e06, 4.84353e07, 4.84353e08], + [7.05740e05, 7.05740e06, 7.05740e07], + ] + ) for t in range(Tlist.shape[0]): for p in range(Plist.shape[0]): Kact = self.thirdBody.get_rate_coefficient(Tlist[t], Plist[p]) @@ -217,15 +237,34 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + thirdBody = pickle.loads(pickle.dumps(self.thirdBody, -1)) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.A.value, thirdBody.arrheniusLow.A.value, delta=1e0) - self.assertEqual(self.thirdBody.arrheniusLow.A.units, thirdBody.arrheniusLow.A.units) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.n.value, thirdBody.arrheniusLow.n.value, 4) - self.assertEqual(self.thirdBody.arrheniusLow.n.units, thirdBody.arrheniusLow.n.units, 4) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.Ea.value, thirdBody.arrheniusLow.Ea.value, 4) - self.assertEqual(self.thirdBody.arrheniusLow.Ea.units, thirdBody.arrheniusLow.Ea.units) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.T0.value, thirdBody.arrheniusLow.T0.value, 4) - self.assertEqual(self.thirdBody.arrheniusLow.T0.units, thirdBody.arrheniusLow.T0.units) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.A.value, + thirdBody.arrheniusLow.A.value, + delta=1e0, + ) + self.assertEqual( + self.thirdBody.arrheniusLow.A.units, thirdBody.arrheniusLow.A.units + ) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.n.value, thirdBody.arrheniusLow.n.value, 4 + ) + self.assertEqual( + self.thirdBody.arrheniusLow.n.units, thirdBody.arrheniusLow.n.units, 4 + ) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.Ea.value, thirdBody.arrheniusLow.Ea.value, 4 + ) + self.assertEqual( + self.thirdBody.arrheniusLow.Ea.units, thirdBody.arrheniusLow.Ea.units + ) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.T0.value, thirdBody.arrheniusLow.T0.value, 4 + ) + self.assertEqual( + self.thirdBody.arrheniusLow.T0.units, thirdBody.arrheniusLow.T0.units + ) self.assertAlmostEqual(self.thirdBody.Tmin.value, thirdBody.Tmin.value, 4) self.assertEqual(self.thirdBody.Tmin.units, thirdBody.Tmin.units) self.assertAlmostEqual(self.thirdBody.Tmax.value, thirdBody.Tmax.value, 4) @@ -249,17 +288,35 @@ def test_repr(self): from its repr() output with no loss of information. """ namespace = {} - exec('thirdBody = {0!r}'.format(self.thirdBody), globals(), namespace) - self.assertIn('thirdBody', namespace) - thirdBody = namespace['thirdBody'] - self.assertAlmostEqual(self.thirdBody.arrheniusLow.A.value, thirdBody.arrheniusLow.A.value, delta=1e0) - self.assertEqual(self.thirdBody.arrheniusLow.A.units, thirdBody.arrheniusLow.A.units) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.n.value, thirdBody.arrheniusLow.n.value, 4) - self.assertEqual(self.thirdBody.arrheniusLow.n.units, thirdBody.arrheniusLow.n.units, 4) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.Ea.value, thirdBody.arrheniusLow.Ea.value, 4) - self.assertEqual(self.thirdBody.arrheniusLow.Ea.units, thirdBody.arrheniusLow.Ea.units) - self.assertAlmostEqual(self.thirdBody.arrheniusLow.T0.value, thirdBody.arrheniusLow.T0.value, 4) - self.assertEqual(self.thirdBody.arrheniusLow.T0.units, thirdBody.arrheniusLow.T0.units) + exec("thirdBody = {0!r}".format(self.thirdBody), globals(), namespace) + self.assertIn("thirdBody", namespace) + thirdBody = namespace["thirdBody"] + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.A.value, + thirdBody.arrheniusLow.A.value, + delta=1e0, + ) + self.assertEqual( + self.thirdBody.arrheniusLow.A.units, thirdBody.arrheniusLow.A.units + ) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.n.value, thirdBody.arrheniusLow.n.value, 4 + ) + self.assertEqual( + self.thirdBody.arrheniusLow.n.units, thirdBody.arrheniusLow.n.units, 4 + ) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.Ea.value, thirdBody.arrheniusLow.Ea.value, 4 + ) + self.assertEqual( + self.thirdBody.arrheniusLow.Ea.units, thirdBody.arrheniusLow.Ea.units + ) + self.assertAlmostEqual( + self.thirdBody.arrheniusLow.T0.value, thirdBody.arrheniusLow.T0.value, 4 + ) + self.assertEqual( + self.thirdBody.arrheniusLow.T0.units, thirdBody.arrheniusLow.T0.units + ) self.assertAlmostEqual(self.thirdBody.Tmin.value, thirdBody.Tmin.value, 4) self.assertEqual(self.thirdBody.Tmin.units, thirdBody.Tmin.units) self.assertAlmostEqual(self.thirdBody.Tmax.value, thirdBody.Tmax.value, 4) @@ -281,7 +338,9 @@ def test_change_rate(self): """ Test the ThirdBody.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.thirdBody.get_rate_coefficient(T, 1e5) for T in Tlist]) self.thirdBody.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -291,6 +350,7 @@ def test_change_rate(self): ################################################################################ + class TestLindemann(unittest.TestCase): """ Contains unit tests of the Lindemann class. @@ -301,22 +361,30 @@ def setUp(self): A function run before each unit test in this class. """ self.arrheniusHigh = Arrhenius( - A=(1.39e+16, "cm^3/(mol*s)"), + A=(1.39e16, "cm^3/(mol*s)"), n=-0.534, Ea=(2.243, "kJ/mol"), T0=(1, "K"), ) self.arrheniusLow = Arrhenius( - A=(2.62e+33, "cm^6/(mol^2*s)"), + A=(2.62e33, "cm^6/(mol^2*s)"), n=-4.76, Ea=(10.21, "kJ/mol"), T0=(1, "K"), ) - self.efficiencies = {"C": 3, "C(=O)=O": 2, "CC": 3, "O": 6, "[Ar]": 0.7, "[C]=O": 1.5, "[H][H]": 2} - self.Tmin = 300. - self.Tmax = 2000. + self.efficiencies = { + "C": 3, + "C(=O)=O": 2, + "CC": 3, + "O": 6, + "[Ar]": 0.7, + "[C]=O": 1.5, + "[H][H]": 2, + } + self.Tmin = 300.0 + self.Tmax = 2000.0 self.Pmin = 0.01 - self.Pmax = 100. + self.Pmax = 100.0 self.comment = """H + CH3 -> CH4""" self.lindemann = Lindemann( arrheniusHigh=self.arrheniusHigh, @@ -383,12 +451,14 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([300, 500, 1000, 1500]) Plist = np.array([1e4, 1e5, 1e6]) - Kexp = np.array([ - [1.38023e+08, 2.45661e+08, 2.66439e+08], - [6.09146e+07, 2.12349e+08, 2.82604e+08], - [4.75671e+06, 4.09594e+07, 1.71441e+08], - [7.03616e+05, 6.85062e+06, 5.42111e+07], - ]) + Kexp = np.array( + [ + [1.38023e08, 2.45661e08, 2.66439e08], + [6.09146e07, 2.12349e08, 2.82604e08], + [4.75671e06, 4.09594e07, 1.71441e08], + [7.03616e05, 6.85062e06, 5.42111e07], + ] + ) for t in range(Tlist.shape[0]): for p in range(Plist.shape[0]): Kact = self.lindemann.get_rate_coefficient(Tlist[t], Plist[p]) @@ -400,23 +470,60 @@ def test_pickle(self): of information. """ import pickle + lindemann = pickle.loads(pickle.dumps(self.lindemann, -1)) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.A.value, lindemann.arrheniusHigh.A.value, delta=1e0) - self.assertEqual(self.lindemann.arrheniusHigh.A.units, lindemann.arrheniusHigh.A.units) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.n.value, lindemann.arrheniusHigh.n.value, 4) - self.assertEqual(self.lindemann.arrheniusHigh.n.units, lindemann.arrheniusHigh.n.units, 4) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.Ea.value, lindemann.arrheniusHigh.Ea.value, 4) - self.assertEqual(self.lindemann.arrheniusHigh.Ea.units, lindemann.arrheniusHigh.Ea.units) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.T0.value, lindemann.arrheniusHigh.T0.value, 4) - self.assertEqual(self.lindemann.arrheniusHigh.T0.units, lindemann.arrheniusHigh.T0.units) - self.assertAlmostEqual(self.lindemann.arrheniusLow.A.value, lindemann.arrheniusLow.A.value, delta=1e0) - self.assertEqual(self.lindemann.arrheniusLow.A.units, lindemann.arrheniusLow.A.units) - self.assertAlmostEqual(self.lindemann.arrheniusLow.n.value, lindemann.arrheniusLow.n.value, 4) - self.assertEqual(self.lindemann.arrheniusLow.n.units, lindemann.arrheniusLow.n.units, 4) - self.assertAlmostEqual(self.lindemann.arrheniusLow.Ea.value, lindemann.arrheniusLow.Ea.value, 4) - self.assertEqual(self.lindemann.arrheniusLow.Ea.units, lindemann.arrheniusLow.Ea.units) - self.assertAlmostEqual(self.lindemann.arrheniusLow.T0.value, lindemann.arrheniusLow.T0.value, 4) - self.assertEqual(self.lindemann.arrheniusLow.T0.units, lindemann.arrheniusLow.T0.units) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.A.value, + lindemann.arrheniusHigh.A.value, + delta=1e0, + ) + self.assertEqual( + self.lindemann.arrheniusHigh.A.units, lindemann.arrheniusHigh.A.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.n.value, lindemann.arrheniusHigh.n.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusHigh.n.units, lindemann.arrheniusHigh.n.units, 4 + ) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.Ea.value, lindemann.arrheniusHigh.Ea.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusHigh.Ea.units, lindemann.arrheniusHigh.Ea.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.T0.value, lindemann.arrheniusHigh.T0.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusHigh.T0.units, lindemann.arrheniusHigh.T0.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.A.value, + lindemann.arrheniusLow.A.value, + delta=1e0, + ) + self.assertEqual( + self.lindemann.arrheniusLow.A.units, lindemann.arrheniusLow.A.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.n.value, lindemann.arrheniusLow.n.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusLow.n.units, lindemann.arrheniusLow.n.units, 4 + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.Ea.value, lindemann.arrheniusLow.Ea.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusLow.Ea.units, lindemann.arrheniusLow.Ea.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.T0.value, lindemann.arrheniusLow.T0.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusLow.T0.units, lindemann.arrheniusLow.T0.units + ) self.assertAlmostEqual(self.lindemann.Tmin.value, lindemann.Tmin.value, 4) self.assertEqual(self.lindemann.Tmin.units, lindemann.Tmin.units) self.assertAlmostEqual(self.lindemann.Tmax.value, lindemann.Tmax.value, 4) @@ -440,25 +547,61 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('lindemann = {0!r}'.format(self.lindemann), globals(), namespace) - self.assertIn('lindemann', namespace) - lindemann = namespace['lindemann'] - self.assertAlmostEqual(self.lindemann.arrheniusHigh.A.value, lindemann.arrheniusHigh.A.value, delta=1e0) - self.assertEqual(self.lindemann.arrheniusHigh.A.units, lindemann.arrheniusHigh.A.units) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.n.value, lindemann.arrheniusHigh.n.value, 4) - self.assertEqual(self.lindemann.arrheniusHigh.n.units, lindemann.arrheniusHigh.n.units, 4) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.Ea.value, lindemann.arrheniusHigh.Ea.value, 4) - self.assertEqual(self.lindemann.arrheniusHigh.Ea.units, lindemann.arrheniusHigh.Ea.units) - self.assertAlmostEqual(self.lindemann.arrheniusHigh.T0.value, lindemann.arrheniusHigh.T0.value, 4) - self.assertEqual(self.lindemann.arrheniusHigh.T0.units, lindemann.arrheniusHigh.T0.units) - self.assertAlmostEqual(self.lindemann.arrheniusLow.A.value, lindemann.arrheniusLow.A.value, delta=1e0) - self.assertEqual(self.lindemann.arrheniusLow.A.units, lindemann.arrheniusLow.A.units) - self.assertAlmostEqual(self.lindemann.arrheniusLow.n.value, lindemann.arrheniusLow.n.value, 4) - self.assertEqual(self.lindemann.arrheniusLow.n.units, lindemann.arrheniusLow.n.units, 4) - self.assertAlmostEqual(self.lindemann.arrheniusLow.Ea.value, lindemann.arrheniusLow.Ea.value, 4) - self.assertEqual(self.lindemann.arrheniusLow.Ea.units, lindemann.arrheniusLow.Ea.units) - self.assertAlmostEqual(self.lindemann.arrheniusLow.T0.value, lindemann.arrheniusLow.T0.value, 4) - self.assertEqual(self.lindemann.arrheniusLow.T0.units, lindemann.arrheniusLow.T0.units) + exec("lindemann = {0!r}".format(self.lindemann), globals(), namespace) + self.assertIn("lindemann", namespace) + lindemann = namespace["lindemann"] + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.A.value, + lindemann.arrheniusHigh.A.value, + delta=1e0, + ) + self.assertEqual( + self.lindemann.arrheniusHigh.A.units, lindemann.arrheniusHigh.A.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.n.value, lindemann.arrheniusHigh.n.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusHigh.n.units, lindemann.arrheniusHigh.n.units, 4 + ) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.Ea.value, lindemann.arrheniusHigh.Ea.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusHigh.Ea.units, lindemann.arrheniusHigh.Ea.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusHigh.T0.value, lindemann.arrheniusHigh.T0.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusHigh.T0.units, lindemann.arrheniusHigh.T0.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.A.value, + lindemann.arrheniusLow.A.value, + delta=1e0, + ) + self.assertEqual( + self.lindemann.arrheniusLow.A.units, lindemann.arrheniusLow.A.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.n.value, lindemann.arrheniusLow.n.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusLow.n.units, lindemann.arrheniusLow.n.units, 4 + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.Ea.value, lindemann.arrheniusLow.Ea.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusLow.Ea.units, lindemann.arrheniusLow.Ea.units + ) + self.assertAlmostEqual( + self.lindemann.arrheniusLow.T0.value, lindemann.arrheniusLow.T0.value, 4 + ) + self.assertEqual( + self.lindemann.arrheniusLow.T0.units, lindemann.arrheniusLow.T0.units + ) self.assertAlmostEqual(self.lindemann.Tmin.value, lindemann.Tmin.value, 4) self.assertEqual(self.lindemann.Tmin.units, lindemann.Tmin.units) self.assertAlmostEqual(self.lindemann.Tmax.value, lindemann.Tmax.value, 4) @@ -480,7 +623,9 @@ def test_change_rate(self): """ Test the Lindemann.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.lindemann.get_rate_coefficient(T, 1e5) for T in Tlist]) self.lindemann.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -490,6 +635,7 @@ def test_change_rate(self): ################################################################################ + class TestTroe(unittest.TestCase): """ Contains unit tests of the Troe class. @@ -500,13 +646,13 @@ def setUp(self): A function run before each unit test in this class. """ self.arrheniusHigh = Arrhenius( - A=(1.39e+16, "cm^3/(mol*s)"), + A=(1.39e16, "cm^3/(mol*s)"), n=-0.534, Ea=(2.243, "kJ/mol"), T0=(1, "K"), ) self.arrheniusLow = Arrhenius( - A=(2.62e+33, "cm^6/(mol^2*s)"), + A=(2.62e33, "cm^6/(mol^2*s)"), n=-4.76, Ea=(10.21, "kJ/mol"), T0=(1, "K"), @@ -515,11 +661,19 @@ def setUp(self): self.T3 = 74 self.T1 = 2941 self.T2 = 6964 - self.efficiencies = {"C": 3, "C(=O)=O": 2, "CC": 3, "O": 6, "[Ar]": 0.7, "[C]=O": 1.5, "[H][H]": 2} - self.Tmin = 300. - self.Tmax = 2000. + self.efficiencies = { + "C": 3, + "C(=O)=O": 2, + "CC": 3, + "O": 6, + "[Ar]": 0.7, + "[C]=O": 1.5, + "[H][H]": 2, + } + self.Tmin = 300.0 + self.Tmax = 2000.0 self.Pmin = 0.01 - self.Pmax = 100. + self.Pmax = 100.0 self.comment = """H + CH3 -> CH4""" self.troe = Troe( arrheniusHigh=self.arrheniusHigh, @@ -614,12 +768,14 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([300, 500, 1000, 1500]) Plist = np.array([1e4, 1e5, 1e6]) - Kexp = np.array([ - [1.00648177e+08, 2.01999460e+08, 2.53938097e+08], - [4.71247326e+07, 1.41526885e+08, 2.45386923e+08], - [3.94987723e+06, 2.87338709e+07, 9.57539092e+07], - [5.88566395e+05, 5.10614193e+06, 3.10462030e+07], - ]) + Kexp = np.array( + [ + [1.00648177e08, 2.01999460e08, 2.53938097e08], + [4.71247326e07, 1.41526885e08, 2.45386923e08], + [3.94987723e06, 2.87338709e07, 9.57539092e07], + [5.88566395e05, 5.10614193e06, 3.10462030e07], + ] + ) for t in range(Tlist.shape[0]): for p in range(Plist.shape[0]): Kact = self.troe.get_rate_coefficient(Tlist[t], Plist[p]) @@ -631,22 +787,39 @@ def test_pickle(self): information. """ import pickle + troe = pickle.loads(pickle.dumps(self.troe, -1)) - self.assertAlmostEqual(self.troe.arrheniusHigh.A.value, troe.arrheniusHigh.A.value, delta=1e0) + self.assertAlmostEqual( + self.troe.arrheniusHigh.A.value, troe.arrheniusHigh.A.value, delta=1e0 + ) self.assertEqual(self.troe.arrheniusHigh.A.units, troe.arrheniusHigh.A.units) - self.assertAlmostEqual(self.troe.arrheniusHigh.n.value, troe.arrheniusHigh.n.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusHigh.n.value, troe.arrheniusHigh.n.value, 4 + ) self.assertEqual(self.troe.arrheniusHigh.n.units, troe.arrheniusHigh.n.units, 4) - self.assertAlmostEqual(self.troe.arrheniusHigh.Ea.value, troe.arrheniusHigh.Ea.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusHigh.Ea.value, troe.arrheniusHigh.Ea.value, 4 + ) self.assertEqual(self.troe.arrheniusHigh.Ea.units, troe.arrheniusHigh.Ea.units) - self.assertAlmostEqual(self.troe.arrheniusHigh.T0.value, troe.arrheniusHigh.T0.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusHigh.T0.value, troe.arrheniusHigh.T0.value, 4 + ) self.assertEqual(self.troe.arrheniusHigh.T0.units, troe.arrheniusHigh.T0.units) - self.assertAlmostEqual(self.troe.arrheniusLow.A.value, troe.arrheniusLow.A.value, delta=1e0) + self.assertAlmostEqual( + self.troe.arrheniusLow.A.value, troe.arrheniusLow.A.value, delta=1e0 + ) self.assertEqual(self.troe.arrheniusLow.A.units, troe.arrheniusLow.A.units) - self.assertAlmostEqual(self.troe.arrheniusLow.n.value, troe.arrheniusLow.n.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusLow.n.value, troe.arrheniusLow.n.value, 4 + ) self.assertEqual(self.troe.arrheniusLow.n.units, troe.arrheniusLow.n.units, 4) - self.assertAlmostEqual(self.troe.arrheniusLow.Ea.value, troe.arrheniusLow.Ea.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusLow.Ea.value, troe.arrheniusLow.Ea.value, 4 + ) self.assertEqual(self.troe.arrheniusLow.Ea.units, troe.arrheniusLow.Ea.units) - self.assertAlmostEqual(self.troe.arrheniusLow.T0.value, troe.arrheniusLow.T0.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusLow.T0.value, troe.arrheniusLow.T0.value, 4 + ) self.assertEqual(self.troe.arrheniusLow.T0.units, troe.arrheniusLow.T0.units) self.assertAlmostEqual(self.troe.alpha, troe.alpha, 6) self.assertAlmostEqual(self.troe.T3.value, troe.T3.value, 6) @@ -678,24 +851,40 @@ def test_repr(self): with no loss of information. """ namespace = {} - exec('troe = {0!r}'.format(self.troe), globals(), namespace) - self.assertIn('troe', namespace) - troe = namespace['troe'] - self.assertAlmostEqual(self.troe.arrheniusHigh.A.value, troe.arrheniusHigh.A.value, delta=1e0) + exec("troe = {0!r}".format(self.troe), globals(), namespace) + self.assertIn("troe", namespace) + troe = namespace["troe"] + self.assertAlmostEqual( + self.troe.arrheniusHigh.A.value, troe.arrheniusHigh.A.value, delta=1e0 + ) self.assertEqual(self.troe.arrheniusHigh.A.units, troe.arrheniusHigh.A.units) - self.assertAlmostEqual(self.troe.arrheniusHigh.n.value, troe.arrheniusHigh.n.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusHigh.n.value, troe.arrheniusHigh.n.value, 4 + ) self.assertEqual(self.troe.arrheniusHigh.n.units, troe.arrheniusHigh.n.units, 4) - self.assertAlmostEqual(self.troe.arrheniusHigh.Ea.value, troe.arrheniusHigh.Ea.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusHigh.Ea.value, troe.arrheniusHigh.Ea.value, 4 + ) self.assertEqual(self.troe.arrheniusHigh.Ea.units, troe.arrheniusHigh.Ea.units) - self.assertAlmostEqual(self.troe.arrheniusHigh.T0.value, troe.arrheniusHigh.T0.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusHigh.T0.value, troe.arrheniusHigh.T0.value, 4 + ) self.assertEqual(self.troe.arrheniusHigh.T0.units, troe.arrheniusHigh.T0.units) - self.assertAlmostEqual(self.troe.arrheniusLow.A.value, troe.arrheniusLow.A.value, delta=1e0) + self.assertAlmostEqual( + self.troe.arrheniusLow.A.value, troe.arrheniusLow.A.value, delta=1e0 + ) self.assertEqual(self.troe.arrheniusLow.A.units, troe.arrheniusLow.A.units) - self.assertAlmostEqual(self.troe.arrheniusLow.n.value, troe.arrheniusLow.n.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusLow.n.value, troe.arrheniusLow.n.value, 4 + ) self.assertEqual(self.troe.arrheniusLow.n.units, troe.arrheniusLow.n.units, 4) - self.assertAlmostEqual(self.troe.arrheniusLow.Ea.value, troe.arrheniusLow.Ea.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusLow.Ea.value, troe.arrheniusLow.Ea.value, 4 + ) self.assertEqual(self.troe.arrheniusLow.Ea.units, troe.arrheniusLow.Ea.units) - self.assertAlmostEqual(self.troe.arrheniusLow.T0.value, troe.arrheniusLow.T0.value, 4) + self.assertAlmostEqual( + self.troe.arrheniusLow.T0.value, troe.arrheniusLow.T0.value, 4 + ) self.assertEqual(self.troe.arrheniusLow.T0.units, troe.arrheniusLow.T0.units) self.assertAlmostEqual(self.troe.alpha, troe.alpha, 6) self.assertAlmostEqual(self.troe.T3.value, troe.T3.value, 6) @@ -725,7 +914,9 @@ def test_change_rate(self): """ Test the Troe.change_rate() method. """ - Tlist = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]) + Tlist = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500] + ) k0list = np.array([self.troe.get_rate_coefficient(T, 1e5) for T in Tlist]) self.troe.change_rate(2) for T, kexp in zip(Tlist, k0list): @@ -735,5 +926,5 @@ def test_change_rate(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/kineticsModelTest.py b/test/rmgpy/kinetics/kineticsModelTest.py index b603bfe638..d9399abdba 100644 --- a/test/rmgpy/kinetics/kineticsModelTest.py +++ b/test/rmgpy/kinetics/kineticsModelTest.py @@ -33,9 +33,11 @@ import unittest -from rmgpy.kinetics.model import get_reaction_order_from_rate_coefficient_units, \ - get_rate_coefficient_units_from_reaction_order, \ - KineticsModel +from rmgpy.kinetics.model import ( + get_reaction_order_from_rate_coefficient_units, + get_rate_coefficient_units_from_reaction_order, + KineticsModel, +) from rmgpy.kinetics.uncertainties import RateUncertainty @@ -48,12 +50,14 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.Tmin = 300. - self.Tmax = 3000. + self.Tmin = 300.0 + self.Tmax = 3000.0 self.Pmin = 0.1 - self.Pmax = 100. - self.comment = 'foo bar' - self.uncertainty = RateUncertainty(mu=0.3, var=0.6, Tref=1000.0, N=1, correlation="ab") + self.Pmax = 100.0 + self.comment = "foo bar" + self.uncertainty = RateUncertainty( + mu=0.3, var=0.6, Tref=1000.0, N=1, correlation="ab" + ) self.km = KineticsModel( Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), @@ -72,10 +76,11 @@ def test_is_identical_to(self): self.assertTrue(self.km.is_identical_to(self.km)) import copy + km = copy.deepcopy(self.km) self.assertTrue(self.km.is_identical_to(self.km)) - km.Tmax = (self.Tmax - 50, 'K') # discrepancy must be more than 1%! + km.Tmax = (self.Tmax - 50, "K") # discrepancy must be more than 1%! self.assertFalse(self.km.is_identical_to(km)) def test_repr(self): @@ -84,12 +89,12 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('km = {0!r}'.format(self.km), globals(), namespace) - self.assertIn('km', namespace) - km = namespace['km'] + exec("km = {0!r}".format(self.km), globals(), namespace) + self.assertIn("km", namespace) + km = namespace["km"] self.assertTrue(self.km.is_identical_to(km)) self.assertEqual(dir(self.km), dir(km)) - for att in 'Tmax Tmin Pmax Pmin comment uncertainty'.split(): + for att in "Tmax Tmin Pmax Pmin comment uncertainty".split(): self.assertEqual(repr(getattr(self.km, att)), repr(getattr(km, att))) def test_pickle(self): @@ -98,15 +103,17 @@ def test_pickle(self): with no loss of information. """ import pickle + km = pickle.loads(pickle.dumps(self.km, -1)) self.assertTrue(self.km.is_identical_to(km)) self.assertEqual(dir(self.km), dir(km)) - for att in 'Tmax Tmin Pmax Pmin comment uncertainty'.split(): + for att in "Tmax Tmin Pmax Pmin comment uncertainty".split(): self.assertEqual(repr(getattr(self.km, att)), repr(getattr(km, att))) ################################################################################ + class TestOrder(unittest.TestCase): """ Contains unit tests of the functions for converting rate coefficient units @@ -118,62 +125,92 @@ def test_to_order_zeroth(self): Test the conversion of zeroth-order rate coefficient units to an integer reaction order. """ - self.assertEqual(0, get_reaction_order_from_rate_coefficient_units('mol/(m^3*s)')) - self.assertEqual(0, get_reaction_order_from_rate_coefficient_units('mol/(cm^3*s)')) - self.assertEqual(0, get_reaction_order_from_rate_coefficient_units('molecule/(m^3*s)')) - self.assertEqual(0, get_reaction_order_from_rate_coefficient_units('molecule/(cm^3*s)')) + self.assertEqual( + 0, get_reaction_order_from_rate_coefficient_units("mol/(m^3*s)") + ) + self.assertEqual( + 0, get_reaction_order_from_rate_coefficient_units("mol/(cm^3*s)") + ) + self.assertEqual( + 0, get_reaction_order_from_rate_coefficient_units("molecule/(m^3*s)") + ) + self.assertEqual( + 0, get_reaction_order_from_rate_coefficient_units("molecule/(cm^3*s)") + ) def test_to_order_first(self): """ Test the conversion of first-order rate coefficient units to an integer reaction order. """ - self.assertEqual(1, get_reaction_order_from_rate_coefficient_units('s^-1')) + self.assertEqual(1, get_reaction_order_from_rate_coefficient_units("s^-1")) def test_to_order_second(self): """ Test the conversion of second-order rate coefficient units to an integer reaction order. """ - self.assertEqual(2, get_reaction_order_from_rate_coefficient_units('m^3/(mol*s)')) - self.assertEqual(2, get_reaction_order_from_rate_coefficient_units('cm^3/(mol*s)')) - self.assertEqual(2, get_reaction_order_from_rate_coefficient_units('m^3/(molecule*s)')) - self.assertEqual(2, get_reaction_order_from_rate_coefficient_units('cm^3/(molecule*s)')) + self.assertEqual( + 2, get_reaction_order_from_rate_coefficient_units("m^3/(mol*s)") + ) + self.assertEqual( + 2, get_reaction_order_from_rate_coefficient_units("cm^3/(mol*s)") + ) + self.assertEqual( + 2, get_reaction_order_from_rate_coefficient_units("m^3/(molecule*s)") + ) + self.assertEqual( + 2, get_reaction_order_from_rate_coefficient_units("cm^3/(molecule*s)") + ) def test_to_order_third(self): """ Test the conversion of third-order rate coefficient units to an integer reaction order. """ - self.assertEqual(3, get_reaction_order_from_rate_coefficient_units('m^6/(mol^2*s)')) - self.assertEqual(3, get_reaction_order_from_rate_coefficient_units('cm^6/(mol^2*s)')) - self.assertEqual(3, get_reaction_order_from_rate_coefficient_units('m^6/(molecule^2*s)')) - self.assertEqual(3, get_reaction_order_from_rate_coefficient_units('cm^6/(molecule^2*s)')) + self.assertEqual( + 3, get_reaction_order_from_rate_coefficient_units("m^6/(mol^2*s)") + ) + self.assertEqual( + 3, get_reaction_order_from_rate_coefficient_units("cm^6/(mol^2*s)") + ) + self.assertEqual( + 3, get_reaction_order_from_rate_coefficient_units("m^6/(molecule^2*s)") + ) + self.assertEqual( + 3, get_reaction_order_from_rate_coefficient_units("cm^6/(molecule^2*s)") + ) def test_to_units_zeroth(self): """ Test the conversion of a reaction order of zero to rate coefficient units. """ - self.assertEqual('mol/(m^3*s)', get_rate_coefficient_units_from_reaction_order(0)) + self.assertEqual( + "mol/(m^3*s)", get_rate_coefficient_units_from_reaction_order(0) + ) def test_to_units_first(self): """ Test the conversion of a reaction order of one to rate coefficient units. """ - self.assertEqual('s^-1', get_rate_coefficient_units_from_reaction_order(1)) + self.assertEqual("s^-1", get_rate_coefficient_units_from_reaction_order(1)) def test_to_units_second(self): """ Test the conversion of a reaction order of two to rate coefficient units. """ - self.assertEqual('m^3/(mol*s)', get_rate_coefficient_units_from_reaction_order(2)) + self.assertEqual( + "m^3/(mol*s)", get_rate_coefficient_units_from_reaction_order(2) + ) def test_to_units_third(self): """ Test the conversion of a reaction order of three to rate coefficient units. """ - self.assertEqual('m^6/(mol^2*s)', get_rate_coefficient_units_from_reaction_order(3)) + self.assertEqual( + "m^6/(mol^2*s)", get_rate_coefficient_units_from_reaction_order(3) + ) diff --git a/test/rmgpy/kinetics/kineticsSurfaceTest.py b/test/rmgpy/kinetics/kineticsSurfaceTest.py index 52e48accd7..ff661d66ab 100644 --- a/test/rmgpy/kinetics/kineticsSurfaceTest.py +++ b/test/rmgpy/kinetics/kineticsSurfaceTest.py @@ -55,15 +55,19 @@ def setUp(self): self.A = 4.3e-2 self.n = -0.21 self.Ea = 1.2 - self.T0 = 1. - self.Tmin = 300. - self.Tmax = 3000. - s = Species().from_adjacency_list('1 X u0 p0 c0') - s.label = 'X' - self.coverage_dependence = {s: {'a': quantity.Dimensionless(0.0), - 'm': quantity.Dimensionless(-1.0), - 'E': quantity.Energy(0.0, 'J/mol')}} - self.comment = 'O2 dissociative' + self.T0 = 1.0 + self.Tmin = 300.0 + self.Tmax = 3000.0 + s = Species().from_adjacency_list("1 X u0 p0 c0") + s.label = "X" + self.coverage_dependence = { + s: { + "a": quantity.Dimensionless(0.0), + "m": quantity.Dimensionless(-1.0), + "E": quantity.Energy(0.0, "J/mol"), + } + } + self.comment = "O2 dissociative" self.stick = StickingCoefficient( A=self.A, n=self.n, @@ -133,7 +137,10 @@ def test_coverage_dependence(self): if species.is_identical(species2): match = True for key, value in parameters.items(): - self.assertEqual(value.value_si, self.coverage_dependence[species2][key].value_si) + self.assertEqual( + value.value_si, + self.coverage_dependence[species2][key].value_si, + ) self.assertTrue(match) def test_is_temperature_valid(self): @@ -141,7 +148,9 @@ def test_is_temperature_valid(self): Test the StickingCoefficient.is_temperature_valid() method. """ T_data = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 4000]) - valid_data = np.array([False, True, True, True, True, True, True, True, True, False], np.bool) + valid_data = np.array( + [False, True, True, True, True, True, True, True, True, False], np.bool + ) for T, valid in zip(T_data, valid_data): valid0 = self.stick.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -152,6 +161,7 @@ def test_pickle(self): of information. """ import pickle + stick = pickle.loads(pickle.dumps(self.stick, -1)) self.assertAlmostEqual(self.stick.A.value, stick.A.value, delta=1e0) self.assertEqual(self.stick.A.units, stick.A.units) @@ -177,7 +187,10 @@ def test_pickle(self): if species.is_identical(species2): match = True for key, value in parameters.items(): - self.assertEqual(value.value_si, stick.coverage_dependence[species2][key].value_si) + self.assertEqual( + value.value_si, + stick.coverage_dependence[species2][key].value_si, + ) self.assertTrue(match) self.assertEqual(dir(self.stick), dir(stick)) @@ -187,9 +200,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec(f'stick = {self.stick!r}', globals(), namespace) - self.assertIn('stick', namespace) - stick = namespace['stick'] + exec(f"stick = {self.stick!r}", globals(), namespace) + self.assertIn("stick", namespace) + stick = namespace["stick"] self.assertAlmostEqual(self.stick.A.value, stick.A.value, delta=1e0) self.assertEqual(self.stick.A.units, stick.A.units) self.assertAlmostEqual(self.stick.n.value, stick.n.value, 4) @@ -202,10 +215,16 @@ def test_repr(self): self.assertAlmostEqual(self.stick.Tmax.value, stick.Tmax.value, 4) self.assertEqual(self.stick.Tmax.units, stick.Tmax.units) self.assertEqual(self.stick.comment, stick.comment) - self.assertEqual([m.label for m in self.stick.coverage_dependence.keys()], list(stick.coverage_dependence.keys())) + self.assertEqual( + [m.label for m in self.stick.coverage_dependence.keys()], + list(stick.coverage_dependence.keys()), + ) for species, parameters in self.stick.coverage_dependence.items(): for key, value in parameters.items(): - self.assertEqual(value.value_si, stick.coverage_dependence[species.label][key].value_si) + self.assertEqual( + value.value_si, + stick.coverage_dependence[species.label][key].value_si, + ) self.assertEqual(dir(self.stick), dir(stick)) def test_copy(self): @@ -214,6 +233,7 @@ def test_copy(self): with no loss of information. """ import copy + stick = copy.deepcopy(self.stick) self.assertAlmostEqual(self.stick.A.value, stick.A.value, delta=1e0) self.assertEqual(self.stick.A.units, stick.A.units) @@ -239,7 +259,10 @@ def test_copy(self): if species.is_identical(species2): match = True for key, value in parameters.items(): - self.assertEqual(value.value_si, stick.coverage_dependence[species2][key].value_si) + self.assertEqual( + value.value_si, + stick.coverage_dependence[species2][key].value_si, + ) self.assertTrue(match) self.assertEqual(dir(self.stick), dir(stick)) @@ -249,6 +272,7 @@ def test_is_identical_to(self): """ self.assertTrue(self.stick.is_identical_to(self.stick)) + ################################################################################ @@ -264,17 +288,21 @@ def setUp(self): self.A = 1.44e18 self.n = -0.087 self.Ea = 63.4 - self.T0 = 1. - self.Tmin = 300. - self.Tmax = 3000. - s = Species().from_adjacency_list('1 X u0 p0 c0') - s.label = 'X' - self.coverage_dependence = {s: {'a': quantity.Dimensionless(0.0), - 'm': quantity.Dimensionless(-1.0), - 'E': quantity.Energy(0.0, 'J/mol')}} - self.comment = 'CH3x + Hx <=> CH4 + x + x' + self.T0 = 1.0 + self.Tmin = 300.0 + self.Tmax = 3000.0 + s = Species().from_adjacency_list("1 X u0 p0 c0") + s.label = "X" + self.coverage_dependence = { + s: { + "a": quantity.Dimensionless(0.0), + "m": quantity.Dimensionless(-1.0), + "E": quantity.Energy(0.0, "J/mol"), + } + } + self.comment = "CH3x + Hx <=> CH4 + x + x" self.surfarr = SurfaceArrhenius( - A=(self.A, 'm^2/(mol*s)'), + A=(self.A, "m^2/(mol*s)"), n=self.n, Ea=(self.Ea, "kJ/mol"), T0=(self.T0, "K"), @@ -342,7 +370,10 @@ def test_coverage_dependence(self): if species.is_identical(species2): match = True for key, value in parameters.items(): - self.assertEqual(value.value_si, self.coverage_dependence[species2][key].value_si) + self.assertEqual( + value.value_si, + self.coverage_dependence[species2][key].value_si, + ) self.assertTrue(match) def test_is_temperature_valid(self): @@ -350,7 +381,9 @@ def test_is_temperature_valid(self): Test the SurfaceArrhenius.is_temperature_valid() method. """ T_data = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 4000]) - valid_data = np.array([False, True, True, True, True, True, True, True, True, False], np.bool) + valid_data = np.array( + [False, True, True, True, True, True, True, True, True, False], np.bool + ) for T, valid in zip(T_data, valid_data): valid0 = self.surfarr.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -361,6 +394,7 @@ def test_pickle(self): of information. """ import pickle + surfarr = pickle.loads(pickle.dumps(self.surfarr, -1)) self.assertAlmostEqual(self.surfarr.A.value, surfarr.A.value, delta=1e0) self.assertEqual(self.surfarr.A.units, surfarr.A.units) @@ -386,7 +420,10 @@ def test_pickle(self): if species.is_identical(species2): match = True for key, value in parameters.items(): - self.assertEqual(value.value_si, surfarr.coverage_dependence[species2][key].value_si) + self.assertEqual( + value.value_si, + surfarr.coverage_dependence[species2][key].value_si, + ) self.assertTrue(match) self.assertEqual(dir(self.surfarr), dir(surfarr)) @@ -396,9 +433,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('surfarr = {0!r}'.format(self.surfarr), globals(), namespace) - self.assertIn('surfarr', namespace) - surfarr = namespace['surfarr'] + exec("surfarr = {0!r}".format(self.surfarr), globals(), namespace) + self.assertIn("surfarr", namespace) + surfarr = namespace["surfarr"] self.assertAlmostEqual(self.surfarr.A.value, surfarr.A.value, delta=1e0) self.assertEqual(self.surfarr.A.units, surfarr.A.units) self.assertAlmostEqual(self.surfarr.n.value, surfarr.n.value, 4) @@ -411,10 +448,16 @@ def test_repr(self): self.assertAlmostEqual(self.surfarr.Tmax.value, surfarr.Tmax.value, 4) self.assertEqual(self.surfarr.Tmax.units, surfarr.Tmax.units) self.assertEqual(self.surfarr.comment, surfarr.comment) - self.assertEqual([m.label for m in self.surfarr.coverage_dependence.keys()], list(surfarr.coverage_dependence.keys())) + self.assertEqual( + [m.label for m in self.surfarr.coverage_dependence.keys()], + list(surfarr.coverage_dependence.keys()), + ) for species, parameters in self.surfarr.coverage_dependence.items(): for key, value in parameters.items(): - self.assertEqual(value.value_si, surfarr.coverage_dependence[species.label][key].value_si) + self.assertEqual( + value.value_si, + surfarr.coverage_dependence[species.label][key].value_si, + ) self.assertEqual(dir(self.surfarr), dir(surfarr)) def test_copy(self): @@ -423,6 +466,7 @@ def test_copy(self): with no loss of information. """ import copy + surfarr = copy.deepcopy(self.surfarr) self.assertAlmostEqual(self.surfarr.A.value, surfarr.A.value, delta=1e0) self.assertEqual(self.surfarr.A.units, surfarr.A.units) @@ -448,7 +492,10 @@ def test_copy(self): if species.is_identical(species2): match = True for key, value in parameters.items(): - self.assertEqual(value.value_si, surfarr.coverage_dependence[species2][key].value_si) + self.assertEqual( + value.value_si, + surfarr.coverage_dependence[species2][key].value_si, + ) self.assertTrue(match) self.assertEqual(dir(self.surfarr), dir(surfarr)) diff --git a/test/rmgpy/kinetics/kineticsdataTest.py b/test/rmgpy/kinetics/kineticsdataTest.py index bcf6da8cb6..9f2bf19b62 100644 --- a/test/rmgpy/kinetics/kineticsdataTest.py +++ b/test/rmgpy/kinetics/kineticsdataTest.py @@ -41,6 +41,7 @@ ################################################################################ + class TestKineticsData(unittest.TestCase): """ Contains unit tests of the :class:`KineticsData` class. @@ -50,13 +51,27 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.Tdata = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1500, 2000], np.float64) + self.Tdata = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1500, 2000], np.float64 + ) self.kdata = np.array( - [4.73e-19, 3.93e-17, 6.51e-16, 4.60e-15, 2.03e-14, 6.28e-14, 1.58e-13, 3.31e-13, 3.72e-12, 1.49e-11], - np.float64) - self.Tmin = 300. - self.Tmax = 3000. - self.comment = 'H + CH4 <=> H2 + CH3 (RPMD)' + [ + 4.73e-19, + 3.93e-17, + 6.51e-16, + 4.60e-15, + 2.03e-14, + 6.28e-14, + 1.58e-13, + 3.31e-13, + 3.72e-12, + 1.49e-11, + ], + np.float64, + ) + self.Tmin = 300.0 + self.Tmax = 3000.0 + self.comment = "H + CH4 <=> H2 + CH3 (RPMD)" self.kinetics = KineticsData( Tdata=(self.Tdata, "K"), kdata=(self.kdata, "cm^3/(molecule*s)"), @@ -105,7 +120,9 @@ def test_is_temperature_valid(self): Test the KineticsData.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, True, True, True], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, True, True, True], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.kinetics.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -116,8 +133,19 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([300, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) kexplist = np.array( - [2.84847e-01, 2.36670e+01, 2.77019e+03, 3.78191e+04, 1.99333e+05, 5.24644e+05, 1.38086e+06, 2.95680e+06, - 5.15086e+06, 8.97299e+06]) + [ + 2.84847e-01, + 2.36670e01, + 2.77019e03, + 3.78191e04, + 1.99333e05, + 5.24644e05, + 1.38086e06, + 2.95680e06, + 5.15086e06, + 8.97299e06, + ] + ) for T, kexp in zip(Tlist, kexplist): kact = self.kinetics.get_rate_coefficient(T) self.assertAlmostEqual(kexp, kact, delta=1e-4 * kexp) @@ -128,6 +156,7 @@ def test_pickle(self): loss of information. """ import pickle + kinetics = pickle.loads(pickle.dumps(self.kinetics, -1)) self.assertEqual(self.kinetics.Tdata.value.shape, kinetics.Tdata.value.shape) for T, T0 in zip(self.kinetics.Tdata.value, kinetics.Tdata.value): @@ -149,9 +178,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('kinetics = {0!r}'.format(self.kinetics), globals(), namespace) - self.assertIn('kinetics', namespace) - kinetics = namespace['kinetics'] + exec("kinetics = {0!r}".format(self.kinetics), globals(), namespace) + self.assertIn("kinetics", namespace) + kinetics = namespace["kinetics"] self.assertEqual(self.kinetics.Tdata.value.shape, kinetics.Tdata.value.shape) for T, T0 in zip(self.kinetics.Tdata.value, kinetics.Tdata.value): self.assertAlmostEqual(T, T0, 4) @@ -169,6 +198,7 @@ def test_repr(self): ################################################################################ + class TestPDepKineticsData(unittest.TestCase): """ Contains unit tests of the :class:`PDepKineticsData` class. @@ -178,18 +208,56 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.Tdata = np.array([300, 400, 500, 600, 700, 800, 900, 1000, 1500, 2000], np.float64) + self.Tdata = np.array( + [300, 400, 500, 600, 700, 800, 900, 1000, 1500, 2000], np.float64 + ) self.Pdata = np.array([1e-1, 1e0, 1e1], np.float64) - self.kdata = np.array([ - [4.73e-21, 3.93e-19, 6.51e-18, 4.60e-17, 2.03e-16, 6.28e-16, 1.58e-15, 3.31e-15, 3.72e-14, 1.49e-13], - [4.73e-20, 3.93e-18, 6.51e-17, 4.60e-16, 2.03e-15, 6.28e-15, 1.58e-14, 3.31e-14, 3.72e-13, 1.49e-12], - [4.73e-19, 3.93e-17, 6.51e-16, 4.60e-15, 2.03e-14, 6.28e-14, 1.58e-13, 3.31e-13, 3.72e-12, 1.49e-11], - ], np.float64).T - self.Tmin = 300. - self.Tmax = 3000. + self.kdata = np.array( + [ + [ + 4.73e-21, + 3.93e-19, + 6.51e-18, + 4.60e-17, + 2.03e-16, + 6.28e-16, + 1.58e-15, + 3.31e-15, + 3.72e-14, + 1.49e-13, + ], + [ + 4.73e-20, + 3.93e-18, + 6.51e-17, + 4.60e-16, + 2.03e-15, + 6.28e-15, + 1.58e-14, + 3.31e-14, + 3.72e-13, + 1.49e-12, + ], + [ + 4.73e-19, + 3.93e-17, + 6.51e-16, + 4.60e-15, + 2.03e-14, + 6.28e-14, + 1.58e-13, + 3.31e-13, + 3.72e-12, + 1.49e-11, + ], + ], + np.float64, + ).T + self.Tmin = 300.0 + self.Tmax = 3000.0 self.Pmin = 1e-1 self.Pmax = 1e1 - self.comment = '' + self.comment = "" self.kinetics = PDepKineticsData( Tdata=(self.Tdata, "K"), Pdata=(self.Pdata, "bar"), @@ -263,7 +331,9 @@ def test_is_temperature_valid(self): Test the PDepKineticsData.is_temperature_valid() method. """ Tdata = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - validdata = np.array([False, True, True, True, True, True, True, True, True, True], np.bool) + validdata = np.array( + [False, True, True, True, True, True, True, True, True, True], np.bool + ) for T, valid in zip(Tdata, validdata): valid0 = self.kinetics.is_temperature_valid(T) self.assertEqual(valid0, valid) @@ -284,14 +354,46 @@ def test_get_rate_coefficient(self): """ Tlist = np.array([300, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) Plist = np.array([1e4, 1e5, 1e6]) - kexplist = np.array([ - [2.84847e-03, 2.36670e-01, 2.77019e+01, 3.78191e+02, 1.99333e+03, 5.24644e+03, 1.38086e+04, 2.95680e+04, - 5.15086e+04, 8.97299e+04], - [2.84847e-02, 2.36670e+00, 2.77019e+02, 3.78191e+03, 1.99333e+04, 5.24644e+04, 1.38086e+05, 2.95680e+05, - 5.15086e+05, 8.97299e+05], - [2.84847e-01, 2.36670e+01, 2.77019e+03, 3.78191e+04, 1.99333e+05, 5.24644e+05, 1.38086e+06, 2.95680e+06, - 5.15086e+06, 8.97299e+06], - ]).T + kexplist = np.array( + [ + [ + 2.84847e-03, + 2.36670e-01, + 2.77019e01, + 3.78191e02, + 1.99333e03, + 5.24644e03, + 1.38086e04, + 2.95680e04, + 5.15086e04, + 8.97299e04, + ], + [ + 2.84847e-02, + 2.36670e00, + 2.77019e02, + 3.78191e03, + 1.99333e04, + 5.24644e04, + 1.38086e05, + 2.95680e05, + 5.15086e05, + 8.97299e05, + ], + [ + 2.84847e-01, + 2.36670e01, + 2.77019e03, + 3.78191e04, + 1.99333e05, + 5.24644e05, + 1.38086e06, + 2.95680e06, + 5.15086e06, + 8.97299e06, + ], + ] + ).T for i in range(Tlist.shape[0]): for j in range(Plist.shape[0]): kexp = kexplist[i, j] @@ -304,6 +406,7 @@ def test_pickle(self): loss of information. """ import pickle + kinetics = pickle.loads(pickle.dumps(self.kinetics, -1)) self.assertEqual(self.kinetics.Tdata.value.shape, kinetics.Tdata.value.shape) for T, T0 in zip(self.kinetics.Tdata.value, kinetics.Tdata.value): @@ -332,9 +435,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('kinetics = {0!r}'.format(self.kinetics), globals(), namespace) - self.assertIn('kinetics', namespace) - kinetics = namespace['kinetics'] + exec("kinetics = {0!r}".format(self.kinetics), globals(), namespace) + self.assertIn("kinetics", namespace) + kinetics = namespace["kinetics"] self.assertEqual(self.kinetics.Tdata.value.shape, kinetics.Tdata.value.shape) for T, T0 in zip(self.kinetics.Tdata.value, kinetics.Tdata.value): self.assertAlmostEqual(T, T0, 4) diff --git a/test/rmgpy/kinetics/tunnelingTest.py b/test/rmgpy/kinetics/tunnelingTest.py index d6a4bbf38e..0dd56035e8 100644 --- a/test/rmgpy/kinetics/tunnelingTest.py +++ b/test/rmgpy/kinetics/tunnelingTest.py @@ -40,6 +40,7 @@ ################################################################################ + class TestWigner(unittest.TestCase): """ Contains unit tests of the :class:`Wigner` class. @@ -76,8 +77,11 @@ def test_pickle(self): with no loss of information. """ import pickle + tunneling = pickle.loads(pickle.dumps(self.tunneling, -1)) - self.assertAlmostEqual(self.tunneling.frequency.value, tunneling.frequency.value, 2) + self.assertAlmostEqual( + self.tunneling.frequency.value, tunneling.frequency.value, 2 + ) self.assertEqual(self.tunneling.frequency.units, tunneling.frequency.units) def test_repr(self): @@ -86,15 +90,18 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('tunneling = {0!r}'.format(self.tunneling), globals(), namespace) - self.assertIn('tunneling', namespace) - tunneling = namespace['tunneling'] - self.assertAlmostEqual(self.tunneling.frequency.value, tunneling.frequency.value, 2) + exec("tunneling = {0!r}".format(self.tunneling), globals(), namespace) + self.assertIn("tunneling", namespace) + tunneling = namespace["tunneling"] + self.assertAlmostEqual( + self.tunneling.frequency.value, tunneling.frequency.value, 2 + ) self.assertEqual(self.tunneling.frequency.units, tunneling.frequency.units) ################################################################################ + class TestEckart(unittest.TestCase): """ Contains unit tests of the :class:`Eckart` class. @@ -144,7 +151,7 @@ def test_calculate_tunneling_factor(self): Test the Eckart.calculate_tunneling_factor() method. """ Tlist = np.array([300, 500, 1000, 1500, 2000]) - kexplist = np.array([1623051., 7.69349, 1.46551, 1.18111, 1.09858]) + kexplist = np.array([1623051.0, 7.69349, 1.46551, 1.18111, 1.09858]) for T, kexp in zip(Tlist, kexplist): kact = self.tunneling.calculate_tunneling_factor(T) self.assertAlmostEqual(kexp, kact, delta=1e-3 * kexp) @@ -155,8 +162,11 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + tunneling = pickle.loads(pickle.dumps(self.tunneling, -1)) - self.assertAlmostEqual(self.tunneling.frequency.value, tunneling.frequency.value, 2) + self.assertAlmostEqual( + self.tunneling.frequency.value, tunneling.frequency.value, 2 + ) self.assertEqual(self.tunneling.frequency.units, tunneling.frequency.units) self.assertAlmostEqual(self.tunneling.E0_reac.value, tunneling.E0_reac.value, 3) self.assertEqual(self.tunneling.E0_reac.units, tunneling.E0_reac.units) @@ -171,10 +181,12 @@ def test_repr(self): from its repr() output with no loss of information. """ namespace = {} - exec('tunneling = {0!r}'.format(self.tunneling), globals(), namespace) - self.assertIn('tunneling', namespace) - tunneling = namespace['tunneling'] - self.assertAlmostEqual(self.tunneling.frequency.value, tunneling.frequency.value, 2) + exec("tunneling = {0!r}".format(self.tunneling), globals(), namespace) + self.assertIn("tunneling", namespace) + tunneling = namespace["tunneling"] + self.assertAlmostEqual( + self.tunneling.frequency.value, tunneling.frequency.value, 2 + ) self.assertEqual(self.tunneling.frequency.units, tunneling.frequency.units) self.assertAlmostEqual(self.tunneling.E0_reac.value, tunneling.E0_reac.value, 3) self.assertEqual(self.tunneling.E0_reac.units, tunneling.E0_reac.units) diff --git a/test/rmgpy/ml/estimatorTest.py b/test/rmgpy/ml/estimatorTest.py index 807fdc4689..71a54c2fd2 100644 --- a/test/rmgpy/ml/estimatorTest.py +++ b/test/rmgpy/ml/estimatorTest.py @@ -44,19 +44,21 @@ def setUp(self): Set up the MLEstimator class. This method is run once before all other unit tests. """ - models_path = os.path.join(settings['database.directory'], 'thermo', 'ml', 'main') - hf298_path = os.path.join(models_path, 'hf298') - s298_cp_path = os.path.join(models_path, 's298_cp') + models_path = os.path.join( + settings["database.directory"], "thermo", "ml", "main" + ) + hf298_path = os.path.join(models_path, "hf298") + s298_cp_path = os.path.join(models_path, "s298_cp") self.ml_estimator = MLEstimator(hf298_path, s298_cp_path) def test_get_thermo_data(self): """ Test that we can make a prediction using MLEstimator. """ - smi = 'C1C2C1C2' + smi = "C1C2C1C2" thermo = self.ml_estimator.get_thermo_data(smi) - self.assertTrue(thermo.comment.startswith('ML Estimation')) + self.assertTrue(thermo.comment.startswith("ML Estimation")) self.assertAlmostEqual(thermo.Cp0.value_si, 33.3, 1) self.assertAlmostEqual(thermo.CpInf.value_si, 232.8, 1) self.assertEqual(len(thermo.Cpdata.value_si), 7) diff --git a/test/rmgpy/molecule/adjlistTest.py b/test/rmgpy/molecule/adjlistTest.py index e2b8928550..3b317ff93e 100644 --- a/test/rmgpy/molecule/adjlistTest.py +++ b/test/rmgpy/molecule/adjlistTest.py @@ -40,6 +40,7 @@ ################################################################################ + class TestGroupAdjLists(unittest.TestCase): """ Contains adjacency list unit tests of the Graph class. @@ -66,18 +67,18 @@ def test_from_old_adjacency_list1(self): bond12 = atom1.bonds[atom2] bond13 = atom1.bonds[atom3] - self.assertTrue(atom1.label == '*2') - self.assertTrue(atom1.atomtype[0].label in ['Cs', 'Cd']) - self.assertTrue(atom1.atomtype[1].label in ['Cs', 'Cd']) + self.assertTrue(atom1.label == "*2") + self.assertTrue(atom1.atomtype[0].label in ["Cs", "Cd"]) + self.assertTrue(atom1.atomtype[1].label in ["Cs", "Cd"]) self.assertTrue(atom1.radical_electrons == [0]) - self.assertTrue(atom2.label == '*1') - self.assertTrue(atom2.atomtype[0].label in ['O2s', 'O2d']) - self.assertTrue(atom2.atomtype[1].label in ['O2s', 'O2d']) + self.assertTrue(atom2.label == "*1") + self.assertTrue(atom2.atomtype[0].label in ["O2s", "O2d"]) + self.assertTrue(atom2.atomtype[1].label in ["O2s", "O2d"]) self.assertTrue(atom2.radical_electrons == [0]) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.atomtype[0].label == 'R!H') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.atomtype[0].label == "R!H") self.assertTrue(atom3.radical_electrons == [0, 1]) self.assertTrue(bond12.order == [1, 2]) @@ -101,18 +102,18 @@ def test_from_adjacency_list(self): bond12 = atom1.bonds[atom2] bond13 = atom1.bonds[atom3] - self.assertTrue(atom1.label == '*2') - self.assertTrue(atom1.atomtype[0].label in ['Cs', 'Cd']) - self.assertTrue(atom1.atomtype[1].label in ['Cs', 'Cd']) + self.assertTrue(atom1.label == "*2") + self.assertTrue(atom1.atomtype[0].label in ["Cs", "Cd"]) + self.assertTrue(atom1.atomtype[1].label in ["Cs", "Cd"]) self.assertTrue(atom1.radical_electrons == [0]) - self.assertTrue(atom2.label == '*1') - self.assertTrue(atom2.atomtype[0].label in ['O2s', 'O2d']) - self.assertTrue(atom2.atomtype[1].label in ['O2s', 'O2d']) + self.assertTrue(atom2.label == "*1") + self.assertTrue(atom2.atomtype[0].label in ["O2s", "O2d"]) + self.assertTrue(atom2.atomtype[1].label in ["O2s", "O2d"]) self.assertTrue(atom2.radical_electrons == [0]) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.atomtype[0].label == 'R!H') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.atomtype[0].label == "R!H") self.assertTrue(atom3.radical_electrons == [0]) self.assertTrue(bond12.order == [1, 2]) @@ -164,14 +165,14 @@ def test_atom_props(self): """ group = Group().from_adjacency_list(adjlist) for atom in group.atoms: - if atom.atomtype[0].label == 'R!H': - self.assertFalse(atom.props['inRing']) - elif atom.atomtype[0].label == 'Cb': - self.assertTrue(atom.props['inRing']) + if atom.atomtype[0].label == "R!H": + self.assertFalse(atom.props["inRing"]) + elif atom.atomtype[0].label == "Cb": + self.assertTrue(atom.props["inRing"]) adjlist2 = group.to_adjacency_list() self.assertEqual(adjlist.strip(), adjlist2.strip()) - + def test_metal_facet_site_morphology(self): adjlist1 = """metal Cu facet 111 @@ -179,7 +180,7 @@ def test_metal_facet_site_morphology(self): 2 *1 O u0 p2 c0 {1,S} {3,R} 3 *2 H u0 p0 c0 {2,R} {4,R} 4 *4 X u0 p0 c0 s"hcp" m"terrace" {3,R} {1,S}""" - + adjlist2 = """multiplicity [1] metal [Cu, Fe, CuO2 ] facet [111, 211, 1101, 110, ] @@ -187,14 +188,14 @@ def test_metal_facet_site_morphology(self): 2 *1 O u0 p2 c0 {1,S} {3,R} 3 *2 H u0 p0 c0 {2,R} {4,R} 4 *4 X u0 p0 c0 s"hcp" m["terrace","sc"] {3,R} {1,S}""" - + adjlist1test = """metal Cu facet 111 1 *3 X u0 p0 c0 s"atop" m"terrace" {2,S} {4,S} 2 *1 O u0 p2 c0 {1,S} {3,R} 3 *2 H u0 p0 c0 {2,R} {4,R} 4 *4 X u0 p0 c0 s"hcp" m"terrace" {1,S} {3,R}""" - + adjlist2test = """multiplicity [1] metal [Cu,Fe,CuO2] facet [111,211,1101,110] @@ -202,27 +203,26 @@ def test_metal_facet_site_morphology(self): 2 *1 O u0 p2 c0 {1,S} {3,R} 3 *2 H u0 p0 c0 {2,R} {4,R} 4 *4 X u0 p0 c0 s"hcp" m["terrace","sc"] {1,S} {3,R}""" - mol = Molecule().from_adjacency_list(adjlist1,check_consistency=False) + mol = Molecule().from_adjacency_list(adjlist1, check_consistency=False) group = Group().from_adjacency_list(adjlist2) - - self.assertEqual(mol.metal,"Cu") - self.assertEqual(mol.facet,"111") - self.assertEqual(group.metal,["Cu","Fe","CuO2"]) - self.assertEqual(group.facet,["111","211","1101","110"]) - - self.assertEqual(mol.atoms[0].site,"atop") - self.assertEqual(mol.atoms[3].site,"hcp") + + self.assertEqual(mol.metal, "Cu") + self.assertEqual(mol.facet, "111") + self.assertEqual(group.metal, ["Cu", "Fe", "CuO2"]) + self.assertEqual(group.facet, ["111", "211", "1101", "110"]) + + self.assertEqual(mol.atoms[0].site, "atop") + self.assertEqual(mol.atoms[3].site, "hcp") self.assertEqual(mol.atoms[0].morphology, "terrace") self.assertEqual(mol.atoms[3].morphology, "terrace") - - self.assertEqual(group.atoms[0].site,["atop","fcc"]) - self.assertEqual(group.atoms[3].site,["hcp"]) + + self.assertEqual(group.atoms[0].site, ["atop", "fcc"]) + self.assertEqual(group.atoms[3].site, ["hcp"]) self.assertEqual(group.atoms[0].morphology, ["terrace"]) - self.assertEqual(group.atoms[3].morphology,["terrace","sc"]) - - self.assertEqual(mol.to_adjacency_list().strip(),adjlist1test.strip()) - self.assertEqual(group.to_adjacency_list().strip(), adjlist2test.strip()) + self.assertEqual(group.atoms[3].morphology, ["terrace", "sc"]) + self.assertEqual(mol.to_adjacency_list().strip(), adjlist1test.strip()) + self.assertEqual(group.to_adjacency_list().strip(), adjlist2test.strip()) class TestMoleculeAdjLists(unittest.TestCase): @@ -263,23 +263,23 @@ def test_from_adjacency_list1(self): bond23 = atom2.bonds[atom3] bond24 = atom2.bonds[atom4] - self.assertTrue(atom1.label == '*1') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*1") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 1) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '*2') - self.assertTrue(atom2.element.symbol == 'N') + self.assertTrue(atom2.label == "*2") + self.assertTrue(atom2.element.symbol == "N") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 1) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.element.symbol == 'O') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.element.symbol == "O") self.assertTrue(atom3.radical_electrons == 0) self.assertTrue(atom3.charge == -1) - self.assertTrue(atom4.label == '') - self.assertTrue(atom4.element.symbol == 'O') + self.assertTrue(atom4.label == "") + self.assertTrue(atom4.element.symbol == "O") self.assertTrue(atom4.radical_electrons == 0) self.assertTrue(atom4.charge == 0) @@ -317,23 +317,23 @@ def test_from_adjacency_list2(self): bond23 = atom2.bonds[atom3] bond24 = atom2.bonds[atom4] - self.assertTrue(atom1.label == '*1') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*1") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 1) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '*2') - self.assertTrue(atom2.element.symbol == 'N') + self.assertTrue(atom2.label == "*2") + self.assertTrue(atom2.element.symbol == "N") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 1) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.element.symbol == 'O') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.element.symbol == "O") self.assertTrue(atom3.radical_electrons == 0) self.assertTrue(atom3.charge == -1) - self.assertTrue(atom4.label == '') - self.assertTrue(atom4.element.symbol == 'O') + self.assertTrue(atom4.label == "") + self.assertTrue(atom4.element.symbol == "O") self.assertTrue(atom4.radical_electrons == 0) self.assertTrue(atom4.charge == 0) @@ -371,23 +371,23 @@ def test_from_adjacency_list3(self): bond23 = atom2.bonds[atom3] bond24 = atom2.bonds[atom4] - self.assertTrue(atom1.label == '*1') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*1") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 1) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '*2') - self.assertTrue(atom2.element.symbol == 'N') + self.assertTrue(atom2.label == "*2") + self.assertTrue(atom2.element.symbol == "N") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 1) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.element.symbol == 'O') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.element.symbol == "O") self.assertTrue(atom3.radical_electrons == 0) self.assertTrue(atom3.charge == -1) - self.assertTrue(atom4.label == '') - self.assertTrue(atom4.element.symbol == 'O') + self.assertTrue(atom4.label == "") + self.assertTrue(atom4.element.symbol == "O") self.assertTrue(atom4.radical_electrons == 0) self.assertTrue(atom4.charge == 0) @@ -423,23 +423,23 @@ def test_from_adjacency_list4(self): bond23 = atom2.bonds[atom3] bond24 = atom2.bonds[atom4] - self.assertTrue(atom1.label == '*1') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*1") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 1) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '*2') - self.assertTrue(atom2.element.symbol == 'N') + self.assertTrue(atom2.label == "*2") + self.assertTrue(atom2.element.symbol == "N") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 1) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.element.symbol == 'O') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.element.symbol == "O") self.assertTrue(atom3.radical_electrons == 0) self.assertTrue(atom3.charge == -1) - self.assertTrue(atom4.label == '') - self.assertTrue(atom4.element.symbol == 'O') + self.assertTrue(atom4.label == "") + self.assertTrue(atom4.element.symbol == "O") self.assertTrue(atom4.radical_electrons == 0) self.assertTrue(atom4.charge == 0) @@ -481,13 +481,13 @@ def test_from_adjacency_list5(self): bond13 = atom1.bonds[atom3] bond7_11 = atom7.bonds[atom11] - self.assertTrue(atom1.label == '*') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 0) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '') - self.assertTrue(atom2.element.symbol == 'C') + self.assertTrue(atom2.label == "") + self.assertTrue(atom2.element.symbol == "C") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 0) @@ -497,7 +497,7 @@ def test_from_adjacency_list5(self): def test_various_spin_adjlists(self): """ - adjlist: Test that molecules with old or intermediate adjacency list formats containing unusual + adjlist: Test that molecules with old or intermediate adjacency list formats containing unusual spin states can get converted to the proper new adjlist format. """ @@ -614,11 +614,11 @@ def test_helium(self): """ adjlist: Test that the adjlist reading and writing works with Helium. """ - smiles = '[He]' - inchi = 'InChI=1S/He' - adjlist = '1 He u0 p1 c0' - adjlist_old = '1 He 0' - adjlist_intermediate = '1 He 0 1' + smiles = "[He]" + inchi = "InChI=1S/He" + adjlist = "1 He u0 p1 c0" + adjlist_old = "1 He 0" + adjlist_intermediate = "1 He 0 1" mol_smiles = Molecule().from_smiles(smiles) mol_inchi = Molecule().from_inchi(inchi) @@ -640,7 +640,7 @@ def test_helium(self): self.assertEqual(mol_intermediate.to_adjacency_list().strip(), adjlist) self.assertEqual(mol.to_smiles(), smiles) - self.assertEqual(mol.to_inchi(), 'InChI=1S/He') + self.assertEqual(mol.to_inchi(), "InChI=1S/He") def test_to_adjacency_list(self): """ @@ -676,16 +676,17 @@ def test_to_adjacency_list_for_non_integer_bonds(self): that don't fit into single, double, triple, or benzene """ from rmgpy.molecule.molecule import Atom, Bond, Molecule - atom1 = Atom(element='H', lone_pairs=0) - atom2 = Atom(element='H', lone_pairs=0) + + atom1 = Atom(element="H", lone_pairs=0) + atom2 = Atom(element="H", lone_pairs=0) bond = Bond(atom1, atom2, 0.5) mol = Molecule(multiplicity=1) mol.add_atom(atom1) mol.add_atom(atom2) mol.add_bond(bond) adjlist = mol.to_adjacency_list() - self.assertIn('H', adjlist) - self.assertIn('{1,0.5}', adjlist) + self.assertIn("H", adjlist) + self.assertIn("{1,0.5}", adjlist) @work_in_progress def test_from_adjacency_list_for_non_integer_bonds(self): @@ -699,6 +700,7 @@ def test_from_adjacency_list_for_non_integer_bonds(self): Fixing it would require switching radical electrons to floats. """ from rmgpy.molecule.molecule import Molecule + adjlist = """ 1 H u1 p2 c0 {2,0.5} 2 H u1 p2 c0 {1,0.5} @@ -717,7 +719,7 @@ def test_from_intermediate_adjacency_list1(self): 1 O 0 2 """ # should be Water molecule = Molecule().from_adjacency_list(adjlist, saturate_h=True) - self.assertEqual(molecule.get_formula(), 'H2O') + self.assertEqual(molecule.get_formula(), "H2O") def test_from_old_adjacency_list1(self): """ @@ -727,7 +729,7 @@ def test_from_old_adjacency_list1(self): 1 O 0 """ # should be Water molecule = Molecule().from_adjacency_list(adjlist) - self.assertEqual(molecule.get_formula(), 'H2O') + self.assertEqual(molecule.get_formula(), "H2O") def test_from_old_adjacency_list2(self): """ @@ -794,7 +796,7 @@ def test_from_old_adjacency_list5(self): molecule_new = Molecule().from_adjacency_list(adjlist_new) self.assertTrue(molecule.is_isomorphic(molecule_new)) # Currently the from_old_adjacency_list cannot correctly interpret CO written in this old form - # (I don't think any adjlists are actually formed this way.) + # (I don't think any adjlists are actually formed this way.) # Currently 'adjlist' will fail when the Molecule is determined to be non-neurtral in net charge. def test_from_old_adjacency_list6(self): @@ -815,7 +817,8 @@ def test_adjacency_list(self): """ adjlist: Check the adjacency list read/write functions for a full molecule. """ - molecule1 = Molecule().from_adjacency_list(""" + molecule1 = Molecule().from_adjacency_list( + """ 1 C u0 {2,D} {7,S} {8,S} 2 C u0 {1,D} {3,S} {9,S} 3 C u0 {2,S} {4,D} {10,S} @@ -831,8 +834,9 @@ def test_adjacency_list(self): 13 H u0 {6,S} 14 H u0 {6,S} 15 H u0 {6,S} - """) - molecule2 = Molecule().from_smiles('C=CC=C[CH]C') + """ + ) + molecule2 = Molecule().from_smiles("C=CC=C[CH]C") self.assertTrue(molecule1.is_isomorphic(molecule2)) self.assertTrue(molecule2.is_isomorphic(molecule1)) @@ -854,43 +858,54 @@ def test_group_adjacency_list(self): adjlist = """1 C u0 {2,D} 2 O u1 p1 c[-1,0,+1] {1,D} """ - group = Group().from_adjacency_list(""" + group = Group().from_adjacency_list( + """ 1 C u0 {2,D} 2 O u1 p1 c[-1,0,+1] {1,D} - """) + """ + ) self.assertEqual(adjlist, group.to_adjacency_list()) def test_to_old_ajacency_list(self): """ adjlist: Check that we can convert back to old style adjacency list """ - molecule2 = Molecule().from_smiles('C=CC=C[CH]C') + molecule2 = Molecule().from_smiles("C=CC=C[CH]C") string = """1 C 0 {2,D} 2 C 0 {1,D} {3,S} 3 C 0 {2,S} {4,D} 4 C 0 {3,D} {5,S} 5 C 1 {4,S} {6,S} 6 C 0 {5,S}""" - self.assertEqual(molecule2.to_adjacency_list(remove_h=True, old_style=True).strip(), string.strip()) + self.assertEqual( + molecule2.to_adjacency_list(remove_h=True, old_style=True).strip(), + string.strip(), + ) ################################################################################ class TestConsistencyChecker(unittest.TestCase): def test_check_hund_rule_fail(self): with self.assertRaises(InvalidAdjacencyListError): - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ multiplicity 1 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) def test_check_hund_rule_success(self): try: - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) except InvalidAdjacencyListError: - self.fail('InvalidAdjacencyListError thrown unexpectedly!') + self.fail("InvalidAdjacencyListError thrown unexpectedly!") def test_check_multiplicity(self): """ @@ -898,42 +913,56 @@ def test_check_multiplicity(self): """ # [N] radical: try: - Molecule().from_adjacency_list('''multiplicity 4 - 1 N u3 p1 c0''') + Molecule().from_adjacency_list( + """multiplicity 4 + 1 N u3 p1 c0""" + ) except InvalidAdjacencyListError: - self.fail('InvalidAdjacencyListError thrown unexpectedly for N tri-rad!') + self.fail("InvalidAdjacencyListError thrown unexpectedly for N tri-rad!") # A general molecule with 4 radicals, multiplicity 5: try: - Molecule().from_adjacency_list('''multiplicity 5 + Molecule().from_adjacency_list( + """multiplicity 5 1 O u1 p2 c0 {2,S} 2 C u1 p0 c0 {1,S} {3,S} {4,S} 3 H u0 p0 c0 {2,S} 4 N u1 p1 c0 {2,S} {5,S} - 5 O u1 p2 c0 {4,S}''') + 5 O u1 p2 c0 {4,S}""" + ) except InvalidAdjacencyListError: - self.fail('InvalidAdjacencyListError thrown unexpectedly for a molecule with 4 radicals, multiplicity 5') + self.fail( + "InvalidAdjacencyListError thrown unexpectedly for a molecule with 4 radicals, multiplicity 5" + ) # A general molecule with 4 radicals, multiplicity 3: try: - Molecule().from_adjacency_list('''multiplicity 3 + Molecule().from_adjacency_list( + """multiplicity 3 1 O u1 p2 c0 {2,S} 2 C u1 p0 c0 {1,S} {3,S} {4,S} 3 H u0 p0 c0 {2,S} 4 N u1 p1 c0 {2,S} {5,S} - 5 O u1 p2 c0 {4,S}''') + 5 O u1 p2 c0 {4,S}""" + ) except InvalidAdjacencyListError: - self.fail('InvalidAdjacencyListError thrown unexpectedly for a molecule with 4 radicals, multiplicity 3') + self.fail( + "InvalidAdjacencyListError thrown unexpectedly for a molecule with 4 radicals, multiplicity 3" + ) # [N]=C=[N] singlet: try: - Molecule().from_adjacency_list('''multiplicity 1 + Molecule().from_adjacency_list( + """multiplicity 1 1 N u1 p1 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} - 3 N u1 p1 c0 {2,D}''') + 3 N u1 p1 c0 {2,D}""" + ) except InvalidAdjacencyListError: - self.fail('InvalidAdjacencyListError thrown unexpectedly for singlet [N]=C=[N]!') + self.fail( + "InvalidAdjacencyListError thrown unexpectedly for singlet [N]=C=[N]!" + ) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=3)) diff --git a/test/rmgpy/molecule/atomtypeTest.py b/test/rmgpy/molecule/atomtypeTest.py index 460c74458f..6d790f3513 100644 --- a/test/rmgpy/molecule/atomtypeTest.py +++ b/test/rmgpy/molecule/atomtypeTest.py @@ -41,6 +41,7 @@ ################################################################################ + class TestAtomType(unittest.TestCase): """ Contains unit tests of the AtomType class. @@ -50,7 +51,7 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.atomtype = rmgpy.molecule.atomtype.ATOMTYPES['Cd'] + self.atomtype = rmgpy.molecule.atomtype.ATOMTYPES["Cd"] def test_pickle(self): """ @@ -58,6 +59,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + atom_type = pickle.loads(pickle.dumps(self.atomtype)) self.assertEqual(self.atomtype.label, atom_type.label) self.assertEqual(len(self.atomtype.generic), len(atom_type.generic)) @@ -66,10 +68,14 @@ def test_pickle(self): self.assertEqual(len(self.atomtype.specific), len(atom_type.specific)) for item1, item2 in zip(self.atomtype.specific, atom_type.specific): self.assertEqual(item1.label, item2.label) - self.assertEqual(len(self.atomtype.increment_bond), len(atom_type.increment_bond)) + self.assertEqual( + len(self.atomtype.increment_bond), len(atom_type.increment_bond) + ) for item1, item2 in zip(self.atomtype.increment_bond, atom_type.increment_bond): self.assertEqual(item1.label, item2.label) - self.assertEqual(len(self.atomtype.decrement_bond), len(atom_type.decrement_bond)) + self.assertEqual( + len(self.atomtype.decrement_bond), len(atom_type.decrement_bond) + ) for item1, item2 in zip(self.atomtype.decrement_bond, atom_type.decrement_bond): self.assertEqual(item1.label, item2.label) self.assertEqual(len(self.atomtype.form_bond), len(atom_type.form_bond)) @@ -78,11 +84,19 @@ def test_pickle(self): self.assertEqual(len(self.atomtype.break_bond), len(atom_type.break_bond)) for item1, item2 in zip(self.atomtype.break_bond, atom_type.break_bond): self.assertEqual(item1.label, item2.label) - self.assertEqual(len(self.atomtype.increment_radical), len(atom_type.increment_radical)) - for item1, item2 in zip(self.atomtype.increment_radical, atom_type.increment_radical): + self.assertEqual( + len(self.atomtype.increment_radical), len(atom_type.increment_radical) + ) + for item1, item2 in zip( + self.atomtype.increment_radical, atom_type.increment_radical + ): self.assertEqual(item1.label, item2.label) - self.assertEqual(len(self.atomtype.decrement_radical), len(atom_type.decrement_radical)) - for item1, item2 in zip(self.atomtype.decrement_radical, atom_type.decrement_radical): + self.assertEqual( + len(self.atomtype.decrement_radical), len(atom_type.decrement_radical) + ) + for item1, item2 in zip( + self.atomtype.decrement_radical, atom_type.decrement_radical + ): self.assertEqual(item1.label, item2.label) def test_output(self): @@ -91,37 +105,48 @@ def test_output(self): with no loss of information. """ namespace = {} - exec('atomtype = rmgpy.molecule.atomtype.ATOMTYPES[{0!r}]'.format( - self.atomtype.__repr__().split('"')[1]), globals(), namespace) - self.assertIn('atomtype', namespace) - atomtype = namespace['atomtype'] + exec( + "atomtype = rmgpy.molecule.atomtype.ATOMTYPES[{0!r}]".format( + self.atomtype.__repr__().split('"')[1] + ), + globals(), + namespace, + ) + self.assertIn("atomtype", namespace) + atomtype = namespace["atomtype"] self.assertTrue(self.atomtype.equivalent(atomtype)) def test_equivalent(self): """ Test the AtomType.equivalent() method. """ - self.assertTrue(self.atomtype.equivalent(rmgpy.molecule.atomtype.ATOMTYPES['Cd'])) + self.assertTrue( + self.atomtype.equivalent(rmgpy.molecule.atomtype.ATOMTYPES["Cd"]) + ) def test_is_specfic_case_of(self): """ Test the AtomType.is_specific_case_of() method. """ - self.assertTrue(self.atomtype.is_specific_case_of(rmgpy.molecule.atomtype.ATOMTYPES['C'])) + self.assertTrue( + self.atomtype.is_specific_case_of(rmgpy.molecule.atomtype.ATOMTYPES["C"]) + ) def test_set_actions(self): """ Test the AtomType.set_actions() method. """ - other = rmgpy.molecule.atomtype.AtomType('Test', generic=['R'], specific=[]) - other.set_actions(self.atomtype.increment_bond, - self.atomtype.decrement_bond, - self.atomtype.form_bond, - self.atomtype.break_bond, - self.atomtype.increment_radical, - self.atomtype.decrement_radical, - self.atomtype.increment_lone_pair, - self.atomtype.decrement_lone_pair) + other = rmgpy.molecule.atomtype.AtomType("Test", generic=["R"], specific=[]) + other.set_actions( + self.atomtype.increment_bond, + self.atomtype.decrement_bond, + self.atomtype.form_bond, + self.atomtype.break_bond, + self.atomtype.increment_radical, + self.atomtype.decrement_radical, + self.atomtype.increment_lone_pair, + self.atomtype.decrement_lone_pair, + ) self.assertEqual(self.atomtype.increment_bond, other.increment_bond) self.assertEqual(self.atomtype.decrement_bond, other.decrement_bond) self.assertEqual(self.atomtype.form_bond, other.form_bond) @@ -136,8 +161,8 @@ def test_set_actions(self): it tries to make a 6-membered ring (not realizing it should be 5-membered) and then gets the wrong number of pi electrons. """ - EXPECTED_FAILING_ATOMTYPES = ['O4b', 'S4b'] - + EXPECTED_FAILING_ATOMTYPES = ["O4b", "S4b"] + def test_make_sample_molecule(self): """ Test we can make a sample molecule for most atom type without crashing. @@ -145,7 +170,7 @@ def test_make_sample_molecule(self): failed = [] for name, atom_type in rmgpy.molecule.atomtype.ATOMTYPES.items(): if name in self.EXPECTED_FAILING_ATOMTYPES: - continue # These are known to fail. See next WIP test + continue # These are known to fail. See next WIP test adjlist = f"1 {name} ux" group = rmgpy.molecule.Group().from_adjacency_list(adjlist) try: @@ -154,7 +179,9 @@ def test_make_sample_molecule(self): except: logging.exception(f"Couldn't make sample molecule for atomType {name}") failed.append(name) - self.assertFalse(failed, f"Couldn't make sample molecules for types {', '.join(failed)}") + self.assertFalse( + failed, f"Couldn't make sample molecules for types {', '.join(failed)}" + ) @work_in_progress def test_make_sample_molecule_wip(self): @@ -170,7 +197,9 @@ def test_make_sample_molecule_wip(self): except: logging.exception(f"Couldn't make sample molecule for atomType {name}") failed.append(name) - self.assertFalse(failed, f"Couldn't make sample molecules for types {', '.join(failed)}") + self.assertFalse( + failed, f"Couldn't make sample molecules for types {', '.join(failed)}" + ) @work_in_progress def test_make_sample_molecule_right(self): @@ -180,22 +209,30 @@ def test_make_sample_molecule_right(self): failed = [] for name, atom_type in rmgpy.molecule.atomtype.ATOMTYPES.items(): if name in self.EXPECTED_FAILING_ATOMTYPES: - continue # These are known to fail. See next WIP test + continue # These are known to fail. See next WIP test adjlist = f"1 {name} ux" group = rmgpy.molecule.Group().from_adjacency_list(adjlist) try: result = group.make_sample_molecule() if not result.is_subgraph_isomorphic(group): failed.append(name) - logging.error(f"Sample molecule for {name} is not correct. " - f"Expected:\n{group.to_adjacency_list().strip()}\n" - f"Got:\n{result.to_adjacency_list().strip()}") + logging.error( + f"Sample molecule for {name} is not correct. " + f"Expected:\n{group.to_adjacency_list().strip()}\n" + f"Got:\n{result.to_adjacency_list().strip()}" + ) except: logging.exception(f"Couldn't make sample molecule for atomType {name}") failed.append(name) - self.assertFalse(failed, f"Couldn't make correct sample molecules for types {', '.join(failed)}") + self.assertFalse( + failed, + f"Couldn't make correct sample molecules for types {', '.join(failed)}", + ) + + ################################################################################ + class TestGetAtomType(unittest.TestCase): """ Contains unit tests of the get_atomtype() method. @@ -205,10 +242,11 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.mol1 = Molecule().from_smiles('COC(=O)CC=C=CC#C') + self.mol1 = Molecule().from_smiles("COC(=O)CC=C=CC#C") # self.mol2 = Molecule().from_smiles('c1ccccc1') # the from_smiles method currently Kekulizes, so to test Benzene we use from_adjacency_list - self.mol2 = Molecule().from_adjacency_list('''1 C u0 p0 {2,B} {6,B} {7,S} + self.mol2 = Molecule().from_adjacency_list( + """1 C u0 p0 {2,B} {6,B} {7,S} 2 C u0 p0 {1,B} {3,B} {8,S} 3 C u0 p0 {2,B} {4,B} {9,S} 4 C u0 p0 {3,B} {5,B} {10,S} @@ -219,48 +257,67 @@ def setUp(self): 9 H u0 p0 {3,S} 10 H u0 p0 {4,S} 11 H u0 p0 {5,S} - 12 H u0 p0 {6,S}''') - self.mol3 = Molecule().from_smiles('[H]') - self.mol4 = Molecule().from_smiles( - 'O=[Si][Si][Si]=[Si]=[Si][Si]#[Si]SS=S') - self.mol5 = Molecule().from_adjacency_list('''1 H u0 p0 {3,S} + 12 H u0 p0 {6,S}""" + ) + self.mol3 = Molecule().from_smiles("[H]") + self.mol4 = Molecule().from_smiles("O=[Si][Si][Si]=[Si]=[Si][Si]#[Si]SS=S") + self.mol5 = Molecule().from_adjacency_list( + """1 H u0 p0 {3,S} 2 H u0 p0 {3,S} 3 N u0 p0 c+1 {1,S} {2,S} {4,D} - 4 N u0 p2 c-1 {3,D}''') - self.mol6 = Molecule().from_smiles('[Ar]') - self.mol7 = Molecule().from_smiles('[He]') - self.mol8 = Molecule().from_smiles('[Ne]') - self.mol9 = Molecule().from_adjacency_list('''1 N u0 p1 {2,S} {3,S} {4,S} + 4 N u0 p2 c-1 {3,D}""" + ) + self.mol6 = Molecule().from_smiles("[Ar]") + self.mol7 = Molecule().from_smiles("[He]") + self.mol8 = Molecule().from_smiles("[Ne]") + self.mol9 = Molecule().from_adjacency_list( + """1 N u0 p1 {2,S} {3,S} {4,S} 2 H u0 p0 {1,S} 3 H u0 p0 {1,S} - 4 H u0 p0 {1,S}''') + 4 H u0 p0 {1,S}""" + ) - self.mol10 = Molecule().from_adjacency_list('''1 N u1 p1 {2,S} {3,S} + self.mol10 = Molecule().from_adjacency_list( + """1 N u1 p1 {2,S} {3,S} 2 H u0 p0 {1,S} - 3 H u0 p0 {1,S}''') + 3 H u0 p0 {1,S}""" + ) - self.mol11 = Molecule().from_adjacency_list('''1 N u2 p1 {2,S} - 2 H u0 p0 {1,S}''') + self.mol11 = Molecule().from_adjacency_list( + """1 N u2 p1 {2,S} + 2 H u0 p0 {1,S}""" + ) - self.mol12 = Molecule().from_adjacency_list('''1 N u0 p1 {2,T} - 2 C u1 p0 {1,T}''') + self.mol12 = Molecule().from_adjacency_list( + """1 N u0 p1 {2,T} + 2 C u1 p0 {1,T}""" + ) - self.mol14 = Molecule().from_adjacency_list('''1 N u0 p2 c-1 {2,D} + self.mol14 = Molecule().from_adjacency_list( + """1 N u0 p2 c-1 {2,D} 2 N u0 p0 c+1 {1,D} {3,D} - 3 O u0 p2 {2,D}''') + 3 O u0 p2 {2,D}""" + ) - self.mol15 = Molecule().from_adjacency_list('''1 N u0 p1 c0 {2,T} + self.mol15 = Molecule().from_adjacency_list( + """1 N u0 p1 c0 {2,T} 2 N u0 p0 c+1 {1,T} {3,S} - 3 O u0 p3 c-1 {2,S}''') + 3 O u0 p3 c-1 {2,S}""" + ) - self.mol16 = Molecule().from_adjacency_list('''1 N u0 p1 {2,D} {3,S} + self.mol16 = Molecule().from_adjacency_list( + """1 N u0 p1 {2,D} {3,S} 2 O u0 p2 {1,D} - 3 O u1 p2 {1,S}''') + 3 O u1 p2 {1,S}""" + ) - self.mol17 = Molecule().from_adjacency_list('''1 N u1 p1 {2,D} - 2 O u0 p2 {1,D}''') + self.mol17 = Molecule().from_adjacency_list( + """1 N u1 p1 {2,D} + 2 O u0 p2 {1,D}""" + ) - self.mol18 = Molecule().from_adjacency_list('''1 N u0 p0 c+1 {2,B} {6,B} {7,S} + self.mol18 = Molecule().from_adjacency_list( + """1 N u0 p0 c+1 {2,B} {6,B} {7,S} 2 C u0 p0 {1,B} {3,B} {8,S} 3 C u0 p0 {2,B} {4,B} {9,S} 4 C u0 p0 {3,B} {5,B} {10,S} @@ -270,33 +327,41 @@ def setUp(self): 8 H u0 p0 {2,S} 9 H u0 p0 {3,S} 10 H u0 p0 {4,S} - 11 H u0 p0 {5,S}''') + 11 H u0 p0 {5,S}""" + ) - self.mol19 = Molecule().from_smiles('C=S') + self.mol19 = Molecule().from_smiles("C=S") - self.mol20 = Molecule().from_smiles('[C-]#[O+]') + self.mol20 = Molecule().from_smiles("[C-]#[O+]") - self.mol21 = Molecule().from_adjacency_list('''1 S u0 p3 c-1 {2,S} - 2 S u0 p2 c+1 {1,S}''') + self.mol21 = Molecule().from_adjacency_list( + """1 S u0 p3 c-1 {2,S} + 2 S u0 p2 c+1 {1,S}""" + ) - self.mol22 = Molecule().from_adjacency_list('''1 S u0 p3 c0''') + self.mol22 = Molecule().from_adjacency_list("""1 S u0 p3 c0""") - self.mol23 = Molecule().from_adjacency_list('''1 S u0 p2 c0 {2,S} {5,S} + self.mol23 = Molecule().from_adjacency_list( + """1 S u0 p2 c0 {2,S} {5,S} 2 S u0 p1 c+1 {1,S} {3,S} {4,S} 3 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 4 O u0 p3 c-1 {2,S} 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {3,S} 7 H u0 p0 c0 {3,S} - 8 H u0 p0 c0 {3,S}''') + 8 H u0 p0 c0 {3,S}""" + ) - self.mol24 = Molecule().from_adjacency_list('''1 C u0 p0 c0 {2,D} {4,S} {5,S} + self.mol24 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,D} {4,S} {5,S} 2 S u0 p2 c-1 {1,D} {3,S} 3 O u0 p2 c+1 {2,S} 4 H u0 p0 c0 {1,S} - 5 H u0 p0 c0 {1,S}''') + 5 H u0 p0 c0 {1,S}""" + ) - self.mol25 = Molecule().from_adjacency_list('''1 S u0 p1 c0 {2,S} {5,S} {7,S} {8,S} + self.mol25 = Molecule().from_adjacency_list( + """1 S u0 p1 c0 {2,S} {5,S} {7,S} {8,S} 2 O u0 p2 c0 {1,S} {3,S} 3 S u0 p1 c0 {2,S} {4,S} {9,D} 4 O u0 p2 c0 {3,S} {6,S} @@ -304,11 +369,14 @@ def setUp(self): 6 H u0 p0 c0 {4,S} 7 H u0 p0 c0 {1,S} 8 H u0 p0 c0 {1,S} - 9 O u0 p2 c0 {3,D}''') + 9 O u0 p2 c0 {3,D}""" + ) - self.mol26 = Molecule().from_adjacency_list('''1 O u0 p3 c-1 {2,S} + self.mol26 = Molecule().from_adjacency_list( + """1 O u0 p3 c-1 {2,S} 2 S u0 p1 c+1 {1,S} {3,D} - 3 O u0 p2 c0 {2,D}''') + 3 O u0 p2 c0 {2,D}""" + ) # self.mol27 = Molecule().from_adjacency_list('''1 S u0 p1 c0 {2,B} {5,B} # 2 C u0 p0 c0 {1,B} {3,B} {6,S} @@ -320,7 +388,8 @@ def setUp(self): # 8 H u0 p0 c0 {4,S} # 9 H u0 p0 c0 {5,S}''') - self.mol28 = Molecule().from_adjacency_list('''1 O u0 p2 c0 {2,D} + self.mol28 = Molecule().from_adjacency_list( + """1 O u0 p2 c0 {2,D} 2 S u0 p1 c0 {1,D} {3,D} 3 C u0 p0 c0 {2,D} {4,S} {7,S} 4 C u0 p0 c0 {3,S} {5,T} @@ -331,113 +400,151 @@ def setUp(self): 9 H u0 p0 c0 {6,S} 10 H u0 p0 c0 {6,S} 11 H u0 p0 c0 {6,S} - 12 H u0 p0 c0 {6,S}''') + 12 H u0 p0 c0 {6,S}""" + ) - self.mol29 = Molecule().from_adjacency_list('''1 C u0 p1 c-1 {2,T} - 2 S u0 p1 c+1 {1,T}''') + self.mol29 = Molecule().from_adjacency_list( + """1 C u0 p1 c-1 {2,T} + 2 S u0 p1 c+1 {1,T}""" + ) - self.mol30 = Molecule().from_adjacency_list('''1 S u0 p0 c0 {2,D} {3,S} {4,S} {5,S} {6,S} + self.mol30 = Molecule().from_adjacency_list( + """1 S u0 p0 c0 {2,D} {3,S} {4,S} {5,S} {6,S} 2 O u0 p2 c0 {1,D} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} - 6 H u0 p0 c0 {1,S}''') + 6 H u0 p0 c0 {1,S}""" + ) - self.mol31 = Molecule().from_adjacency_list('''1 S u0 p0 c+1 {2,S} {3,D} {4,D} + self.mol31 = Molecule().from_adjacency_list( + """1 S u0 p0 c+1 {2,S} {3,D} {4,D} 2 O u0 p3 c-1 {1,S} 3 O u0 p2 c0 {1,D} - 4 O u0 p2 c0 {1,D}''') + 4 O u0 p2 c0 {1,D}""" + ) - self.mol32 = Molecule().from_adjacency_list('''1 O u0 p2 c0 {2,D} + self.mol32 = Molecule().from_adjacency_list( + """1 O u0 p2 c0 {2,D} 2 S u0 p0 c0 {1,D} {3,D} {4,S} {5,S} 3 O u0 p2 c0 {2,D} 4 O u0 p2 c0 {2,S} {6,S} 5 O u0 p2 c0 {2,S} {7,S} 6 H u0 p0 c0 {4,S} - 7 H u0 p0 c0 {5,S}''') + 7 H u0 p0 c0 {5,S}""" + ) - self.mol33 = Molecule().from_adjacency_list('''1 O u0 p3 c-1 {2,S} + self.mol33 = Molecule().from_adjacency_list( + """1 O u0 p3 c-1 {2,S} 2 S u0 p0 c+1 {1,S} {3,D} {4,D} 3 O u0 p2 c0 {2,D} - 4 O u0 p2 c0 {2,D}''') + 4 O u0 p2 c0 {2,D}""" + ) - self.mol34 = Molecule().from_adjacency_list('''1 O u0 p2 c0 {2,D} + self.mol34 = Molecule().from_adjacency_list( + """1 O u0 p2 c0 {2,D} 2 S u0 p0 c0 {1,D} {3,D} {4,D} 3 O u0 p2 c0 {2,D} - 4 O u0 p2 c0 {2,D}''') + 4 O u0 p2 c0 {2,D}""" + ) - self.mol35 = Molecule().from_adjacency_list('''1 S u0 p0 c0 {2,T} {3,S} {4,S} {5,S} + self.mol35 = Molecule().from_adjacency_list( + """1 S u0 p0 c0 {2,T} {3,S} {4,S} {5,S} 2 N u0 p1 c0 {1,T} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - 5 H u0 p0 c0 {1,S}''') + 5 H u0 p0 c0 {1,S}""" + ) - self.mol36 = Molecule().from_adjacency_list('''1 S u0 p0 c0 {2,T} {3,D} {4,S} + self.mol36 = Molecule().from_adjacency_list( + """1 S u0 p0 c0 {2,T} {3,D} {4,S} 2 N u0 p1 c0 {1,T} 3 O u0 p2 c0 {1,D} - 4 H u0 p0 c0 {1,S}''') + 4 H u0 p0 c0 {1,S}""" + ) - self.mol37 = Molecule().from_adjacency_list('''1 N u0 p1 c0 {2,T} + self.mol37 = Molecule().from_adjacency_list( + """1 N u0 p1 c0 {2,T} 2 S u0 p0 c0 {1,T} {3,T} - 3 N u0 p1 c0 {2,T}''') + 3 N u0 p1 c0 {2,T}""" + ) - self.mol38 = Molecule().from_smiles('O=S=O') + self.mol38 = Molecule().from_smiles("O=S=O") - self.mol39 = Molecule().from_adjacency_list('''1 N u0 p2 c-1 {2,S} {3,S} + self.mol39 = Molecule().from_adjacency_list( + """1 N u0 p2 c-1 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 N u0 p0 c+1 {1,S} {4,T} 4 C u0 p0 c0 {3,T} {5,S} - 5 H u0 p0 c0 {4,S}''') + 5 H u0 p0 c0 {4,S}""" + ) - self.mol40 = Molecule().from_adjacency_list('''1 N u0 p0 c+1 {2,S} {3,T} + self.mol40 = Molecule().from_adjacency_list( + """1 N u0 p0 c+1 {2,S} {3,T} 2 H u0 p0 c0 {1,S} 3 N u0 p0 c+1 {1,T} {4,S} - 4 N u0 p3 c-2 {3,S}''') + 4 N u0 p3 c-2 {3,S}""" + ) - self.mol41 = Molecule().from_adjacency_list('''1 N u0 p2 c0 {2,S} - 2 H u0 p0 c0 {1,S}''') + self.mol41 = Molecule().from_adjacency_list( + """1 N u0 p2 c0 {2,S} + 2 H u0 p0 c0 {1,S}""" + ) - self.mol42 = Molecule().from_adjacency_list('''1 N u0 p1 c0 {2,T} + self.mol42 = Molecule().from_adjacency_list( + """1 N u0 p1 c0 {2,T} 2 N u0 p0 c+1 {1,T} {3,S} 3 S u0 p2 c-1 {2,S} {4,S} {5,S} 4 O u1 p2 c0 {3,S} - 5 O u1 p2 c0 {3,S}''') + 5 O u1 p2 c0 {3,S}""" + ) - self.mol43 = Molecule().from_adjacency_list('''1 C u0 p1 c-1 {2,D} {3,S} + self.mol43 = Molecule().from_adjacency_list( + """1 C u0 p1 c-1 {2,D} {3,S} 2 S u1 p0 c+1 {1,D} {4,S} {5,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {2,S} - 5 H u0 p0 c0 {2,S}''') + 5 H u0 p0 c0 {2,S}""" + ) - self.mol44 = Molecule().from_adjacency_list('''1 O u0 p3 c0''') + self.mol44 = Molecule().from_adjacency_list("""1 O u0 p3 c0""") - self.mol45 = Molecule().from_adjacency_list('''1 O u0 p2 c0 {2,S} {5,S} + self.mol45 = Molecule().from_adjacency_list( + """1 O u0 p2 c0 {2,S} {5,S} 2 N u0 p0 c+1 {1,S} {3,S} {4,D} 3 O u0 p3 c-1 {2,S} 4 O u0 p2 c0 {2,D} - 5 H u0 p0 c0 {1,S}''') + 5 H u0 p0 c0 {1,S}""" + ) - self.mol49 = Molecule().from_adjacency_list('''1 O u0 p3 c-1 {2,S} + self.mol49 = Molecule().from_adjacency_list( + """1 O u0 p3 c-1 {2,S} 2 O u0 p1 c+1 {1,S} {3,S} {4,S} 3 H u0 p0 c0 {2,S} 4 S u0 p2 c0 {2,S} {5,S} - 5 H u0 p0 c0 {4,S}''') + 5 H u0 p0 c0 {4,S}""" + ) - self.mol50 = Molecule().from_adjacency_list('''1 O u0 p3 c-1 {2,S} + self.mol50 = Molecule().from_adjacency_list( + """1 O u0 p3 c-1 {2,S} 2 O u0 p1 c+1 {1,S} {3,D} 3 C u0 p0 c0 {2,D} {4,S} {5,S} 4 H u0 p0 c0 {3,S} - 5 H u0 p0 c0 {3,S}''') + 5 H u0 p0 c0 {3,S}""" + ) - self.mol51 = Molecule().from_adjacency_list('''1 O u0 p2 c0 {2,S} {7,S} + self.mol51 = Molecule().from_adjacency_list( + """1 O u0 p2 c0 {2,S} {7,S} 2 S u0 p0 c+1 {1,S} {3,S} {4,S} {5,S} {6,S} 3 H u0 p0 c0 {2,S} 4 H u0 p0 c0 {2,S} 5 H u0 p0 c0 {2,S} 6 O u0 p3 c-1 {2,S} - 7 H u0 p0 c0 {1,S}''') + 7 H u0 p0 c0 {1,S}""" + ) - self.mol52 = Molecule().from_adjacency_list('''1 C u0 p0 c0 {2,D} {6,S} {8,S} + self.mol52 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,D} {6,S} {8,S} 2 C u0 p0 c0 {1,D} {3,S} {9,S} 3 C u0 p0 c0 {2,S} {4,S} {10,S} {11,S} 4 C u0 p0 c0 {3,S} {5,S} {6,S} {12,S} @@ -448,9 +555,11 @@ def setUp(self): 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} - 12 H u0 p0 c0 {4,S}''') + 12 H u0 p0 c0 {4,S}""" + ) - self.mol53 = Molecule().from_adjacency_list('''1 N u0 p0 c-1 {2,D} {3,D} {4,D} + self.mol53 = Molecule().from_adjacency_list( + """1 N u0 p0 c-1 {2,D} {3,D} {4,D} 2 C u0 p0 c0 {1,D} {5,S} {6,S} 3 C u0 p0 c0 {1,D} {7,S} {8,S} 4 N u0 p0 c+1 {1,D} {9,S} {10,S} @@ -459,15 +568,19 @@ def setUp(self): 7 H u0 p0 c0 {3,S} 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {4,S} - 10 H u0 p0 c0 {4,S}''') + 10 H u0 p0 c0 {4,S}""" + ) - self.mol54 = Molecule().from_adjacency_list('''1 C u0 p0 c+1 {2,S} {3,D} + self.mol54 = Molecule().from_adjacency_list( + """1 C u0 p0 c+1 {2,S} {3,D} 2 H u0 p0 c0 {1,S} 3 C u0 p0 c0 {1,D} {4,D} 4 C u0 p1 c-1 {3,D} {5,S} - 5 H u0 p0 c0 {4,S}''') + 5 H u0 p0 c0 {4,S}""" + ) - self.mol55 = Molecule().from_adjacency_list('''1 C u0 p0 c0 {2,B} {10,B} {11,S} + self.mol55 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,B} {10,B} {11,S} 2 C u0 p0 c0 {1,B} {3,B} {12,S} 3 C u0 p0 c0 {2,B} {4,B} {13,S} 4 C u0 p0 c0 {3,B} {5,B} {9,B} @@ -484,46 +597,63 @@ def setUp(self): 15 H u0 p0 c0 {6,S} 16 H u0 p0 c0 {7,S} 17 H u0 p0 c0 {8,S} - 18 H u0 p0 c0 {10,S}''') + 18 H u0 p0 c0 {10,S}""" + ) - self.mol56 = Molecule().from_adjacency_list('''1 C u0 p1 c0 {2,S} {3,S} + self.mol56 = Molecule().from_adjacency_list( + """1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} - 3 H u0 p0 c0 {1,S}''') + 3 H u0 p0 c0 {1,S}""" + ) - self.mol57 = Molecule().from_adjacency_list('''1 C u0 p1 c-1 {2,S} {3,S} {4,S} + self.mol57 = Molecule().from_adjacency_list( + """1 C u0 p1 c-1 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 N u0 p0 c+1 {1,S} {5,T} - 5 N u0 p1 c0 {4,T}''') + 5 N u0 p1 c0 {4,T}""" + ) - self.mol58 = Molecule().from_adjacency_list('''1 C u0 p1 c0 {2,D} + self.mol58 = Molecule().from_adjacency_list( + """1 C u0 p1 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,S} {4,S} 3 H u0 p0 c0 {2,S} - 4 H u0 p0 c0 {2,S}''') + 4 H u0 p0 c0 {2,S}""" + ) - self.mol59 = Molecule().from_adjacency_list('''1 C u0 p1 c-1 {2,S} {3,D} + self.mol59 = Molecule().from_adjacency_list( + """1 C u0 p1 c-1 {2,S} {3,D} 2 H u0 p0 c0 {1,S} 3 N u0 p0 c+1 {1,D} {4,D} - 4 O u0 p2 c0 {3,D}''') + 4 O u0 p2 c0 {3,D}""" + ) - self.mol60 = Molecule().from_adjacency_list('''1 C u0 p0 c0 {2,D} {3,D} + self.mol60 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,D} {3,D} 2 C u0 p0 c+1 {1,D} {4,S} 3 C u0 p1 c-1 {1,D} {5,S} 4 H u0 p0 c0 {2,S} - 5 H u0 p0 c0 {3,S}''') + 5 H u0 p0 c0 {3,S}""" + ) - self.mol64 = Molecule().from_adjacency_list('''1 N u0 p1 c0 {2,D} {4,S} + self.mol64 = Molecule().from_adjacency_list( + """1 N u0 p1 c0 {2,D} {4,S} 2 N u0 p0 c+1 {1,D} {3,D} 3 N u0 p2 c-1 {2,D} - 4 H u0 p0 c0 {1,S}''') + 4 H u0 p0 c0 {1,S}""" + ) - self.mol69 = Molecule().from_adjacency_list('''1 N u0 p0 c+1 {2,T} {3,S} + self.mol69 = Molecule().from_adjacency_list( + """1 N u0 p0 c+1 {2,T} {3,S} 2 S u0 p2 c-1 {1,T} - 3 H u0 p0 c0 {1,S}''') + 3 H u0 p0 c0 {1,S}""" + ) - self.mol70 = Molecule().from_adjacency_list('''1 S u0 p0 c+1 {2,D} {3,T} + self.mol70 = Molecule().from_adjacency_list( + """1 S u0 p0 c+1 {2,D} {3,T} 2 N u0 p2 c-1 {1,D} - 3 N u0 p1 c0 {1,T}''') + 3 N u0 p1 c0 {1,T}""" + ) # self.mol71 = Molecule().from_adjacency_list('''1 O u0 p1 c0 {2,B} {5,B} # 2 C u0 p0 c0 {1,B} {3,B} {6,S} @@ -547,63 +677,88 @@ def setUp(self): # 10 H u0 p0 {4,S} # 11 H u0 p0 {5,S}''') - self.mol73 = Molecule().from_adjacency_list('''1 H u0 p0 c0 {2,S} - 2 Cl u0 p3 c0 {1,S}''') + self.mol73 = Molecule().from_adjacency_list( + """1 H u0 p0 c0 {2,S} + 2 Cl u0 p3 c0 {1,S}""" + ) - self.mol74 = Molecule().from_adjacency_list('''1 H u0 p0 c0 {2,S} - 2 I u0 p3 c0 {1,S}''') + self.mol74 = Molecule().from_adjacency_list( + """1 H u0 p0 c0 {2,S} + 2 I u0 p3 c0 {1,S}""" + ) - self.mol75 = Molecule().from_adjacency_list('''1 H u0 p0 c0 {2,S} - 2 F u0 p3 c0 {1,S}''') + self.mol75 = Molecule().from_adjacency_list( + """1 H u0 p0 c0 {2,S} + 2 F u0 p3 c0 {1,S}""" + ) - self.mol76 = Molecule().from_adjacency_list('''1 H u0 p0 c0 {2,S} - 2 X u0 p0 c0 {1,S}''') + self.mol76 = Molecule().from_adjacency_list( + """1 H u0 p0 c0 {2,S} + 2 X u0 p0 c0 {1,S}""" + ) - self.mol77 = Molecule().from_adjacency_list('''1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S} + self.mol77 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 X u0 p0 c0 5 H u0 p0 c0 {1,S} - 6 H u0 p0 c0 {1,S}''') + 6 H u0 p0 c0 {1,S}""" + ) - self.mol78 = Molecule().from_adjacency_list('''1 X u0 p0 c0''') + self.mol78 = Molecule().from_adjacency_list("""1 X u0 p0 c0""") - self.mol79 = Molecule().from_adjacency_list('''1 H u0 p0 c0 {2,S} - 2 Br u0 p3 c0 {1,S}''') + self.mol79 = Molecule().from_adjacency_list( + """1 H u0 p0 c0 {2,S} + 2 Br u0 p3 c0 {1,S}""" + ) - self.mol80 = Molecule().from_adjacency_list('''1 P u0 p3 c-2 {2,S} + self.mol80 = Molecule().from_adjacency_list( + """1 P u0 p3 c-2 {2,S} 2 P u0 p0 c+1 {1,S} {3,T} 3 P u0 p0 c+1 {2,T} {4,S} - 4 H u0 p0 c0 {3,S}''') + 4 H u0 p0 c0 {3,S}""" + ) - self.mol81 = Molecule().from_adjacency_list('''1 P u0 p2 c0 {2,S} - 2 H u0 p0 c0 {1,S}''') + self.mol81 = Molecule().from_adjacency_list( + """1 P u0 p2 c0 {2,S} + 2 H u0 p0 c0 {1,S}""" + ) - self.mol82 = Molecule().from_adjacency_list('''1 P u0 p2 c-1 {2,S} {3,S} + self.mol82 = Molecule().from_adjacency_list( + """1 P u0 p2 c-1 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 P u0 p0 c+1 {1,S} {4,T} 4 C u0 p0 c0 {3,T} {5,S} - 5 H u0 p0 c0 {4,S}''') + 5 H u0 p0 c0 {4,S}""" + ) - self.mol83 = Molecule().from_adjacency_list('''1 H u0 p0 {3,S} + self.mol83 = Molecule().from_adjacency_list( + """1 H u0 p0 {3,S} 2 H u0 p0 {3,S} 3 P u0 p0 c+1 {1,S} {2,S} {4,D} - 4 P u0 p2 c-1 {3,D}''') + 4 P u0 p2 c-1 {3,D}""" + ) - self.mol84 = Molecule().from_adjacency_list('''1 P u0 p1 c0 {4,S} {7,S} {8,S} + self.mol84 = Molecule().from_adjacency_list( + """1 P u0 p1 c0 {4,S} {7,S} {8,S} 2 P u0 p1 c0 {3,D} {4,S} 3 O u0 p2 c0 {2,D} 4 C u0 p0 c0 {1,S} {2,S} {5,S} {6,S} 5 H u0 p0 c0 {4,S} 6 H u0 p0 c0 {4,S} 7 H u0 p0 c0 {1,S} - 8 H u0 p0 c0 {1,S}''') + 8 H u0 p0 c0 {1,S}""" + ) - self.mol85 = Molecule().from_adjacency_list('''1 P u0 p1 c0 {2,T} + self.mol85 = Molecule().from_adjacency_list( + """1 P u0 p1 c0 {2,T} 2 C u0 p0 c0 {1,T} {3,S} - 3 H u0 p0 c0 {2,S}''') + 3 H u0 p0 c0 {2,S}""" + ) - self.mol86 = Molecule().from_adjacency_list('''1 P u0 p0 c+1 {2,B} {6,B} {7,S} + self.mol86 = Molecule().from_adjacency_list( + """1 P u0 p0 c+1 {2,B} {6,B} {7,S} 2 C u0 p0 {1,B} {3,B} {8,S} 3 C u0 p0 {2,B} {4,B} {9,S} 4 C u0 p0 {3,B} {5,B} {10,S} @@ -613,56 +768,72 @@ def setUp(self): 8 H u0 p0 {2,S} 9 H u0 p0 {3,S} 10 H u0 p0 {4,S} - 11 H u0 p0 {5,S}''') + 11 H u0 p0 {5,S}""" + ) - self.mol87 = Molecule().from_adjacency_list('''1 P u0 p0 c0 {2,S} {3,S} {4,S} {5,S} {6,S} + self.mol87 = Molecule().from_adjacency_list( + """1 P u0 p0 c0 {2,S} {3,S} {4,S} {5,S} {6,S} 2 Cl u0 p3 c0 {1,S} 3 Cl u0 p3 c0 {1,S} 4 Cl u0 p3 c0 {1,S} 5 Cl u0 p3 c0 {1,S} - 6 Cl u0 p3 c0 {1,S}''') + 6 Cl u0 p3 c0 {1,S}""" + ) - self.mol88 = Molecule().from_adjacency_list('''1 P u0 p0 c+1 {2,S} {3,S} {4,S} {5,S} + self.mol88 = Molecule().from_adjacency_list( + """1 P u0 p0 c+1 {2,S} {3,S} {4,S} {5,S} 2 O u0 p2 c0 {1,S} {6,S} 3 O u0 p3 c-1 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} - 6 H u0 p0 c0 {2,S}''') + 6 H u0 p0 c0 {2,S}""" + ) - self.mol89 = Molecule().from_adjacency_list('''1 P u0 p0 c0 {2,S} {3,S} {4,S} {5,D} + self.mol89 = Molecule().from_adjacency_list( + """1 P u0 p0 c0 {2,S} {3,S} {4,S} {5,D} 2 O u0 p2 c0 {1,S} {6,S} 3 O u0 p2 c0 {1,S} {7,S} 4 O u0 p2 c0 {1,S} {8,S} 5 O u0 p2 c0 {1,D} 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {3,S} - 8 H u0 p0 c0 {4,S}''') + 8 H u0 p0 c0 {4,S}""" + ) - self.mol90 = Molecule().from_adjacency_list('''1 P u0 p0 c0 {2,D} {3,D} {4,S} + self.mol90 = Molecule().from_adjacency_list( + """1 P u0 p0 c0 {2,D} {3,D} {4,S} 2 O u0 p2 c0 {1,D} 3 O u0 p2 c0 {1,D} 4 C u0 p0 c0 {1,S} {5,S} {6,S} {7,S} 5 H u0 p0 c0 {4,S} 6 H u0 p0 c0 {4,S} - 7 H u0 p0 c0 {4,S}''') + 7 H u0 p0 c0 {4,S}""" + ) - self.mol91 = Molecule().from_adjacency_list('''1 P u0 p0 c+1 {2,D} {3,D} + self.mol91 = Molecule().from_adjacency_list( + """1 P u0 p0 c+1 {2,D} {3,D} 2 N u0 p2 c-1 {1,D} 3 C u0 p0 c0 {1,D} {4,S} {5,S} 4 H u0 p0 c0 {3,S} - 5 H u0 p0 c0 {3,S}''') + 5 H u0 p0 c0 {3,S}""" + ) - self.mol92 = Molecule().from_adjacency_list('''1 P u0 p0 c0 {2,T} {3,S} {4,S} + self.mol92 = Molecule().from_adjacency_list( + """1 P u0 p0 c0 {2,T} {3,S} {4,S} 2 N u0 p1 c0 {1,T} 3 Cl u0 p3 c0 {1,S} - 4 Cl u0 p3 c0 {1,S}''') + 4 Cl u0 p3 c0 {1,S}""" + ) - self.mol93 = Molecule().from_adjacency_list('''1 P u0 p0 c0 {2,D} {3,T} + self.mol93 = Molecule().from_adjacency_list( + """1 P u0 p0 c0 {2,D} {3,T} 2 O u0 p2 c0 {1,D} 3 C u0 p0 c0 {1,T} {4,S} - 4 H u0 p0 c0 {3,S}''') + 4 H u0 p0 c0 {3,S}""" + ) - self.mol94 = Molecule().from_adjacency_list('''1 P u0 p0 {2,B} {6,B} {7,D} + self.mol94 = Molecule().from_adjacency_list( + """1 P u0 p0 {2,B} {6,B} {7,D} 2 C u0 p0 {1,B} {3,B} {8,S} 3 C u0 p0 {2,B} {4,B} {9,S} 4 C u0 p0 {3,B} {5,B} {10,S} @@ -673,10 +844,13 @@ def setUp(self): 9 H u0 p0 {3,S} 10 H u0 p0 {4,S} 11 H u0 p0 {5,S} - 12 H u0 p0 {6,S}''') + 12 H u0 p0 {6,S}""" + ) - self.mol95 = Molecule().from_adjacency_list('''1 C u0 p0 c+1 {2,T} - 2 C u0 p1 c-1 {1,T}''') + self.mol95 = Molecule().from_adjacency_list( + """1 C u0 p0 c+1 {2,T} + 2 C u0 p1 c-1 {1,T}""" + ) def atom_type(self, mol, atom_id): atom = mol.atoms[atom_id] @@ -690,188 +864,192 @@ def test_hydrogen_type(self): """ Test that get_atomtype() returns the hydrogen atom type. """ - self.assertEqual(self.atom_type(self.mol3, 0), 'H') + self.assertEqual(self.atom_type(self.mol3, 0), "H") def test_carbon_types(self): """ Test that get_atomtype() returns appropriate carbon atom types. """ - self.assertEqual(self.atom_type(self.mol1, 0), 'Cs') - self.assertEqual(self.atom_type(self.mol52, 5), 'Csc') - self.assertEqual(self.atom_type(self.mol1, 5), 'Cd') - self.assertEqual(self.atom_type(self.mol60, 1), 'Cdc') - self.assertEqual(self.atom_type(self.mol1, 2), 'CO') - self.assertEqual(self.atom_type(self.mol19, 0), 'CS') - self.assertEqual(self.atom_type(self.mol1, 6), 'Cdd') - self.assertEqual(self.atom_type(self.mol1, 9), 'Ct') - self.assertEqual(self.atom_type(self.mol2, 0), 'Cb') - self.assertEqual(self.atom_type(self.mol55, 3), 'Cbf') - self.assertEqual(self.atom_type(self.mol56, 0), 'C2s') - self.assertEqual(self.atom_type(self.mol57, 0), 'C2sc') - self.assertEqual(self.atom_type(self.mol58, 0), 'C2d') - self.assertEqual(self.atom_type(self.mol59, 0), 'C2dc') - self.assertEqual(self.atom_type(self.mol60, 2), 'C2dc') - self.assertEqual(self.atom_type(self.mol20, 0), 'C2tc') - self.assertEqual(self.atom_type(self.mol29, 0), 'C2tc') # todo: add in a ciq unit test? - self.assertEqual(self.atom_type(self.mol95, 0), 'Ctc') + self.assertEqual(self.atom_type(self.mol1, 0), "Cs") + self.assertEqual(self.atom_type(self.mol52, 5), "Csc") + self.assertEqual(self.atom_type(self.mol1, 5), "Cd") + self.assertEqual(self.atom_type(self.mol60, 1), "Cdc") + self.assertEqual(self.atom_type(self.mol1, 2), "CO") + self.assertEqual(self.atom_type(self.mol19, 0), "CS") + self.assertEqual(self.atom_type(self.mol1, 6), "Cdd") + self.assertEqual(self.atom_type(self.mol1, 9), "Ct") + self.assertEqual(self.atom_type(self.mol2, 0), "Cb") + self.assertEqual(self.atom_type(self.mol55, 3), "Cbf") + self.assertEqual(self.atom_type(self.mol56, 0), "C2s") + self.assertEqual(self.atom_type(self.mol57, 0), "C2sc") + self.assertEqual(self.atom_type(self.mol58, 0), "C2d") + self.assertEqual(self.atom_type(self.mol59, 0), "C2dc") + self.assertEqual(self.atom_type(self.mol60, 2), "C2dc") + self.assertEqual(self.atom_type(self.mol20, 0), "C2tc") + self.assertEqual( + self.atom_type(self.mol29, 0), "C2tc" + ) # todo: add in a ciq unit test? + self.assertEqual(self.atom_type(self.mol95, 0), "Ctc") def test_nitrogen_types(self): """ Test that get_atomtype() returns appropriate nitrogen atom types. """ - self.assertEqual(self.atom_type(self.mol40, 3), 'N0sc') - self.assertEqual(self.atom_type(self.mol41, 0), 'N1s') - self.assertEqual(self.atom_type(self.mol39, 0), 'N1sc') - self.assertEqual(self.atom_type(self.mol5, 3), 'N1dc') - self.assertEqual(self.atom_type(self.mol9, 0), 'N3s') - self.assertEqual(self.atom_type(self.mol10, 0), 'N3s') - self.assertEqual(self.atom_type(self.mol11, 0), 'N3s') - self.assertEqual(self.atom_type(self.mol16, 0), 'N3d') - self.assertEqual(self.atom_type(self.mol17, 0), 'N3d') - self.assertEqual(self.atom_type(self.mol12, 0), 'N3t') - self.assertEqual(self.atom_type(self.mol18, 5), 'N3b') - self.assertEqual(self.atom_type(self.mol5, 2), 'N5dc') - self.assertEqual(self.atom_type(self.mol64, 1), 'N5ddc') - self.assertEqual(self.atom_type(self.mol53, 0), 'N5dddc') - self.assertEqual(self.atom_type(self.mol15, 1), 'N5tc') - self.assertEqual(self.atom_type(self.mol39, 2), 'N5tc') - self.assertEqual(self.atom_type(self.mol18, 0), 'N5b') + self.assertEqual(self.atom_type(self.mol40, 3), "N0sc") + self.assertEqual(self.atom_type(self.mol41, 0), "N1s") + self.assertEqual(self.atom_type(self.mol39, 0), "N1sc") + self.assertEqual(self.atom_type(self.mol5, 3), "N1dc") + self.assertEqual(self.atom_type(self.mol9, 0), "N3s") + self.assertEqual(self.atom_type(self.mol10, 0), "N3s") + self.assertEqual(self.atom_type(self.mol11, 0), "N3s") + self.assertEqual(self.atom_type(self.mol16, 0), "N3d") + self.assertEqual(self.atom_type(self.mol17, 0), "N3d") + self.assertEqual(self.atom_type(self.mol12, 0), "N3t") + self.assertEqual(self.atom_type(self.mol18, 5), "N3b") + self.assertEqual(self.atom_type(self.mol5, 2), "N5dc") + self.assertEqual(self.atom_type(self.mol64, 1), "N5ddc") + self.assertEqual(self.atom_type(self.mol53, 0), "N5dddc") + self.assertEqual(self.atom_type(self.mol15, 1), "N5tc") + self.assertEqual(self.atom_type(self.mol39, 2), "N5tc") + self.assertEqual(self.atom_type(self.mol18, 0), "N5b") # self.assertEqual(self.atomtype(self.mol72, 0), 'N5bd') # aromatic nitrogen currently doesn't work well in RMG. See RMG-Py #982 def test_oxygen_types(self): """ Test that get_atomtype() returns appropriate oxygen atom types. """ - self.assertEqual(self.atom_type(self.mol44, 0), 'Oa') - self.assertEqual(self.atom_type(self.mol45, 2), 'O0sc') - self.assertEqual(self.atom_type(self.mol49, 0), 'O0sc') - self.assertEqual(self.atom_type(self.mol1, 1), 'O2s') - self.assertEqual(self.atom_type(self.mol24, 2), 'O2sc') - self.assertEqual(self.atom_type(self.mol1, 3), 'O2d') - self.assertEqual(self.atom_type(self.mol49, 1), 'O4sc') - self.assertEqual(self.atom_type(self.mol50, 1), 'O4dc') - self.assertEqual(self.atom_type(self.mol20, 1), 'O4tc') + self.assertEqual(self.atom_type(self.mol44, 0), "Oa") + self.assertEqual(self.atom_type(self.mol45, 2), "O0sc") + self.assertEqual(self.atom_type(self.mol49, 0), "O0sc") + self.assertEqual(self.atom_type(self.mol1, 1), "O2s") + self.assertEqual(self.atom_type(self.mol24, 2), "O2sc") + self.assertEqual(self.atom_type(self.mol1, 3), "O2d") + self.assertEqual(self.atom_type(self.mol49, 1), "O4sc") + self.assertEqual(self.atom_type(self.mol50, 1), "O4dc") + self.assertEqual(self.atom_type(self.mol20, 1), "O4tc") # self.assertEqual(self.atomtype(self.mol71, 0), 'O4b') # aromatic oxygen currently doesn't work well in RMG. See RMG-Py #982 def test_silicon_types(self): """ Test that get_atomtype() returns appropriate silicon atom types. """ - self.assertEqual(self.atom_type(self.mol4, 2), 'Sis') - self.assertEqual(self.atom_type(self.mol4, 1), 'SiO') - self.assertEqual(self.atom_type(self.mol4, 5), 'Sid') - self.assertEqual(self.atom_type(self.mol4, 4), 'Sidd') - self.assertEqual(self.atom_type(self.mol4, 7), 'Sit') # todo: add in Siq unit test? + self.assertEqual(self.atom_type(self.mol4, 2), "Sis") + self.assertEqual(self.atom_type(self.mol4, 1), "SiO") + self.assertEqual(self.atom_type(self.mol4, 5), "Sid") + self.assertEqual(self.atom_type(self.mol4, 4), "Sidd") + self.assertEqual( + self.atom_type(self.mol4, 7), "Sit" + ) # todo: add in Siq unit test? def test_phosphorus_types(self): """ Test that get_atomtype() returns appropriate phosphorus atom types. """ - self.assertEqual(self.atom_type(self.mol80, 0), 'P0sc') - self.assertEqual(self.atom_type(self.mol81, 0), 'P1s') - self.assertEqual(self.atom_type(self.mol82, 0), 'P1sc') - self.assertEqual(self.atom_type(self.mol83, 3), 'P1dc') - self.assertEqual(self.atom_type(self.mol84, 0), 'P3s') - self.assertEqual(self.atom_type(self.mol84, 1), 'P3d') - self.assertEqual(self.atom_type(self.mol85, 0), 'P3t') - self.assertEqual(self.atom_type(self.mol86, 5), 'P3b') - self.assertEqual(self.atom_type(self.mol87, 0), 'P5s') - self.assertEqual(self.atom_type(self.mol88, 0), 'P5sc') - self.assertEqual(self.atom_type(self.mol89, 0), 'P5d') - self.assertEqual(self.atom_type(self.mol90, 0), 'P5dd') - self.assertEqual(self.atom_type(self.mol83, 2), 'P5dc') - self.assertEqual(self.atom_type(self.mol91, 0), 'P5ddc') - self.assertEqual(self.atom_type(self.mol92, 0), 'P5t') - self.assertEqual(self.atom_type(self.mol93, 0), 'P5td') - self.assertEqual(self.atom_type(self.mol80, 1), 'P5tc') - self.assertEqual(self.atom_type(self.mol86, 0), 'P5b') - self.assertEqual(self.atom_type(self.mol94, 0), 'P5bd') + self.assertEqual(self.atom_type(self.mol80, 0), "P0sc") + self.assertEqual(self.atom_type(self.mol81, 0), "P1s") + self.assertEqual(self.atom_type(self.mol82, 0), "P1sc") + self.assertEqual(self.atom_type(self.mol83, 3), "P1dc") + self.assertEqual(self.atom_type(self.mol84, 0), "P3s") + self.assertEqual(self.atom_type(self.mol84, 1), "P3d") + self.assertEqual(self.atom_type(self.mol85, 0), "P3t") + self.assertEqual(self.atom_type(self.mol86, 5), "P3b") + self.assertEqual(self.atom_type(self.mol87, 0), "P5s") + self.assertEqual(self.atom_type(self.mol88, 0), "P5sc") + self.assertEqual(self.atom_type(self.mol89, 0), "P5d") + self.assertEqual(self.atom_type(self.mol90, 0), "P5dd") + self.assertEqual(self.atom_type(self.mol83, 2), "P5dc") + self.assertEqual(self.atom_type(self.mol91, 0), "P5ddc") + self.assertEqual(self.atom_type(self.mol92, 0), "P5t") + self.assertEqual(self.atom_type(self.mol93, 0), "P5td") + self.assertEqual(self.atom_type(self.mol80, 1), "P5tc") + self.assertEqual(self.atom_type(self.mol86, 0), "P5b") + self.assertEqual(self.atom_type(self.mol94, 0), "P5bd") def test_sulfur_types(self): """ Test that get_atomtype() returns appropriate sulfur atom types. """ - self.assertEqual(self.atom_type(self.mol22, 0), 'Sa') - self.assertEqual(self.atom_type(self.mol21, 0), 'S0sc') - self.assertEqual(self.atom_type(self.mol23, 0), 'S2s') - self.assertEqual(self.atom_type(self.mol21, 1), 'S2sc') - self.assertEqual(self.atom_type(self.mol42, 2), 'S2sc') - self.assertEqual(self.atom_type(self.mol19, 1), 'S2d') - self.assertEqual(self.atom_type(self.mol24, 1), 'S2dc') - self.assertEqual(self.atom_type(self.mol69, 1), 'S2tc') - self.assertEqual(self.atom_type(self.mol25, 0), 'S4s') - self.assertEqual(self.atom_type(self.mol23, 1), 'S4sc') - self.assertEqual(self.atom_type(self.mol25, 2), 'S4d') - self.assertEqual(self.atom_type(self.mol28, 1), 'S4dd') - self.assertEqual(self.atom_type(self.mol38, 1), 'S4dd') - self.assertEqual(self.atom_type(self.mol26, 1), 'S4dc') + self.assertEqual(self.atom_type(self.mol22, 0), "Sa") + self.assertEqual(self.atom_type(self.mol21, 0), "S0sc") + self.assertEqual(self.atom_type(self.mol23, 0), "S2s") + self.assertEqual(self.atom_type(self.mol21, 1), "S2sc") + self.assertEqual(self.atom_type(self.mol42, 2), "S2sc") + self.assertEqual(self.atom_type(self.mol19, 1), "S2d") + self.assertEqual(self.atom_type(self.mol24, 1), "S2dc") + self.assertEqual(self.atom_type(self.mol69, 1), "S2tc") + self.assertEqual(self.atom_type(self.mol25, 0), "S4s") + self.assertEqual(self.atom_type(self.mol23, 1), "S4sc") + self.assertEqual(self.atom_type(self.mol25, 2), "S4d") + self.assertEqual(self.atom_type(self.mol28, 1), "S4dd") + self.assertEqual(self.atom_type(self.mol38, 1), "S4dd") + self.assertEqual(self.atom_type(self.mol26, 1), "S4dc") # self.assertEqual(self.atomtype(self.mol27, 0), 'S4b') # aromatic sulfur currently doesn't work well in RMG. See RMG-Py #982 - self.assertEqual(self.atom_type(self.mol28, 4), 'S4t') - self.assertEqual(self.atom_type(self.mol29, 1), 'S4tdc') - self.assertEqual(self.atom_type(self.mol28, 5), 'S6s') - self.assertEqual(self.atom_type(self.mol51, 1), 'S6sc') - self.assertEqual(self.atom_type(self.mol30, 0), 'S6d') - self.assertEqual(self.atom_type(self.mol32, 1), 'S6dd') - self.assertEqual(self.atom_type(self.mol34, 1), 'S6ddd') - self.assertEqual(self.atom_type(self.mol43, 1), 'S6dc') - self.assertEqual(self.atom_type(self.mol31, 0), 'S6dc') - self.assertEqual(self.atom_type(self.mol33, 1), 'S6dc') - self.assertEqual(self.atom_type(self.mol35, 0), 'S6t') - self.assertEqual(self.atom_type(self.mol36, 0), 'S6td') - self.assertEqual(self.atom_type(self.mol37, 1), 'S6tt') - self.assertEqual(self.atom_type(self.mol70, 0), 'S6tdc') + self.assertEqual(self.atom_type(self.mol28, 4), "S4t") + self.assertEqual(self.atom_type(self.mol29, 1), "S4tdc") + self.assertEqual(self.atom_type(self.mol28, 5), "S6s") + self.assertEqual(self.atom_type(self.mol51, 1), "S6sc") + self.assertEqual(self.atom_type(self.mol30, 0), "S6d") + self.assertEqual(self.atom_type(self.mol32, 1), "S6dd") + self.assertEqual(self.atom_type(self.mol34, 1), "S6ddd") + self.assertEqual(self.atom_type(self.mol43, 1), "S6dc") + self.assertEqual(self.atom_type(self.mol31, 0), "S6dc") + self.assertEqual(self.atom_type(self.mol33, 1), "S6dc") + self.assertEqual(self.atom_type(self.mol35, 0), "S6t") + self.assertEqual(self.atom_type(self.mol36, 0), "S6td") + self.assertEqual(self.atom_type(self.mol37, 1), "S6tt") + self.assertEqual(self.atom_type(self.mol70, 0), "S6tdc") def test_chlorine_types(self): """ Test that get_atomtype() returns appropriate chlorine atom types. """ - self.assertEqual(self.atom_type(self.mol73, 1), 'Cl1s') + self.assertEqual(self.atom_type(self.mol73, 1), "Cl1s") def test_bromine_types(self): """ Test that get_atomtype() returns appropriate bromine atom types. """ - self.assertEqual(self.atom_type(self.mol79, 1), 'Br1s') + self.assertEqual(self.atom_type(self.mol79, 1), "Br1s") def test_iodine_types(self): """ Test that get_atomtype() returns appropriate iodine atom types. """ - self.assertEqual(self.atom_type(self.mol74, 1), 'I1s') + self.assertEqual(self.atom_type(self.mol74, 1), "I1s") def test_fluorine_types(self): """ Test that get_atomtype() returns appropriate fluorine atom types. """ - self.assertEqual(self.atom_type(self.mol75, 1), 'F1s') + self.assertEqual(self.atom_type(self.mol75, 1), "F1s") def test_other_types(self): """ Test that get_atomtype() returns appropriate types for other misc inerts. """ - self.assertEqual(self.atom_type(self.mol6, 0), 'Ar') - self.assertEqual(self.atom_type(self.mol7, 0), 'He') - self.assertEqual(self.atom_type(self.mol8, 0), 'Ne') + self.assertEqual(self.atom_type(self.mol6, 0), "Ar") + self.assertEqual(self.atom_type(self.mol7, 0), "He") + self.assertEqual(self.atom_type(self.mol8, 0), "Ne") def test_occupied_surface_atom_type(self): """ Test that get_atomtype() works for occupied surface sites and for regular atoms in the complex. """ - self.assertEqual(self.atom_type(self.mol76, 0), 'H') - self.assertEqual(self.atom_type(self.mol76, 1), 'Xo') + self.assertEqual(self.atom_type(self.mol76, 0), "H") + self.assertEqual(self.atom_type(self.mol76, 1), "Xo") def test_vacant_surface_site_atom_type(self): """ Test that get_atomtype() works for vacant surface sites and for regular atoms in the complex. """ - self.assertEqual(self.atom_type(self.mol77, 0), 'Cs') - self.assertEqual(self.atom_type(self.mol77, 1), 'H') - self.assertEqual(self.atom_type(self.mol77, 3), 'Xv') - self.assertEqual(self.atom_type(self.mol78, 0), 'Xv') + self.assertEqual(self.atom_type(self.mol77, 0), "Cs") + self.assertEqual(self.atom_type(self.mol77, 1), "H") + self.assertEqual(self.atom_type(self.mol77, 3), "Xv") + self.assertEqual(self.atom_type(self.mol78, 0), "Xv") ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/converterTest.py b/test/rmgpy/molecule/converterTest.py index aa8593d607..cb8c8c38c5 100644 --- a/test/rmgpy/molecule/converterTest.py +++ b/test/rmgpy/molecule/converterTest.py @@ -33,12 +33,17 @@ import unittest -from rmgpy.molecule.converter import debug_rdkit_mol, to_rdkit_mol, from_rdkit_mol, to_ob_mol, from_ob_mol +from rmgpy.molecule.converter import ( + debug_rdkit_mol, + to_rdkit_mol, + from_rdkit_mol, + to_ob_mol, + from_ob_mol, +) from rmgpy.molecule.molecule import Molecule class RDKitTest(unittest.TestCase): - def test_debugger(self): """Test the debug_rdkit_mol(rdmol) function doesn't crash @@ -48,18 +53,21 @@ def test_debugger(self): """ import rdkit.Chem import logging - rdmol = rdkit.Chem.MolFromSmiles('CCC') + + rdmol = rdkit.Chem.MolFromSmiles("CCC") message = debug_rdkit_mol(rdmol, level=logging.INFO) self.assertIsNotNone(message) def test_lone_pair_retention(self): """Test that we don't lose any lone pairs on round trip RDKit conversion.""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 O u0 p2 c0 {1,D} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -""") +""" + ) rdmol = to_rdkit_mol(mol) mol2 = from_rdkit_mol(Molecule(), rdmol) @@ -67,30 +75,40 @@ def test_lone_pair_retention(self): def test_atom_mapping_1(self): """Test that to_rdkit_mol returns correct indices and atom mappings.""" - bond_order_dict = {'SINGLE': 1, 'DOUBLE': 2, 'TRIPLE': 3, 'AROMATIC': 1.5} - mol = Molecule().from_smiles('C1CCC=C1C=O') - rdkitmol, rd_atom_indices = to_rdkit_mol(mol, remove_h=False, return_mapping=True) + bond_order_dict = {"SINGLE": 1, "DOUBLE": 2, "TRIPLE": 3, "AROMATIC": 1.5} + mol = Molecule().from_smiles("C1CCC=C1C=O") + rdkitmol, rd_atom_indices = to_rdkit_mol( + mol, remove_h=False, return_mapping=True + ) for atom in mol.atoms: # Check that all atoms are found in mapping self.assertTrue(atom in rd_atom_indices) # Check that all bonds are in rdkitmol with correct mapping and order for connected_atom, bond in atom.bonds.items(): - bond_type = str(rdkitmol.GetBondBetweenAtoms(rd_atom_indices[atom], - rd_atom_indices[connected_atom]).GetBondType()) + bond_type = str( + rdkitmol.GetBondBetweenAtoms( + rd_atom_indices[atom], rd_atom_indices[connected_atom] + ).GetBondType() + ) rdkit_bond_order = bond_order_dict[bond_type] self.assertEqual(bond.order, rdkit_bond_order) # Test for remove_h = True - rdkitmol2, rd_atom_indices2 = to_rdkit_mol(mol, remove_h=True, return_mapping=True) + rdkitmol2, rd_atom_indices2 = to_rdkit_mol( + mol, remove_h=True, return_mapping=True + ) for atom in mol.atoms: # Check that all non-hydrogen atoms are found in mapping - if atom.symbol != 'H': + if atom.symbol != "H": self.assertTrue(atom in rd_atom_indices2) # Check that all bonds connected to non-hydrogen have the correct mapping and order for connected_atom, bond in atom.bonds.items(): - if connected_atom.symbol != 'H': - bond_type = str(rdkitmol2.GetBondBetweenAtoms(rd_atom_indices2[atom], - rd_atom_indices2[connected_atom]).GetBondType()) + if connected_atom.symbol != "H": + bond_type = str( + rdkitmol2.GetBondBetweenAtoms( + rd_atom_indices2[atom], rd_atom_indices2[connected_atom] + ).GetBondType() + ) rdkit_bond_order = bond_order_dict[bond_type] self.assertEqual(bond.order, rdkit_bond_order) @@ -106,16 +124,22 @@ def test_atom_mapping_2(self): """ mol = Molecule().from_adjacency_list(adjlist) - rdkitmol, rd_atom_indices = to_rdkit_mol(mol, remove_h=True, return_mapping=True) + rdkitmol, rd_atom_indices = to_rdkit_mol( + mol, remove_h=True, return_mapping=True + ) heavy_atoms = [at for at in mol.atoms if at.number != 1] for at1 in heavy_atoms: for at2 in heavy_atoms: if mol.has_bond(at1, at2): try: - rdkitmol.GetBondBetweenAtoms(rd_atom_indices[at1], rd_atom_indices[at2]) + rdkitmol.GetBondBetweenAtoms( + rd_atom_indices[at1], rd_atom_indices[at2] + ) except RuntimeError: - self.fail("RDKit failed in finding the bond in the original atom!") + self.fail( + "RDKit failed in finding the bond in the original atom!" + ) def test_atom_mapping_3(self): """Test that to_rdkit_mol with save_order=True retains the atom order and create the correct RDKit Molecule""" @@ -124,37 +148,43 @@ def test_atom_mapping_3(self): 3 N u0 p1 c0 {2,T} """ mol = Molecule().from_adjacency_list(adjlist) - rdkitmol, _ = to_rdkit_mol(mol, remove_h=False, return_mapping=True, save_order=True) + rdkitmol, _ = to_rdkit_mol( + mol, remove_h=False, return_mapping=True, save_order=True + ) self.assertSequenceEqual([atom.number for atom in mol.atoms], [1, 6, 7]) - self.assertSequenceEqual([rdkitmol.GetAtomWithIdx(idx).GetAtomicNum() for idx in range(3)], [1, 6, 7]) + self.assertSequenceEqual( + [rdkitmol.GetAtomWithIdx(idx).GetAtomicNum() for idx in range(3)], [1, 6, 7] + ) class ConverterTest(unittest.TestCase): - def setUp(self): """Function run before each test in this class.""" self.test_mols = [ - Molecule().from_smiles('C'), - Molecule().from_smiles('O'), - Molecule().from_smiles('N'), - Molecule().from_smiles('S'), - Molecule().from_smiles('[CH2]C'), - Molecule().from_smiles('[CH]C'), - Molecule().from_smiles('C=CC=C'), - Molecule().from_smiles('C#C[CH2]'), - Molecule().from_smiles('c1ccccc1'), - Molecule().from_smiles('[13CH3]C'), - Molecule().from_smiles('O=CCO').generate_h_bonded_structures()[0], + Molecule().from_smiles("C"), + Molecule().from_smiles("O"), + Molecule().from_smiles("N"), + Molecule().from_smiles("S"), + Molecule().from_smiles("[CH2]C"), + Molecule().from_smiles("[CH]C"), + Molecule().from_smiles("C=CC=C"), + Molecule().from_smiles("C#C[CH2]"), + Molecule().from_smiles("c1ccccc1"), + Molecule().from_smiles("[13CH3]C"), + Molecule().from_smiles("O=CCO").generate_h_bonded_structures()[0], ] - self.test_Hbond_free_mol = Molecule().from_smiles('O=CCO') + self.test_Hbond_free_mol = Molecule().from_smiles("O=CCO") def test_rdkit_round_trip(self): """Test conversion to and from RDKitMol""" for mol in self.test_mols: rdkit_mol = to_rdkit_mol(mol) new_mol = from_rdkit_mol(Molecule(), rdkit_mol) - self.assertTrue(mol.is_isomorphic(new_mol) or self.test_Hbond_free_mol.is_isomorphic(new_mol)) + self.assertTrue( + mol.is_isomorphic(new_mol) + or self.test_Hbond_free_mol.is_isomorphic(new_mol) + ) self.assertEqual(mol.get_element_count(), new_mol.get_element_count()) def test_ob_round_trip(self): @@ -162,5 +192,8 @@ def test_ob_round_trip(self): for mol in self.test_mols: ob_mol = to_ob_mol(mol) new_mol = from_ob_mol(Molecule(), ob_mol) - self.assertTrue(mol.is_isomorphic(new_mol) or self.test_Hbond_free_mol.is_isomorphic(new_mol)) + self.assertTrue( + mol.is_isomorphic(new_mol) + or self.test_Hbond_free_mol.is_isomorphic(new_mol) + ) self.assertEqual(mol.get_element_count(), new_mol.get_element_count()) diff --git a/test/rmgpy/molecule/drawTest.py b/test/rmgpy/molecule/drawTest.py index a60de2ae7d..26d429847c 100644 --- a/test/rmgpy/molecule/drawTest.py +++ b/test/rmgpy/molecule/drawTest.py @@ -42,6 +42,7 @@ ################################################################################ + class TestMoleculeDrawer(unittest.TestCase): """ Contains unit tests of the MoleculeDrawer class. @@ -52,7 +53,7 @@ def setUp(self): A function run before each unit test in this class. """ self.drawer = MoleculeDrawer() - self.molecule = Molecule(smiles='CC(=O)CC') + self.molecule = Molecule(smiles="CC(=O)CC") def test_draw_png(self): """ @@ -62,10 +63,12 @@ def test_draw_png(self): from cairocffi import ImageSurface except ImportError: from cairo import ImageSurface - path = 'test_molecule.png' + path = "test_molecule.png" if os.path.exists(path): os.unlink(path) - surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw(self.molecule, file_format='png', target=path) + surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw( + self.molecule, file_format="png", target=path + ) self.assertTrue(os.path.exists(path), "File doesn't exist") self.assertGreater(width, height) os.unlink(path) @@ -79,10 +82,12 @@ def test_draw_pdf(self): from cairocffi import PDFSurface except ImportError: from cairo import PDFSurface - path = 'test_molecule.pdf' + path = "test_molecule.pdf" if os.path.exists(path): os.unlink(path) - surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw(self.molecule, file_format='pdf', target=path) + surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw( + self.molecule, file_format="pdf", target=path + ) self.assertIsInstance(surface, PDFSurface) self.assertGreater(width, height) os.unlink(path) @@ -95,11 +100,13 @@ def test_draw_polycycle(self): from cairocffi import PDFSurface except ImportError: from cairo import PDFSurface - path = 'test_molecule.pdf' + path = "test_molecule.pdf" if os.path.exists(path): os.unlink(path) polycycle = Molecule(smiles="C123CC4CC1COCC2CCC34") - surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw(polycycle, file_format='pdf', target=path) + surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw( + polycycle, file_format="pdf", target=path + ) self.assertIsInstance(surface, PDFSurface) self.assertGreater(width, height) os.unlink(path) @@ -112,25 +119,28 @@ def test_draw_pdf_without_file(self): from cairocffi import PDFSurface except ImportError: from cairo import PDFSurface - surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw(self.molecule, file_format='pdf') + surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw( + self.molecule, file_format="pdf" + ) self.assertIsInstance(surface, PDFSurface) self.assertGreater(width, height) def test_draw_non_standard_bonds(self): - - spec = Species().from_smiles('[CH2]C=C[CH2]') + spec = Species().from_smiles("[CH2]C=C[CH2]") hybrid = spec.get_resonance_hybrid() try: from cairocffi import PDFSurface except ImportError: from cairo import PDFSurface - surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw(hybrid, file_format='pdf') + surface, _cr, (_xoff, _yoff, width, height) = self.drawer.draw( + hybrid, file_format="pdf" + ) self.assertGreater(width, height) self.assertIsInstance(surface, PDFSurface) def test_draw_hydrogen_bond_adsorbate(self): - - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ 1 O u0 p3 c-1 {2,S} {10,H} 2 N u0 p0 c+1 {1,S} {3,D} {4,S} 3 O u0 p2 c0 {2,D} @@ -148,10 +158,13 @@ def test_draw_hydrogen_bond_adsorbate(self): from cairocffi import PDFSurface except ImportError: from cairo import PDFSurface - surface, _cr, (_xoff, _yoff, _width, _height) = self.drawer.draw(molecule, file_format='pdf') + surface, _cr, (_xoff, _yoff, _width, _height) = self.drawer.draw( + molecule, file_format="pdf" + ) self.assertIsInstance(surface, PDFSurface) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/elementTest.py b/test/rmgpy/molecule/elementTest.py index 5963cf2ca3..493ffadb67 100644 --- a/test/rmgpy/molecule/elementTest.py +++ b/test/rmgpy/molecule/elementTest.py @@ -39,6 +39,7 @@ ################################################################################ + class TestElement(unittest.TestCase): """ Contains unit tests of the Element class. @@ -57,6 +58,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + element = pickle.loads(pickle.dumps(self.element)) self.assertEqual(self.element.number, element.number) self.assertEqual(self.element.symbol, element.symbol) @@ -69,9 +71,9 @@ def test_output(self): output with no loss of information. """ namespace = {} - exec('element = {0!r}'.format(self.element), globals(), namespace) - self.assertIn('element', namespace) - element = namespace['element'] + exec("element = {0!r}".format(self.element), globals(), namespace) + self.assertIn("element", namespace) + element = namespace["element"] self.assertEqual(self.element.number, element.number) self.assertEqual(self.element.symbol, element.symbol) self.assertEqual(self.element.name, element.name) @@ -82,32 +84,36 @@ def test_get_element(self): Test the rmgpy.elements.get_element() method. """ self.assertTrue(rmgpy.molecule.element.get_element(6) is self.element) - self.assertTrue(rmgpy.molecule.element.get_element('C') is self.element) + self.assertTrue(rmgpy.molecule.element.get_element("C") is self.element) self.assertTrue(rmgpy.molecule.element.get_element(0) is self.element_x) - self.assertTrue(rmgpy.molecule.element.get_element('X') is self.element_x) + self.assertTrue(rmgpy.molecule.element.get_element("X") is self.element_x) def test_get_element_isotope(self): """ Test that the rmgpy.elements.get_element() method works for isotopes. """ - self.assertTrue(isinstance(rmgpy.molecule.element.get_element('C', isotope=13), Element)) - self.assertTrue(isinstance(rmgpy.molecule.element.get_element(6, isotope=13), Element)) + self.assertTrue( + isinstance(rmgpy.molecule.element.get_element("C", isotope=13), Element) + ) + self.assertTrue( + isinstance(rmgpy.molecule.element.get_element(6, isotope=13), Element) + ) def test_chemkin_name(self): """ Test that retrieving the chemkin name of an element works. """ - d = rmgpy.molecule.element.get_element('H', isotope=2) - self.assertEqual(d.chemkin_name, 'D') + d = rmgpy.molecule.element.get_element("H", isotope=2) + self.assertEqual(d.chemkin_name, "D") - c13 = rmgpy.molecule.element.get_element('C', isotope=13) - self.assertEqual(c13.chemkin_name, 'CI') + c13 = rmgpy.molecule.element.get_element("C", isotope=13) + self.assertEqual(c13.chemkin_name, "CI") - o18 = rmgpy.molecule.element.get_element('O', isotope=18) - self.assertEqual(o18.chemkin_name, 'OI') + o18 = rmgpy.molecule.element.get_element("O", isotope=18) + self.assertEqual(o18.chemkin_name, "OI") ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/filtrationTest.py b/test/rmgpy/molecule/filtrationTest.py index 6425690db2..83a6a2c2d0 100644 --- a/test/rmgpy/molecule/filtrationTest.py +++ b/test/rmgpy/molecule/filtrationTest.py @@ -29,8 +29,14 @@ import unittest -from rmgpy.molecule.filtration import get_octet_deviation_list, get_octet_deviation, filter_structures, \ - charge_filtration, get_charge_span_list, aromaticity_filtration +from rmgpy.molecule.filtration import ( + get_octet_deviation_list, + get_octet_deviation, + filter_structures, + charge_filtration, + get_charge_span_list, + aromaticity_filtration, +) from rmgpy.molecule.molecule import Molecule from rmgpy.molecule.resonance import generate_resonance_structures, analyze_molecule @@ -38,7 +44,6 @@ class FiltrationTest(unittest.TestCase): - def basic_filtration_test(self): """Test that structures with higher octet deviation get filtered out""" adj1 = """ @@ -82,7 +87,7 @@ def penalty_for_o4tc_test(self): mol = Molecule().from_adjacency_list(adj) octet_deviation = get_octet_deviation(mol) self.assertEqual(octet_deviation, 0) - self.assertEqual(mol.vertices[2].atomtype.label, 'O4tc') + self.assertEqual(mol.vertices[2].atomtype.label, "O4tc") mol_list = generate_resonance_structures(mol) self.assertEqual(len(mol_list), 2) for mol in mol_list: @@ -100,7 +105,9 @@ def penalty_birads_replacing_lone_pairs_test(self): """ mol = Molecule().from_adjacency_list(adj) mol.update() - mol_list = generate_resonance_structures(mol, keep_isomorphic=False, filter_structures=True) + mol_list = generate_resonance_structures( + mol, keep_isomorphic=False, filter_structures=True + ) for mol in mol_list: if mol.reactive: for atom in mol.vertices: @@ -149,9 +156,11 @@ def radical_site_test(self): 3 N u0 p1 c+1 {1,S} {2,S} """ - mol_list = [Molecule().from_adjacency_list(adj1), - Molecule().from_adjacency_list(adj2), - Molecule().from_adjacency_list(adj3)] + mol_list = [ + Molecule().from_adjacency_list(adj1), + Molecule().from_adjacency_list(adj2), + Molecule().from_adjacency_list(adj3), + ] for mol in mol_list: mol.update() # the charge_filtration uses the atom.sorting_label attribute @@ -232,13 +241,15 @@ def electronegativity_test(self): 5 O u0 p3 c-1 {3,S} """ - mol_list = [Molecule().from_adjacency_list(adj1), - Molecule().from_adjacency_list(adj2), - Molecule().from_adjacency_list(adj3), - Molecule().from_adjacency_list(adj4), - Molecule().from_adjacency_list(adj5), - Molecule().from_adjacency_list(adj6), - Molecule().from_adjacency_list(adj7)] + mol_list = [ + Molecule().from_adjacency_list(adj1), + Molecule().from_adjacency_list(adj2), + Molecule().from_adjacency_list(adj3), + Molecule().from_adjacency_list(adj4), + Molecule().from_adjacency_list(adj5), + Molecule().from_adjacency_list(adj6), + Molecule().from_adjacency_list(adj7), + ] for mol in mol_list: mol.update() # the charge_filtration uses the atom.sorting_label attribute diff --git a/test/rmgpy/molecule/fragmentTest.py b/test/rmgpy/molecule/fragmentTest.py index 6f901ca1b3..00d16abffb 100644 --- a/test/rmgpy/molecule/fragmentTest.py +++ b/test/rmgpy/molecule/fragmentTest.py @@ -38,33 +38,32 @@ import rmgpy.molecule.fragment -class TestCuttingLabel(unittest.TestCase): +class TestCuttingLabel(unittest.TestCase): def setUp(self): """ A function run before each unit test in this class. """ - self.cutting_label_R = rmgpy.molecule.fragment.CuttingLabel('R') + self.cutting_label_R = rmgpy.molecule.fragment.CuttingLabel("R") def test_symbol(self): - - self.assertEqual('R', self.cutting_label_R.symbol) + self.assertEqual("R", self.cutting_label_R.symbol) def test_copy(self): - cutting_label_R_copy = self.cutting_label_R.copy() - self.assertEqual('R', cutting_label_R_copy.name) - self.assertEqual(self.cutting_label_R.label, - cutting_label_R_copy.label) - self.assertEqual(self.cutting_label_R.charge, - cutting_label_R_copy.charge) - self.assertEqual(self.cutting_label_R.radical_electrons, - cutting_label_R_copy.radical_electrons) - self.assertEqual(self.cutting_label_R.lone_pairs, - cutting_label_R_copy.lone_pairs) - self.assertEqual(self.cutting_label_R.isotope, - cutting_label_R_copy.isotope) + self.assertEqual("R", cutting_label_R_copy.name) + self.assertEqual(self.cutting_label_R.label, cutting_label_R_copy.label) + self.assertEqual(self.cutting_label_R.charge, cutting_label_R_copy.charge) + self.assertEqual( + self.cutting_label_R.radical_electrons, + cutting_label_R_copy.radical_electrons, + ) + self.assertEqual( + self.cutting_label_R.lone_pairs, cutting_label_R_copy.lone_pairs + ) + self.assertEqual(self.cutting_label_R.isotope, cutting_label_R_copy.isotope) + class TestFragment(unittest.TestCase): def setUp(self): @@ -73,230 +72,198 @@ def setUp(self): """ # construct the first fragment - atom_C1 = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel('R') - cutting_label_L1 = rmgpy.molecule.fragment.CuttingLabel('L') - - vertices = [ - atom_C1, - cutting_label_R1, - cutting_label_L1 - ] + atom_C1 = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) - bonds = [ - Bond(atom_C1, cutting_label_R1), - Bond(atom_C1, cutting_label_L1) - ] + cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel("R") + cutting_label_L1 = rmgpy.molecule.fragment.CuttingLabel("L") + + vertices = [atom_C1, cutting_label_R1, cutting_label_L1] + + bonds = [Bond(atom_C1, cutting_label_R1), Bond(atom_C1, cutting_label_L1)] self.fragment1 = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: self.fragment1.add_vertex(vertex) - for bond in bonds: self.fragment1.add_edge(bond) + for vertex in vertices: + self.fragment1.add_vertex(vertex) + for bond in bonds: + self.fragment1.add_edge(bond) # construct the second fragment - atom_C2 = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel('R') - cutting_label_L2 = rmgpy.molecule.fragment.CuttingLabel('L') - - vertices = [ - atom_C2, - cutting_label_R2, - cutting_label_L2 - ] + atom_C2 = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) - bonds = [ - Bond(atom_C2, cutting_label_R2), - Bond(atom_C2, cutting_label_L2) - ] + cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel("R") + cutting_label_L2 = rmgpy.molecule.fragment.CuttingLabel("L") + + vertices = [atom_C2, cutting_label_R2, cutting_label_L2] + + bonds = [Bond(atom_C2, cutting_label_R2), Bond(atom_C2, cutting_label_L2)] self.fragment2 = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: self.fragment2.add_vertex(vertex) - for bond in bonds: self.fragment2.add_edge(bond) + for vertex in vertices: + self.fragment2.add_vertex(vertex) + for bond in bonds: + self.fragment2.add_edge(bond) def test_fragment_isomorphism(self): - self.assertTrue(self.fragment1.is_isomorphic(self.fragment2)) def test_from_smiles_like_string1(self): - # generate fragment from SMILES like string # the atom type is also calculated - smiles_like = 'C' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) - + smiles_like = "C" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) + # construct fragment manually - atom_C = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H1 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H2 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H3 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H4 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_C.atomtype=ATOMTYPES['Cs'] - atom_H1.atomtype=ATOMTYPES['H'] - atom_H2.atomtype=ATOMTYPES['H'] - atom_H3.atomtype=ATOMTYPES['H'] - atom_H4.atomtype=ATOMTYPES['H'] - - vertices = [ - atom_C, - atom_H1, - atom_H2, - atom_H3, - atom_H4 - ] + atom_C = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_H1 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_H2 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_H3 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_H4 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_C.atomtype = ATOMTYPES["Cs"] + atom_H1.atomtype = ATOMTYPES["H"] + atom_H2.atomtype = ATOMTYPES["H"] + atom_H3.atomtype = ATOMTYPES["H"] + atom_H4.atomtype = ATOMTYPES["H"] + + vertices = [atom_C, atom_H1, atom_H2, atom_H3, atom_H4] bonds = [ Bond(atom_C, atom_H1, 1), Bond(atom_C, atom_H2, 1), Bond(atom_C, atom_H3, 1), - Bond(atom_C, atom_H4, 1) + Bond(atom_C, atom_H4, 1), ] - + expected_fragment = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: expected_fragment.add_vertex(vertex) - for bond in bonds: expected_fragment.add_edge(bond) + for vertex in vertices: + expected_fragment.add_vertex(vertex) + for bond in bonds: + expected_fragment.add_edge(bond) expected_fragment.update() self.assertTrue(expected_fragment.is_isomorphic(fragment)) def test_from_SMILES_like_string2(self): - # generate fragment from SMILES like string # the atom type is also calculated - smiles_like = 'RCR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "RCR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) - atom_C = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) + atom_C = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) - atom_H1 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) + atom_H1 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) - atom_H2 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) + atom_H2 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) # construct fragment manually - atom_C.atomtype=ATOMTYPES['Cs'] - atom_H1.atomtype=ATOMTYPES['H'] - atom_H2.atomtype=ATOMTYPES['H'] - - cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel('R') - cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel('R') - - vertices = [ - atom_C, - cutting_label_R1, - cutting_label_R2, - atom_H1, - atom_H2 - ] + atom_C.atomtype = ATOMTYPES["Cs"] + atom_H1.atomtype = ATOMTYPES["H"] + atom_H2.atomtype = ATOMTYPES["H"] + + cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel("R") + cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel("R") + + vertices = [atom_C, cutting_label_R1, cutting_label_R2, atom_H1, atom_H2] bonds = [ Bond(atom_C, cutting_label_R1, 1), Bond(atom_C, cutting_label_R2, 1), Bond(atom_C, atom_H1, 1), - Bond(atom_C, atom_H2, 1) + Bond(atom_C, atom_H2, 1), ] - + expected_fragment = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: expected_fragment.add_vertex(vertex) - for bond in bonds: expected_fragment.add_edge(bond) + for vertex in vertices: + expected_fragment.add_vertex(vertex) + for bond in bonds: + expected_fragment.add_edge(bond) expected_fragment.update() self.assertTrue(expected_fragment.is_isomorphic(fragment)) def test_from_SMILES_like_string3(self): - # generate fragment from SMILES like string # the atom type is also calculated - smiles_like = 'RCL' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "RCL" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) - atom_C = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) + atom_C = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) - atom_H1 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) + atom_H1 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) - atom_H2 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) + atom_H2 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) # construct fragment manually - atom_C.atomtype=ATOMTYPES['Cs'] - atom_H1.atomtype=ATOMTYPES['H'] - atom_H2.atomtype=ATOMTYPES['H'] - - cutting_label_R = rmgpy.molecule.fragment.CuttingLabel('R') - cutting_label_L = rmgpy.molecule.fragment.CuttingLabel('L') - - vertices = [ - atom_C, - cutting_label_R, - cutting_label_L, - atom_H1, - atom_H2 - ] + atom_C.atomtype = ATOMTYPES["Cs"] + atom_H1.atomtype = ATOMTYPES["H"] + atom_H2.atomtype = ATOMTYPES["H"] + + cutting_label_R = rmgpy.molecule.fragment.CuttingLabel("R") + cutting_label_L = rmgpy.molecule.fragment.CuttingLabel("L") + + vertices = [atom_C, cutting_label_R, cutting_label_L, atom_H1, atom_H2] bonds = [ Bond(atom_C, cutting_label_R, 1), Bond(atom_C, cutting_label_L, 1), Bond(atom_C, atom_H1, 1), - Bond(atom_C, atom_H2, 1) + Bond(atom_C, atom_H2, 1), ] - + expected_fragment = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: expected_fragment.add_vertex(vertex) - for bond in bonds: expected_fragment.add_edge(bond) + for vertex in vertices: + expected_fragment.add_vertex(vertex) + for bond in bonds: + expected_fragment.add_edge(bond) expected_fragment.update() self.assertTrue(expected_fragment.is_isomorphic(fragment)) def test_is_subgraph_isomorphic1(self): - from rmgpy.molecule.group import Group - smiles_like = '[CH2]CR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "[CH2]CR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) - adj = """ + adj = """ 1 * R u1 """ other = Group().from_adjacency_list(adj) @@ -304,13 +271,14 @@ def test_is_subgraph_isomorphic1(self): self.assertTrue(fragment.is_subgraph_isomorphic(other)) def test_is_subgraph_isomorphic2(self): - from rmgpy.molecule.group import Group - smiles_like = '[CH2]CR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "[CH2]CR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) - adj = """ + adj = """ 1 * Ct u1 {2,T} 2 R!H u0 {1,T} """ @@ -319,13 +287,14 @@ def test_is_subgraph_isomorphic2(self): self.assertFalse(fragment.is_subgraph_isomorphic(other)) def test_is_subgraph_isomorphic3(self): - from rmgpy.molecule.group import Group - smiles_like = '[CH2]CR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "[CH2]CR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) - adj = """ + adj = """ 1 * R u1 """ other = Group().from_adjacency_list(adj) @@ -343,15 +312,16 @@ def test_is_subgraph_isomorphic3(self): self.assertTrue(fragment.is_subgraph_isomorphic(other, initial_map=initial_map)) def test_is_subgraph_isomorphic4(self): - from rmgpy.molecule.group import Group - smiles_like = '[CH2]CR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "[CH2]CR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.assign_representative_molecule() - adj = """ + adj = """ 1 * Cs u1 {2,S} 2 N u0 {1,S} """ @@ -367,88 +337,87 @@ def test_is_subgraph_isomorphic4(self): group_atom_star = other.vertices[0] initial_map = {frag_atom_star: group_atom_star} - self.assertFalse(fragment.is_subgraph_isomorphic(other, initial_map=initial_map)) + self.assertFalse( + fragment.is_subgraph_isomorphic(other, initial_map=initial_map) + ) def test_assign_representative_species_1(self): - - smiles_like = 'RCR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "RCR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.assign_representative_species() - expected_repr_spec = Species().from_smiles('C=CC(C)(CCCCCCCC(C)(C=C)C(C)C(C)C=CC)C(C)C(C)C=CC') + expected_repr_spec = Species().from_smiles( + "C=CC(C)(CCCCCCCC(C)(C=C)C(C)C(C)C=CC)C(C)C(C)C=CC" + ) self.assertTrue(expected_repr_spec.is_isomorphic(fragment.species_repr)) def test_assign_representative_species_2(self): - - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") fragment.assign_representative_species() self.assertEqual(fragment.species_repr.symmetry_number, 3.0) - self.assertEqual(fragment.species_repr.smiles.count('C'), 14+2) + self.assertEqual(fragment.species_repr.smiles.count("C"), 14 + 2) def test_assign_representative_molecule(self): - - smiles_like = 'RCR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "RCR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.assign_representative_molecule() - expected_repr_mol = Molecule().from_smiles('C=CC(C)(CCCCCCCC(C)(C=C)C(C)C(C)C=CC)C(C)C(C)C=CC') + expected_repr_mol = Molecule().from_smiles( + "C=CC(C)(CCCCCCCC(C)(C=C)C(C)C(C)C=CC)C(C)C(C)C=CC" + ) self.assertTrue(expected_repr_mol.is_isomorphic(fragment.mol_repr)) def test_get_molecular_weight1(self): - fragmental_weight = self.fragment1.get_molecular_weight() - self.assertAlmostEqual(fragmental_weight*1000, 12.01, 2) + self.assertAlmostEqual(fragmental_weight * 1000, 12.01, 2) def test_get_molecular_weight2(self): - - smiles_like = 'RCR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "RCR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragmental_weight = fragment.get_molecular_weight() - self.assertAlmostEqual(fragmental_weight*1000, 14.03, 2) + self.assertAlmostEqual(fragmental_weight * 1000, 14.03, 2) def test_update_atomtypes(self): + atom_C = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) - atom_C = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H1 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H2 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel('R') - cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel('R') - - vertices = [ - atom_C, - cutting_label_R1, - cutting_label_R2, - atom_H1, - atom_H2 - ] + atom_H1 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_H2 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel("R") + cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel("R") + + vertices = [atom_C, cutting_label_R1, cutting_label_R2, atom_H1, atom_H2] bonds = [ Bond(atom_C, cutting_label_R1, 1), Bond(atom_C, cutting_label_R2, 1), Bond(atom_C, atom_H1, 1), - Bond(atom_C, atom_H2, 1) + Bond(atom_C, atom_H2, 1), ] - + fragment = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: fragment.add_vertex(vertex) - for bond in bonds: fragment.add_edge(bond) + for vertex in vertices: + fragment.add_vertex(vertex) + for bond in bonds: + fragment.add_edge(bond) fragment.update_atomtypes() @@ -456,46 +425,38 @@ def test_update_atomtypes(self): if isinstance(v, Atom) and v.is_carbon(): break - self.assertTrue(v.atomtype == ATOMTYPES['Cs']) + self.assertTrue(v.atomtype == ATOMTYPES["Cs"]) def test_update(self): + atom_C = Atom( + element=get_element("C"), radical_electrons=0, charge=0, lone_pairs=0 + ) - atom_C = Atom(element=get_element('C'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H1 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - atom_H2 = Atom(element=get_element('H'), - radical_electrons=0, - charge=0, - lone_pairs=0) - - cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel('R') - cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel('R') - - vertices = [ - atom_C, - cutting_label_R1, - cutting_label_R2, - atom_H1, - atom_H2 - ] + atom_H1 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + atom_H2 = Atom( + element=get_element("H"), radical_electrons=0, charge=0, lone_pairs=0 + ) + + cutting_label_R1 = rmgpy.molecule.fragment.CuttingLabel("R") + cutting_label_R2 = rmgpy.molecule.fragment.CuttingLabel("R") + + vertices = [atom_C, cutting_label_R1, cutting_label_R2, atom_H1, atom_H2] bonds = [ Bond(atom_C, cutting_label_R1, 1), Bond(atom_C, cutting_label_R2, 1), Bond(atom_C, atom_H1, 1), - Bond(atom_C, atom_H2, 1) + Bond(atom_C, atom_H2, 1), ] - + fragment = rmgpy.molecule.fragment.Fragment() - for vertex in vertices: fragment.add_vertex(vertex) - for bond in bonds: fragment.add_edge(bond) + for vertex in vertices: + fragment.add_vertex(vertex) + for bond in bonds: + fragment.add_edge(bond) fragment.update() @@ -503,16 +464,17 @@ def test_update(self): if isinstance(v, Atom) and v.is_carbon(): break - self.assertTrue(v.atomtype == ATOMTYPES['Cs']) + self.assertTrue(v.atomtype == ATOMTYPES["Cs"]) self.assertTrue(fragment.get_net_charge() == 0) self.assertTrue(fragment.multiplicity == 1) def test_to_adjacency_list1(self): - # generate fragment from smiles like string # the atom type is also calculated - smiles_like = 'C' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "C" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.update() adj = fragment.to_adjacency_list(remove_h=True) @@ -520,11 +482,12 @@ def test_to_adjacency_list1(self): self.assertEqual(adj, expected_adj) def test_to_adjacency_list2(self): - # generate fragment from smiles like string # removed H - smiles_like = 'CR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "CR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.update() adj = fragment.to_adjacency_list(remove_h=True) @@ -532,11 +495,12 @@ def test_to_adjacency_list2(self): self.assertEqual(adj, expected_adj) def test_to_adjacency_list3(self): - # generate fragment from smiles like string # with H - smiles_like = 'CR' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "CR" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.update() adj = fragment.to_adjacency_list() @@ -549,11 +513,12 @@ def test_to_adjacency_list3(self): self.assertEqual(adj, expected_adj) def test_to_adjacency_list4(self): - # generate fragment from SMILES like string # radical species - smiles_like = '[CH2]R' - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "[CH2]R" + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) fragment.update() adj = fragment.to_adjacency_list() @@ -566,7 +531,6 @@ def test_to_adjacency_list4(self): self.assertEqual(adj, expected_adj) def test_from_adjacency_list1(self): - adj = """multiplicity 2 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} @@ -576,8 +540,10 @@ def test_from_adjacency_list1(self): fragment = rmgpy.molecule.fragment.Fragment().from_adjacency_list(adj) # create expected fragment - smiles_like = '[CH2]R' - expected_fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "[CH2]R" + expected_fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) expected_fragment.update() self.assertTrue(isinstance(fragment.multiplicity, int)) @@ -585,7 +551,6 @@ def test_from_adjacency_list1(self): self.assertTrue(fragment.is_isomorphic(expected_fragment)) def test_from_adjacency_list2(self): - adj = """1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 R u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} @@ -595,30 +560,34 @@ def test_from_adjacency_list2(self): fragment = rmgpy.molecule.fragment.Fragment().from_adjacency_list(adj) # create expected fragment - smiles_like = 'CR' - expected_fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "CR" + expected_fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) expected_fragment.update() self.assertTrue(fragment.multiplicity == 1) self.assertTrue(fragment.is_isomorphic(expected_fragment)) def test_from_adjacency_list3(self): - adj = """1 C u0 p0 c0 {2,S} 2 R u0 p0 c0 {1,S} """ - fragment = rmgpy.molecule.fragment.Fragment().from_adjacency_list(adj, saturate_h=True) + fragment = rmgpy.molecule.fragment.Fragment().from_adjacency_list( + adj, saturate_h=True + ) # create expected fragment - smiles_like = 'CR' - expected_fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string(smiles_like) + smiles_like = "CR" + expected_fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + smiles_like + ) expected_fragment.update() self.assertTrue(fragment.multiplicity == 1) self.assertTrue(fragment.is_isomorphic(expected_fragment)) def test_get_aromatic_rings(self): - adj = """1 C u0 p0 c0 {2,D} {6,S} {8,S} 2 C u0 p0 c0 {1,D} {3,S} {9,S} 3 C u0 p0 c0 {2,S} {4,D} {10,S} @@ -652,7 +621,7 @@ def test_get_aromatic_rings(self): expected_aromatic_bonds_set = set() expected_aromatic_ring_atomlist = list(expected_aromatic_ring_atomset) for i, atom1 in enumerate(expected_aromatic_ring_atomlist): - for atom2 in expected_aromatic_ring_atomlist[i+1:]: + for atom2 in expected_aromatic_ring_atomlist[i + 1 :]: try: bond = fragment.get_bond(atom1, atom2) expected_aromatic_bonds_set.add(bond) @@ -663,7 +632,6 @@ def test_get_aromatic_rings(self): self.assertEqual(aromatic_bonds_set, expected_aromatic_bonds_set) def test_generate_resonance_structures1(self): - adj = """1 C u0 p0 c0 {2,S} {3,S} {11,S} {12,S} 2 C u0 p0 c0 {1,S} {4,S} {13,S} {14,S} 3 C u0 p0 c0 {1,S} {5,S} {15,S} {16,S} @@ -690,56 +658,52 @@ def test_generate_resonance_structures1(self): """ fragment = rmgpy.molecule.fragment.Fragment().from_adjacency_list(adj) - frag_res = resonance.generate_resonance_structures(fragment, - clar_structures=False) + frag_res = resonance.generate_resonance_structures( + fragment, clar_structures=False + ) self.assertEqual(len(frag_res), 2) def test_generate_resonance_structures2(self): - ### use ethylbenzly radical to test if it can generate aromatic fragment or not - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('c1ccccc1[CH]CR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "c1ccccc1[CH]CR" + ) - frag_res = resonance.generate_resonance_structures(fragment, - clar_structures=True) + frag_res = resonance.generate_resonance_structures( + fragment, clar_structures=True + ) - self.assertTrue(frag_res[0].is_aromatic()) + self.assertTrue(frag_res[0].is_aromatic()) self.assertEqual(len(frag_res), 4) def test_fragment_is_identical(self): - self.assertTrue(self.fragment1.is_identical(self.fragment2)) - def test_fragment_get_formula(self): + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') - - self.assertTrue(fragment.get_formula()=='C2H5R') + self.assertTrue(fragment.get_formula() == "C2H5R") def test_fragment_is_linear(self): - - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('C#CR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("C#CR") self.assertTrue(fragment.is_linear()) def test_fragment_get_element_count(self): + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("[CH2]CR") - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('[CH2]CR') - - self.assertEqual(fragment.get_element_count()['C'], 2) - self.assertEqual(fragment.get_element_count()['H'], 4) + self.assertEqual(fragment.get_element_count()["C"], 2) + self.assertEqual(fragment.get_element_count()["H"], 4) def test_fragment_get_num_atoms(self): + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("[CH2]CR") - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('[CH2]CR') - - self.assertEqual(fragment.get_num_atoms(element='C'), 2) - self.assertEqual(fragment.get_num_atoms(element='H'), 4) + self.assertEqual(fragment.get_num_atoms(element="C"), 2) + self.assertEqual(fragment.get_num_atoms(element="H"), 4) def test_fragment_to_smiles(self): - adj = """1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 R u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} @@ -750,14 +714,15 @@ def test_fragment_to_smiles(self): fragment = rmgpy.molecule.fragment.Fragment().from_adjacency_list(adj) fragment.update() smiles = fragment.to_smiles() - expected_smiles = 'CR' + expected_smiles = "CR" - self.assertTrue(smiles, expected_smiles ) + self.assertTrue(smiles, expected_smiles) def test_sliceitup_arom1(self): - # test avoid cutting aromatic species at ring position - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('c1ccccc1CCCCCCCCC') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "c1ccccc1CCCCCCCCC" + ) frags = rmgpy.molecule.fragment.Fragment().sliceitup_arom(fragment) @@ -778,21 +743,24 @@ def test_sliceitup_arom1(self): self.assertEqual(expected_element, total_element) def test_sliceitup_arom2(self): - # do not cut when input is aliphatic species - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCCCCCCCCC') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "CCCCCCCCCC" + ) frags = rmgpy.molecule.fragment.Fragment().sliceitup_arom(fragment) self.assertEqual(len(frags), 1) self.assertTrue(fragment.is_isomorphic(frags[0])) def test_sliceitup_aliph(self): - # test avoid cutting species at ring position import re - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('C1=CCC=CC1CCCCCCCC') + + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "C1=CCC=CC1CCCCCCCC" + ) frags = rmgpy.molecule.fragment.Fragment().sliceitup_aliph(fragment) # check element balance @@ -808,60 +776,58 @@ def test_sliceitup_aliph(self): total_element[ele] = num # check whether ring still exists - f0 = re.findall(r'\d', frags[0].to_smiles()) - f1 = re.findall(r'\d', frags[1].to_smiles()) + f0 = re.findall(r"\d", frags[0].to_smiles()) + f1 = re.findall(r"\d", frags[1].to_smiles()) self.assertTrue(f0 != [] or f1 != []) self.assertEqual(len(frags), 2) self.assertTrue(expected_element == total_element) def test_cut_molecule1(self): - # test output string - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCCCCCCCCC') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "CCCCCCCCCC" + ) new_frags = fragment.cut_molecule(output_smiles=True) self.assertEqual(len(new_frags), 2) self.assertTrue(isinstance(new_frags[0], str)) def test_cut_molecule2(self): - # test input Fragment - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCCCCCCCCCR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "CCCCCCCCCCR" + ) new_frags = fragment.cut_molecule() self.assertEqual(len(new_frags), 2) def test_calculate_symmetry_number1(self): - # for fragment with 1 CuttingLabel - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") fragment.calculate_symmetry_number() fsn = fragment.symmetry_number self.assertEqual(fsn, 3.0) def test_calculate_symmetry_number2(self): - # for fragment with 2 CuttingLabel - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('LCCR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("LCCR") fragment.calculate_symmetry_number() fsn = fragment.symmetry_number self.assertEqual(fsn, 1.0) def test_get_symmetry_number1(self): - # fragment symmetry number == -1 - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") fsn = fragment.symmetry_number self.assertEqual(fsn, -1) def test_get_symmetry_number2(self): - # fragment symmetry number != -1 - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") fragment.get_symmetry_number() fsn = fragment.symmetry_number @@ -870,30 +836,28 @@ def test_get_symmetry_number2(self): self.assertEqual(fsn, 3.0) def test_is_radical(self): - - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('[CH2]CR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("[CH2]CR") self.assertTrue(fragment.is_radical()) def test_is_aromatic(self): - - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('c1ccccc1CR') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string( + "c1ccccc1CR" + ) frag = fragment.generate_resonance_structures()[0] self.assertTrue(frag.is_aromatic()) def test_get_representative_molecule(self): - - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') - mol_repr,_ = fragment.get_representative_molecule() - ethane = Molecule().from_smiles('CC') + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") + mol_repr, _ = fragment.get_representative_molecule() + ethane = Molecule().from_smiles("CC") self.assertTrue(mol_repr.is_isomorphic(ethane)) def test_to_rdkit_mol(self): - - fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string('CCR') - rdmol,_ = fragment.to_rdkit_mol() + fragment = rmgpy.molecule.fragment.Fragment().from_smiles_like_string("CCR") + rdmol, _ = fragment.to_rdkit_mol() self.assertEqual(rdmol.GetNumAtoms(), 8) @@ -901,7 +865,7 @@ def test_is_in_cycle_ethane(self): """ Test the Fragment is_atom_in_cycle() and is_bond_in_cycle() methods with ethane. """ - frag = rmgpy.molecule.fragment.Fragment(smiles='CC') + frag = rmgpy.molecule.fragment.Fragment(smiles="CC") for atom in frag.atoms: self.assertFalse(frag.is_atom_in_cycle(atom)) for atom1 in frag.atoms: @@ -912,7 +876,7 @@ def test_is_in_cycle_cyclohexane(self): """ Test the Fragment is_atom_in_cycle() and is_bond_in_cycle() methods with ethane. """ - frag = rmgpy.molecule.fragment.Fragment(smiles='C1CCCCC1') + frag = rmgpy.molecule.fragment.Fragment(smiles="C1CCCCC1") for atom in frag.atoms: if atom.is_hydrogen(): self.assertFalse(frag.is_atom_in_cycle(atom)) diff --git a/test/rmgpy/molecule/graphTest.py b/test/rmgpy/molecule/graphTest.py index 393ae81101..eb4d78862f 100644 --- a/test/rmgpy/molecule/graphTest.py +++ b/test/rmgpy/molecule/graphTest.py @@ -85,7 +85,7 @@ def test_add_edge(self): edge = Edge(vertex1, vertex2) try: self.graph.add_edge(edge) - self.fail('Added edge between vertices not in graph to graph.') + self.fail("Added edge between vertices not in graph to graph.") except ValueError: pass self.graph.add_vertex(vertex1) @@ -106,7 +106,9 @@ def test_get_edge(self): vertex2 = self.graph.vertices[4] try: self.graph.get_edge(vertex1, vertex2) - self.fail('Returned an edge between vertices that should not be connected in graph.') + self.fail( + "Returned an edge between vertices that should not be connected in graph." + ) except ValueError: pass vertex1 = self.graph.vertices[2] @@ -266,7 +268,9 @@ def test_split(self): self.assertTrue(len(graphs) == 2) self.assertTrue(len(graphs[0].vertices) == 4 or len(graphs[0].vertices) == 2) - self.assertTrue(len(graphs[0].vertices) + len(graphs[1].vertices) == len(graph.vertices)) + self.assertTrue( + len(graphs[0].vertices) + len(graphs[1].vertices) == len(graph.vertices) + ) def test_merge(self): """ @@ -301,7 +305,9 @@ def test_merge(self): graph = graph1.merge(graph2) - self.assertTrue(len(graph1.vertices) + len(graph2.vertices) == len(graph.vertices)) + self.assertTrue( + len(graph1.vertices) + len(graph2.vertices) == len(graph.vertices) + ) for vertex1 in vertices1: self.assertTrue(vertex1 in graph.vertices) for vertex2 in vertex1.edges: @@ -367,17 +373,17 @@ def test_sort_vertices(self): def test_vertex_connectivity_values(self): """ Tests the vertex connectivity values as introduced by Morgan (1965). - + First CV1 is the number of neighbours CV2 is the sum of neighbouring CV1 values CV3 is the sum of neighbouring CV2 values - + Graph: Expected (and tested) values: - + 0-1-2-3-4 1-3-2-2-1 3-4-5-3-2 4-11-7-7-3 | | | | 5 1 3 4 - + """ vertices = [Vertex() for _ in range(6)] edges = [ @@ -398,13 +404,31 @@ def test_vertex_connectivity_values(self): for i, cv_ in enumerate([1, 3, 2, 2, 1, 1]): cv = vertices[i].connectivity1 - self.assertEqual(cv, cv_, "On vertex {0:d} got connectivity[0]={1:d} but expected {2:d}".format(i, cv, cv_)) + self.assertEqual( + cv, + cv_, + "On vertex {0:d} got connectivity[0]={1:d} but expected {2:d}".format( + i, cv, cv_ + ), + ) for i, cv_ in enumerate([3, 4, 5, 3, 2, 3]): cv = vertices[i].connectivity2 - self.assertEqual(cv, cv_, "On vertex {0:d} got connectivity[0]={1:d} but expected {2:d}".format(i, cv, cv_)) + self.assertEqual( + cv, + cv_, + "On vertex {0:d} got connectivity[0]={1:d} but expected {2:d}".format( + i, cv, cv_ + ), + ) for i, cv_ in enumerate([4, 11, 7, 7, 3, 4]): cv = vertices[i].connectivity3 - self.assertEqual(cv, cv_, "On vertex {0:d} got connectivity[0]={1:d} but expected {2:d}".format(i, cv, cv_)) + self.assertEqual( + cv, + cv_, + "On vertex {0:d} got connectivity[0]={1:d} but expected {2:d}".format( + i, cv, cv_ + ), + ) def test_isomorphism(self): """ @@ -449,8 +473,8 @@ def test_isomorphism(self): def test_isomorphism_disconnected(self): """ Check the graph isomorphism for broken graphs. - - This tries to match graphs with a missing bond, + + This tries to match graphs with a missing bond, eg. [ 0-1-2-3-4 5 ] should match [ 0-1-2-3-4 5 ] """ @@ -554,6 +578,7 @@ def test_pickle(self): graph0.update_connectivity_values() import pickle + graph = pickle.loads(pickle.dumps(graph0)) self.assertEqual(len(graph0.vertices), len(graph.vertices)) @@ -599,7 +624,10 @@ def test_is_edge_in_cycle(self): self.graph.add_edge(edge) # To create a cycle for vertex1 in self.graph.vertices: for vertex2, edge in vertex1.edges.items(): - if self.graph.vertices.index(vertex1) < 4 and self.graph.vertices.index(vertex2) < 4: + if ( + self.graph.vertices.index(vertex1) < 4 + and self.graph.vertices.index(vertex2) < 4 + ): self.assertTrue(self.graph.is_edge_in_cycle(edge)) else: self.assertFalse(self.graph.is_edge_in_cycle(edge)) @@ -617,7 +645,7 @@ def test_get_all_polycylic_vertices(self): edge2 = Edge(self.graph.vertices[0], self.graph.vertices[5]) self.graph.add_edge(edge2) # Create another cycle to generate two fused cycles self.assertEqual(len(self.graph.get_all_polycyclic_vertices()), 2) - # Add new vertices and edges to generate a spirocyclic cycle + # Add new vertices and edges to generate a spirocyclic cycle vertices = [Vertex() for _ in range(2)] for vertex in vertices: self.graph.add_vertex(vertex) @@ -652,7 +680,9 @@ def test_get_all_cycles_of_size(self): edge = Edge(self.graph.vertices[0], self.graph.vertices[3]) self.graph.add_edge(edge) # To create a cycle of length 4 edge = Edge(self.graph.vertices[0], self.graph.vertices[5]) - self.graph.add_edge(edge) # To create a cycle of length 6 and another cycle of length 4 + self.graph.add_edge( + edge + ) # To create a cycle of length 6 and another cycle of length 4 cycle_list = self.graph.get_all_cycles_of_size(4) self.assertEqual(len(cycle_list), 2) self.assertEqual(len(cycle_list[0]), 4) @@ -667,7 +697,9 @@ def test_get_all_simple_cycles_of_size(self): edge = Edge(self.graph.vertices[0], self.graph.vertices[3]) self.graph.add_edge(edge) # To create a cycle of length 4 edge = Edge(self.graph.vertices[0], self.graph.vertices[5]) - self.graph.add_edge(edge) # To create a cycle of length 6 and another cycle of length 4 + self.graph.add_edge( + edge + ) # To create a cycle of length 6 and another cycle of length 4 cycle_list = self.graph.get_all_simple_cycles_of_size(4) self.assertEqual(len(cycle_list), 2) self.assertEqual(len(cycle_list[0]), 4) @@ -785,7 +817,7 @@ def test_get_polycyclic_rings(self): (23, 3), (23, 24), (24, 25), - (25, 1) + (25, 1), ] edges = [] for bond in bonds: @@ -801,15 +833,18 @@ def test_get_polycyclic_rings(self): sssr = graph.get_smallest_set_of_smallest_rings() self.assertEqual(len(sssr), 6) polycyclic_vertices = set(graph.get_all_polycyclic_vertices()) - expected_polycyclic_vertices = set([vertices[index] for index in [3, 23, 4, 22, 12]]) + expected_polycyclic_vertices = set( + [vertices[index] for index in [3, 23, 4, 22, 12]] + ) self.assertEqual(polycyclic_vertices, expected_polycyclic_vertices) continuous_rings = graph.get_polycycles() - expected_continuous_rings = [[vertices[index] for index in [1, 2, 3, 4, 5, 6, 22, 23, 24, 25]], - # [vertices[index] for index in [7,8,9,21,20]], # This is a nonpolycyclic ring - [vertices[index] for index in [10, 11, 12, 13, 14, 16]], - ] + expected_continuous_rings = [ + [vertices[index] for index in [1, 2, 3, 4, 5, 6, 22, 23, 24, 25]], + # [vertices[index] for index in [7,8,9,21,20]], # This is a nonpolycyclic ring + [vertices[index] for index in [10, 11, 12, 13, 14, 16]], + ] # Convert to sets for comparison purposes continuous_rings = [set(ring) for ring in continuous_rings] @@ -836,8 +871,22 @@ def make_graph(edge_inds): spiro = make_graph([(0, 1), (0, 2), (1, 2), (2, 3), (2, 4), (3, 4)]) fused = make_graph([(0, 1), (0, 2), (1, 2), (1, 3), (2, 3)]) bridged = make_graph([(0, 1), (0, 2), (1, 3), (1, 4), (2, 3), (2, 5), (4, 5)]) - cube = make_graph([(0, 1), (0, 2), (0, 4), (1, 3), (1, 5), (2, 3), - (2, 6), (3, 7), (4, 5), (4, 6), (5, 7), (6, 7)]) + cube = make_graph( + [ + (0, 1), + (0, 2), + (0, 4), + (1, 3), + (1, 5), + (2, 3), + (2, 6), + (3, 7), + (4, 5), + (4, 6), + (5, 7), + (6, 7), + ] + ) self.assertEqual(linear.get_max_cycle_overlap(), 0) self.assertEqual(mono.get_max_cycle_overlap(), 0) @@ -882,7 +931,7 @@ def test_get_largest_ring(self): (23, 3), (23, 24), (24, 25), - (25, 1) + (25, 1), ] edges = [] for bond in bonds: @@ -920,10 +969,18 @@ def test_sort_cyclic_vertices(self): ordered = self.graph.sort_cyclic_vertices(original) # Check that we didn't lose any vertices - self.assertEqual(len(self.graph.vertices), len(ordered), 'Sorting changed the number of vertices.') + self.assertEqual( + len(self.graph.vertices), + len(ordered), + "Sorting changed the number of vertices.", + ) # Check that the order is different - self.assertNotEqual(self.graph.vertices, ordered, 'Sorting did not change the order of vertices.') + self.assertNotEqual( + self.graph.vertices, + ordered, + "Sorting did not change the order of vertices.", + ) # Check that subsequent vertices are connected for i in range(5): @@ -936,24 +993,24 @@ def test_sort_cyclic_vertices_invalid(self): original = list(self.graph.vertices) - with self.assertRaisesRegexp(RuntimeError, 'do not comprise a single cycle'): + with self.assertRaisesRegexp(RuntimeError, "do not comprise a single cycle"): self.graph.sort_cyclic_vertices(original) def test_sort_cyclic_vertices_noncyclic(self): """Test that sort_cyclic_vertices raises an error for a noncyclic input.""" original = list(self.graph.vertices) - with self.assertRaisesRegexp(RuntimeError, 'do not comprise a single cycle'): + with self.assertRaisesRegexp(RuntimeError, "do not comprise a single cycle"): self.graph.sort_cyclic_vertices(original) def test_sort_cyclic_vertices_unconnected(self): """Test that sort_cyclic_vertices raises an error for an unconnected input.""" self.graph.add_vertex(Vertex()) original = list(self.graph.vertices) - with self.assertRaisesRegexp(RuntimeError, 'not all vertices are connected'): + with self.assertRaisesRegexp(RuntimeError, "not all vertices are connected"): self.graph.sort_cyclic_vertices(original) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/groupTest.py b/test/rmgpy/molecule/groupTest.py index d89b60be46..bd700a53b7 100644 --- a/test/rmgpy/molecule/groupTest.py +++ b/test/rmgpy/molecule/groupTest.py @@ -46,15 +46,27 @@ def setUp(self): """ A method called before each unit test in this class. """ - self.atom = GroupAtom(atomtype=[ATOMTYPES['Cd']], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + self.atom = GroupAtom( + atomtype=[ATOMTYPES["Cd"]], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) def test_apply_action_break_bond(self): """ Test the GroupAtom.apply_action() method for a BREAK_BOND action. """ - action = ['BREAK_BOND', '*1', 1, '*2'] + action = ["BREAK_BOND", "*1", 1, "*2"] for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) @@ -73,9 +85,15 @@ def test_apply_action_form_bond(self): """ Test the GroupAtom.apply_action() method for a FORM_BOND action. """ - action = ['FORM_BOND', '*1', 1, '*2'] + action = ["FORM_BOND", "*1", 1, "*2"] for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) @@ -93,9 +111,15 @@ def test_apply_action_increment_bond(self): """ Test the GroupAtom.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', 1, '*2'] + action = ["CHANGE_BOND", "*1", 1, "*2"] for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) @@ -113,9 +137,15 @@ def test_apply_action_decrement_bond(self): """ Test the GroupAtom.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', -1, '*2'] + action = ["CHANGE_BOND", "*1", -1, "*2"] for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) @@ -133,18 +163,29 @@ def test_apply_action_gain_radical(self): """ Test the GroupAtom.apply_action() method for a GAIN_RADICAL action. """ - action = ['GAIN_RADICAL', '*1', 1] + action = ["GAIN_RADICAL", "*1", 1] for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) self.assertEqual(len(atom.atomtype), len(atomtype.increment_radical)) for a in atomtype.increment_radical: - self.assertTrue(a in atom.atomtype, - "GAIN_RADICAL on {0} gave {1} not {2}".format(atomtype, atom.atomtype, - atomtype.increment_radical)) - self.assertEqual(atom0.radical_electrons, [r - 1 for r in atom.radical_electrons]) + self.assertTrue( + a in atom.atomtype, + "GAIN_RADICAL on {0} gave {1} not {2}".format( + atomtype, atom.atomtype, atomtype.increment_radical + ), + ) + self.assertEqual( + atom0.radical_electrons, [r - 1 for r in atom.radical_electrons] + ) self.assertEqual(atom0.charge, atom.charge) self.assertEqual(atom0.label, atom.label) self.assertEqual(atom0.lone_pairs, atom.lone_pairs) @@ -152,9 +193,11 @@ def test_apply_action_gain_radical(self): self.assertEqual(len(atomtype.increment_radical), 0) # test when radicals unspecified - group = Group().from_adjacency_list(""" + group = Group().from_adjacency_list( + """ 1 R ux - """) # ux causes a wildcard for radicals + """ + ) # ux causes a wildcard for radicals atom1 = group.atoms[0] atom1.apply_action(action) self.assertListEqual(atom1.radical_electrons, [1, 2, 3, 4]) @@ -163,18 +206,29 @@ def test_apply_action_lose_radical(self): """ Test the GroupAtom.apply_action() method for a LOSE_RADICAL action. """ - action = ['LOSE_RADICAL', '*1', 1] + action = ["LOSE_RADICAL", "*1", 1] for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) self.assertEqual(len(atom.atomtype), len(atomtype.decrement_radical)) for a in atomtype.increment_radical: - self.assertTrue(a in atom.atomtype, - "LOSE_RADICAL on {0} gave {1} not {2}".format(atomtype, atom.atomtype, - atomtype.decrement_radical)) - self.assertEqual(atom0.radical_electrons, [r + 1 for r in atom.radical_electrons]) + self.assertTrue( + a in atom.atomtype, + "LOSE_RADICAL on {0} gave {1} not {2}".format( + atomtype, atom.atomtype, atomtype.decrement_radical + ), + ) + self.assertEqual( + atom0.radical_electrons, [r + 1 for r in atom.radical_electrons] + ) self.assertEqual(atom0.charge, atom.charge) self.assertEqual(atom0.label, atom.label) self.assertEqual(atom0.lone_pairs, atom.lone_pairs) @@ -182,9 +236,11 @@ def test_apply_action_lose_radical(self): self.assertEqual(len(atomtype.decrement_radical), 0) # test when radicals unspecified - group = Group().from_adjacency_list(""" + group = Group().from_adjacency_list( + """ 1 R ux - """) # ux causes a wildcard for radicals + """ + ) # ux causes a wildcard for radicals atom1 = group.atoms[0] atom1.apply_action(action) self.assertListEqual(atom1.radical_electrons, [0, 1, 2, 3]) @@ -194,19 +250,28 @@ def test_apply_action_gain_pair(self): Test the GroupAtom.apply_action() method for a GAIN_PAIR action when lone_pairs is either specified or not. """ - action = ['GAIN_PAIR', '*1', 1] + action = ["GAIN_PAIR", "*1", 1] # lone_pairs specified: for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) atom = atom0.copy() try: atom.apply_action(action) self.assertEqual(len(atom.atomtype), len(atomtype.increment_lone_pair)) for a in atomtype.increment_lone_pair: - self.assertTrue(a in atom.atomtype, - "GAIN_PAIR on {0} gave {1} not {2}".format(atomtype, atom.atomtype, - atomtype.increment_lone_pair)) + self.assertTrue( + a in atom.atomtype, + "GAIN_PAIR on {0} gave {1} not {2}".format( + atomtype, atom.atomtype, atomtype.increment_lone_pair + ), + ) self.assertEqual(atom0.radical_electrons, atom.radical_electrons) self.assertEqual(atom0.charge, atom.charge) self.assertEqual(atom0.label, atom.label) @@ -216,15 +281,20 @@ def test_apply_action_gain_pair(self): # lone_pairs unspecified: for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1') + atom0 = GroupAtom( + atomtype=[atomtype], radical_electrons=[1], charge=[0], label="*1" + ) atom = atom0.copy() try: atom.apply_action(action) self.assertEqual(len(atom.atomtype), len(atomtype.increment_lone_pair)) for a in atomtype.increment_lone_pair: - self.assertTrue(a in atom.atomtype, - "GAIN_PAIR on {0} gave {1} not {2}".format(atomtype, atom.atomtype, - atomtype.increment_lone_pair)) + self.assertTrue( + a in atom.atomtype, + "GAIN_PAIR on {0} gave {1} not {2}".format( + atomtype, atom.atomtype, atomtype.increment_lone_pair + ), + ) self.assertEqual(atom0.radical_electrons, atom.radical_electrons) self.assertEqual(atom0.charge, atom.charge) self.assertEqual(atom0.label, atom.label) @@ -237,19 +307,28 @@ def test_apply_action_lose_pair(self): Test the GroupAtom.apply_action() method for a LOSE_PAIR action when lone_pairs is either specified or not. """ - action = ['LOSE_PAIR', '*1', 1] + action = ["LOSE_PAIR", "*1", 1] # lone_pairs specified: for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[1]) + atom0 = GroupAtom( + atomtype=[atomtype], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[1], + ) atom = atom0.copy() try: atom.apply_action(action) self.assertEqual(len(atom.atomtype), len(atomtype.decrement_lone_pair)) for a in atomtype.decrement_lone_pair: - self.assertTrue(a in atom.atomtype, - "LOSE_PAIR on {0} gave {1} not {2}".format(atomtype, atom.atomtype, - atomtype.decrement_lone_pair)) + self.assertTrue( + a in atom.atomtype, + "LOSE_PAIR on {0} gave {1} not {2}".format( + atomtype, atom.atomtype, atomtype.decrement_lone_pair + ), + ) self.assertEqual(atom0.radical_electrons, atom.radical_electrons) self.assertEqual(atom0.charge, atom.charge) self.assertEqual(atom0.label, atom.label) @@ -259,15 +338,20 @@ def test_apply_action_lose_pair(self): # lone_pairs unspecified: for label, atomtype in ATOMTYPES.items(): - atom0 = GroupAtom(atomtype=[atomtype], radical_electrons=[1], charge=[0], label='*1') + atom0 = GroupAtom( + atomtype=[atomtype], radical_electrons=[1], charge=[0], label="*1" + ) atom = atom0.copy() try: atom.apply_action(action) self.assertEqual(len(atom.atomtype), len(atomtype.decrement_lone_pair)) for a in atomtype.decrement_lone_pair: - self.assertTrue(a in atom.atomtype, - "LOSE_PAIR on {0} gave {1} not {2}".format(atomtype, atom.atomtype, - atomtype.decrement_lone_pair)) + self.assertTrue( + a in atom.atomtype, + "LOSE_PAIR on {0} gave {1} not {2}".format( + atomtype, atom.atomtype, atomtype.decrement_lone_pair + ), + ) self.assertEqual(atom0.radical_electrons, atom.radical_electrons) self.assertEqual(atom0.charge, atom.charge) self.assertEqual(atom0.label, atom.label) @@ -281,30 +365,71 @@ def test_equivalent(self): """ for label1, atomType1 in ATOMTYPES.items(): for label2, atomType2 in ATOMTYPES.items(): - atom1 = GroupAtom(atomtype=[atomType1], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) - atom2 = GroupAtom(atomtype=[atomType2], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) - if label1 == label2 or atomType2 in atomType1.generic or atomType1 in atomType2.generic: - self.assertTrue(atom1.equivalent(atom2), '{0!s} is not equivalent to {1!s}'.format(atom1, atom2)) - self.assertTrue(atom2.equivalent(atom1), '{0!s} is not equivalent to {1!s}'.format(atom2, atom1)) + atom1 = GroupAtom( + atomtype=[atomType1], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) + atom2 = GroupAtom( + atomtype=[atomType2], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) + if ( + label1 == label2 + or atomType2 in atomType1.generic + or atomType1 in atomType2.generic + ): + self.assertTrue( + atom1.equivalent(atom2), + "{0!s} is not equivalent to {1!s}".format(atom1, atom2), + ) + self.assertTrue( + atom2.equivalent(atom1), + "{0!s} is not equivalent to {1!s}".format(atom2, atom1), + ) else: - self.assertFalse(atom1.equivalent(atom2), '{0!s} is equivalent to {1!s}'.format(atom1, atom2)) - self.assertFalse(atom2.equivalent(atom1), '{0!s} is equivalent to {1!s}'.format(atom2, atom1)) + self.assertFalse( + atom1.equivalent(atom2), + "{0!s} is equivalent to {1!s}".format(atom1, atom2), + ) + self.assertFalse( + atom2.equivalent(atom1), + "{0!s} is equivalent to {1!s}".format(atom2, atom1), + ) # Now see if charge and radical count are checked properly for charge in range(3): for radicals in range(2): for lonePair in range(2): - atom3 = GroupAtom(atomtype=[atomType1], radical_electrons=[radicals], charge=[charge], - label='*1', lone_pairs=[lonePair]) + atom3 = GroupAtom( + atomtype=[atomType1], + radical_electrons=[radicals], + charge=[charge], + label="*1", + lone_pairs=[lonePair], + ) if radicals == 1 and charge == 0 and lonePair == 0: - self.assertTrue(atom1.equivalent(atom3), - '{0!s} is not equivalent to {1!s}'.format(atom1, atom3)) - self.assertTrue(atom1.equivalent(atom3), - '{0!s} is not equivalent to {1!s}'.format(atom3, atom1)) + self.assertTrue( + atom1.equivalent(atom3), + "{0!s} is not equivalent to {1!s}".format(atom1, atom3), + ) + self.assertTrue( + atom1.equivalent(atom3), + "{0!s} is not equivalent to {1!s}".format(atom3, atom1), + ) else: - self.assertFalse(atom1.equivalent(atom3), - '{0!s} is equivalent to {1!s}'.format(atom1, atom3)) - self.assertFalse(atom1.equivalent(atom3), - '{0!s} is equivalent to {1!s}'.format(atom3, atom1)) + self.assertFalse( + atom1.equivalent(atom3), + "{0!s} is equivalent to {1!s}".format(atom1, atom3), + ) + self.assertFalse( + atom1.equivalent(atom3), + "{0!s} is equivalent to {1!s}".format(atom3, atom1), + ) def test_is_specific_case_of(self): """ @@ -312,27 +437,61 @@ def test_is_specific_case_of(self): """ for label1, atomType1 in ATOMTYPES.items(): for label2, atomType2 in ATOMTYPES.items(): - atom1 = GroupAtom(atomtype=[atomType1], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) - atom2 = GroupAtom(atomtype=[atomType2], radical_electrons=[1], charge=[0], label='*1', lone_pairs=[0]) + atom1 = GroupAtom( + atomtype=[atomType1], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) + atom2 = GroupAtom( + atomtype=[atomType2], + radical_electrons=[1], + charge=[0], + label="*1", + lone_pairs=[0], + ) # And make more generic types of these two atoms - atom1gen = GroupAtom(atomtype=[atomType1], radical_electrons=[0, 1], charge=[0, 1], label='*1', - lone_pairs=[0, 1]) - atom2gen = GroupAtom(atomtype=[atomType2], radical_electrons=[0, 1], charge=[0, 1], label='*1', - lone_pairs=[0, 1]) + atom1gen = GroupAtom( + atomtype=[atomType1], + radical_electrons=[0, 1], + charge=[0, 1], + label="*1", + lone_pairs=[0, 1], + ) + atom2gen = GroupAtom( + atomtype=[atomType2], + radical_electrons=[0, 1], + charge=[0, 1], + label="*1", + lone_pairs=[0, 1], + ) if label1 == label2 or atomType2 in atomType1.generic: - self.assertTrue(atom1.is_specific_case_of(atom2), - '{0!s} is not a specific case of {1!s}'.format(atom1, atom2)) - self.assertTrue(atom1.is_specific_case_of(atom2gen), - '{0!s} is not a specific case of {1!s}'.format(atom1, atom2gen)) - self.assertFalse(atom1gen.is_specific_case_of(atom2), - '{0!s} is a specific case of {1!s}'.format(atom1gen, atom2)) + self.assertTrue( + atom1.is_specific_case_of(atom2), + "{0!s} is not a specific case of {1!s}".format(atom1, atom2), + ) + self.assertTrue( + atom1.is_specific_case_of(atom2gen), + "{0!s} is not a specific case of {1!s}".format(atom1, atom2gen), + ) + self.assertFalse( + atom1gen.is_specific_case_of(atom2), + "{0!s} is a specific case of {1!s}".format(atom1gen, atom2), + ) else: - self.assertFalse(atom1.is_specific_case_of(atom2), - '{0!s} is a specific case of {1!s}'.format(atom1, atom2)) - self.assertFalse(atom1.is_specific_case_of(atom2gen), - '{0!s} is a specific case of {1!s}'.format(atom1, atom2gen)) - self.assertFalse(atom1gen.is_specific_case_of(atom2), - '{0!s} is a specific case of {1!s}'.format(atom1gen, atom2)) + self.assertFalse( + atom1.is_specific_case_of(atom2), + "{0!s} is a specific case of {1!s}".format(atom1, atom2), + ) + self.assertFalse( + atom1.is_specific_case_of(atom2gen), + "{0!s} is a specific case of {1!s}".format(atom1, atom2gen), + ) + self.assertFalse( + atom1gen.is_specific_case_of(atom2), + "{0!s} is a specific case of {1!s}".format(atom1gen, atom2), + ) def test_copy(self): """ @@ -352,6 +511,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + atom = pickle.loads(pickle.dumps(self.atom)) self.assertEqual(len(self.atom.atomtype), len(atom.atomtype)) self.assertEqual(self.atom.atomtype[0].label, atom.atomtype[0].label) @@ -376,7 +536,9 @@ def test_count_bonds(self): test = Group().from_adjacency_list(adjlist) # returns a list of [single, allDouble, rDouble, oDouble, sDouble, triple, quadruple, benzene] self.assertListEqual([1, 0, 0, 0, 0, 0, 0, 0], test.atoms[0].count_bonds()) - self.assertListEqual([1, 1, 1, 0, 0, 1, 0, 0], test.atoms[0].count_bonds(wildcards=True)) + self.assertListEqual( + [1, 1, 1, 0, 0, 1, 0, 0], test.atoms[0].count_bonds(wildcards=True) + ) self.assertListEqual([0, 0, 0, 0, 0, 0, 0, 1], test.atoms[3].count_bonds()) self.assertListEqual([1, 1, 0, 1, 0, 0, 0, 0], test.atoms[2].count_bonds()) self.assertListEqual([0, 0, 0, 0, 0, 0, 1, 0], test.atoms[5].count_bonds()) @@ -395,9 +557,15 @@ def test_has_wildcards(self): """ group = Group().from_adjacency_list(adjlist) for index, atom in enumerate(group.atoms): - self.assertTrue(atom.has_wildcards(), - 'GroupAtom with index {0} should have wildcards, but does not'.format(index)) - self.assertTrue(group.has_wildcards(), 'Group should have wildcards, but does not') + self.assertTrue( + atom.has_wildcards(), + "GroupAtom with index {0} should have wildcards, but does not".format( + index + ), + ) + self.assertTrue( + group.has_wildcards(), "Group should have wildcards, but does not" + ) def test_make_sample_atom(self): """ @@ -405,7 +573,7 @@ def test_make_sample_atom(self): """ new_atom = self.atom.make_sample_atom() - self.assertEquals(new_atom.element, elements.__dict__['C']) + self.assertEquals(new_atom.element, elements.__dict__["C"]) self.assertEquals(new_atom.radical_electrons, 1) self.assertEquals(new_atom.charge, 0) self.assertEquals(new_atom.lone_pairs, 0) @@ -413,6 +581,7 @@ def test_make_sample_atom(self): ################################################################################ + class TestGroupBond(unittest.TestCase): """ Contains unit tests of the GroupBond class. @@ -423,21 +592,30 @@ def setUp(self): A method called before each unit test in this class. """ self.bond = GroupBond(None, None, order=[2]) - self.orderList = [[1], [2], [3], [1.5], [1, 2], [2, 1], [2, 3], [1, 2, 3]] # todo : unit tests for vdw + self.orderList = [ + [1], + [2], + [3], + [1.5], + [1, 2], + [2, 1], + [2, 3], + [1, 2, 3], + ] # todo : unit tests for vdw def test_get_order_str(self): """ test the Bond.get_order_str() method """ bond = GroupBond(None, None, order=[1, 2, 3, 1.5]) - self.assertEqual(bond.get_order_str(), ['S', 'D', 'T', 'B']) + self.assertEqual(bond.get_order_str(), ["S", "D", "T", "B"]) def test_set_order_str(self): """ test the Bond.set_order_str() method """ - self.bond.set_order_str(["B", 'T']) + self.bond.set_order_str(["B", "T"]) self.assertEqual(set(self.bond.order), {3, 1.5}) def test_get_order_num(self): @@ -452,7 +630,7 @@ def test_set_order_num(self): """ self.bond.set_order_num([3, 1, 2]) - self.assertEqual(self.bond.get_order_str(), ['T', 'S', 'D']) + self.assertEqual(self.bond.get_order_str(), ["T", "S", "D"]) def test_is_single(self): """ @@ -506,13 +684,15 @@ def test_apply_action_break_bond(self): """ Test the GroupBond.apply_action() method for a BREAK_BOND action. """ - action = ['BREAK_BOND', '*1', 1, '*2'] + action = ["BREAK_BOND", "*1", 1, "*2"] for order0 in self.orderList: bond0 = GroupBond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('GroupBond.apply_action() unexpectedly processed a BREAK_BOND action.') + self.fail( + "GroupBond.apply_action() unexpectedly processed a BREAK_BOND action." + ) except ActionError: pass @@ -523,13 +703,15 @@ def test_apply_action_form_bond(self): Tests that forming a bond between things already bonded, raises an ActionError """ - action = ['FORM_BOND', '*1', 1, '*2'] + action = ["FORM_BOND", "*1", 1, "*2"] for order0 in self.orderList: bond0 = GroupBond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('GroupBond.apply_action() unexpectedly processed a FORM_BOND action.') + self.fail( + "GroupBond.apply_action() unexpectedly processed a FORM_BOND action." + ) except ActionError: pass @@ -537,7 +719,7 @@ def test_apply_action_increment_bond(self): """ Test the GroupBond.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', 1, '*2'] + action = ["CHANGE_BOND", "*1", 1, "*2"] for order0 in self.orderList: bond0 = GroupBond(None, None, order=order0) bond = bond0.copy() @@ -550,7 +732,7 @@ def test_apply_action_decrement_bond(self): """ Test the GroupBond.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', -1, '*2'] + action = ["CHANGE_BOND", "*1", -1, "*2"] for order0 in self.orderList: bond0 = GroupBond(None, None, order=order0) bond = bond0.copy() @@ -563,13 +745,15 @@ def test_apply_action_gain_radical(self): """ Test the GroupBond.apply_action() method for a GAIN_RADICAL action. """ - action = ['GAIN_RADICAL', '*1', 1] + action = ["GAIN_RADICAL", "*1", 1] for order0 in self.orderList: bond0 = GroupBond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('GroupBond.apply_action() unexpectedly processed a GAIN_RADICAL action.') + self.fail( + "GroupBond.apply_action() unexpectedly processed a GAIN_RADICAL action." + ) except ActionError: pass @@ -577,13 +761,15 @@ def test_apply_action_lose_radical(self): """ Test the GroupBond.apply_action() method for a LOSE_RADICAL action. """ - action = ['LOSE_RADICAL', '*1', 1] + action = ["LOSE_RADICAL", "*1", 1] for order0 in self.orderList: bond0 = GroupBond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('GroupBond.apply_action() unexpectedly processed a LOSE_RADICAL action.') + self.fail( + "GroupBond.apply_action() unexpectedly processed a LOSE_RADICAL action." + ) except ActionError: pass @@ -595,7 +781,10 @@ def test_equivalent(self): for order2 in self.orderList: bond1 = GroupBond(None, None, order=order1) bond2 = GroupBond(None, None, order=order2) - if order1 == order2 or (all([o in order2 for o in order1]) and all([o in order1 for o in order2])): + if order1 == order2 or ( + all([o in order2 for o in order1]) + and all([o in order1 for o in order2]) + ): self.assertTrue(bond1.equivalent(bond2)) self.assertTrue(bond2.equivalent(bond1)) else: @@ -629,6 +818,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + bond = pickle.loads(pickle.dumps(self.bond)) self.assertEqual(len(self.bond.order), len(bond.order)) self.assertEqual(self.bond.order, bond.order) @@ -636,6 +826,7 @@ def test_pickle(self): ################################################################################ + class TestGroup(unittest.TestCase): """ Contains unit tests of the Graph class. @@ -655,29 +846,31 @@ def test_clear_labeled_atoms(self): """ self.group.clear_labeled_atoms() for atom in self.group.atoms: - self.assertEqual(atom.label, '') + self.assertEqual(atom.label, "") def test_contains_labeled_atom(self): """ Test the Group.contains_labeled_atom() method. """ for atom in self.group.atoms: - if atom.label != '': + if atom.label != "": self.assertTrue(self.group.contains_labeled_atom(atom.label)) - self.assertFalse(self.group.contains_labeled_atom('*3')) - self.assertFalse(self.group.contains_labeled_atom('*4')) - self.assertFalse(self.group.contains_labeled_atom('*5')) - self.assertFalse(self.group.contains_labeled_atom('*6')) + self.assertFalse(self.group.contains_labeled_atom("*3")) + self.assertFalse(self.group.contains_labeled_atom("*4")) + self.assertFalse(self.group.contains_labeled_atom("*5")) + self.assertFalse(self.group.contains_labeled_atom("*6")) def test_contains_surface_site(self): """ Test the Group.contains_surface_site() method. """ self.assertFalse(self.group.contains_surface_site()) - surface_group = Group().from_adjacency_list(""" + surface_group = Group().from_adjacency_list( + """ 1 *1 X u0 {2,[S,D]} 2 *2 R u0 {1,[S,D]} -""") +""" + ) self.assertTrue(surface_group.contains_surface_site()) def test_is_surface_site(self): @@ -685,10 +878,12 @@ def test_is_surface_site(self): Test the Group.is_surface_site() method. """ self.assertFalse(self.group.is_surface_site()) - surface_group = Group().from_adjacency_list(""" + surface_group = Group().from_adjacency_list( + """ 1 *1 X u0 {2,[S,D]} 2 *2 R u0 {1,[S,D]} -""") +""" + ) self.assertFalse(surface_group.is_surface_site()) surface_site = Group().from_adjacency_list("1 *1 X u0") self.assertTrue(surface_site.is_surface_site()) @@ -698,11 +893,13 @@ def test_get_labeled_atom(self): Test the Group.get_labeled_atoms() method. """ for atom in self.group.atoms: - if atom.label != '': + if atom.label != "": self.assertEqual(atom, self.group.get_labeled_atoms(atom.label)[0]) try: - self.group.get_labeled_atoms('*3')[0] - self.fail('Unexpected successful return from Group.get_labeled_atoms() with invalid atom label.') + self.group.get_labeled_atoms("*3")[0] + self.fail( + "Unexpected successful return from Group.get_labeled_atoms() with invalid atom label." + ) except ValueError: pass @@ -712,7 +909,7 @@ def test_get_labeled_atoms(self): """ labeled = self.group.get_all_labeled_atoms() for atom in self.group.atoms: - if atom.label != '': + if atom.label != "": self.assertTrue(atom.label in labeled) self.assertTrue(atom in list(labeled.values())) else: @@ -730,18 +927,18 @@ def test_from_adjacency_list(self): bond12 = atom1.bonds[atom2] bond13 = atom1.bonds[atom3] - self.assertTrue(atom1.label == '*2') - self.assertTrue(atom1.atomtype[0].label in ['Cs', 'Cd']) - self.assertTrue(atom1.atomtype[1].label in ['Cs', 'Cd']) + self.assertTrue(atom1.label == "*2") + self.assertTrue(atom1.atomtype[0].label in ["Cs", "Cd"]) + self.assertTrue(atom1.atomtype[1].label in ["Cs", "Cd"]) self.assertTrue(atom1.radical_electrons == [0]) - self.assertTrue(atom2.label == '*1') - self.assertTrue(atom2.atomtype[0].label in ['O2s', 'O2d']) - self.assertTrue(atom2.atomtype[1].label in ['O2s', 'O2d']) + self.assertTrue(atom2.label == "*1") + self.assertTrue(atom2.atomtype[0].label in ["O2s", "O2d"]) + self.assertTrue(atom2.atomtype[1].label in ["O2s", "O2d"]) self.assertTrue(atom2.radical_electrons == [0]) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.atomtype[0].label == 'R!H') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.atomtype[0].label == "R!H") self.assertTrue(atom3.radical_electrons == [0]) self.assertTrue(bond12.order == [1, 2]) @@ -822,47 +1019,59 @@ def test_generate_extensions(self): test that appropriate group extensions are being generated """ - test_grp = Group().from_adjacency_list(""" + test_grp = Group().from_adjacency_list( + """ 1 *2 C u0 r0 {2,[S,D]} 2 *1 C u[0,1] {1,[S,D]} {3,S} 3 R!H u0 r1 {2,S} -""") +""" + ) ans = [ - '1 *2 C u0 r0 {2,[S,D]} {4,[S,D,T,B,Q]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n4 R!H ux {1,[S,D,T,B,Q]}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u0 {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u1 {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] r1 {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S} {4,[S,D,T,B,Q]}\n3 R!H u0 r1 {2,S}\n4 R!H ux {2,[S,D,T,B,Q]}\n', - '1 *2 C u0 r0 {2,S}\n2 *1 C u[0,1] {1,S} {3,S}\n3 R!H u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,D}\n2 *1 C u[0,1] {1,D} {3,S}\n3 R!H u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 C u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 O u0 r1 {2,S}\n', - '1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S} {4,[S,D,T,B,Q]}\n4 R!H ux {3,[S,D,T,B,Q]}\n', - '1 *2 C u0 r0 {2,[S,D]} {3,[S,D,T,B,Q]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 R!H u0 r1 {1,[S,D,T,B,Q]} {2,S}\n' + "1 *2 C u0 r0 {2,[S,D]} {4,[S,D,T,B,Q]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n4 R!H ux {1,[S,D,T,B,Q]}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u0 {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u1 {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] r1 {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S} {4,[S,D,T,B,Q]}\n3 R!H u0 r1 {2,S}\n4 R!H ux {2,[S,D,T,B,Q]}\n", + "1 *2 C u0 r0 {2,S}\n2 *1 C u[0,1] {1,S} {3,S}\n3 R!H u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,D}\n2 *1 C u[0,1] {1,D} {3,S}\n3 R!H u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 C u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 O u0 r1 {2,S}\n", + "1 *2 C u0 r0 {2,[S,D]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 R!H u0 r1 {2,S} {4,[S,D,T,B,Q]}\n4 R!H ux {3,[S,D,T,B,Q]}\n", + "1 *2 C u0 r0 {2,[S,D]} {3,[S,D,T,B,Q]}\n2 *1 C u[0,1] {1,[S,D]} {3,S}\n3 R!H u0 r1 {1,[S,D,T,B,Q]} {2,S}\n", ] ans = [Group().from_adjacency_list(k) for k in ans] - extensions = test_grp.get_extensions(r=[ATOMTYPES[i] for i in ['C', 'O', 'H']]) + extensions = test_grp.get_extensions(r=[ATOMTYPES[i] for i in ["C", "O", "H"]]) extensions = [a[0] for a in extensions] self.assertEqual(len(extensions), len(ans)) for v in ans: - boos = [ext.is_identical(v) and ext.is_subgraph_isomorphic(v, generate_initial_map=True) for ext in extensions] - self.assertTrue(any(boos), 'generated extensions did not match expected extensions') + boos = [ + ext.is_identical(v) + and ext.is_subgraph_isomorphic(v, generate_initial_map=True) + for ext in extensions + ] + self.assertTrue( + any(boos), "generated extensions did not match expected extensions" + ) def test_generated_extensions_subgraphs(self): - test_grp = Group().from_adjacency_list(""" + test_grp = Group().from_adjacency_list( + """ 1 *2 C u0 {2,[S,D]} 2 *1 C u[0,1] {1,[S,D]} {3,S} 3 R!H u0 {2,S} -""") - extensions = test_grp.get_extensions(r=[ATOMTYPES[i] for i in ['C', 'O', 'H']]) +""" + ) + extensions = test_grp.get_extensions(r=[ATOMTYPES[i] for i in ["C", "O", "H"]]) extensions = [a[0] for a in extensions] for ext in extensions: - self.assertTrue(ext.is_subgraph_isomorphic(test_grp, generate_initial_map=True)) + self.assertTrue( + ext.is_subgraph_isomorphic(test_grp, generate_initial_map=True) + ) def test_pickle(self): """ @@ -870,6 +1079,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + group = pickle.loads(pickle.dumps(self.group)) self.assertEqual(len(self.group.atoms), len(group.atoms)) @@ -897,7 +1107,9 @@ def test_create_and_connect_atom(self): group1 = Group().from_adjacency_list(adjlist1) answer1 = Group().from_adjacency_list(answer1) atom1 = group1.get_labeled_atoms("*1")[0] - new_atom = group1.create_and_connect_atom(atomtypes=["Cb"], connecting_atom=atom1, bond_orders=["B"]) + new_atom = group1.create_and_connect_atom( + atomtypes=["Cb"], connecting_atom=atom1, bond_orders=["B"] + ) self.assertTrue(group1.is_isomorphic(answer1)) answer2 = """ @@ -910,7 +1122,9 @@ def test_create_and_connect_atom(self): group2 = Group().from_adjacency_list(adjlist1) answer2 = Group().from_adjacency_list(answer2) atom1 = group2.get_labeled_atoms("*1")[0] - new_atom = group2.create_and_connect_atom(atomtypes=["Cs", "Cd"], connecting_atom=atom1, bond_orders=["S", "D"]) + new_atom = group2.create_and_connect_atom( + atomtypes=["Cs", "Cd"], connecting_atom=atom1, bond_orders=["S", "D"] + ) self.assertTrue(group2.is_isomorphic(answer2)) def test_add_implicit_atoms_from_atom_type(self): @@ -1006,7 +1220,13 @@ def test_classify_benzene_carbons(self): """ group1 = Group().from_adjacency_list(adjlist1) - (cbAtomList, cbfAtomList, cbfAtomList1, cbfAtomList2, connectedCbfs) = group1.classify_benzene_carbons() + ( + cbAtomList, + cbfAtomList, + cbfAtomList1, + cbfAtomList2, + connectedCbfs, + ) = group1.classify_benzene_carbons() self.assertEquals(len(cbfAtomList), 0) for atom in group1.atoms: self.assertIn(atom, cbAtomList) @@ -1016,7 +1236,13 @@ def test_classify_benzene_carbons(self): 1 *1 Cbf u0 """ group2 = Group().from_adjacency_list(adjlist2) - (cbAtomList, cbfAtomList, cbfAtomList1, cbfAtomList2, connectedCbfs) = group2.classify_benzene_carbons() + ( + cbAtomList, + cbfAtomList, + cbfAtomList1, + cbfAtomList2, + connectedCbfs, + ) = group2.classify_benzene_carbons() self.assertIn(group2.atoms[0], cbfAtomList) self.assertIn(group2.atoms[0], cbfAtomList1) @@ -1027,7 +1253,13 @@ def test_classify_benzene_carbons(self): 3 *3 C u0 {2,B} """ group3 = Group().from_adjacency_list(adjlist3) - (cbAtomList, cbfAtomList, cbfAtomList1, cbfAtomList2, connectedCbfs) = group3.classify_benzene_carbons() + ( + cbAtomList, + cbfAtomList, + cbfAtomList1, + cbfAtomList2, + connectedCbfs, + ) = group3.classify_benzene_carbons() for atom in group3.atoms: self.assertIn(atom, cbAtomList) @@ -1039,7 +1271,13 @@ def test_classify_benzene_carbons(self): 4 *4 C u0 {1,B} """ group4 = Group().from_adjacency_list(adjlist4) - (cbAtomList, cbfAtomList, cbfAtomList1, cbfAtomList2, connectedCbfs) = group4.classify_benzene_carbons() + ( + cbAtomList, + cbfAtomList, + cbfAtomList1, + cbfAtomList2, + connectedCbfs, + ) = group4.classify_benzene_carbons() self.assertEquals(len(cbfAtomList), 1) self.assertEquals(len(cbfAtomList1), 1) @@ -1056,7 +1294,13 @@ def test_classify_benzene_carbons(self): 8 *8 C u0 {3,B} """ group5 = Group().from_adjacency_list(adjlist5) - (cbAtomList, cbfAtomList, cbfAtomList1, cbfAtomList2, connectedCbfs) = group5.classify_benzene_carbons() + ( + cbAtomList, + cbfAtomList, + cbfAtomList1, + cbfAtomList2, + connectedCbfs, + ) = group5.classify_benzene_carbons() self.assertEquals(len(cbfAtomList1), 2) self.assertEquals(len(cbfAtomList2), 1) self.assertEquals(len(cbAtomList), 5) @@ -1095,7 +1339,9 @@ def test_sort_by_connectivity(self): """ group2 = Group().from_adjacency_list(adjlist2) ordered_atoms = group2.sort_by_connectivity(group2.atoms) - self.assertEquals([x.label for x in ordered_atoms], ["*1", "*3", "*4", "*2", "*5"]) + self.assertEquals( + [x.label for x in ordered_atoms], ["*1", "*3", "*4", "*2", "*5"] + ) def test_add_implicit_benzene(self): """ @@ -1304,7 +1550,7 @@ def perform_samp_mole_comparison(_adjlist, _answer_smiles): adjlist = """ 1 *1 Cd u0 """ - answer_smiles = 'C=C' + answer_smiles = "C=C" self.assertTrue(perform_samp_mole_comparison(adjlist, answer_smiles)) # test creating implicit benzene atoms @@ -1315,7 +1561,7 @@ def perform_samp_mole_comparison(_adjlist, _answer_smiles): group2 = Group().from_adjacency_list(adjlist2) result2 = group2.make_sample_molecule() - naphthalene_molecule = Molecule().from_smiles('C1=CC=C2C=CC=CC2=C1') + naphthalene_molecule = Molecule().from_smiles("C1=CC=C2C=CC=CC2=C1") resonance_list2 = naphthalene_molecule.generate_resonance_structures() self.assertTrue(any([result2.is_isomorphic(x) for x in resonance_list2])) @@ -1323,26 +1569,26 @@ def perform_samp_mole_comparison(_adjlist, _answer_smiles): adjlist = """ 1 *1 N5sc u0 """ - answer_smiles = '[NH4+]' + answer_smiles = "[NH4+]" self.assertTrue(perform_samp_mole_comparison(adjlist, answer_smiles)) adjlist = """ 1 *1 P5dc u0 """ - answer_smiles = '[PH2+]=C' + answer_smiles = "[PH2+]=C" self.assertTrue(perform_samp_mole_comparison(adjlist, answer_smiles)) # test the creation of a negatively charged species adjlist = """ 1 *1 N1sc u0 """ - answer_smiles = '[NH2-]' + answer_smiles = "[NH2-]" self.assertTrue(perform_samp_mole_comparison(adjlist, answer_smiles)) adjlist = """ 1 *1 P5sc u0 """ - answer_smiles = '[PH6-]' + answer_smiles = "[PH6-]" self.assertTrue(perform_samp_mole_comparison(adjlist, answer_smiles)) # test creation of charged species when some single bonds present @@ -1351,7 +1597,7 @@ def perform_samp_mole_comparison(_adjlist, _answer_smiles): 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} """ - answer_smiles = '[NH3+][CH2]' + answer_smiles = "[NH3+][CH2]" self.assertTrue(perform_samp_mole_comparison(adjlist, answer_smiles)) def test_is_benzene_explicit(self): @@ -1425,29 +1671,34 @@ def test_draw_group(self): } """ group = Group().from_adjacency_list(adjlist) - result = group.draw('canon') - self.assertEqual(b''.join(result.split()), b''.join(expected.split())) + result = group.draw("canon") + self.assertEqual(b"".join(result.split()), b"".join(expected.split())) def test_merge_groups(self): """ Test the merge_groups() function """ # basic test of merging a backbone and end group - backbone1 = Group().from_adjacency_list(""" + backbone1 = Group().from_adjacency_list( + """ 1 *1 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,S} 3 *6 R!H u0 {2,S} {4,S} 4 *5 R!H u0 {3,S} {5,S} 5 *2 R!H u0 {4,S} {6,S} 6 *3 H u0 {5,S} -""") +""" + ) - end1 = Group().from_adjacency_list(""" + end1 = Group().from_adjacency_list( + """ 1 *2 Cs u0 {2,S} {3,S} 2 *3 H u0 {1,S} 3 S u0 {1,S} -""") - desired_merge1 = Group().from_adjacency_list(""" +""" + ) + desired_merge1 = Group().from_adjacency_list( + """ 1 *1 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,S} 3 *6 R!H u0 {2,S} {4,S} @@ -1455,48 +1706,57 @@ def test_merge_groups(self): 5 *2 Cs u0 {4,S} {6,S} {7,S} 6 *3 H u0 {5,S} 7 S u0 {5,S} -""") +""" + ) merged_group = backbone1.merge_groups(end1) self.assertTrue(merged_group.is_identical(desired_merge1)) # test it works when there is a cyclical structure to the backbone - backbone2 = Group().from_adjacency_list(""" + backbone2 = Group().from_adjacency_list( + """ 1 *1 R!H u1 {2,S} {4,S} 2 *4 R!H u0 {1,S} {3,S} 3 *2 R!H u0 {2,S} {4,S} 4 *3 R!H u0 {3,S} {1,S} -""") +""" + ) - end2 = Group().from_adjacency_list(""" + end2 = Group().from_adjacency_list( + """ 1 *2 O2s u0 {2,S} 2 *3 Cs u0 {1,S} -""") - desired_merge2 = Group().from_adjacency_list(""" +""" + ) + desired_merge2 = Group().from_adjacency_list( + """ 1 *1 R!H u1 {2,S} {4,S} 2 *4 R!H u0 {1,S} {3,S} 3 *2 O2s u0 {2,S} {4,S} 4 *3 Cs u0 {3,S} {1,S} -""") +""" + ) merged_group = backbone2.merge_groups(end2) self.assertTrue(merged_group.is_identical(desired_merge2)) def test_get_element_count(self): """Test that we can count elements properly.""" - group = Group().from_adjacency_list(""" + group = Group().from_adjacency_list( + """ 1 R!H u0 {2,S} 2 [Cs,Cd,Ct,Cb] u0 {1,S} {3,S} 3 [Cs,Cd,Ct,Cb,O2s,S2s] u0 {2,S} {4,S} 4 N3s u0 {3,S} {5,S} 5 P1s u0 {4,S} -""") - expected = {'C': 1, 'N': 1, 'P': 1} +""" + ) + expected = {"C": 1, "N": 1, "P": 1} result = group.get_element_count() self.assertEqual(expected, result) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/inchiTest.py b/test/rmgpy/molecule/inchiTest.py index e66441832f..248f19dbe9 100644 --- a/test/rmgpy/molecule/inchiTest.py +++ b/test/rmgpy/molecule/inchiTest.py @@ -31,26 +31,39 @@ from external.wip import work_in_progress from rmgpy.exceptions import InchiException -from rmgpy.molecule.inchi import InChI, AugmentedInChI, remove_inchi_prefix, create_augmented_layers, \ - compose_aug_inchi, decompose_aug_inchi, INCHI_PREFIX, P_LAYER_PREFIX, U_LAYER_PREFIX -from rmgpy.molecule.inchi import _has_unexpected_lone_pairs, _parse_e_layer, _parse_h_layer, \ - _parse_n_layer, _reset_lone_pairs +from rmgpy.molecule.inchi import ( + InChI, + AugmentedInChI, + remove_inchi_prefix, + create_augmented_layers, + compose_aug_inchi, + decompose_aug_inchi, + INCHI_PREFIX, + P_LAYER_PREFIX, + U_LAYER_PREFIX, +) +from rmgpy.molecule.inchi import ( + _has_unexpected_lone_pairs, + _parse_e_layer, + _parse_h_layer, + _parse_n_layer, + _reset_lone_pairs, +) from rmgpy.molecule.molecule import Atom, Molecule class InChITest(unittest.TestCase): - def test_constructor(self): - inchi1 = InChI('InChI=1S/foo') + inchi1 = InChI("InChI=1S/foo") self.assertTrue(inchi1 is not None) with self.assertRaises(InchiException): - InChI('foo') + InChI("foo") def test_compare(self): - inchi1 = InChI('InChI=1S/foo') - inchi2 = InChI('InChI=1/foo') - inchi3 = InChI('InChI=1/bar') + inchi1 = InChI("InChI=1S/foo") + inchi2 = InChI("InChI=1/foo") + inchi3 = InChI("InChI=1/bar") self.assertTrue(inchi1 == inchi2) self.assertTrue(not inchi1 != inchi2) @@ -60,26 +73,25 @@ def test_compare(self): class AugmentedInChITest(unittest.TestCase): - def test_constructor(self): - aug_inchi1 = AugmentedInChI('InChI=1S/foo') + aug_inchi1 = AugmentedInChI("InChI=1S/foo") - self.assertTrue(aug_inchi1 == 'foo', aug_inchi1) + self.assertTrue(aug_inchi1 == "foo", aug_inchi1) self.assertTrue(aug_inchi1.u_indices is None) - aug_inchi2 = AugmentedInChI('InChI=1S/foo') + aug_inchi2 = AugmentedInChI("InChI=1S/foo") - self.assertTrue(aug_inchi2 == 'foo', aug_inchi2) + self.assertTrue(aug_inchi2 == "foo", aug_inchi2) self.assertTrue(aug_inchi2.u_indices is None) - aug_inchi3 = AugmentedInChI('InChI=1S/foo/u1,3') + aug_inchi3 = AugmentedInChI("InChI=1S/foo/u1,3") - self.assertTrue(aug_inchi3 == 'foo/u1,3', aug_inchi3) + self.assertTrue(aug_inchi3 == "foo/u1,3", aug_inchi3) self.assertTrue(aug_inchi3.u_indices == [1, 3]) def test_compare(self): - aug_inchi1 = AugmentedInChI('InChI=1S/foo') - aug_inchi2 = AugmentedInChI('InChI=1/foo') + aug_inchi1 = AugmentedInChI("InChI=1S/foo") + aug_inchi2 = AugmentedInChI("InChI=1/foo") self.assertTrue(aug_inchi1 == aug_inchi2) self.assertTrue(not aug_inchi1 != aug_inchi2) @@ -88,7 +100,7 @@ def test_compare(self): def test_reduce(self): import pickle - aug_inchi = AugmentedInChI('InChI=1S/foo/u1,3') + aug_inchi = AugmentedInChI("InChI=1S/foo/u1,3") aug_inchi2 = pickle.loads(pickle.dumps(aug_inchi)) self.assertTrue(aug_inchi == aug_inchi2) @@ -96,29 +108,29 @@ def test_reduce(self): class IgnorePrefixTest(unittest.TestCase): - def test_ignore(self): - string = 'InChI=1S/foo' - self.assertTrue(remove_inchi_prefix(string) == 'foo') + string = "InChI=1S/foo" + self.assertTrue(remove_inchi_prefix(string) == "foo") with self.assertRaises(InchiException): - remove_inchi_prefix('foo') + remove_inchi_prefix("foo") class ComposeTest(unittest.TestCase): - def test_compose_aug_inchi(self): - inchi = 'C2H5/c1-2/h1H2,2H3' + inchi = "C2H5/c1-2/h1H2,2H3" mult = 2 aug_inchi = compose_aug_inchi(inchi, U_LAYER_PREFIX + str(mult)) - self.assertTrue(aug_inchi == INCHI_PREFIX + '/' + inchi + U_LAYER_PREFIX + str(mult), aug_inchi) + self.assertTrue( + aug_inchi == INCHI_PREFIX + "/" + inchi + U_LAYER_PREFIX + str(mult), + aug_inchi, + ) class Parse_H_LayerTest(unittest.TestCase): - def test_oco(self): - smi = 'O=C-O' + smi = "O=C-O" inchi = Molecule().from_smiles(smi).to_inchi() mobile_hs = _parse_h_layer(inchi) expected = [[2, 3]] @@ -155,36 +167,35 @@ def test_occc(self): class DecomposeTest(unittest.TestCase): - def test_inchi(self): - string = 'InChI=1S/XXXX/cXXX/hXXX' + string = "InChI=1S/XXXX/cXXX/hXXX" _, u_indices, _ = decompose_aug_inchi(string) self.assertEquals([], u_indices) def test_inchi_u_layer(self): - string = 'InChI=1S/XXXX/cXXX/hXXX/u1,2' + string = "InChI=1S/XXXX/cXXX/hXXX/u1,2" _, u_indices, _ = decompose_aug_inchi(string) self.assertEquals([1, 2], u_indices) def test_inchi_p_layer(self): - string = 'InChI=1S/XXXX/cXXX/hXXX/lp1,2' + string = "InChI=1S/XXXX/cXXX/hXXX/lp1,2" _, _, p_indices = decompose_aug_inchi(string) self.assertEquals([1, 2], p_indices) def test_inchi_u_layer_p_layer(self): - string = 'InChI=1S/XXXX/cXXX/hXXX/u1,2/lp3,4' + string = "InChI=1S/XXXX/cXXX/hXXX/u1,2/lp3,4" _, u_indices, p_indices = decompose_aug_inchi(string) self.assertEquals([1, 2], u_indices) self.assertEquals([3, 4], p_indices) def test_inchi_p_layer_zero_lp(self): """ - Test that the p-layer containing an element with zero lone + Test that the p-layer containing an element with zero lone pairs can be read correctly. """ - string = 'InChI=1S/XXXX/cXXX/hXXX/lp1(0)' + string = "InChI=1S/XXXX/cXXX/hXXX/lp1(0)" _, _, p_indices = decompose_aug_inchi(string) self.assertEquals([(1, 0)], p_indices) @@ -236,29 +247,29 @@ def test_c4h6(self): class ExpectedLonePairsTest(unittest.TestCase): def test_singlet_carbon(self): - mol = Molecule(atoms=[Atom(element='C', lone_pairs=1)]) + mol = Molecule(atoms=[Atom(element="C", lone_pairs=1)]) unexpected = _has_unexpected_lone_pairs(mol) self.assertTrue(unexpected) def test_normal_carbon(self): - mol = Molecule(atoms=[Atom(element='C', lone_pairs=0)]) + mol = Molecule(atoms=[Atom(element="C", lone_pairs=0)]) unexpected = _has_unexpected_lone_pairs(mol) self.assertFalse(unexpected) def test_normal_oxygen(self): - mol = Molecule(atoms=[Atom(element='O', lone_pairs=2)]) + mol = Molecule(atoms=[Atom(element="O", lone_pairs=2)]) unexpected = _has_unexpected_lone_pairs(mol) self.assertFalse(unexpected) def test_oxygen_3_lone_pairs(self): - mol = Molecule(atoms=[Atom(element='O', lone_pairs=3)]) + mol = Molecule(atoms=[Atom(element="O", lone_pairs=3)]) unexpected = _has_unexpected_lone_pairs(mol) self.assertTrue(unexpected) class CreateAugmentedLayersTest(unittest.TestCase): def test_methane(self): - smi = 'C' + smi = "C" mol = Molecule().from_smiles(smi) ulayer, player = create_augmented_layers(mol) self.assertTrue(not ulayer) @@ -274,7 +285,7 @@ def test_singlet_methylene(self): mol = Molecule().from_adjacency_list(adjlist) ulayer, player = create_augmented_layers(mol) self.assertTrue(not ulayer) - self.assertEquals(P_LAYER_PREFIX + '1', player) + self.assertEquals(P_LAYER_PREFIX + "1", player) def test_triplet_methylene(self): adjlist = """ @@ -285,7 +296,7 @@ def test_triplet_methylene(self): """ mol = Molecule().from_adjacency_list(adjlist) ulayer, player = create_augmented_layers(mol) - self.assertEquals(U_LAYER_PREFIX + '1,1', ulayer) + self.assertEquals(U_LAYER_PREFIX + "1,1", ulayer) self.assertTrue(not player) @work_in_progress @@ -303,13 +314,12 @@ def test_nitrate(self): mol = Molecule().from_adjacency_list(adjlist) ulayer, player = create_augmented_layers(mol) self.assertTrue(not ulayer) - self.assertTrue(player.contains(P_LAYER_PREFIX + '1(0)')) + self.assertTrue(player.contains(P_LAYER_PREFIX + "1(0)")) class ResetLonePairsTest(unittest.TestCase): - def test_methane(self): - smi = 'C' + smi = "C" mol = Molecule().from_smiles(smi) p_indices = [] @@ -331,11 +341,11 @@ def test_singlet_methylene(self): _reset_lone_pairs(mol, p_indices) for at in mol.atoms: - if at.symbol == 'C': + if at.symbol == "C": self.assertEquals(at.lone_pairs, 1) else: self.assertEquals(at.lone_pairs, 0) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/test/rmgpy/molecule/isomorphismTest.py b/test/rmgpy/molecule/isomorphismTest.py index d7667bbf53..9c4419fbd5 100644 --- a/test/rmgpy/molecule/isomorphismTest.py +++ b/test/rmgpy/molecule/isomorphismTest.py @@ -37,7 +37,7 @@ from rmgpy.molecule.group import Group from rmgpy.molecule.molecule import Molecule -molecule_atom_types = ['C', 'O', 'N', 'S', 'P', 'Si', 'Cl', 'Br', 'I', 'F'] +molecule_atom_types = ["C", "O", "N", "S", "P", "Si", "Cl", "Br", "I", "F"] group_atomtypes = {} for item in create_atom_types(): @@ -61,7 +61,7 @@ def get_lone_pairs(atom_type): def get_molecule_string(element, unpaired_electrons, charge): lp = get_lone_pairs(element) - charge = '+1' if charge == 1 else charge + charge = "+1" if charge == 1 else charge adjList = "1 {0} u{1} p{2} c{3}".format(element, unpaired_electrons, lp, charge) return adjList @@ -69,16 +69,17 @@ def get_molecule_string(element, unpaired_electrons, charge): def get_group_string(element, unpaired_electrons, charge): mult = get_multiplicity(unpaired_electrons) - s = 'multiplicity [{0}]\n'.format(mult) + s = "multiplicity [{0}]\n".format(mult) return s + get_molecule_string(element, unpaired_electrons, charge) def create_molecule(element, u1, c1): from rmgpy.molecule.adjlist import InvalidAdjacencyListError + adjlist = get_molecule_string(element, u1, c1) - logging.info('Creating molecule: {0}'.format(adjlist)) + logging.info("Creating molecule: {0}".format(adjlist)) mol = None - if element == 'P' and c1 == 1 and get_lone_pairs(element) == 1: + if element == "P" and c1 == 1 and get_lone_pairs(element) == 1: # AtomTypeError is raised when phosphorus has +1 partial charge and 1 lone pair. # Although this will not raise InvalidAdjacencyListError, these are chemically infeasible. pass @@ -101,8 +102,17 @@ def retrieve_unspecified_valency(atom_type, unpaired_electrons): if atom_type not in molecule_atom_types: t = group_atomtypes[atom_type] order = 2 * t.double + 3 * t.triple + int(3 * t.benzene / 2) - return PeriodicSystem.valence_electrons[t.element] - 2 * t.lp - unpaired_electrons - order - return PeriodicSystem.valence_electrons[atom_type] - 2 * PeriodicSystem.lone_pairs[atom_type] - unpaired_electrons + return ( + PeriodicSystem.valence_electrons[t.element] + - 2 * t.lp + - unpaired_electrons + - order + ) + return ( + PeriodicSystem.valence_electrons[atom_type] + - 2 * PeriodicSystem.lone_pairs[atom_type] + - unpaired_electrons + ) def load_cases_group_atom_types(): @@ -122,7 +132,9 @@ def load_cases_group_atom_types(): cross_element_unpaired = list(itertools.product(a_types, u_e)) for item in cross_element_unpaired: - charges = [] # list containing tuples of charge for graph 1 and graph 2 [(0,0), (0,1), ...] + charges = ( + [] + ) # list containing tuples of charge for graph 1 and graph 2 [(0,0), (0,1), ...] # for each atom we need to determine the unspecified valency, and generate # a list of possible charges that go along with that unspecified valency. @@ -132,8 +144,14 @@ def load_cases_group_atom_types(): # if the unspecified valency allows for that. charges.append(list(range(min(val, 1) + 1))) - charge_combos = list(itertools.product(charges[0], charges[1])) # cross product for both graphs - for charge_combo in charge_combos: # combine charge tuple with the cross product of element and unpaired + charge_combos = list( + itertools.product(charges[0], charges[1]) + ) # cross product for both graphs + for ( + charge_combo + ) in ( + charge_combos + ): # combine charge tuple with the cross product of element and unpaired output.append(item[0] + item[1] + tuple(charge_combo)) return output @@ -146,11 +164,13 @@ def load_cases_molecule_atom_types(): """ output = [] a_types = list(itertools.product(molecule_atom_types, repeat=2)) - uncharged_a_types = ['Cl', 'Br', 'I', 'F'] + uncharged_a_types = ["Cl", "Br", "I", "F"] unpaired_electrons = list(itertools.product(list(range(3)), repeat=2)) cross_element_unpaired = list(itertools.product(a_types, unpaired_electrons)) for item in cross_element_unpaired: - charges = [] # list containing tuples of charge for graph 1 and graph 2 [(0,0), (0,1), ...] + charges = ( + [] + ) # list containing tuples of charge for graph 1 and graph 2 [(0,0), (0,1), ...] # for each atom we need to determine the unspecified valency, and generate # a list of possible charges that go along with that unspecified valency. @@ -163,8 +183,14 @@ def load_cases_molecule_atom_types(): else: charges.append((0, 0)) - charge_combos = list(itertools.product(charges[0], charges[1])) # cross product for both graphs - for charge_combo in charge_combos: # combine charge tuple with the cross product of element and unpaired + charge_combos = list( + itertools.product(charges[0], charges[1]) + ) # cross product for both graphs + for ( + charge_combo + ) in ( + charge_combos + ): # combine charge tuple with the cross product of element and unpaired output.append(item[0] + item[1] + tuple(charge_combo)) return output @@ -197,7 +223,9 @@ def is_isomorphic_mol_atom_types(e1, e2, u1, u2, c1, c2): mol2, adjlist2 = create_molecule(e2, u2, c2) exp = mol_atom_type_comparison(e1, e2, u1, u2, c1, c2) - err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format(adjlist1, adjlist2, exp) + err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format( + adjlist1, adjlist2, exp + ) if mol1 is not None and mol2 is not None: calc = mol1.is_isomorphic(mol2) @@ -213,7 +241,9 @@ def find_isomorphisms_mol_atom_types(e1, e2, u1, u2, c1, c2): mol2, adjlist2 = create_molecule(e2, u2, c2) exp = mol_atom_type_comparison(e1, e2, u1, u2, c1, c2) - err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format(adjlist1, adjlist2, exp) + err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format( + adjlist1, adjlist2, exp + ) if mol1 is not None and mol2 is not None: calc = len(mol1.find_isomorphism(mol2)) > 0 @@ -223,22 +253,29 @@ def is_subgraph_isomorphic_mol_atom_types(e1, e2, u1, u2, c1, c2): mol1, adjlist1 = create_molecule(e1, u1, c1) group1, adjlist2 = create_group(e2, u2, c2) - exp = mol_atom_type_comparison(e1, e2, u1, u2, c1, c2) # string comparison will give us expected value! + exp = mol_atom_type_comparison( + e1, e2, u1, u2, c1, c2 + ) # string comparison will give us expected value! - err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format(adjlist1, adjlist2, exp) + err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format( + adjlist1, adjlist2, exp + ) if mol1 is not None and group1 is not None: calc = mol1.is_subgraph_isomorphic(group1) assert_equal(calc, exp, err) def find_subgraph_isomorphisms_mol_atom_types(e1, e2, u1, u2, c1, c2): - mol1, adjlist1 = create_molecule(e1, u1, c1) group1, adjlist2 = create_group(e2, u2, c2) - exp = mol_atom_type_comparison(e1, e2, u1, u2, c1, c2) # string comparison will give us expected value! + exp = mol_atom_type_comparison( + e1, e2, u1, u2, c1, c2 + ) # string comparison will give us expected value! - err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format(adjlist1, adjlist2, exp) + err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format( + adjlist1, adjlist2, exp + ) if mol1 is not None and group1 is not None: calc = len(mol1.find_subgraph_isomorphisms(group1)) > 0 @@ -267,9 +304,12 @@ def is_isomorphic_mol_group_atom_types(e1, e2, u1, u2, c1, c2): if mol1 is not None and group1 is not None: a1 = mol1.atoms[0].atomtype a2 = group1.atoms[0].atomtype[0] - exp = group_atom_type_comparison(a1, a2, u1, u2, c1, - c2) # string comparison will give us expected value! - err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format(adjlist1, adjlist2, exp) + exp = group_atom_type_comparison( + a1, a2, u1, u2, c1, c2 + ) # string comparison will give us expected value! + err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format( + adjlist1, adjlist2, exp + ) calc = mol1.is_subgraph_isomorphic(group1) assert_equal(calc, exp, err) @@ -281,7 +321,9 @@ def find_subgraph_isomorphisms_mol_group_atom_types(e1, e2, u1, u2, c1, c2): a1 = mol1.atoms[0].atomtype a2 = group1.atoms[0].atomtype[0] exp = group_atom_type_comparison(a1, a2, u1, u2, c1, c2) - err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format(adjlist1, adjlist2, exp) + err = "\nGraph 1: {0},\nGraph 2: {1}. \nExpected: {2}".format( + adjlist1, adjlist2, exp + ) calc = len(mol1.find_subgraph_isomorphisms(group1)) > 0 assert_equal(calc, exp, err) @@ -304,19 +346,25 @@ def test_multiplicity_mol_mol_distinct_multiplicity(): """ distinct multiplicity for both molecules set by user. """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ multiplicity 1 1 C u1 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} 3 C u1 p0 c0 {2,S} - """, saturate_h=True) + """, + saturate_h=True, + ) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ multiplicity 3 1 C u1 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} 3 C u1 p0 c0 {2,S} - """, saturate_h=True) + """, + saturate_h=True, + ) assert_false(mol.is_isomorphic(mol2)) assert_false(len(mol.find_isomorphism(mol2)) > 0) @@ -326,15 +374,21 @@ def test_multiplicity_mol_mol_identical_multiplicity(): """ identical multiplicity for both molecules set by user. """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) assert_true(mol.is_isomorphic(mol2)) assert_true(len(mol.find_isomorphism(mol2)) > 0) @@ -344,14 +398,20 @@ def test_multiplicity_mol_not_specified_mol_specified(): """ Multiplicity not set for one of two molecules """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) assert_true(mol.is_isomorphic(mol2)) assert_true(len(mol.find_isomorphism(mol2)) > 0) @@ -361,26 +421,37 @@ def test_multiplicity_mol_not_specified_mol_not_specified(): """ Both multiplicities not set. """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ 1 C u2 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) assert_true(mol.is_isomorphic(mol2)) assert_true(len(mol.find_isomorphism(mol2)) > 0) def test_isomorphism__r(): - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) - gp = Group().from_adjacency_list(""" + gp = Group().from_adjacency_list( + """ 1 R u0 p0 c0 - """) + """ + ) assert_true(len(mol.find_subgraph_isomorphisms(gp)) > 0) @@ -389,34 +460,45 @@ def test_isomorphism_mol_group_not_identical(): """ Testing multiplicities in mol and group that don't match """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 - """, saturate_h=True) + """, + saturate_h=True, + ) - gp = Group().from_adjacency_list(""" + gp = Group().from_adjacency_list( + """ multiplicity [2] 1 R u0 p0 c0 - """) + """ + ) assert_false(mol.is_subgraph_isomorphic(gp)) assert_false(len(mol.find_subgraph_isomorphisms(gp)) > 0) def test_isomorphism_group_group(): """ - Testing multiplicities in group vs. group + Testing multiplicities in group vs. group """ - gp1 = Group().from_adjacency_list(""" + gp1 = Group().from_adjacency_list( + """ 1 R u0 p0 c0 - """) + """ + ) - gp2 = Group().from_adjacency_list(""" + gp2 = Group().from_adjacency_list( + """ multiplicity [2] 1 R u0 p0 c0 - """) + """ + ) - gp3 = Group().from_adjacency_list(""" + gp3 = Group().from_adjacency_list( + """ 1 C u0 p0 c0 - """) + """ + ) assert_false(gp1.is_subgraph_isomorphic(gp2)) assert_false(len(gp1.find_subgraph_isomorphisms(gp2)) > 0) @@ -436,27 +518,33 @@ def test_isomorphism_sulfur_group_sulfur_molecule(): """ Test isormophism check of a CS group vs. a sulfur containing molecule """ - gp1 = Group().from_adjacency_list(""" + gp1 = Group().from_adjacency_list( + """ 1 S u0 {2,S} {3,S} 2 H u0 {1,S} 3 C u0 {1,S} {4,D} 4 S u0 {3,D} -""") +""" + ) - gp2 = Group().from_adjacency_list(""" + gp2 = Group().from_adjacency_list( + """ 1 S u0 {2,S} {3,S} 2 H u0 {1,S} 3 CS u0 {1,S} {4,D} 4 S u0 {3,D} -""") +""" + ) - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 S 0 {2,S} {3,S} 2 H 0 {1,S} 3 C 0 {1,S} {4,D} {5,S} 4 S 0 {3,D} 5 H 0 {3,S} -""") +""" + ) assert_true(mol.is_subgraph_isomorphic(gp1)) assert_true(mol.is_subgraph_isomorphic(gp2)) @@ -466,37 +554,45 @@ def test_isotope_subgraph_isomorphism_molecule_and_group(): """ Checks that subgraph isomorphism works with enriched molecules and groups """ - methanei = Molecule().from_adjacency_list(""" + methanei = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} - """) - methane = Molecule().from_adjacency_list(""" + """ + ) + methane = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} - """) - group_methane = Group().from_adjacency_list(""" + """ + ) + group_methane = Group().from_adjacency_list( + """ 1 C u0 {2,S} {3,S} {4,S} {5,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} - """) + """ + ) assert_true(methanei.is_subgraph_isomorphic(group_methane)) assert_true(methane.is_subgraph_isomorphic(group_methane)) assert_false(methanei.is_isomorphic(methane)) + def test_isomorphism_wrong_mapping(): """ Checks isomorphism finds things not isomorphic if given a wrong mapping. """ # These molecules are not isomorphic - n1butane = Molecule().from_adjacency_list(""" + n1butane = Molecule().from_adjacency_list( + """ 1 *1 X u0 p0 c0 {2,S} 2 *2 C u0 p0 c0 {1,S} {3,S} {5,S} {6,S} 3 *3 C u0 p0 c0 {2,S} {4,S} {7,S} {8,S} @@ -511,9 +607,11 @@ def test_isomorphism_wrong_mapping(): 12 H u0 p0 c0 {11,S} 13 H u0 p0 c0 {11,S} 14 H u0 p0 c0 {11,S} - """) + """ + ) - n2butane = Molecule().from_adjacency_list(""" + n2butane = Molecule().from_adjacency_list( + """ 1 *1 X u0 p0 c0 {3,S} 2 *2 C u0 p0 c0 {3,S} {5,S} {6,S} {4,S} 3 *3 C u0 p0 c0 {2,S} {1,S} {7,S} {8,S} @@ -528,11 +626,14 @@ def test_isomorphism_wrong_mapping(): 12 H u0 p0 c0 {11,S} 13 H u0 p0 c0 {11,S} 14 H u0 p0 c0 {11,S} - """) + """ + ) assert_false(n1butane.is_isomorphic(n2butane)) assert_false(n1butane.is_isomorphic(n2butane, generate_initial_map=True)) - + mapping = {} - for label in ['*1', '*2', '*3', '*4']: - mapping[n1butane.get_labeled_atoms(label)[0]] = n2butane.get_labeled_atoms(label)[0] + for label in ["*1", "*2", "*3", "*4"]: + mapping[n1butane.get_labeled_atoms(label)[0]] = n2butane.get_labeled_atoms( + label + )[0] assert_false(n1butane.is_isomorphic(n2butane, initial_map=mapping)) diff --git a/test/rmgpy/molecule/kekulizeTest.py b/test/rmgpy/molecule/kekulizeTest.py index 22b37e81d2..b5f670198a 100644 --- a/test/rmgpy/molecule/kekulizeTest.py +++ b/test/rmgpy/molecule/kekulizeTest.py @@ -34,10 +34,10 @@ class KekulizeTest(unittest.TestCase): - def setUp(self): """To be run before each test.""" - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {6,B} {7,S} 2 C u0 p0 c0 {1,B} {3,B} {8,S} 3 C u0 p0 c0 {2,B} {4,B} {9,S} @@ -50,14 +50,17 @@ def setUp(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -""") +""" + ) bonds = set() for atom in molecule.atoms: bonds.update(list(atom.bonds.values())) ring_atoms, ring_bonds = molecule.get_aromatic_rings() - self.aromatic_ring = AromaticRing(ring_atoms[0], set(ring_bonds[0]), bonds - set(ring_bonds[0])) + self.aromatic_ring = AromaticRing( + ring_atoms[0], set(ring_bonds[0]), bonds - set(ring_bonds[0]) + ) def test_aromatic_ring(self): """Test that the AromaticRing class works properly for kekulization.""" @@ -73,7 +76,10 @@ def test_aromatic_ring(self): def test_aromatic_bond(self): """Test that the AromaticBond class works properly for kekulization.""" self.aromatic_ring.process_bonds() - resolved, unresolved = self.aromatic_ring.resolved, self.aromatic_ring.unresolved + resolved, unresolved = ( + self.aromatic_ring.resolved, + self.aromatic_ring.unresolved, + ) self.assertEqual(len(resolved), 0) self.assertEqual(len(unresolved), 6) diff --git a/test/rmgpy/molecule/moleculeTest.py b/test/rmgpy/molecule/moleculeTest.py index 39ba361e03..88daabfe8c 100644 --- a/test/rmgpy/molecule/moleculeTest.py +++ b/test/rmgpy/molecule/moleculeTest.py @@ -46,12 +46,18 @@ def setUp(self): """ A method called before each unit test in this class. """ - self.atom = Atom(element=get_element('C'), radical_electrons=1, charge=0, label='*1', lone_pairs=0) + self.atom = Atom( + element=get_element("C"), + radical_electrons=1, + charge=0, + label="*1", + lone_pairs=0, + ) - self.atom1 = Atom(element=get_element('C'), radical_electrons=0, lone_pairs=0) - self.atom2 = Atom(element=get_element('C'), radical_electrons=0, lone_pairs=0) - self.atom3 = Atom(element=get_element('C'), radical_electrons=1, lone_pairs=0) - self.atom4 = Atom(element=get_element('H'), radical_electrons=1, lone_pairs=0) + self.atom1 = Atom(element=get_element("C"), radical_electrons=0, lone_pairs=0) + self.atom2 = Atom(element=get_element("C"), radical_electrons=0, lone_pairs=0) + self.atom3 = Atom(element=get_element("C"), radical_electrons=1, lone_pairs=0) + self.atom4 = Atom(element=get_element("H"), radical_electrons=1, lone_pairs=0) def test_mass(self): """ @@ -80,20 +86,26 @@ def test_equality(self): def test_less_than(self): """Test that we can perform less than comparison with Atom objects""" - self.assertFalse(self.atom1 < self.atom2) # Because the sorting keys should be identical + self.assertFalse( + self.atom1 < self.atom2 + ) # Because the sorting keys should be identical self.assertLess(self.atom2, self.atom3) self.assertLess(self.atom4, self.atom1) def test_greater_than(self): """Test that we can perform greater than comparison with Atom objects""" - self.assertFalse(self.atom2 > self.atom1) # Because the sorting keys should be identical + self.assertFalse( + self.atom2 > self.atom1 + ) # Because the sorting keys should be identical self.assertGreater(self.atom3, self.atom1) self.assertGreater(self.atom1, self.atom4) def test_hash(self): """Test behavior of Atom hashing using dictionaries and sets""" # Test dictionary behavior - self.assertEqual(len(dict.fromkeys([self.atom1, self.atom2, self.atom3, self.atom4])), 4) + self.assertEqual( + len(dict.fromkeys([self.atom1, self.atom2, self.atom3, self.atom4])), 4 + ) # Test set behavior self.assertEqual(len({self.atom1, self.atom2, self.atom3, self.atom4}), 4) @@ -103,8 +115,10 @@ def test_is_hydrogen(self): Test the Atom.is_hydrogen() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) - if element.symbol == 'H': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) + if element.symbol == "H": self.assertTrue(atom.is_hydrogen()) else: self.assertFalse(atom.is_hydrogen()) @@ -114,30 +128,44 @@ def test_is_non_hydrogen(self): Test the Atom.is_non_hydrogen() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) - if element.symbol == 'H': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) + if element.symbol == "H": self.assertFalse(atom.is_non_hydrogen()) else: - self.assertTrue(atom.is_non_hydrogen(), "Atom {0!r} isn't reporting is_non_hydrogen()".format(atom)) + self.assertTrue( + atom.is_non_hydrogen(), + "Atom {0!r} isn't reporting is_non_hydrogen()".format(atom), + ) def test_is_halogen(self): """ Test the Atom.is_halogen() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=3) - if element.symbol in ['F', 'Cl', 'Br', 'I']: + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=3 + ) + if element.symbol in ["F", "Cl", "Br", "I"]: self.assertTrue(atom.is_halogen()) else: - self.assertFalse(atom.is_halogen(), "Atom {0!r} is reporting is_halogen(), but it shouldn't be".format(atom)) + self.assertFalse( + atom.is_halogen(), + "Atom {0!r} is reporting is_halogen(), but it shouldn't be".format( + atom + ), + ) def test_is_carbon(self): """ Test the Atom.is_carbon() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) - if element.symbol == 'C': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) + if element.symbol == "C": self.assertTrue(atom.is_carbon()) else: self.assertFalse(atom.is_carbon()) @@ -147,8 +175,10 @@ def test_is_silicon(self): Test the Atom.is_silicon() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) - if element.symbol == 'Si': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) + if element.symbol == "Si": self.assertTrue(atom.is_silicon()) else: self.assertFalse(atom.is_silicon()) @@ -158,8 +188,10 @@ def test_is_oxygen(self): Test the Atom.is_oxygen() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=2, charge=0, label='*1', lone_pairs=2) - if element.symbol == 'O': + atom = Atom( + element=element, radical_electrons=2, charge=0, label="*1", lone_pairs=2 + ) + if element.symbol == "O": self.assertTrue(atom.is_oxygen()) else: self.assertFalse(atom.is_oxygen()) @@ -169,8 +201,10 @@ def test_is_nitrogen(self): Test the Atom.is_nitrogen() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=1) - if element.symbol == 'N': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=1 + ) + if element.symbol == "N": self.assertTrue(atom.is_nitrogen()) else: self.assertFalse(atom.is_nitrogen()) @@ -180,8 +214,10 @@ def test_is_phosphorus(self): Test the Atom.is_phosphorus() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=1) - if element.symbol == 'P': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=1 + ) + if element.symbol == "P": self.assertTrue(atom.is_phosphorus()) else: self.assertFalse(atom.is_phosphorus()) @@ -191,8 +227,10 @@ def test_is_sulfur(self): Test the Atom.is_sulfur() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=2) - if element.symbol == 'S': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=2 + ) + if element.symbol == "S": self.assertTrue(atom.is_sulfur()) else: self.assertFalse(atom.is_sulfur()) @@ -202,8 +240,10 @@ def test_is_fluorine(self): Test the Atom.is_fluorine() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=3) - if element.symbol == 'F': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=3 + ) + if element.symbol == "F": self.assertTrue(atom.is_fluorine()) else: self.assertFalse(atom.is_fluorine()) @@ -213,8 +253,10 @@ def test_is_chlorine(self): Test the Atom.is_chlorine() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=3) - if element.symbol == 'Cl': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=3 + ) + if element.symbol == "Cl": self.assertTrue(atom.is_chlorine()) else: self.assertFalse(atom.is_chlorine()) @@ -224,8 +266,10 @@ def test_is_bromine(self): Test the Atom.is_bromine() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=3) - if element.symbol == 'Br': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=3 + ) + if element.symbol == "Br": self.assertTrue(atom.is_bromine()) else: self.assertFalse(atom.is_bromine()) @@ -235,8 +279,10 @@ def test_is_iodine(self): Test the Atom.is_iodine() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=3) - if element.symbol == 'I': + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=3 + ) + if element.symbol == "I": self.assertTrue(atom.is_iodine()) else: self.assertFalse(atom.is_iodine()) @@ -246,8 +292,10 @@ def test_is_nos(self): Test the Atom.is_nos() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=2) - if element.symbol in ['N', 'O', 'S']: + atom = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=2 + ) + if element.symbol in ["N", "O", "S"]: self.assertTrue(atom.is_nos()) else: self.assertFalse(atom.is_nos()) @@ -257,8 +305,10 @@ def test_is_surface_site(self): Test the Atom.is_surface_site() method. """ for element in element_list: - atom = Atom(element=element, radical_electrons=0, charge=0, label='*1', lone_pairs=0) - if element.symbol == 'X': + atom = Atom( + element=element, radical_electrons=0, charge=0, label="*1", lone_pairs=0 + ) + if element.symbol == "X": self.assertTrue(atom.is_surface_site()) else: self.assertFalse(atom.is_surface_site()) @@ -268,7 +318,7 @@ def test_is_bonded_to_surface(self): Test the Atom.is_bonded_to_surface_site() method. """ - adsorbate = Molecule(smiles='*=O') # X=O + adsorbate = Molecule(smiles="*=O") # X=O for atom in adsorbate.atoms: if atom.is_surface_site(): self.assertFalse(atom.is_bonded_to_surface()) @@ -280,8 +330,8 @@ def test_is_bonded_to_halogen(self): Test the Atom.is_bonded_to_halogen() method. """ - cf4 = Molecule(smiles='FC(F)(F)F') # CF4 - ch4 = Molecule(smiles='C') # CH4 + cf4 = Molecule(smiles="FC(F)(F)F") # CF4 + ch4 = Molecule(smiles="C") # CH4 for atom in cf4.atoms: if atom.is_halogen(): @@ -312,9 +362,11 @@ def test_apply_action_break_bond(self): """ Test the Atom.apply_action() method for a BREAK_BOND action. """ - action = ['BREAK_BOND', '*1', 1, '*2'] + action = ["BREAK_BOND", "*1", 1, "*2"] for element in element_list: - atom0 = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom0 = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) atom = atom0.copy() atom.apply_action(action) self.assertEqual(atom0.element, atom.element) @@ -326,9 +378,11 @@ def test_apply_action_form_bond(self): """ Test the Atom.apply_action() method for a FORM_BOND action. """ - action = ['FORM_BOND', '*1', 1, '*2'] + action = ["FORM_BOND", "*1", 1, "*2"] for element in element_list: - atom0 = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom0 = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) atom = atom0.copy() atom.apply_action(action) self.assertEqual(atom0.element, atom.element) @@ -340,9 +394,11 @@ def test_apply_action_increment_bond(self): """ Test the Atom.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', 1, '*2'] + action = ["CHANGE_BOND", "*1", 1, "*2"] for element in element_list: - atom0 = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom0 = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) atom = atom0.copy() atom.apply_action(action) self.assertEqual(atom0.element, atom.element) @@ -354,9 +410,11 @@ def test_apply_action_decrement_bond(self): """ Test the Atom.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', -1, '*2'] + action = ["CHANGE_BOND", "*1", -1, "*2"] for element in element_list: - atom0 = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom0 = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) atom = atom0.copy() atom.apply_action(action) self.assertEqual(atom0.element, atom.element) @@ -368,9 +426,11 @@ def test_apply_action_gain_radical(self): """ Test the Atom.apply_action() method for a GAIN_RADICAL action. """ - action = ['GAIN_RADICAL', '*1', 1] + action = ["GAIN_RADICAL", "*1", 1] for element in element_list: - atom0 = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom0 = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) atom = atom0.copy() atom.apply_action(action) self.assertEqual(atom0.element, atom.element) @@ -382,9 +442,11 @@ def test_apply_action_lose_radical(self): """ Test the Atom.apply_action() method for a LOSE_RADICAL action. """ - action = ['LOSE_RADICAL', '*1', 1] + action = ["LOSE_RADICAL", "*1", 1] for element in element_list: - atom0 = Atom(element=element, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom0 = Atom( + element=element, radical_electrons=1, charge=0, label="*1", lone_pairs=0 + ) atom = atom0.copy() atom.apply_action(action) self.assertEqual(atom0.element, atom.element) @@ -398,8 +460,20 @@ def test_equivalent(self): """ for index1, element1 in enumerate(element_list[0:10]): for index2, element2 in enumerate(element_list[0:10]): - atom1 = Atom(element=element1, radical_electrons=1, charge=0, label='*1', lone_pairs=0) - atom2 = Atom(element=element2, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom1 = Atom( + element=element1, + radical_electrons=1, + charge=0, + label="*1", + lone_pairs=0, + ) + atom2 = Atom( + element=element2, + radical_electrons=1, + charge=0, + label="*1", + lone_pairs=0, + ) if index1 == index2: self.assertTrue(atom1.equivalent(atom2)) self.assertTrue(atom2.equivalent(atom1)) @@ -413,8 +487,20 @@ def test_is_specific_case_of(self): """ for index1, element1 in enumerate(element_list[0:10]): for index2, element2 in enumerate(element_list[0:10]): - atom1 = Atom(element=element1, radical_electrons=1, charge=0, label='*1', lone_pairs=0) - atom2 = Atom(element=element2, radical_electrons=1, charge=0, label='*1', lone_pairs=0) + atom1 = Atom( + element=element1, + radical_electrons=1, + charge=0, + label="*1", + lone_pairs=0, + ) + atom2 = Atom( + element=element2, + radical_electrons=1, + charge=0, + label="*1", + lone_pairs=0, + ) if index1 == index2: self.assertTrue(atom1.is_specific_case_of(atom2)) else: @@ -437,6 +523,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + atom = pickle.loads(pickle.dumps(self.atom)) self.assertEqual(self.atom.element.symbol, atom.element.symbol) self.assertEqual(self.atom.atomtype, atom.atomtype) @@ -449,9 +536,9 @@ def test_isotope_equivalent(self): Test the Atom.equivalent() method for non-normal isotopes """ - atom1 = Atom(element=get_element('H')) - atom2 = Atom(element=get_element('H', 2)) - atom3 = Atom(element=get_element('H')) + atom1 = Atom(element=get_element("H")) + atom2 = Atom(element=get_element("H", 2)) + atom3 = Atom(element=get_element("H")) self.assertFalse(atom1.equivalent(atom2)) self.assertTrue(atom1.equivalent(atom3)) @@ -461,16 +548,17 @@ def test_get_bond_orders_for_atom(self): Test Atom.get_total_bond_order for all carbons in naphthalene """ - m = Molecule().from_smiles('C12C(C=CC=C1)=CC=CC=2') + m = Molecule().from_smiles("C12C(C=CC=C1)=CC=CC=2") isomers = m.generate_resonance_structures() for isomer in isomers: for atom in isomer.atoms: - if atom.symbol == 'C': + if atom.symbol == "C": self.assertEqual(atom.get_total_bond_order(), 4.0) ################################################################################ + class TestBond(unittest.TestCase): """ Contains unit tests of the Bond class. @@ -497,20 +585,26 @@ def test_equality(self): def test_less_than(self): """Test that we can perform less than comparison with Bond objects""" - self.assertFalse(self.bond1 < self.bond2) # Because the sorting keys should be identical + self.assertFalse( + self.bond1 < self.bond2 + ) # Because the sorting keys should be identical self.assertLess(self.bond2, self.bond3) self.assertLess(self.bond3, self.bond4) def test_greater_than(self): """Test that we can perform greater than comparison with Bond objects""" - self.assertFalse(self.bond2 > self.bond1) # Because the sorting keys should be identical + self.assertFalse( + self.bond2 > self.bond1 + ) # Because the sorting keys should be identical self.assertGreater(self.bond3, self.bond1) self.assertGreater(self.bond4, self.bond1) def test_hash(self): """Test behavior of Bond hashing using dictionaries and sets""" # Test dictionary behavior - self.assertEqual(len(dict.fromkeys([self.bond1, self.bond2, self.bond3, self.bond4])), 4) + self.assertEqual( + len(dict.fromkeys([self.bond1, self.bond2, self.bond3, self.bond4])), 4 + ) # Test set behavior self.assertEqual(len({self.bond1, self.bond2, self.bond3, self.bond4}), 4) @@ -520,7 +614,7 @@ def test_get_order_str(self): test the Bond.get_order_str() method """ - self.assertEqual(self.bond.get_order_str(), 'D') + self.assertEqual(self.bond.get_order_str(), "D") def test_set_order_str(self): """ @@ -542,7 +636,7 @@ def test_set_order_num(self): """ self.bond.set_order_num(3) - self.assertEqual(self.bond.get_order_str(), 'T') + self.assertEqual(self.bond.get_order_str(), "T") def test_is_order(self): """ @@ -647,7 +741,7 @@ def test_decrement_order(self): self.assertTrue(bond.is_single()) elif order == 3: self.assertTrue(bond.is_double()) - elif order == 'Q': + elif order == "Q": self.assertTrue(bond.is_triple()) except ActionError: self.assertTrue(order < 1) @@ -656,14 +750,16 @@ def test_apply_action_break_bond(self): """ Test the Bond.apply_action() method for a BREAK_BOND action. """ - action = ['BREAK_BOND', '*1', 1, '*2'] + action = ["BREAK_BOND", "*1", 1, "*2"] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('Bond.apply_action() unexpectedly processed a BREAK_BOND action ' - 'with order {0}.'.format(order0)) + self.fail( + "Bond.apply_action() unexpectedly processed a BREAK_BOND action " + "with order {0}.".format(order0) + ) except ActionError: pass @@ -671,14 +767,16 @@ def test_apply_action_form_bond(self): """ Test the Bond.apply_action() method for a FORM_BOND action. """ - action = ['FORM_BOND', '*1', 1, '*2'] + action = ["FORM_BOND", "*1", 1, "*2"] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('Bond.apply_action() unexpectedly processed a FORM_BOND action ' - 'with order {0}.'.format(order0)) + self.fail( + "Bond.apply_action() unexpectedly processed a FORM_BOND action " + "with order {0}.".format(order0) + ) except ActionError: pass @@ -686,40 +784,44 @@ def test_apply_action_increment_bond(self): """ Test the Bond.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', 1, '*2'] + action = ["CHANGE_BOND", "*1", 1, "*2"] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) except ActionError: - self.assertTrue(4 <= order0, 'Test failed with order {0}'.format(order0)) + self.assertTrue( + 4 <= order0, "Test failed with order {0}".format(order0) + ) def test_apply_action_decrement_bond(self): """ Test the Bond.apply_action() method for a CHANGE_BOND action. """ - action = ['CHANGE_BOND', '*1', -1, '*2'] + action = ["CHANGE_BOND", "*1", -1, "*2"] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) except ActionError: - self.assertTrue(order0 < 1, 'Test failed with order {0}'.format(order0)) + self.assertTrue(order0 < 1, "Test failed with order {0}".format(order0)) def test_apply_action_gain_radical(self): """ Test the Bond.apply_action() method for a GAIN_RADICAL action. """ - action = ['GAIN_RADICAL', '*1', 1] + action = ["GAIN_RADICAL", "*1", 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('Bond.apply_action() unexpectedly processed a GAIN_RADICAL action ' - 'with order {0}.'.format(order0)) + self.fail( + "Bond.apply_action() unexpectedly processed a GAIN_RADICAL action " + "with order {0}.".format(order0) + ) except ActionError: pass @@ -727,14 +829,16 @@ def test_apply_action_lose_radical(self): """ Test the Bond.apply_action() method for a LOSE_RADICAL action. """ - action = ['LOSE_RADICAL', '*1', 1] + action = ["LOSE_RADICAL", "*1", 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.apply_action(action) - self.fail('Bond.apply_action() unexpectedly processed a LOSE_RADICAL action ' - 'with order {0}.'.format(order0)) + self.fail( + "Bond.apply_action() unexpectedly processed a LOSE_RADICAL action " + "with order {0}.".format(order0) + ) except ActionError: pass @@ -779,6 +883,7 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + bond = pickle.loads(pickle.dumps(self.bond)) self.assertEqual(self.bond.order, bond.order) @@ -786,19 +891,26 @@ def test_update_lone_pairs(self): """ Test that update_lone_pairs works as expected """ - mol_n1sc_n5t = Molecule().from_adjacency_list(""" + mol_n1sc_n5t = Molecule().from_adjacency_list( + """ 1 N u0 p0 c+1 {2,T} {4,S} 2 N u0 p0 c+1 {1,T} {3,S} 3 N u0 p3 c-2 {2,S} - 4 H u0 p0 c0 {1,S}""") - mol_n1s = Molecule().from_adjacency_list(""" + 4 H u0 p0 c0 {1,S}""" + ) + mol_n1s = Molecule().from_adjacency_list( + """ 1 N u0 p2 c0 {2,S} - 2 H u0 p0 c0 {1,S}""") - mol_n3s = Molecule().from_adjacency_list(""" + 2 H u0 p0 c0 {1,S}""" + ) + mol_n3s = Molecule().from_adjacency_list( + """ multiplicity 3 1 N u2 p1 c0 {2,S} - 2 H u0 p0 c0 {1,S}""") - mol_n3b = Molecule().from_adjacency_list(""" + 2 H u0 p0 c0 {1,S}""" + ) + mol_n3b = Molecule().from_adjacency_list( + """ 1 N u0 p1 c0 {2,D} {6,S} 2 C u0 p0 c0 {1,D} {3,S} {7,S} 3 C u0 p0 c0 {2,S} {4,D} {8,S} @@ -809,32 +921,43 @@ def test_update_lone_pairs(self): 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {4,S} 10 H u0 p0 c0 {5,S} - 11 H u0 p0 c0 {6,S}""") - mol_n5s = Molecule().from_adjacency_list(""" + 11 H u0 p0 c0 {6,S}""" + ) + mol_n5s = Molecule().from_adjacency_list( + """ multiplicity 2 1 N u1 p0 c+1 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} - 4 O u0 p3 c-1 {1,S}""") - mol_n5d = Molecule().from_adjacency_list(""" + 4 O u0 p3 c-1 {1,S}""" + ) + mol_n5d = Molecule().from_adjacency_list( + """ 1 N u0 p0 c+1 {2,D} {3,S} {4,S} 2 O u0 p2 c0 {1,D} 3 O u0 p2 c0 {1,S} {5,S} 4 O u0 p3 c-1 {1,S} - 5 H u0 p0 c0 {3,S}""") - mol_n5dd = Molecule().from_adjacency_list(""" + 5 H u0 p0 c0 {3,S}""" + ) + mol_n5dd = Molecule().from_adjacency_list( + """ 1 N u0 p2 c-1 {2,D} 2 N u0 p0 c+1 {1,D} {3,D} - 3 O u0 p2 c0 {2,D}""") - mol_ch2_s = Molecule().from_adjacency_list(""" + 3 O u0 p2 c0 {2,D}""" + ) + mol_ch2_s = Molecule().from_adjacency_list( + """ 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} - 3 H u0 p0 c0 {1,S}""") - mol_carbonyl = Molecule().from_adjacency_list(""" + 3 H u0 p0 c0 {1,S}""" + ) + mol_carbonyl = Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,S} {4,S} 3 H u0 p0 c0 {2,S} - 4 H u0 p0 c0 {2,S}""") + 4 H u0 p0 c0 {2,S}""" + ) mol_n1sc_n5t.update_lone_pairs() mol_n1s.update_lone_pairs() @@ -866,8 +989,13 @@ def test_update_lone_pairs(self): def test_get_bond_string(self): """Test that bond objects can return a bond string""" - bond = Bond(atom1=Atom(element=get_element(1)), atom2=Atom(element=get_element(6)), order=1) - self.assertEqual(bond.get_bond_string(), 'C-H') + bond = Bond( + atom1=Atom(element=get_element(1)), + atom2=Atom(element=get_element(6)), + order=1, + ) + self.assertEqual(bond.get_bond_string(), "C-H") + ################################################################################ @@ -894,13 +1022,15 @@ def setUp(self): 3 O u0 p3 c-1 {2,S} 4 O u0 p2 {2,D} """ - self.molecule.append(Molecule().from_adjacency_list(self.adjlist_2, saturate_h=True)) + self.molecule.append( + Molecule().from_adjacency_list(self.adjlist_2, saturate_h=True) + ) - self.mHBonds = Molecule().from_smiles('C(NC=O)OO') + self.mHBonds = Molecule().from_smiles("C(NC=O)OO") - self.mol1 = Molecule(smiles='C') - self.mol2 = Molecule(smiles='C') - self.mol3 = Molecule(smiles='CC') + self.mol1 = Molecule(smiles="C") + self.mol2 = Molecule(smiles="C") + self.mol3 = Molecule(smiles="CC") def test_equality(self): """Test that we can perform equality comparison with Molecule objects""" @@ -910,12 +1040,16 @@ def test_equality(self): def test_less_than(self): """Test that we can perform less than comparison with Molecule objects""" - self.assertFalse(self.mol1 < self.mol2) # Because the sorting keys should be identical + self.assertFalse( + self.mol1 < self.mol2 + ) # Because the sorting keys should be identical self.assertLess(self.mol1, self.mol3) def test_greater_than(self): """Test that we can perform greater than comparison with Molecule objects""" - self.assertFalse(self.mol2 > self.mol1) # Because the sorting keys should be identical + self.assertFalse( + self.mol2 > self.mol1 + ) # Because the sorting keys should be identical self.assertGreater(self.mol3, self.mol1) def test_hash(self): @@ -932,30 +1066,34 @@ def test_clear_labeled_atoms(self): """ self.molecule[0].clear_labeled_atoms() for atom in self.molecule[0].atoms: - self.assertEqual(atom.label, '') + self.assertEqual(atom.label, "") def test_contains_labeled_atom(self): """ Test the Molecule.contains_labeled_atom() method. """ for atom in self.molecule[0].atoms: - if atom.label != '': + if atom.label != "": self.assertTrue(self.molecule[0].contains_labeled_atom(atom.label)) - self.assertFalse(self.molecule[0].contains_labeled_atom('*3')) - self.assertFalse(self.molecule[0].contains_labeled_atom('*4')) - self.assertFalse(self.molecule[0].contains_labeled_atom('*5')) - self.assertFalse(self.molecule[0].contains_labeled_atom('*6')) + self.assertFalse(self.molecule[0].contains_labeled_atom("*3")) + self.assertFalse(self.molecule[0].contains_labeled_atom("*4")) + self.assertFalse(self.molecule[0].contains_labeled_atom("*5")) + self.assertFalse(self.molecule[0].contains_labeled_atom("*6")) def test_get_labeled_atom(self): """ Test the Molecule.get_labeled_atoms() method. """ for atom in self.molecule[0].atoms: - if atom.label != '': - self.assertEqual(atom, self.molecule[0].get_labeled_atoms(atom.label)[0]) + if atom.label != "": + self.assertEqual( + atom, self.molecule[0].get_labeled_atoms(atom.label)[0] + ) try: - self.molecule[0].get_labeled_atoms('*3')[0] - self.fail('Unexpected successful return from Molecule.get_labeled_atoms() with invalid atom label.') + self.molecule[0].get_labeled_atoms("*3")[0] + self.fail( + "Unexpected successful return from Molecule.get_labeled_atoms() with invalid atom label." + ) except ValueError: pass @@ -965,14 +1103,15 @@ def test_get_labeled_atoms(self): """ labeled = self.molecule[0].get_all_labeled_atoms() for atom in self.molecule[0].atoms: - if atom.label != '': + if atom.label != "": self.assertTrue(atom.label in labeled) self.assertTrue(atom in list(labeled.values())) else: self.assertFalse(atom.label in labeled) self.assertFalse(atom in list(labeled.values())) - multiple_label_molecule = Molecule().from_adjacency_list(""" + multiple_label_molecule = Molecule().from_adjacency_list( + """ 1 * C u0 p0 c0 {2,S} {3,S} {5,S} {6,S} 2 * C u0 p0 c0 {1,S} {4,S} {7,S} {8,S} 3 * C u0 p0 c0 {1,S} {9,S} {10,S} {11,S} @@ -987,28 +1126,33 @@ def test_get_labeled_atoms(self): 12 H u0 p0 c0 {4,S} 13 H u0 p0 c0 {4,S} 14 H u0 p0 c0 {4,S} -""") +""" + ) labeled = multiple_label_molecule.get_all_labeled_atoms() - self.assertTrue('*' in labeled) - self.assertTrue('*1' in labeled) - self.assertEqual(len(labeled['*']), 4) - self.assertEqual(len(labeled['*1']), 3) + self.assertTrue("*" in labeled) + self.assertTrue("*1" in labeled) + self.assertEqual(len(labeled["*"]), 4) + self.assertEqual(len(labeled["*1"]), 3) def test_get_formula(self): """ Test the Molecule.get_all_labeled_atoms() method. """ - self.assertEqual(self.molecule[0].get_formula(), 'CH2NO2') - self.assertEqual(self.molecule[1].get_formula(), 'CH2NO2') + self.assertEqual(self.molecule[0].get_formula(), "CH2NO2") + self.assertEqual(self.molecule[1].get_formula(), "CH2NO2") def test_radical_count(self): """ Test the Molecule.get_radical_count() method. """ - self.assertEqual(self.molecule[0].get_radical_count(), - sum([atom.radical_electrons for atom in self.molecule[0].atoms])) - self.assertEqual(self.molecule[1].get_radical_count(), - sum([atom.radical_electrons for atom in self.molecule[1].atoms])) + self.assertEqual( + self.molecule[0].get_radical_count(), + sum([atom.radical_electrons for atom in self.molecule[0].atoms]), + ) + self.assertEqual( + self.molecule[1].get_radical_count(), + sum([atom.radical_electrons for atom in self.molecule[1].atoms]), + ) def test_get_molecular_weight(self): """ @@ -1039,23 +1183,23 @@ def test_from_adjacency_list(self): bond23 = atom2.bonds[atom3] bond24 = atom2.bonds[atom4] - self.assertTrue(atom1.label == '*1') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*1") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 1) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '*2') - self.assertTrue(atom2.element.symbol == 'N') + self.assertTrue(atom2.label == "*2") + self.assertTrue(atom2.element.symbol == "N") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 1) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.element.symbol == 'O') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.element.symbol == "O") self.assertTrue(atom3.radical_electrons == 0) self.assertTrue(atom3.charge == -1) - self.assertTrue(atom4.label == '') - self.assertTrue(atom4.element.symbol == 'O') + self.assertTrue(atom4.label == "") + self.assertTrue(atom4.element.symbol == "O") self.assertTrue(atom4.radical_electrons == 0) self.assertTrue(atom4.charge == 0) @@ -1080,23 +1224,23 @@ def test_from_adjacency_list(self): bond23 = atom2.bonds[atom3] bond24 = atom2.bonds[atom4] - self.assertTrue(atom1.label == '*1') - self.assertTrue(atom1.element.symbol == 'C') + self.assertTrue(atom1.label == "*1") + self.assertTrue(atom1.element.symbol == "C") self.assertTrue(atom1.radical_electrons == 1) self.assertTrue(atom1.charge == 0) - self.assertTrue(atom2.label == '*2') - self.assertTrue(atom2.element.symbol == 'N') + self.assertTrue(atom2.label == "*2") + self.assertTrue(atom2.element.symbol == "N") self.assertTrue(atom2.radical_electrons == 0) self.assertTrue(atom2.charge == 1) - self.assertTrue(atom3.label == '') - self.assertTrue(atom3.element.symbol == 'O') + self.assertTrue(atom3.label == "") + self.assertTrue(atom3.element.symbol == "O") self.assertTrue(atom3.radical_electrons == 0) self.assertTrue(atom3.charge == -1) - self.assertTrue(atom4.label == '') - self.assertTrue(atom4.element.symbol == 'O') + self.assertTrue(atom4.label == "") + self.assertTrue(atom4.element.symbol == "O") self.assertTrue(atom4.radical_electrons == 0) self.assertTrue(atom4.charge == 0) @@ -1116,12 +1260,13 @@ def test_isomorphism(self): """ Check the graph isomorphism functions. """ - molecule1 = Molecule().from_smiles('C=CC=C[CH]C') - molecule2 = Molecule().from_smiles('C[CH]C=CC=C') + molecule1 = Molecule().from_smiles("C=CC=C[CH]C") + molecule2 = Molecule().from_smiles("C[CH]C=CC=C") self.assertTrue(molecule1.is_isomorphic(molecule2)) self.assertTrue(molecule2.is_isomorphic(molecule1)) - molecule1 = Molecule().from_adjacency_list(""" + molecule1 = Molecule().from_adjacency_list( + """ multiplicity 2 1 *1 C u0 p0 c0 {2,D} {8,S} {9,S} 2 C u0 p0 c0 {1,D} {3,S} {10,S} @@ -1137,8 +1282,10 @@ def test_isomorphism(self): 12 H u0 p0 c0 {4,S} 13 H u0 p0 c0 {7,S} 14 H u0 p0 c0 {7,S} -15 H u0 p0 c0 {7,S}""") - molecule2 = Molecule().from_adjacency_list(""" +15 H u0 p0 c0 {7,S}""" + ) + molecule2 = Molecule().from_adjacency_list( + """ multiplicity 2 1 *1 C u0 p0 c0 {2,D} {13,S} {9,S} 2 C u0 p0 c0 {1,D} {3,S} {10,S} @@ -1154,7 +1301,8 @@ def test_isomorphism(self): 12 H u0 p0 c0 {4,S} 13 *2 H u0 p0 c0 {1,S} 14 H u0 p0 c0 {7,S} -15 H u0 p0 c0 {7,S}""") +15 H u0 p0 c0 {7,S}""" + ) self.assertTrue(molecule1.is_isomorphic(molecule2, generate_initial_map=True)) self.assertTrue(molecule2.is_isomorphic(molecule1, generate_initial_map=True)) @@ -1163,11 +1311,13 @@ def test_subgraph_isomorphism(self): """ Check the graph isomorphism functions. """ - molecule = Molecule().from_smiles('C=CC=C[CH]C') - group = Group().from_adjacency_list(""" + molecule = Molecule().from_smiles("C=CC=C[CH]C") + group = Group().from_adjacency_list( + """ 1 Cd u0 p0 c0 {2,D} 2 Cd u0 p0 c0 {1,D} - """) + """ + ) self.assertTrue(molecule.is_subgraph_isomorphic(group)) mappings = molecule.find_subgraph_isomorphisms(group) @@ -1181,7 +1331,8 @@ def test_subgraph_isomorphism(self): def test_subgraph_isomorphism_again(self): molecule = Molecule() - molecule.from_adjacency_list(""" + molecule.from_adjacency_list( + """ 1 * C u0 p0 c0 {2,D} {7,S} {8,S} 2 C u0 p0 c0 {1,D} {3,S} {9,S} 3 C u0 p0 c0 {2,S} {4,D} {10,S} @@ -1198,15 +1349,18 @@ def test_subgraph_isomorphism_again(self): 14 H u0 p0 c0 {6,S} 15 H u0 p0 c0 {6,S} 16 H u0 p0 c0 {6,S} - """) + """ + ) group = Group() - group.from_adjacency_list(""" + group.from_adjacency_list( + """ 1 * C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p0 c0 {1,D} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - """) + """ + ) labeled1 = list(molecule.get_all_labeled_atoms().values())[0] labeled2 = list(group.get_all_labeled_atoms().values())[0] @@ -1225,7 +1379,8 @@ def test_subgraph_isomorphism_again(self): def test_subgraph_isomorphism_many_labels(self): molecule = Molecule() # specific case (species) - molecule.from_adjacency_list(""" + molecule.from_adjacency_list( + """ 1 *1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 C u0 p0 c0 {1,S} {3,S} {5,S} {6,S} 3 C u0 p0 c0 {1,S} {2,S} {7,S} {8,S} @@ -1234,14 +1389,17 @@ def test_subgraph_isomorphism_many_labels(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {3,S} 8 H u0 p0 c0 {3,S} - """) + """ + ) group = Group() # general case (functional group) - group.from_adjacency_list(""" + group.from_adjacency_list( + """ 1 *1 C u1 p0 c0 {2,S}, {3,S} 2 R!H u0 p0 c0 {1,S} 3 R!H u0 p0 c0 {1,S} - """) + """ + ) labeled1 = molecule.get_all_labeled_atoms() labeled2 = group.get_all_labeled_atoms() @@ -1259,13 +1417,17 @@ def test_subgraph_isomorphism_many_labels(self): self.assertTrue(value in group.atoms) def test_subgraph_isomorphism_rings(self): - molecule = Molecule(smiles='C1CCCC1CCC') - group_no_ring = Group().from_adjacency_list(""" + molecule = Molecule(smiles="C1CCCC1CCC") + group_no_ring = Group().from_adjacency_list( + """ 1 *1 C u0 p0 c0 r0 - """) - group_ring = Group().from_adjacency_list(""" + """ + ) + group_ring = Group().from_adjacency_list( + """ 1 *1 C u0 p0 c0 r1 - """) + """ + ) self.assertTrue(molecule.is_subgraph_isomorphic(group_no_ring)) mapping = molecule.find_subgraph_isomorphisms(group_no_ring) @@ -1276,7 +1438,8 @@ def test_subgraph_isomorphism_rings(self): def test_lax_isomorphism(self): """Test that we can do isomorphism comparison with strict=False""" - mol1 = Molecule().from_adjacency_list(""" + mol1 = Molecule().from_adjacency_list( + """ multiplicity 2 1 O u0 p2 c0 {3,D} 2 C u1 p0 c0 {3,S} {4,S} {5,S} @@ -1284,9 +1447,11 @@ def test_lax_isomorphism(self): 4 H u0 p0 c0 {2,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {3,S} - """) + """ + ) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ multiplicity 2 1 O u1 p2 c0 {3,S} 2 C u0 p0 c0 {3,D} {4,S} {5,S} @@ -1294,7 +1459,8 @@ def test_lax_isomorphism(self): 4 H u0 p0 c0 {2,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {3,S} - """) + """ + ) self.assertTrue(mol1.is_isomorphic(mol2, strict=False)) @@ -1302,7 +1468,8 @@ def test_adjacency_list(self): """ Check the adjacency list read/write functions for a full molecule. """ - molecule1 = Molecule().from_adjacency_list(""" + molecule1 = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {7,S} {8,S} 2 C u0 p0 c0 {1,D} {3,S} {9,S} 3 C u0 p0 c0 {2,S} {4,D} {10,S} @@ -1318,8 +1485,9 @@ def test_adjacency_list(self): 13 H u0 p0 c0 {6,S} 14 H u0 p0 c0 {6,S} 15 H u0 p0 c0 {6,S} - """) - molecule2 = Molecule().from_smiles('C=CC=C[CH]C') + """ + ) + molecule2 = Molecule().from_smiles("C=CC=C[CH]C") self.assertTrue(molecule1.is_isomorphic(molecule2)) self.assertTrue(molecule2.is_isomorphic(molecule1)) @@ -1413,7 +1581,7 @@ def test_sssr(self): polycyclic molecule. """ molecule = Molecule() - molecule.from_smiles('C(CC1C(C(CCCCCCCC)C1c1ccccc1)c1ccccc1)CCCCCC') + molecule.from_smiles("C(CC1C(C(CCCCCCCC)C1c1ccccc1)c1ccccc1)CCCCCC") # http://cactus.nci.nih.gov/chemical/structure/C(CC1C(C(CCCCCCCC)C1c1ccccc1)c1ccccc1)CCCCCC/image sssr = molecule.get_smallest_set_of_smallest_rings() self.assertEqual(len(sssr), 3) @@ -1422,7 +1590,7 @@ def test_is_in_cycle_ethane(self): """ Test the Molecule is_atom_in_cycle() and is_bond_in_cycle() methods with ethane. """ - molecule = Molecule().from_smiles('CC') + molecule = Molecule().from_smiles("CC") for atom in molecule.atoms: self.assertFalse(molecule.is_atom_in_cycle(atom)) for atom1 in molecule.atoms: @@ -1433,7 +1601,7 @@ def test_is_in_cycle_cyclohexane(self): """ Test the Molecule is_atom_in_cycle() and is_bond_in_cycle() methods with cyclohexane. """ - molecule = Molecule().from_inchi('InChI=1/C6H12/c1-2-4-6-5-3-1/h1-6H2') + molecule = Molecule().from_inchi("InChI=1/C6H12/c1-2-4-6-5-3-1/h1-6H2") for atom in molecule.atoms: if atom.is_hydrogen(): self.assertFalse(molecule.is_atom_in_cycle(atom)) @@ -1451,7 +1619,7 @@ def test_from_smiles_h(self): Make sure that H radical is produced properly from its SMILES representation. """ - molecule = Molecule(smiles='[H]') + molecule = Molecule(smiles="[H]") self.assertEqual(len(molecule.atoms), 1) h = molecule.atoms[0] self.assertTrue(h.is_hydrogen()) @@ -1462,7 +1630,7 @@ def test_from_inchi_h(self): Make sure that H radical is produced properly from its InChI representation. """ - molecule = Molecule().from_inchi('InChI=1/H') + molecule = Molecule().from_inchi("InChI=1/H") self.assertEqual(len(molecule.atoms), 1) h = molecule.atoms[0] self.assertTrue(h.is_hydrogen()) @@ -1473,9 +1641,10 @@ def test_pickle(self): Test that a Molecule object can be successfully pickled and unpickled with no loss of information. """ - molecule0 = Molecule().from_smiles('C=CC=C[CH2]C') + molecule0 = Molecule().from_smiles("C=CC=C[CH2]C") molecule0.update() import pickle + molecule = pickle.loads(pickle.dumps(molecule0)) self.assertEqual(len(molecule0.atoms), len(molecule.atoms)) @@ -1487,7 +1656,7 @@ def test_radical_ch(self): """ Test that the species [CH] has one radical electrons and a spin multiplicity of 2. """ - molecule = Molecule().from_smiles('[CH]') + molecule = Molecule().from_smiles("[CH]") self.assertEqual(molecule.atoms[0].radical_electrons, 1) self.assertEqual(molecule.multiplicity, 2) self.assertEqual(molecule.get_radical_count(), 1) @@ -1496,7 +1665,7 @@ def test_radical_ch2(self): """ Test that the species [CH2] has two radical electrons and a spin multiplicity of 3. """ - molecule = Molecule().from_smiles('[CH2]') + molecule = Molecule().from_smiles("[CH2]") self.assertEqual(molecule.atoms[0].radical_electrons, 2) self.assertEqual(molecule.multiplicity, 3) self.assertEqual(molecule.get_radical_count(), 2) @@ -1505,41 +1674,65 @@ def test_radical_ch2ch2ch2(self): """ Test radical count on [CH2]C[CH2] """ - molecule = Molecule().from_smiles('[CH2]C[CH2]') + molecule = Molecule().from_smiles("[CH2]C[CH2]") self.assertEqual(molecule.get_radical_count(), 2) def test_singlet_carbene(self): """Test radical and carbene count on singlet carbene.""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p1 {2,S} 2 C u0 p1 {1,S} -""", saturate_h=True) +""", + saturate_h=True, + ) self.assertEqual(mol.get_radical_count(), 0) self.assertEqual(mol.get_singlet_carbene_count(), 2) def test_triplet_carbene(self): """Test radical and carbene count on triplet carbene.""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u2 p0 {2,S} 2 C u0 p1 {1,S} -""", saturate_h=True) +""", + saturate_h=True, + ) self.assertEqual(mol.get_radical_count(), 2) self.assertEqual(mol.get_singlet_carbene_count(), 1) def test_singlet_carbon(self): """Test that get_singlet_carbene_count returns 1 for singlet carbon atom.""" - mol = Molecule().from_adjacency_list('1 C u0 p2') + mol = Molecule().from_adjacency_list("1 C u0 p2") self.assertEqual(mol.get_singlet_carbene_count(), 1) def test_smiles(self): """ Test that we can generate a few SMILES strings as expected """ - test_strings = ['[C-]#[O+]', '[C]', '[CH]', 'OO', '[H][H]', '[H]', - '[He]', '[O]', 'O', '[CH3]', 'C', '[OH]', 'CCC', - 'CC', 'N#N', '[O]O', 'C[CH2]', '[Ar]', 'CCCC', - 'O=C=O', '[C]#N', - ] + test_strings = [ + "[C-]#[O+]", + "[C]", + "[CH]", + "OO", + "[H][H]", + "[H]", + "[He]", + "[O]", + "O", + "[CH3]", + "C", + "[OH]", + "CCC", + "CC", + "N#N", + "[O]O", + "C[CH2]", + "[Ar]", + "CCCC", + "O=C=O", + "[C]#N", + ] for s in test_strings: molecule = Molecule(smiles=s) self.assertEqual(s, molecule.to_smiles()) @@ -1547,7 +1740,7 @@ def test_smiles(self): def test_kekule_to_smiles(self): """ Test that we can print SMILES strings of Kekulized structures - + The first two are different Kekule forms of the same thing. """ test_cases = { @@ -1608,111 +1801,128 @@ def test_kekule_to_smiles(self): for smiles, adjlist in test_cases.items(): m = Molecule().from_adjacency_list(adjlist) s = m.to_smiles() - self.assertEqual(s, smiles, "Generated SMILES string {0} instead of {1}".format(s, smiles)) + self.assertEqual( + s, + smiles, + "Generated SMILES string {0} instead of {1}".format(s, smiles), + ) def test_kekule_round_trip_smiles(self): """ Test that we can round-trip SMILES strings of Kekulized aromatics """ test_strings = [ - 'CC1=CC=CC=C1O', - 'CC1=C(O)C=CC=C1', + "CC1=CC=CC=C1O", + "CC1=C(O)C=CC=C1", # 'Cc1ccccc1O', # this will fail because it is Kekulized during from_smiles() ] for s in test_strings: molecule = Molecule(smiles=s) - self.assertEqual(s, molecule.to_smiles(), - "Started with {0} but ended with {1}".format(s, molecule.to_smiles())) + self.assertEqual( + s, + molecule.to_smiles(), + "Started with {0} but ended with {1}".format(s, molecule.to_smiles()), + ) def test_inchi_key(self): """ Test that InChI Key generation is working properly. """ - molecule = Molecule().from_inchi('InChI=1S/C7H12/c1-2-7-4-3-6(1)5-7/h6-7H,1-5H2') + molecule = Molecule().from_inchi( + "InChI=1S/C7H12/c1-2-7-4-3-6(1)5-7/h6-7H,1-5H2" + ) key = molecule.to_inchi_key() - self.assertEqual(key, 'UMRZSTCPUPJPOJ-UHFFFAOYSA-N') + self.assertEqual(key, "UMRZSTCPUPJPOJ-UHFFFAOYSA-N") def test_augmented_inchi(self): """ Test the Augmented InChI generation """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u1 p0 c0 {2,S} 2 C u1 p0 c0 {1,S} - """, saturate_h=True) + """, + saturate_h=True, + ) - self.assertEqual(mol.to_augmented_inchi(), 'InChI=1S/C2H4/c1-2/h1-2H2/u1,2') + self.assertEqual(mol.to_augmented_inchi(), "InChI=1S/C2H4/c1-2/h1-2H2/u1,2") def test_augmented_inchi_key(self): """ Test the Augmented InChI Key generation """ - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u1 p0 c0 {2,S} 2 C u1 p0 c0 {1,S} - """, saturate_h=True) + """, + saturate_h=True, + ) - self.assertEqual(mol.to_augmented_inchi_key(), 'VGGSQFUCUMXWEO-UHFFFAOYSA-N-u1,2') + self.assertEqual( + mol.to_augmented_inchi_key(), "VGGSQFUCUMXWEO-UHFFFAOYSA-N-u1,2" + ) def test_linear_methane(self): """ Test the Molecule.is_linear() method. """ - self.assertFalse(Molecule().from_smiles('C').is_linear()) + self.assertFalse(Molecule().from_smiles("C").is_linear()) def test_linear_ethane(self): """ Test the Molecule.is_linear() method. """ - self.assertFalse(Molecule().from_smiles('CC').is_linear()) + self.assertFalse(Molecule().from_smiles("CC").is_linear()) def test_linear_propane(self): """ Test the Molecule.is_linear() method. """ - self.assertFalse(Molecule().from_smiles('CCC').is_linear()) + self.assertFalse(Molecule().from_smiles("CCC").is_linear()) def test_linear_neopentane(self): """ Test the Molecule.is_linear() method. """ - self.assertFalse(Molecule().from_smiles('CC(C)(C)C').is_linear()) + self.assertFalse(Molecule().from_smiles("CC(C)(C)C").is_linear()) def test_linear_hydrogen(self): """ Test the Molecule.is_linear() method. """ - self.assertFalse(Molecule().from_smiles('[H]').is_linear()) + self.assertFalse(Molecule().from_smiles("[H]").is_linear()) def test_linear_oxygen(self): """ Test the Molecule.is_linear() method. """ - self.assertTrue(Molecule().from_smiles('O=O').is_linear()) + self.assertTrue(Molecule().from_smiles("O=O").is_linear()) def test_linear_carbon_dioxide(self): """ Test the Molecule.is_linear() method. """ - self.assertTrue(Molecule().from_smiles('O=C=O').is_linear()) + self.assertTrue(Molecule().from_smiles("O=C=O").is_linear()) def test_linear_acetylene(self): """ Test the Molecule.is_linear() method. """ - self.assertTrue(Molecule().from_smiles('C#C').is_linear()) + self.assertTrue(Molecule().from_smiles("C#C").is_linear()) def test_linear135_hexatriyne(self): """ Test the Molecule.is_linear() method. """ - self.assertTrue(Molecule().from_smiles('C#CC#CC#C').is_linear()) + self.assertTrue(Molecule().from_smiles("C#CC#CC#C").is_linear()) def test_aromatic_benzene(self): """ Test the Molecule.is_aromatic() method for Benzene. """ - m = Molecule().from_smiles('C1=CC=CC=C1') + m = Molecule().from_smiles("C1=CC=CC=C1") isomers = m.generate_resonance_structures() self.assertTrue(any(isomer.is_aromatic() for isomer in isomers)) @@ -1720,7 +1930,7 @@ def test_aromatic_naphthalene(self): """ Test the Molecule.is_aromatic() method for Naphthalene. """ - m = Molecule().from_smiles('C12C(C=CC=C1)=CC=CC=2') + m = Molecule().from_smiles("C12C(C=CC=C1)=CC=CC=2") isomers = m.generate_resonance_structures() self.assertTrue(any(isomer.is_aromatic() for isomer in isomers)) @@ -1728,7 +1938,7 @@ def test_aromatic_cyclohexane(self): """ Test the Molecule.is_aromatic() method for Cyclohexane. """ - m = Molecule().from_smiles('C1CCCCC1') + m = Molecule().from_smiles("C1CCCCC1") isomers = m.generate_resonance_structures() self.assertFalse(any(isomer.is_aromatic() for isomer in isomers)) @@ -1736,55 +1946,55 @@ def test_heterocyclic_cyclohexanol(self): """ Test the Molecule.is_heterocyclic() method for Cyclohexanol. """ - self.assertFalse(Molecule().from_smiles('OC1CCCCC1').is_heterocyclic()) + self.assertFalse(Molecule().from_smiles("OC1CCCCC1").is_heterocyclic()) def test_heterocyclic_furan(self): """ Test the Molecule.is_heterocyclic() method for Furan. """ - self.assertTrue(Molecule().from_smiles('C1C=COC=1').is_heterocyclic()) + self.assertTrue(Molecule().from_smiles("C1C=COC=1").is_heterocyclic()) def test_heterocyclic_pyridine(self): """ Test the Molecule.is_heterocyclic() method for Pyridine. """ - self.assertTrue(Molecule().from_smiles('c1cccnc1').is_heterocyclic()) + self.assertTrue(Molecule().from_smiles("c1cccnc1").is_heterocyclic()) def test_count_internal_rotors_ethane(self): """ Test the Molecule.count_internal_rotors() method. """ - self.assertEqual(Molecule().from_smiles('CC').count_internal_rotors(), 1) + self.assertEqual(Molecule().from_smiles("CC").count_internal_rotors(), 1) def test_count_internal_rotors_propane(self): """ Test the Molecule.count_internal_rotors() method. """ - self.assertEqual(Molecule().from_smiles('CCC').count_internal_rotors(), 2) + self.assertEqual(Molecule().from_smiles("CCC").count_internal_rotors(), 2) def test_count_internal_rotors_neopentane(self): """ Test the Molecule.count_internal_rotors() method. """ - self.assertEqual(Molecule().from_smiles('CC(C)(C)C').count_internal_rotors(), 4) + self.assertEqual(Molecule().from_smiles("CC(C)(C)C").count_internal_rotors(), 4) def test_count_internal_rotors_methyl_cyclohexane(self): """ Test the Molecule.count_internal_rotors() method. """ - self.assertEqual(Molecule().from_smiles('C1CCCC1C').count_internal_rotors(), 1) + self.assertEqual(Molecule().from_smiles("C1CCCC1C").count_internal_rotors(), 1) def test_count_internal_rotors_ethylene(self): """ Test the Molecule.count_internal_rotors() method. """ - self.assertEqual(Molecule().from_smiles('C=C').count_internal_rotors(), 0) + self.assertEqual(Molecule().from_smiles("C=C").count_internal_rotors(), 0) def test_count_internal_rotors_acetylene(self): """ Test the Molecule.count_internal_rotors() method. """ - self.assertEqual(Molecule().from_smiles('C#C').count_internal_rotors(), 0) + self.assertEqual(Molecule().from_smiles("C#C").count_internal_rotors(), 0) def test_carbene_identifiers(self): """ @@ -1792,35 +2002,35 @@ def test_carbene_identifiers(self): are correctly converted into rdkit molecules and identifiers. """ - ch2_t = ''' + ch2_t = """ multiplicity 3 1 C u2 p0 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} - ''' + """ mol = Molecule().from_adjacency_list(ch2_t) - self.assertEqual(mol.to_augmented_inchi(), 'InChI=1S/CH2/h1H2/u1,1') - self.assertEqual(mol.to_smiles(), '[CH2]') + self.assertEqual(mol.to_augmented_inchi(), "InChI=1S/CH2/h1H2/u1,1") + self.assertEqual(mol.to_smiles(), "[CH2]") - ch2_s = ''' + ch2_s = """ multiplicity 1 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} - ''' + """ mol = Molecule().from_adjacency_list(ch2_s) - self.assertEqual(mol.to_augmented_inchi(), 'InChI=1S/CH2/h1H2/lp1') - self.assertEqual(mol.to_smiles(), '[CH2]') + self.assertEqual(mol.to_augmented_inchi(), "InChI=1S/CH2/h1H2/lp1") + self.assertEqual(mol.to_smiles(), "[CH2]") def test_get_symmetry_number(self): """ Test that the symmetry number getter works properly """ - mol = Molecule().from_smiles('C') + mol = Molecule().from_smiles("C") self.assertEquals(12, mol.get_symmetry_number()) @@ -1831,40 +2041,41 @@ def test_molecule_props(self): """ Test a key-value pair is added to the props attribute of Molecule. """ - self.molecule[0].props['foo'] = 'bar' + self.molecule[0].props["foo"] = "bar" self.assertIsInstance(self.molecule[0].props, dict) - self.assertEquals(self.molecule[0].props['foo'], 'bar') + self.assertEquals(self.molecule[0].props["foo"], "bar") def test_molecule_props_object_attribute(self): """ Test that Molecule's props dictionaries are independent of each other. - + Create a test in which is checked whether props is an object attribute rather than a class attribute """ spc2 = Molecule() - self.molecule[0].props['foo'] = 'bar' + self.molecule[0].props["foo"] = "bar" spc3 = Molecule() - spc3.props['foo'] = 'bla' - self.assertEquals(self.molecule[0].props['foo'], 'bar') + spc3.props["foo"] = "bla" + self.assertEquals(self.molecule[0].props["foo"], "bar") self.assertDictEqual(spc2.props, {}) - self.assertDictEqual(spc3.props, {'foo': 'bla'}) + self.assertDictEqual(spc3.props, {"foo": "bla"}) @work_in_progress def test_count_internal_rotors_dimethyl_acetylene(self): """ Test the Molecule.count_internal_rotors() method for dimethylacetylene. - + This is a "hard" test that currently fails. """ - self.assertEqual(Molecule().from_smiles('CC#CC').count_internal_rotors(), 1) + self.assertEqual(Molecule().from_smiles("CC#CC").count_internal_rotors(), 1) def test_saturate_aromatic_radical(self): """ Test that the Molecule.saturate() method works properly for an indenyl radical containing Benzene bonds """ - indenyl = Molecule().from_adjacency_list(""" + indenyl = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,B} {3,S} {4,B} 2 C u0 p0 c0 {1,B} {5,B} {6,S} @@ -1882,8 +2093,10 @@ def test_saturate_aromatic_radical(self): 14 H u0 p0 c0 {9,S} 15 H u0 p0 c0 {5,S} 16 H u0 p0 c0 {6,S} -""") - indene = Molecule().from_adjacency_list(""" +""" + ) + indene = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,S} {4,B} 2 C u0 p0 c0 {1,B} {5,B} {6,S} 3 C u0 p0 c0 {1,S} {7,D} {11,S} @@ -1901,7 +2114,8 @@ def test_saturate_aromatic_radical(self): 15 H u0 p0 c0 {5,S} 16 H u0 p0 c0 {6,S} 17 H u0 p0 c0 {6,S} -""") +""" + ) saturated_molecule = indenyl.copy(deep=True) saturated_molecule.saturate_radicals() self.assertTrue(saturated_molecule.is_isomorphic(indene)) @@ -1912,11 +2126,11 @@ def test_replace_halogen_with_hydrogen(self): """ testCases = [ # halogenated molecule SMILES, hydrogenated (halogens replaced with hydrogens) molecule SMILES - ['[F]', '[H]'], - ['Cl', '[H][H]'], - ['[Br][Br]', '[H][H]'], - ['Fc1c(Cl)c(Br)c(I)cc1', 'c1ccccc1'], - ['F[CH]COC(Cl)(Cl)', '[CH2]COC'] + ["[F]", "[H]"], + ["Cl", "[H][H]"], + ["[Br][Br]", "[H][H]"], + ["Fc1c(Cl)c(Br)c(I)cc1", "c1ccccc1"], + ["F[CH]COC(Cl)(Cl)", "[CH2]COC"], ] for smiles1, smiles2 in testCases: @@ -1930,45 +2144,51 @@ def test_surface_molecules(self): """ Test that we can identify surface molecules. """ - adsorbed = Molecule().from_adjacency_list(""" + adsorbed = Molecule().from_adjacency_list( + """ 1 H u0 p0 c0 {2,S} 2 X u0 p0 c0 {1,S} - """) + """ + ) self.assertTrue(adsorbed.contains_surface_site()) - gas = Molecule().from_adjacency_list(""" + gas = Molecule().from_adjacency_list( + """ 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} - """) + """ + ) self.assertFalse(gas.contains_surface_site()) - surface_site = Molecule().from_adjacency_list(""" + surface_site = Molecule().from_adjacency_list( + """ 1 X u0 p0 c0 - """) + """ + ) self.assertTrue((surface_site.is_surface_site())) self.assertFalse((adsorbed.is_surface_site())) self.assertFalse((gas.is_surface_site())) def test_malformed_augmented_inchi(self): """Test that augmented inchi without InChI layer raises Exception.""" - malform_aug_inchi = 'foo' + malform_aug_inchi = "foo" with self.assertRaises(InchiException): Molecule().from_augmented_inchi(malform_aug_inchi) def test_malformed_augmented_inchi_wrong_inchi_layer(self): """Test that augmented inchi with wrong layer is caught.""" - malform_aug_inchi = 'InChI=1S/CH3/h1H2' + malform_aug_inchi = "InChI=1S/CH3/h1H2" with self.assertRaises(Exception): Molecule().from_augmented_inchi(malform_aug_inchi) def test_malformed_augmented_inchi_wrong_mult(self): """Test that augmented inchi with wrong layer is caught.""" - malform_aug_inchi = 'InChI=1S/CH3/h1H3' + malform_aug_inchi = "InChI=1S/CH3/h1H3" with self.assertRaises(Exception): Molecule().from_augmented_inchi(malform_aug_inchi) def test_malformed_augmented_inchi_wrong_indices(self): """Test that augmented inchi with wrong layer is caught.""" - malform_aug_inchi = 'InChI=1S/C6H6/c1-3-5-6-4-2/h1,6H,2,5H2/u4,1' + malform_aug_inchi = "InChI=1S/C6H6/c1-3-5-6-4-2/h1,6H,2,5H2/u4,1" with self.assertRaises(Exception): Molecule().from_augmented_inchi(malform_aug_inchi) @@ -2090,11 +2310,11 @@ def test_large_mol_creation(self): sure that overflow errors are not generated. """ for i in range(1, 202, 10): - smi = 'C' * i + smi = "C" * i try: Molecule(smiles=smi) except OverflowError: - self.fail('Creation of C{} failed!'.format(i)) + self.fail("Creation of C{} failed!".format(i)) def test_get_polycyclic_rings(self): """ @@ -2102,26 +2322,26 @@ def test_get_polycyclic_rings(self): `Graph().get_polycycles()` """ # norbornane - m1 = Molecule(smiles='C1CC2CCC1C2') + m1 = Molecule(smiles="C1CC2CCC1C2") polyrings1 = m1.get_polycycles() self.assertEqual(len(polyrings1), 1) ring = polyrings1[0] self.assertEqual(len(ring), 7) # 7 carbons in cycle # dibenzyl - m2 = Molecule(smiles='C1=CC=C(C=C1)CCC1C=CC=CC=1') + m2 = Molecule(smiles="C1=CC=C(C=C1)CCC1C=CC=CC=1") polyrings2 = m2.get_polycycles() self.assertEqual(len(polyrings2), 0) # spiro[2.5]octane - m3 = Molecule(smiles='C1CCC2(CC1)CC2') + m3 = Molecule(smiles="C1CCC2(CC1)CC2") polyrings3 = m3.get_polycycles() self.assertEqual(len(polyrings3), 1) ring = polyrings3[0] self.assertEqual(len(ring), 8) # 1-phenyl norbornane - m4 = Molecule(smiles='C1=CC=C(C=C1)C12CCC(CC1)C2') + m4 = Molecule(smiles="C1=CC=C(C=C1)C12CCC(CC1)C2") polyrings4 = m4.get_polycycles() self.assertEqual(len(polyrings4), 1) ring = polyrings4[0] @@ -2132,16 +2352,16 @@ def test_get_monocyclic_rings(self): Test that monocyclic rings within a molecule are returned properly in the function `Graph().get_monocycles()` """ - m1 = Molecule(smiles='C(CCCC1CCCCC1)CCCC1CCCC1') + m1 = Molecule(smiles="C(CCCC1CCCCC1)CCCC1CCCC1") monorings = m1.get_monocycles() self.assertEqual(len(monorings), 2) - m2 = Molecule(smiles='C(CCC1C2CCC1CC2)CC1CCC1') + m2 = Molecule(smiles="C(CCC1C2CCC1CC2)CC1CCC1") monorings = m2.get_monocycles() self.assertEqual(len(monorings), 1) self.assertEqual(len(monorings[0]), 4) - m3 = Molecule(smiles='CCCCC') + m3 = Molecule(smiles="CCCCC") monorings = m3.get_monocycles() self.assertEqual(len(monorings), 0) @@ -2152,14 +2372,14 @@ def test_get_disparate_rings(self): """ # norbornane - m1 = Molecule(smiles='C1CC2CCC1C2') + m1 = Molecule(smiles="C1CC2CCC1C2") monorings, polyrings = m1.get_disparate_cycles() self.assertEqual(len(monorings), 0) self.assertEqual(len(polyrings), 1) self.assertEqual(len(polyrings[0]), 7) # 7 carbons in cycle # norbornane + cyclobutane on chain - m2 = Molecule(smiles='C(CCC1C2CCC1CC2)CC1CCC1') + m2 = Molecule(smiles="C(CCC1C2CCC1CC2)CC1CCC1") monorings, polyrings = m2.get_disparate_cycles() self.assertEqual(len(monorings), 1) self.assertEqual(len(polyrings), 1) @@ -2167,7 +2387,7 @@ def test_get_disparate_rings(self): self.assertEqual(len(polyrings[0]), 7) # spiro-octane + cyclobutane on chain - m3 = Molecule(smiles='C1CCC2(CC1)CC2CCCCC1CCC1') + m3 = Molecule(smiles="C1CCC2(CC1)CC2CCCCC1CCC1") monorings, polyrings = m3.get_disparate_cycles() self.assertEqual(len(polyrings), 1) self.assertEqual(len(monorings), 1) @@ -2175,26 +2395,26 @@ def test_get_disparate_rings(self): self.assertEqual(len(polyrings[0]), 8) # butane - m4 = Molecule(smiles='CCCC') + m4 = Molecule(smiles="CCCC") monorings, polyrings = m4.get_disparate_cycles() self.assertEqual(len(monorings), 0) self.assertEqual(len(polyrings), 0) # benzene + cyclopropane on chain + cyclopropane on chain - m5 = Molecule(smiles='C1=CC=C(CCCC2CC2)C(=C1)CCCCCC1CC1') + m5 = Molecule(smiles="C1=CC=C(CCCC2CC2)C(=C1)CCCCCC1CC1") monorings, polyrings = m5.get_disparate_cycles() self.assertEqual(len(monorings), 3) self.assertEqual(len(polyrings), 0) # octacene - m6 = Molecule(smiles='c1ccc2cc3cc4cc5cc6cc7cc8ccccc8cc7cc6cc5cc4cc3cc2c1') + m6 = Molecule(smiles="c1ccc2cc3cc4cc5cc6cc7cc8ccccc8cc7cc6cc5cc4cc3cc2c1") monorings, polyrings = m6.get_disparate_cycles() self.assertEqual(len(monorings), 0) self.assertEqual(len(polyrings), 1) self.assertEqual(len(polyrings[0]), 34) # JP-10 - m7 = Molecule(smiles='C1CC2C3CCC(C3)C2C1') + m7 = Molecule(smiles="C1CC2C3CCC(C3)C2C1") monorings, polyrings = m7.get_disparate_cycles() self.assertEqual(len(monorings), 0) self.assertEqual(len(polyrings), 1) @@ -2206,31 +2426,31 @@ def test_get_smallest_set_of_smallest_rings(self): `Graph().get_smallest_set_of_smallest_rings()` """ - m1 = Molecule(smiles='C12CCC1C3CC2CC3') + m1 = Molecule(smiles="C12CCC1C3CC2CC3") sssr1 = m1.get_smallest_set_of_smallest_rings() sssr1_sizes = sorted([len(ring) for ring in sssr1]) sssr1_sizes_expected = [4, 5, 5] self.assertEqual(sssr1_sizes, sssr1_sizes_expected) - m2 = Molecule(smiles='C1(CC2)C(CC3)CC3C2C1') + m2 = Molecule(smiles="C1(CC2)C(CC3)CC3C2C1") sssr2 = m2.get_smallest_set_of_smallest_rings() sssr2_sizes = sorted([len(ring) for ring in sssr2]) sssr2_sizes_expected = [5, 5, 6] self.assertEqual(sssr2_sizes, sssr2_sizes_expected) - m3 = Molecule(smiles='C1(CC2)C2C(CCCC3)C3C1') + m3 = Molecule(smiles="C1(CC2)C2C(CCCC3)C3C1") sssr3 = m3.get_smallest_set_of_smallest_rings() sssr3_sizes = sorted([len(ring) for ring in sssr3]) sssr3_sizes_expected = [4, 5, 6] self.assertEqual(sssr3_sizes, sssr3_sizes_expected) - m4 = Molecule(smiles='C12=CC=CC=C1C3=C2C=CC=C3') + m4 = Molecule(smiles="C12=CC=CC=C1C3=C2C=CC=C3") sssr4 = m4.get_smallest_set_of_smallest_rings() sssr4_sizes = sorted([len(ring) for ring in sssr4]) sssr4_sizes_expected = [4, 6, 6] self.assertEqual(sssr4_sizes, sssr4_sizes_expected) - m5 = Molecule(smiles='C12=CC=CC=C1CC3=C(C=CC=C3)C2') + m5 = Molecule(smiles="C12=CC=CC=C1CC3=C(C=CC=C3)C2") sssr5 = m5.get_smallest_set_of_smallest_rings() sssr5_sizes = sorted([len(ring) for ring in sssr5]) sssr5_sizes_expected = [6, 6, 6] @@ -2238,10 +2458,10 @@ def test_get_smallest_set_of_smallest_rings(self): def test_get_deterministic_smallest_set_of_smallest_rings_case1(self): """ - Test fused tricyclic can be decomposed into single rings more + Test fused tricyclic can be decomposed into single rings more deterministically """ - smiles = 'C1C2C3C=CCCC2C13' + smiles = "C1C2C3C=CCCC2C13" previous_num_shared_atoms_list = None # repeat 100 time to test non-deterministic behavior @@ -2268,13 +2488,13 @@ def test_get_deterministic_smallest_set_of_smallest_rings_case1(self): def test_get_deterministic_smallest_set_of_smallest_rings_case2(self): """ Test if two possible smallest rings can join the smallest set - the method can pick one of them deterministically using sum of + the method can pick one of them deterministically using sum of atomic numbers along the rings. In this test case and with currect method setup, ring (CCSCCCCC) will be picked rather than ring(CCCOCC). """ - smiles = 'C1=CC2C3CSC(CO3)C2C1' + smiles = "C1=CC2C3CSC(CO3)C2C1" previous_atom_symbols_list = None # repeat 100 time to test non-deterministic behavior @@ -2300,12 +2520,12 @@ def test_get_deterministic_smallest_set_of_smallest_rings_case3(self): Test if two possible smallest rings can join the smallest set the method can pick one of them deterministically when their sum of atomic numbers along the rings are also equal to each other. - + To break the tie, one option we have is to consider adding contributions from other parts of the molecule, such as atomic number weighted connectivity value and differentiate bond orders when calculating connectivity values. """ - smiles = 'C=1CC2C3CSC(O[Si]3)C2C1' + smiles = "C=1CC2C3CSC(O[Si]3)C2C1" previous_atom_symbols_list = None # repeat 100 time to test non-deterministic behavior @@ -2330,9 +2550,11 @@ def test_to_group(self): """ Test if we can convert a Molecule object into a Group object. """ - mol = Molecule().from_smiles('CC(C)CCCC(C)C1CCC2C3CC=C4CC(O)CCC4(C)C3CCC12C') # cholesterol - mol.atoms[0].label = '*1' - mol.atoms[1].label = '*2' + mol = Molecule().from_smiles( + "CC(C)CCCC(C)C1CCC2C3CC=C4CC(O)CCC4(C)C3CCC12C" + ) # cholesterol + mol.atoms[0].label = "*1" + mol.atoms[1].label = "*2" group = mol.to_group() self.assertTrue(isinstance(group, Group)) @@ -2346,7 +2568,10 @@ def test_to_group(self): for i, molAt in enumerate(mol.atoms): group_atom = group.atoms[i] self.assertEqual(group_atom.label, molAt.label) - atom_types = [groupAtomType.equivalent(molAt.atomtype) for groupAtomType in group_atom.atomtype] + atom_types = [ + groupAtomType.equivalent(molAt.atomtype) + for groupAtomType in group_atom.atomtype + ] self.assertTrue(any(atom_types)) def test_to_adjacency_list_with_isotopes(self): @@ -2354,10 +2579,12 @@ def test_to_adjacency_list_with_isotopes(self): Test the Molecule.to_adjacency_list() method works for atoms with unexpected isotopes. """ - mol = Molecule().from_smiles('CC') - mol.atoms[0].element = get_element('C', 13) + mol = Molecule().from_smiles("CC") + mol.atoms[0].element = get_element("C", 13) - table = str.maketrans({'\n': None, ' ': None}) # Translation table to remove whitespace + table = str.maketrans( + {"\n": None, " ": None} + ) # Translation table to remove whitespace adjlist = mol.to_adjacency_list().translate(table) adjlist_exp = """ @@ -2369,12 +2596,14 @@ def test_to_adjacency_list_with_isotopes(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} - """.translate(table) + """.translate( + table + ) self.assertEquals(adjlist, adjlist_exp) - mol = Molecule().from_smiles('CC') - mol.atoms[2].element = get_element('H', 2) + mol = Molecule().from_smiles("CC") + mol.atoms[2].element = get_element("H", 2) adjlist = mol.to_adjacency_list().translate(table) adjlist_exp = """ @@ -2386,12 +2615,14 @@ def test_to_adjacency_list_with_isotopes(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} - """.translate(table) + """.translate( + table + ) self.assertEquals(adjlist, adjlist_exp) - mol = Molecule().from_smiles('OC') - mol.atoms[0].element = get_element('O', 18) + mol = Molecule().from_smiles("OC") + mol.atoms[0].element = get_element("O", 18) adjlist = mol.to_adjacency_list().translate(table) adjlist_exp = """ @@ -2401,7 +2632,9 @@ def test_to_adjacency_list_with_isotopes(self): 4 H u0 p0 c0 {2,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} - """.translate(table) + """.translate( + table + ) self.assertEquals(adjlist, adjlist_exp) @@ -2410,8 +2643,8 @@ def test_from_adjacency_list_with_isotopes(self): Test the Molecule.from_adjacency_list() method works for atoms with unexpected isotopes. """ - exp = Molecule().from_smiles('CC') - exp.atoms[0].element = get_element('C', 13) + exp = Molecule().from_smiles("CC") + exp.atoms[0].element = get_element("C", 13) adjlist_calc = """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} @@ -2427,8 +2660,8 @@ def test_from_adjacency_list_with_isotopes(self): self.assertTrue(exp.is_isomorphic(calc)) - exp = Molecule().from_smiles('CC') - exp.atoms[2].element = get_element('H', 2) + exp = Molecule().from_smiles("CC") + exp.atoms[2].element = get_element("H", 2) adjlist_calc = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} @@ -2444,8 +2677,8 @@ def test_from_adjacency_list_with_isotopes(self): self.assertTrue(exp.is_isomorphic(calc)) - exp = Molecule().from_smiles('OC') - exp.atoms[0].element = get_element('O', 18) + exp = Molecule().from_smiles("OC") + exp.atoms[0].element = get_element("O", 18) adjlist_calc = """ 1 O u0 p2 c0 i18 {2,S} {3,S} @@ -2461,56 +2694,64 @@ def test_from_adjacency_list_with_isotopes(self): def test_aromaticity_perception_benzene(self): """Test aromaticity perception via get_aromatic_rings for benzene.""" - mol = Molecule(smiles='c1ccccc1') + mol = Molecule(smiles="c1ccccc1") aromatic_atoms, aromatic_bonds = mol.get_aromatic_rings() self.assertEqual(len(aromatic_atoms), 1) self.assertEqual(len(aromatic_bonds), 1) for bond in aromatic_bonds[0]: - self.assertTrue(bond.atom1 in aromatic_atoms[0] and bond.atom2 in aromatic_atoms[0]) + self.assertTrue( + bond.atom1 in aromatic_atoms[0] and bond.atom2 in aromatic_atoms[0] + ) def test_aromaticity_perception_tetralin(self): """Test aromaticity perception via get_aromatic_rings for tetralin.""" - mol = Molecule(smiles='c1ccc2c(c1)CCCC2') + mol = Molecule(smiles="c1ccc2c(c1)CCCC2") aromatic_atoms, aromatic_bonds = mol.get_aromatic_rings() self.assertEqual(len(aromatic_atoms), 1) self.assertEqual(len(aromatic_bonds), 1) for bond in aromatic_bonds[0]: - self.assertTrue(bond.atom1 in aromatic_atoms[0] and bond.atom2 in aromatic_atoms[0]) + self.assertTrue( + bond.atom1 in aromatic_atoms[0] and bond.atom2 in aromatic_atoms[0] + ) def test_aromaticity_perception_biphenyl(self): """Test aromaticity perception via get_aromatic_rings for biphenyl.""" - mol = Molecule(smiles='c1ccc(cc1)c2ccccc2') + mol = Molecule(smiles="c1ccc(cc1)c2ccccc2") aromatic_atoms, aromatic_bonds = mol.get_aromatic_rings() self.assertEqual(len(aromatic_atoms), 2) self.assertEqual(len(aromatic_bonds), 2) for index in range(len(aromatic_atoms)): for bond in aromatic_bonds[index]: - self.assertTrue(bond.atom1 in aromatic_atoms[index] and bond.atom2 in aromatic_atoms[index]) + self.assertTrue( + bond.atom1 in aromatic_atoms[index] + and bond.atom2 in aromatic_atoms[index] + ) def test_aromaticity_perception_azulene(self): """Test aromaticity perception via get_aromatic_rings for azulene.""" - mol = Molecule(smiles='c1cccc2cccc2c1') + mol = Molecule(smiles="c1cccc2cccc2c1") aromatic_atoms, aromatic_bonds = mol.get_aromatic_rings() self.assertEqual(len(aromatic_atoms), 0) self.assertEqual(len(aromatic_bonds), 0) def test_aromaticity_perception_furan(self): """Test aromaticity perception via get_aromatic_rings for furan.""" - mol = Molecule(smiles='c1ccoc1') + mol = Molecule(smiles="c1ccoc1") aromatic_atoms, aromatic_bonds = mol.get_aromatic_rings() self.assertEqual(len(aromatic_atoms), 0) self.assertEqual(len(aromatic_bonds), 0) def test_aromaticity_perception_benzonaphthalene(self): """Test aromaticity perception via get_aromatic_rings for benzonaphthalene with multiple fused bonds.""" - mol = Molecule(smiles='c1cc2ccc3ccc(c1)c2c3') + mol = Molecule(smiles="c1cc2ccc3ccc(c1)c2c3") aromatic_atoms, aromatic_bonds = mol.get_aromatic_rings() self.assertEqual(len(aromatic_atoms), 1) self.assertEqual(len(aromatic_bonds), 1) def test_aromaticity_perception_save_order(self): """Test aromaticity perception via get_aromatic_rings for phenyl radical without changing atom order.""" - mol = Molecule().from_adjacency_list("""multiplicity 2 + mol = Molecule().from_adjacency_list( + """multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {7,D} 2 O u1 p2 c0 {1,S} 3 C u0 p0 c0 {1,S} {4,D} {8,S} @@ -2534,19 +2775,19 @@ def test_aromaticity_perception_save_order(self): def test_aryl_radical_true(self): """Test aryl radical perception for phenyl radical.""" - mol = Molecule(smiles='[c]1ccccc1') + mol = Molecule(smiles="[c]1ccccc1") self.assertTrue(mol.is_aryl_radical()) def test_has_halogen(self): """Test Molecule.has_halogen() method.""" - mol1 = Molecule(smiles='CCCCl') - mol2 = Molecule(smiles='CCCCC') + mol1 = Molecule(smiles="CCCCl") + mol2 = Molecule(smiles="CCCCC") self.assertTrue(mol1.has_halogen()) self.assertFalse(mol2.has_halogen()) def test_aryl_radical_false(self): """Test aryl radical perception for benzyl radical.""" - mol = Molecule(smiles='[CH2]c1ccccc1') + mol = Molecule(smiles="[CH2]c1ccccc1") self.assertFalse(mol.is_aryl_radical()) def test_aryl_radical_birad(self): @@ -2555,12 +2796,12 @@ def test_aryl_radical_birad(self): This is a case that is not properly handled right now, since a single boolean cannot characterize multiple radicals. In such cases, the method will return false if any of the radicals is not an aryl radical.""" - mol = Molecule(smiles='[CH2]c1c[c]ccc1') + mol = Molecule(smiles="[CH2]c1c[c]ccc1") self.assertFalse(mol.is_aryl_radical()) def test_identical_true(self): """Test that the is_identical returns True with butane""" - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") mol.assign_atom_ids() mol_copy = mol.copy(deep=True) self.assertTrue(mol.is_isomorphic(mol_copy)) @@ -2568,7 +2809,7 @@ def test_identical_true(self): def test_identical_true2(self): """Test that is_identical with strict=False returns True with allyl""" - mol = Molecule(smiles='C=C[CH2]') + mol = Molecule(smiles="C=C[CH2]") mol.assign_atom_ids() res = mol.generate_resonance_structures(keep_isomorphic=True) self.assertEqual(len(res), 2) @@ -2580,7 +2821,7 @@ def test_identical_true2(self): def test_identical_false(self): """Test that the is_identical returns False with butane""" - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") mol.assign_atom_ids() mol_copy = mol.copy(deep=True) # Remove a hydrogen from mol @@ -2598,42 +2839,42 @@ def test_identical_false(self): def test_identical_false2(self): """Test that the is_identical method returns False with ethene""" # Manually test addition of H radical to ethene - reactant1 = Molecule(smiles='C=C') - carbons = [atom for atom in reactant1.atoms if atom.symbol == 'C'] - carbons[0].label = '*1' - carbons[1].label = '*2' - reactant2 = Molecule(smiles='[H]') - reactant2.atoms[0].label = '*3' + reactant1 = Molecule(smiles="C=C") + carbons = [atom for atom in reactant1.atoms if atom.symbol == "C"] + carbons[0].label = "*1" + carbons[1].label = "*2" + reactant2 = Molecule(smiles="[H]") + reactant2.atoms[0].label = "*3" # Merge reactants mol = reactant1.merge(reactant2) mol.assign_atom_ids() mol_copy = mol.copy(deep=True) # Manually perform R_Addition_MultipleBond of *3 to *1 labeled_atoms = mol.get_all_labeled_atoms() - mol.get_bond(labeled_atoms['*1'], labeled_atoms['*2']).decrement_order() - mol.add_bond(Bond(labeled_atoms['*1'], labeled_atoms['*3'], order='S')) - labeled_atoms['*2'].increment_radical() - labeled_atoms['*3'].decrement_radical() + mol.get_bond(labeled_atoms["*1"], labeled_atoms["*2"]).decrement_order() + mol.add_bond(Bond(labeled_atoms["*1"], labeled_atoms["*3"], order="S")) + labeled_atoms["*2"].increment_radical() + labeled_atoms["*3"].decrement_radical() # Manually perform R_Addition_MultipleBond of *3 to *2 labeled_atoms = mol_copy.get_all_labeled_atoms() - mol_copy.get_bond(labeled_atoms['*1'], labeled_atoms['*2']).decrement_order() - mol_copy.add_bond(Bond(labeled_atoms['*2'], labeled_atoms['*3'], order='S')) - labeled_atoms['*1'].increment_radical() - labeled_atoms['*3'].decrement_radical() + mol_copy.get_bond(labeled_atoms["*1"], labeled_atoms["*2"]).decrement_order() + mol_copy.add_bond(Bond(labeled_atoms["*2"], labeled_atoms["*3"], order="S")) + labeled_atoms["*1"].increment_radical() + labeled_atoms["*3"].decrement_radical() self.assertTrue(mol.is_isomorphic(mol_copy)) self.assertFalse(mol.is_identical(mol_copy)) def test_atom_id_valid(self): """see if the atomIDVvalid method properly returns True""" - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") for index, atom in enumerate(mol.atoms): atom.id = index self.assertTrue(mol.atom_ids_valid()) def test_atom_id_valid2(self): """see if the atomIDVvalid method properly returns False""" - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") for index, atom in enumerate(mol.atoms): atom.id = index mol.atoms[3].id = 4 @@ -2641,27 +2882,28 @@ def test_atom_id_valid2(self): def test_atom_id_valid3(self): """see if the atomIDVvalid method properly returns False""" - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") self.assertFalse(mol.atom_ids_valid()) def test_assign_atom_id(self): """see if the assignAtomID method properly labels molecule""" - mol = Molecule(smiles='CCCC') + mol = Molecule(smiles="CCCC") mol.assign_atom_ids() self.assertTrue(mol.atom_ids_valid()) def test_fingerprint_property(self): """Test that the Molecule.fingerprint property works""" # Test getting fingerprint - self.assertEqual(self.molecule[0].fingerprint, 'C01H02N01O02S00') + self.assertEqual(self.molecule[0].fingerprint, "C01H02N01O02S00") # Test setting fingerprint - self.molecule[0].fingerprint = 'nitronate' - self.assertEqual(self.molecule[0].fingerprint, 'nitronate') + self.molecule[0].fingerprint = "nitronate" + self.assertEqual(self.molecule[0].fingerprint, "nitronate") def test_fingerprint_property_more_elements(self): """Test that the Molecule.fingerprint property is consistent with many elements""" - mol1 = Molecule().from_adjacency_list(""" + mol1 = Molecule().from_adjacency_list( + """ 1 Cl u0 p3 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} {4,S} {6,S} 3 F u0 p3 c0 {2,S} @@ -2669,8 +2911,10 @@ def test_fingerprint_property_more_elements(self): 5 O u0 p2 c0 {4,S} {7,S} 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {5,S} -""") - mol2 = Molecule().from_adjacency_list(""" +""" + ) + mol2 = Molecule().from_adjacency_list( + """ 1 Cl u0 p3 c0 {5,S} 2 F u0 p3 c0 {5,S} 3 O u0 p2 c0 {4,S} {5,S} @@ -2678,14 +2922,15 @@ def test_fingerprint_property_more_elements(self): 5 C u0 p0 c0 {1,S} {2,S} {3,S} {6,S} 6 H u0 p0 c0 {5,S} 7 H u0 p0 c0 {4,S} -""") +""" + ) # Confirm that atom orders are different - mol1_atoms = ''.join([atom.symbol for atom in mol1.atoms]) - mol2_atoms = ''.join([atom.symbol for atom in mol2.atoms]) + mol1_atoms = "".join([atom.symbol for atom in mol1.atoms]) + mol2_atoms = "".join([atom.symbol for atom in mol2.atoms]) self.assertNotEqual(mol1_atoms, mol2_atoms) # Test getting fingerprint - expected = 'C01H02N00O02S00Cl01F01' + expected = "C01H02N00O02S00Cl01F01" self.assertEqual(mol1.fingerprint, expected) self.assertEqual(mol2.fingerprint, expected) @@ -2694,7 +2939,7 @@ def test_saturate_unfilled_valence(self): Test the saturateUnfilledValence for an aromatic and nonaromatic case """ # test butane - expected = Molecule(smiles='CCCC') + expected = Molecule(smiles="CCCC") test = expected.copy(deep=True) test.delete_hydrogens() @@ -2716,7 +2961,7 @@ def test_saturate_unfilled_valence(self): self.assertTrue(expected.is_isomorphic(test)) # test benzene - expected = Molecule(smiles='c1ccccc1') + expected = Molecule(smiles="c1ccccc1") test = expected.copy(deep=True) test.delete_hydrogens() hydrogens = 0 @@ -2738,34 +2983,34 @@ def test_saturate_unfilled_valence(self): def test_get_element_count(self): """Test that we can count elements properly.""" - mol1 = Molecule(smiles='c1ccccc1') - expected1 = {'C': 6, 'H': 6} + mol1 = Molecule(smiles="c1ccccc1") + expected1 = {"C": 6, "H": 6} result1 = mol1.get_element_count() self.assertEqual(expected1, result1) - mol2 = Molecule(smiles='CS(C)(=O)=O') - expected2 = {'C': 2, 'H': 6, 'O': 2, 'S': 1} + mol2 = Molecule(smiles="CS(C)(=O)=O") + expected2 = {"C": 2, "H": 6, "O": 2, "S": 1} result2 = mol2.get_element_count() self.assertEqual(expected2, result2) - mol3 = Molecule(smiles='CCN') - expected3 = {'C': 2, 'H': 7, 'N': 1} + mol3 = Molecule(smiles="CCN") + expected3 = {"C": 2, "H": 7, "N": 1} result3 = mol3.get_element_count() self.assertEqual(expected3, result3) def test_ring_perception(self): """Test that identifying ring membership of atoms works properly.""" - mol = Molecule(smiles='c12ccccc1cccc2') + mol = Molecule(smiles="c12ccccc1cccc2") mol.identify_ring_membership() for atom in mol.atoms: - if atom.element == 'C': - self.assertTrue(atom.props['inRing']) - elif atom.element == 'H': - self.assertFalse(atom.props['inRing']) + if atom.element == "C": + self.assertTrue(atom.props["inRing"]) + elif atom.element == "H": + self.assertFalse(atom.props["inRing"]) def test_enumerate_bonds(self): """Test that generating a count of bond labels works properly.""" - adj_list = ''' + adj_list = """ 1 O u0 p2 c0 {4,S} {23,S} {24,H} 2 O u0 p2 c0 {8,S} {23,H} {24,S} 3 C u0 p0 c0 {4,S} {6,S} {14,S} {15,S} @@ -2791,20 +3036,20 @@ def test_enumerate_bonds(self): 23 H u0 p0 c0 {1,S} {2,H} 24 H u0 p0 c0 {1,H} {2,S} 25 H u0 p0 c0 {13,S} - ''' + """ mol = Molecule().from_adjacency_list(adj_list) bonds = mol.enumerate_bonds() - self.assertEqual(bonds['C#C'], 1) - self.assertEqual(bonds['C-C'], 4) - self.assertEqual(bonds['C-H'], 10) - self.assertEqual(bonds['C-O'], 2) - self.assertEqual(bonds['C:C'], 6) - self.assertEqual(bonds['H-O'], 2) - self.assertEqual(bonds['H~O'], 2) + self.assertEqual(bonds["C#C"], 1) + self.assertEqual(bonds["C-C"], 4) + self.assertEqual(bonds["C-H"], 10) + self.assertEqual(bonds["C-O"], 2) + self.assertEqual(bonds["C:C"], 6) + self.assertEqual(bonds["H-O"], 2) + self.assertEqual(bonds["H~O"], 2) def test_count_aromatic_rings(self): """Test that we can count aromatic rings correctly.""" - mol = Molecule(smiles='c12ccccc1cccc2') + mol = Molecule(smiles="c12ccccc1cccc2") out = mol.generate_resonance_structures() result = [m.count_aromatic_rings() for m in out] @@ -2822,7 +3067,8 @@ def test_remove_van_der_waals_bonds(self): mol.remove_van_der_waals_bonds() self.assertEqual(len(mol.get_all_edges()), 1) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/pathfinderTest.py b/test/rmgpy/molecule/pathfinderTest.py index 7bc3329503..80045db221 100644 --- a/test/rmgpy/molecule/pathfinderTest.py +++ b/test/rmgpy/molecule/pathfinderTest.py @@ -30,10 +30,19 @@ import unittest from rmgpy.molecule import Molecule -from rmgpy.molecule.pathfinder import compute_atom_distance, find_adj_lone_pair_multiple_bond_delocalization_paths, \ - find_adj_lone_pair_radical_delocalization_paths, find_adj_lone_pair_radical_multiple_bond_delocalization_paths, \ - find_allyl_delocalization_paths, find_allyl_end_with_charge, find_butadiene, find_butadiene_end_with_charge, \ - find_lone_pair_multiple_bond_paths, find_N5dc_radical_delocalization_paths, find_shortest_path +from rmgpy.molecule.pathfinder import ( + compute_atom_distance, + find_adj_lone_pair_multiple_bond_delocalization_paths, + find_adj_lone_pair_radical_delocalization_paths, + find_adj_lone_pair_radical_multiple_bond_delocalization_paths, + find_allyl_delocalization_paths, + find_allyl_end_with_charge, + find_butadiene, + find_butadiene_end_with_charge, + find_lone_pair_multiple_bond_paths, + find_N5dc_radical_delocalization_paths, + find_shortest_path, +) class FindButadieneTest(unittest.TestCase): @@ -143,7 +152,9 @@ def test_c2h2o3(self): mol = Molecule().from_adjacency_list(adjlist) start = mol.atoms[2] paths = find_allyl_end_with_charge(start) - idx_path = sorted([[mol.atoms.index(atom) + 1 for atom in path[0::2]] for path in paths]) + idx_path = sorted( + [[mol.atoms.index(atom) + 1 for atom in path[0::2]] for path in paths] + ) expected_idx_path = [[3, 2, 4], [3, 2, 5]] self.assertEquals(idx_path, expected_idx_path) @@ -183,7 +194,9 @@ def test_c3h2o3(self): mol = Molecule().from_adjacency_list(adjlist) start = mol.atoms[1] paths = find_allyl_end_with_charge(start) - idx_paths = sorted([[mol.atoms.index(atom) + 1 for atom in path[0::2]] for path in paths]) + idx_paths = sorted( + [[mol.atoms.index(atom) + 1 for atom in path[0::2]] for path in paths] + ) idx_paths = sorted(idx_paths) expected_idx_paths = [[2, 3, 4], [2, 3, 6]] @@ -332,9 +345,8 @@ def test_c6h6o6(self): class ShortestPathTest(unittest.TestCase): - def test_ccc(self): - smi = 'CCC' + smi = "CCC" mol = Molecule().from_smiles(smi) start = mol.atoms[0] end = mol.atoms[2] @@ -343,7 +355,7 @@ def test_ccc(self): self.assertEquals(len(path), 3) def test_cyclohexane(self): - smi = 'C1CCCCC1' + smi = "C1CCCCC1" mol = Molecule().from_smiles(smi) start = mol.atoms[0] end = mol.atoms[2] @@ -352,7 +364,7 @@ def test_cyclohexane(self): self.assertEquals(len(path), 3) def test_bicyclo420octane(self): - smi = 'C12CCC1CCCC2' + smi = "C12CCC1CCCC2" mol = Molecule().from_smiles(smi) start = mol.atoms[0] end = mol.atoms[4] @@ -362,9 +374,8 @@ def test_bicyclo420octane(self): class DistanceComputingTest(unittest.TestCase): - def test_2_atoms(self): - smi = 'CCC' + smi = "CCC" mol = Molecule().from_smiles(smi) atom_indices = [1, 2] distances = compute_atom_distance(atom_indices, mol) @@ -373,7 +384,7 @@ def test_2_atoms(self): self.assertEquals(distances, expected) def test_3_atoms(self): - smi = 'CCC' + smi = "CCC" mol = Molecule().from_smiles(smi) atom_indices = [1, 2, 3] distances = compute_atom_distance(atom_indices, mol) @@ -398,7 +409,7 @@ def test_allyl_radical(self): self.assertTrue(paths) def test_nitrogenated_birad(self): - smiles = '[N]C=[CH]' + smiles = "[N]C=[CH]" mol = Molecule().from_smiles(smiles) paths = find_allyl_delocalization_paths(mol.atoms[0]) self.assertTrue(paths) @@ -416,7 +427,7 @@ def test_azide(self): self.assertTrue(paths) def test_nh2cho(self): - smiles = 'NC=O' + smiles = "NC=O" mol = Molecule().from_smiles(smiles) paths = find_lone_pair_multiple_bond_paths(mol.atoms[0]) self.assertTrue(paths) @@ -504,13 +515,17 @@ class FindAdjLonePairRadicalMultipleBondDelocalizationPaths(unittest.TestCase): def test_ns(self): smiles = "N#[S]" mol = Molecule().from_smiles(smiles) - paths = find_adj_lone_pair_radical_multiple_bond_delocalization_paths(mol.atoms[1]) + paths = find_adj_lone_pair_radical_multiple_bond_delocalization_paths( + mol.atoms[1] + ) self.assertTrue(paths) def test_hso3(self): smiles = "O[S](=O)=O" mol = Molecule().from_smiles(smiles) - paths = find_adj_lone_pair_radical_multiple_bond_delocalization_paths(mol.atoms[1]) + paths = find_adj_lone_pair_radical_multiple_bond_delocalization_paths( + mol.atoms[1] + ) self.assertTrue(paths) diff --git a/test/rmgpy/molecule/resonanceTest.py b/test/rmgpy/molecule/resonanceTest.py index 21c2770035..bb7a8470a3 100644 --- a/test/rmgpy/molecule/resonanceTest.py +++ b/test/rmgpy/molecule/resonanceTest.py @@ -31,12 +31,17 @@ from external.wip import work_in_progress from rmgpy.molecule.molecule import Molecule -from rmgpy.molecule.resonance import _clar_optimization, _clar_transformation, generate_clar_structures, \ - generate_kekule_structure, generate_optimal_aromatic_resonance_structures, generate_resonance_structures +from rmgpy.molecule.resonance import ( + _clar_optimization, + _clar_transformation, + generate_clar_structures, + generate_kekule_structure, + generate_optimal_aromatic_resonance_structures, + generate_resonance_structures, +) class ResonanceTest(unittest.TestCase): - def test_allyl_shift(self): """Test allyl shift for hexadienyl radical""" mol_list = generate_resonance_structures(Molecule(smiles="C=C[CH]C=CC")) @@ -46,7 +51,9 @@ def test_trirad_allyl_shift(self): """Test allyl shift for a tri-rad carbon""" mol_list = generate_resonance_structures(Molecule(smiles="[C]N=N")) self.assertEqual(len(mol_list), 3) - self.assertTrue(any([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list])) # expecting [C]=[N+.][NH-] + self.assertTrue( + any([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list]) + ) # expecting [C]=[N+.][NH-] def test_oxime(self): """Test resonance structure generation for CC=N[O] radical @@ -54,7 +61,9 @@ def test_oxime(self): Simple case for lone pair <=> radical resonance""" mol_list = generate_resonance_structures(Molecule(smiles="CC=N[O]")) self.assertEqual(len(mol_list), 3) - self.assertTrue(any([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list])) + self.assertTrue( + any([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list]) + ) def test_ring_allyl_shift(self): """Test allyl shift for a cyclic species with heteroatoms""" @@ -98,20 +107,26 @@ def test_nco(self): """Test resonance structure generation for NCO NCO should only have two resonance structures [N.]=C=O <=> N#C[O.], and not a third structure which has - the same octet deviation, has a charge separation, but no ne radical site: [N+.]#C[O-]""" + the same octet deviation, has a charge separation, but no ne radical site: [N+.]#C[O-] + """ mol_list = generate_resonance_structures(Molecule(smiles="[N]=C=O")) self.assertEqual(len(mol_list), 2) - self.assertTrue(all([all([atom.charge == 0 for atom in mol.vertices]) for mol in mol_list])) # none of the + self.assertTrue( + all([all([atom.charge == 0 for atom in mol.vertices]) for mol in mol_list]) + ) # none of the # structures should be charged def test_no2(self): """Test resonance structure generation for [O]N=O radical Test case for the lone pair <=> radical resonance transition. - Also tests that the filtering function allows charge separation when the radical site is changed.""" + Also tests that the filtering function allows charge separation when the radical site is changed. + """ mol_list = generate_resonance_structures(Molecule(smiles="[O]N=O")) self.assertEqual(len(mol_list), 2) - self.assertTrue(any([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list])) # one of the + self.assertTrue( + any([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list]) + ) # one of the # structures should be charged def test_n2o(self): @@ -120,7 +135,9 @@ def test_n2o(self): A classic N5ddc <=> N5tc resonance transition""" mol_list = generate_resonance_structures(Molecule(smiles="N#[N+][O-]")) self.assertEqual(len(mol_list), 2) - self.assertTrue(all([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list])) # both structures + self.assertTrue( + all([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list]) + ) # both structures # should have some charged atoms sbonds = 0 @@ -143,15 +160,19 @@ def test_azide(self): """Test resonance structure generation for ethyl azide Simple case for N5ddc <=> N5tc resonance - Azides are described by three resonance structures: N=[N+]=[N-] <=> [NH-][N+]#N <=> [NH+]#[N+][N-2]""" + Azides are described by three resonance structures: N=[N+]=[N-] <=> [NH-][N+]#N <=> [NH+]#[N+][N-2] + """ mol_list = generate_resonance_structures(Molecule(smiles="CCN=[N+]=[N-]")) self.assertEqual(len(mol_list), 2) - self.assertTrue(all([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list])) + self.assertTrue( + all([any([atom.charge != 0 for atom in mol.vertices]) for mol in mol_list]) + ) def test_ozone(self): """Test resonance structure generation for O3, S3 and SO2. - Compare that these iso-electronic structures have the same number of resonance structures""" + Compare that these iso-electronic structures have the same number of resonance structures + """ mol_list_1 = generate_resonance_structures(Molecule(smiles="[O-][O+]=O")) self.assertEqual(len(mol_list_1), 1) mol_list_2 = generate_resonance_structures(Molecule(smiles="O=S=O")) @@ -162,7 +183,8 @@ def test_ozone(self): def test_hco_vs_hcs(self): """Test resonance structure generation for [CH]=O and [CH]=S - These iso-electronic structures have a different(!) number of resonance structures""" + These iso-electronic structures have a different(!) number of resonance structures + """ mol_list_1 = generate_resonance_structures(Molecule(smiles="[CH]=O")) self.assertEqual(len(mol_list_1), 1) mol_list_2 = generate_resonance_structures(Molecule(smiles="[CH]=S")) @@ -172,21 +194,31 @@ def test_no(self): """Test that an incorrect NO structure [::N][::O.] is correctly identified as [:N.]=[::O] The incorrect structure could be generated from HON (O[::N]) during an RMG run, and should be identified as NO. - The original structure should be kept as unreactive (appended at the end of the molecule list)""" - mol_list = generate_resonance_structures(Molecule().from_adjacency_list("""multiplicity 2 + The original structure should be kept as unreactive (appended at the end of the molecule list) + """ + mol_list = generate_resonance_structures( + Molecule().from_adjacency_list( + """multiplicity 2 1 N u0 p2 c0 {2,S} - 2 O u1 p2 c0 {1,S}""")) + 2 O u1 p2 c0 {1,S}""" + ) + ) self.assertEqual(len(mol_list), 2) self.assertTrue(mol_list[0].reactive) self.assertFalse(mol_list[1].reactive) - self.assertEqual(mol_list[0].vertices[0].lone_pairs + mol_list[0].vertices[1].lone_pairs, 3) - self.assertEqual(mol_list[1].vertices[0].lone_pairs + mol_list[1].vertices[1].lone_pairs, 4) + self.assertEqual( + mol_list[0].vertices[0].lone_pairs + mol_list[0].vertices[1].lone_pairs, 3 + ) + self.assertEqual( + mol_list[1].vertices[0].lone_pairs + mol_list[1].vertices[1].lone_pairs, 4 + ) def test_n5dc_radical(self): """Test the N5dc radical resonance transformation We should see N=[N+]([O])([O-]) <=> [NH-][N+]([O])=O - Two isomorphic structures should be included in mol_list: N=[N+]([O])([O-]) <=> N=[N+]([O-])([O])""" + Two isomorphic structures should be included in mol_list: N=[N+]([O])([O-]) <=> N=[N+]([O-])([O]) + """ mol = Molecule(smiles="N=[N+]([O-])[O]") mol_list = generate_resonance_structures(mol, keep_isomorphic=True) self.assertEqual(len(mol_list), 6) @@ -227,7 +259,8 @@ def test_styryl2(self): def test_naphthyl(self): """Test resonance structure generation for naphthyl radical - In this case, the radical is orthogonal to the pi-orbital plane and cannot delocalize""" + In this case, the radical is orthogonal to the pi-orbital plane and cannot delocalize + """ mol_list = generate_resonance_structures(Molecule(smiles="c12[c]cccc1cccc2")) self.assertEqual(len(mol_list), 4) @@ -235,21 +268,27 @@ def test_methyl_napthalene(self): """Test resonance structure generation for methyl naphthalene Example of stable polycyclic aromatic species""" - mol_list = generate_resonance_structures(Molecule(smiles="CC1=CC=CC2=CC=CC=C12")) + mol_list = generate_resonance_structures( + Molecule(smiles="CC1=CC=CC2=CC=CC=C12") + ) self.assertEqual(len(mol_list), 4) def test_methyl_phenanthrene(self): """Test resonance structure generation for methyl phenanthrene Example of stable polycyclic aromatic species""" - mol_list = generate_resonance_structures(Molecule(smiles="CC1=CC=CC2C3=CC=CC=C3C=CC=21")) + mol_list = generate_resonance_structures( + Molecule(smiles="CC1=CC=CC2C3=CC=CC=C3C=CC=21") + ) self.assertEqual(len(mol_list), 3) def test_methyl_phenanthrene_radical(self): """Test resonance structure generation for methyl phenanthrene radical Example radical polycyclic aromatic species where the radical can delocalize""" - mol_list = generate_resonance_structures(Molecule(smiles="[CH2]C1=CC=CC2C3=CC=CC=C3C=CC=21")) + mol_list = generate_resonance_structures( + Molecule(smiles="[CH2]C1=CC=CC2C3=CC=CC=C3C=CC=21") + ) self.assertEqual(len(mol_list), 9) def test_aromatic_with_lone_pair_resonance(self): @@ -259,7 +298,9 @@ def test_aromatic_with_lone_pair_resonance(self): def test_aromatic_with_n_resonance(self): """Test resonance structure generation for aromatic species with lone pair resonance""" - mol_list = generate_resonance_structures(Molecule(smiles="c1ccccc1CCN=[N+]=[N-]")) + mol_list = generate_resonance_structures( + Molecule(smiles="c1ccccc1CCN=[N+]=[N-]") + ) self.assertEqual(len(mol_list), 2) def test_aromatic_with_o_n_resonance(self): @@ -268,7 +309,9 @@ def test_aromatic_with_o_n_resonance(self): This test was specifically designed to recreate RMG-Py issue #1598. Key conditions: having heteroatoms, starting with aromatic structure, and keep_isomorphic=True """ - mol_list = generate_resonance_structures(Molecule().from_adjacency_list(""" + mol_list = generate_resonance_structures( + Molecule().from_adjacency_list( + """ multiplicity 2 1 O u0 p2 c0 {4,S} {16,S} 2 O u1 p2 c0 {4,S} @@ -286,19 +329,26 @@ def test_aromatic_with_o_n_resonance(self): 14 H u0 p0 c0 {10,S} 15 H u0 p0 c0 {7,S} 16 H u0 p0 c0 {1,S} -"""), keep_isomorphic=True) +""" + ), + keep_isomorphic=True, + ) self.assertEqual(len(mol_list), 1) def test_no_clar_structures(self): """Test that we can turn off Clar structure generation.""" - mol_list = generate_resonance_structures(Molecule(smiles='C1=CC=CC2C3=CC=CC=C3C=CC=21'), clar_structures=False) + mol_list = generate_resonance_structures( + Molecule(smiles="C1=CC=CC2C3=CC=CC=C3C=CC=21"), clar_structures=False + ) self.assertEqual(len(mol_list), 2) def test_c13h11_rad(self): """Test resonance structure generation for p-methylbenzylbenzene radical Has multiple resonance structures that break aromaticity of a ring""" - mol_list = generate_resonance_structures(Molecule(smiles="[CH](c1ccccc1)c1ccc(C)cc1")) + mol_list = generate_resonance_structures( + Molecule(smiles="[CH](c1ccccc1)c1ccc(C)cc1") + ) self.assertEqual(len(mol_list), 6) def test_c8h8(self): @@ -416,7 +466,8 @@ def test_aryne_3_rings(self): def test_fused_aromatic1(self): """Test we can make aromatic perylene from both adjlist and SMILES""" - perylene = Molecule().from_adjacency_list(""" + perylene = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {3,B} {6,B} {7,B} 2 C u0 p0 c0 {4,B} {5,B} {8,B} 3 C u0 p0 c0 {1,B} {4,B} {11,B} @@ -449,20 +500,23 @@ def test_fused_aromatic1(self): 30 H u0 p0 c0 {20,S} 31 H u0 p0 c0 {15,S} 32 H u0 p0 c0 {16,S} -""") - perylene2 = Molecule().from_smiles('c1cc2cccc3c4cccc5cccc(c(c1)c23)c54') +""" + ) + perylene2 = Molecule().from_smiles("c1cc2cccc3c4cccc5cccc(c(c1)c23)c54") for isomer in generate_optimal_aromatic_resonance_structures(perylene2): if perylene.is_isomorphic(isomer): break else: # didn't break - self.fail("{} isn't isomorphic with any aromatic forms of {}".format( - perylene.to_smiles(), - perylene2.to_smiles() - )) + self.fail( + "{} isn't isomorphic with any aromatic forms of {}".format( + perylene.to_smiles(), perylene2.to_smiles() + ) + ) def test_fused_aromatic2(self): """Test we can make aromatic naphthalene from both adjlist and SMILES""" - naphthalene = Molecule().from_adjacency_list(""" + naphthalene = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,B} {4,B} 2 C u0 p0 c0 {1,B} {5,B} {6,B} 3 C u0 p0 c0 {1,B} {8,B} {13,S} @@ -481,23 +535,27 @@ def test_fused_aromatic2(self): 16 H u0 p0 c0 {10,S} 17 H u0 p0 c0 {5,S} 18 H u0 p0 c0 {6,S} -""") - naphthalene2 = Molecule().from_smiles('C1=CC=C2C=CC=CC2=C1') +""" + ) + naphthalene2 = Molecule().from_smiles("C1=CC=C2C=CC=CC2=C1") for isomer in generate_optimal_aromatic_resonance_structures(naphthalene2): if naphthalene.is_isomorphic(isomer): break else: # didn't break - self.fail("{} isn't isomorphic with any aromatic forms of {}".format( - naphthalene.to_smiles(), - naphthalene2.to_smiles() - )) + self.fail( + "{} isn't isomorphic with any aromatic forms of {}".format( + naphthalene.to_smiles(), naphthalene2.to_smiles() + ) + ) def test_aromatic_resonance_structures(self): """Test that generate_optimal_aromatic_resonance_structures gives consistent output - Check that we get the same resonance structure regardless of which structure we start with""" + Check that we get the same resonance structure regardless of which structure we start with + """ # Kekulized form, radical on methyl - struct1 = Molecule().from_adjacency_list(""" + struct1 = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {3,D} {7,S} 2 C u0 p0 c0 {1,S} {4,S} {8,D} @@ -525,9 +583,11 @@ def test_aromatic_resonance_structures(self): 24 H u0 p0 c0 {11,S} 25 H u0 p0 c0 {15,S} 26 H u0 p0 c0 {15,S} -""") +""" + ) # Kekulized form, radical on ring - struct2 = Molecule().from_adjacency_list(""" + struct2 = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {7,D} 2 C u0 p0 c0 {1,S} {4,S} {8,D} @@ -555,9 +615,11 @@ def test_aromatic_resonance_structures(self): 24 H u0 p0 c0 {14,S} 25 H u0 p0 c0 {15,S} 26 H u0 p0 c0 {15,S} -""") +""" + ) # Aromatic form - struct3 = Molecule().from_adjacency_list(""" + struct3 = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,B} {3,B} {7,B} 2 C u0 p0 c0 {1,B} {4,B} {8,B} @@ -585,7 +647,8 @@ def test_aromatic_resonance_structures(self): 24 H u0 p0 c0 {11,S} 25 H u0 p0 c0 {15,S} 26 H u0 p0 c0 {15,S} -""") +""" + ) result1 = generate_optimal_aromatic_resonance_structures(struct1) result2 = generate_optimal_aromatic_resonance_structures(struct2) result3 = generate_optimal_aromatic_resonance_structures(struct3) @@ -604,8 +667,9 @@ def test_bridged_aromatic(self): non-deterministic output, so using get_all_cycles_of_size allows this test to pass. Update: Highly-strained fused rings are no longer considered aromatic.""" - mol = Molecule(smiles='c12c3cccc1c3ccc2') - arom = Molecule().from_adjacency_list(""" + mol = Molecule(smiles="c12c3cccc1c3ccc2") + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,B} {8,B} 2 C u0 p0 c0 {1,B} {4,B} {5,B} 3 C u0 p0 c0 {1,B} {4,S} {6,B} @@ -622,7 +686,8 @@ def test_bridged_aromatic(self): 14 H u0 p0 c0 {7,S} 15 H u0 p0 c0 {10,S} 16 H u0 p0 c0 {8,S} -""") +""" + ) out = generate_resonance_structures(mol) @@ -636,8 +701,9 @@ def test_polycyclic_aromatic_with_non_aromatic_ring(self): rings in the molecule that are actually aromatic. Update: Highly-strained fused rings are no longer considered aromatic.""" - mol = Molecule(smiles='c1c2cccc1C(=C)C=[C]2') - arom = Molecule().from_adjacency_list(""" + mol = Molecule(smiles="c1c2cccc1C(=C)C=[C]2") + arom = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {4,B} {5,B} 2 C u0 p0 c0 {1,S} {8,S} {9,D} @@ -656,7 +722,8 @@ def test_polycyclic_aromatic_with_non_aromatic_ring(self): 15 H u0 p0 c0 {8,S} 16 H u0 p0 c0 {9,S} 17 H u0 p0 c0 {9,S} -""") +""" + ) out = generate_resonance_structures(mol) @@ -668,8 +735,9 @@ def test_polycyclic_aromatic_with_non_aromatic_ring2(self): This applies in cases where RDKit misidentifies one ring as aromatic, but there are other rings in the molecule that are actually aromatic.""" - mol = Molecule(smiles='C=C(C1=CC2=C(C=C1C=C3)C4=CC5=CC=CC=C5C=C4C=C2)C3=C') - arom = Molecule().from_adjacency_list(""" + mol = Molecule(smiles="C=C(C1=CC2=C(C=C1C=C3)C4=CC5=CC=CC=C5C=C4C=C2)C3=C") + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {4,S} {6,B} {11,B} 2 C u0 p0 c0 {3,B} {5,B} {12,B} 3 C u0 p0 c0 {2,B} {9,B} {13,B} @@ -710,7 +778,8 @@ def test_polycyclic_aromatic_with_non_aromatic_ring2(self): 38 H u0 p0 c0 {23,S} 39 H u0 p0 c0 {24,S} 40 H u0 p0 c0 {24,S} -""") +""" + ) out = generate_resonance_structures(mol) @@ -719,7 +788,8 @@ def test_polycyclic_aromatic_with_non_aromatic_ring2(self): def test_kekulize_benzene(self): """Test that we can kekulize benzene.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {6,B} {7,S} 2 C u0 p0 c0 {1,B} {3,B} {8,S} 3 C u0 p0 c0 {2,B} {4,B} {9,S} @@ -732,8 +802,10 @@ def test_kekulize_benzene(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -""") - keku = Molecule().from_adjacency_list(""" +""" + ) + keku = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {6,S} {7,S} 2 C u0 p0 c0 {1,D} {3,S} {8,S} 3 C u0 p0 c0 {2,S} {4,D} {9,S} @@ -746,7 +818,8 @@ def test_kekulize_benzene(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -754,7 +827,8 @@ def test_kekulize_benzene(self): def test_kekulize_naphthalene(self): """Test that we can kekulize naphthalene.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,B} {4,B} 2 C u0 p0 c0 {1,B} {5,B} {6,B} 3 C u0 p0 c0 {1,B} {8,B} {13,S} @@ -773,7 +847,8 @@ def test_kekulize_naphthalene(self): 16 H u0 p0 c0 {10,S} 17 H u0 p0 c0 {5,S} 18 H u0 p0 c0 {6,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -792,7 +867,8 @@ def test_kekulize_naphthalene(self): def test_kekulize_phenanthrene(self): """Test that we can kekulize phenanthrene.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,B} {5,B} 2 C u0 p0 c0 {1,B} {4,B} {9,B} 3 C u0 p0 c0 {1,B} {6,B} {10,B} @@ -817,7 +893,8 @@ def test_kekulize_phenanthrene(self): 22 H u0 p0 c0 {14,S} 23 H u0 p0 c0 {9,S} 24 H u0 p0 c0 {10,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -836,7 +913,8 @@ def test_kekulize_phenanthrene(self): def test_kekulize_pyrene(self): """Test that we can kekulize pyrene.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,B} {6,B} 2 C u0 p0 c0 {1,B} {4,B} {5,B} 3 C u0 p0 c0 {1,B} {7,B} {8,B} @@ -863,7 +941,8 @@ def test_kekulize_pyrene(self): 24 H u0 p0 c0 {12,S} 25 H u0 p0 c0 {13,S} 26 H u0 p0 c0 {14,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -882,7 +961,8 @@ def test_kekulize_pyrene(self): def test_kekulize_corannulene(self): """Test that we can kekulize corannulene.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {5,B} {8,B} 2 C u0 p0 c0 {1,B} {3,B} {10,B} 3 C u0 p0 c0 {2,B} {4,B} {9,B} @@ -913,7 +993,8 @@ def test_kekulize_corannulene(self): 28 H u0 p0 c0 {18,S} 29 H u0 p0 c0 {19,S} 30 H u0 p0 c0 {20,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -932,7 +1013,8 @@ def test_kekulize_corannulene(self): def test_kekulize_coronene(self): """Test that we can kekulize coronene.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {6,B} {12,B} 2 C u0 p0 c0 {1,B} {3,B} {7,B} 3 C u0 p0 c0 {2,B} {4,B} {8,B} @@ -969,7 +1051,8 @@ def test_kekulize_coronene(self): 34 H u0 p0 c0 {22,S} 35 H u0 p0 c0 {23,S} 36 H u0 p0 c0 {24,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -988,7 +1071,8 @@ def test_kekulize_coronene(self): def test_kekulize_bridged_aromatic(self): """Test that we can kekulize a bridged polycyclic aromatic species.""" - arom = Molecule().from_adjacency_list(""" + arom = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,B} {3,S} {6,B} 2 C u0 p0 c0 {1,B} {3,B} {11,S} 3 C u0 p0 c0 {1,S} {2,B} {4,B} @@ -1005,7 +1089,8 @@ def test_kekulize_bridged_aromatic(self): 14 H u0 p0 c0 {8,S} 15 H u0 p0 c0 {9,S} 16 H u0 p0 c0 {10,S} -""") +""" + ) out = generate_kekule_structure(arom) self.assertEqual(len(out), 1) @@ -1045,7 +1130,11 @@ def test_multiple_kekulized_resonance_isomers_rad(self): molecule = Molecule().from_adjacency_list(adjlist_aromatic) self.assertTrue(molecule.is_aromatic(), "Starting molecule should be aromatic") mol_list = generate_resonance_structures(molecule) - self.assertEqual(len(mol_list), 4, "Expected 4 resonance structures, but generated {0}.".format(len(mol_list))) + self.assertEqual( + len(mol_list), + 4, + "Expected 4 resonance structures, but generated {0}.".format(len(mol_list)), + ) aromatic = 0 for mol in mol_list: if mol.is_aromatic(): @@ -1054,7 +1143,7 @@ def test_multiple_kekulized_resonance_isomers_rad(self): def test_keep_isomorphic_structures_functions_when_true(self): """Test that keep_isomorphic works for resonance structure generation when True.""" - mol = Molecule(smiles='C=C[CH2]') + mol = Molecule(smiles="C=C[CH2]") mol.assign_atom_ids() out = generate_resonance_structures(mol, keep_isomorphic=True) @@ -1064,7 +1153,7 @@ def test_keep_isomorphic_structures_functions_when_true(self): def test_keep_isomorphic_structures_functions_when_false(self): """Test that keep_isomorphic works for resonance structure generation when False.""" - mol = Molecule(smiles='C=C[CH2]') + mol = Molecule(smiles="C=C[CH2]") mol.assign_atom_ids() out = generate_resonance_structures(mol, keep_isomorphic=False) @@ -1072,10 +1161,11 @@ def test_keep_isomorphic_structures_functions_when_false(self): def test_false_negative_aromaticity_perception(self): """Test that we obtain the correct aromatic structure for a monocyclic aromatic that RDKit mis-identifies.""" - mol = Molecule(smiles='[CH2]C=C1C=CC(=C)C=C1') + mol = Molecule(smiles="[CH2]C=C1C=CC(=C)C=C1") out = generate_resonance_structures(mol) - aromatic = Molecule().from_adjacency_list(""" + aromatic = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {4,B} {5,B} {7,S} 2 C u0 p0 c0 {3,B} {6,B} {8,S} @@ -1095,17 +1185,19 @@ def test_false_negative_aromaticity_perception(self): 16 H u0 p0 c0 {8,S} 17 H u0 p0 c0 {9,S} 18 H u0 p0 c0 {9,S} -""") +""" + ) self.assertEqual(len(out), 4) self.assertTrue(any([m.is_isomorphic(aromatic) for m in out])) def test_false_negative_polycyclic_aromaticity_perception(self): """Test that we generate proper structures for a polycyclic aromatic that RDKit mis-identifies.""" - mol = Molecule(smiles='C=C1C=CC=C2C=C[CH]C=C12') + mol = Molecule(smiles="C=C1C=CC=C2C=C[CH]C=C12") out = generate_resonance_structures(mol) - clar = Molecule().from_adjacency_list(""" + clar = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,B} {3,B} {7,S} 2 C u0 p0 c0 {1,B} {5,B} {6,S} @@ -1127,17 +1219,19 @@ def test_false_negative_polycyclic_aromaticity_perception(self): 18 H u0 p0 c0 {7,S} 19 H u0 p0 c0 {11,S} 20 H u0 p0 c0 {11,S} -""") +""" + ) self.assertEqual(len(out), 6) self.assertTrue(any([m.is_isomorphic(clar) for m in out])) def test_false_negative_polycylic_aromaticity_perception2(self): """Test that we obtain the correct aromatic structure for a polycylic aromatic that RDKit mis-identifies.""" - mol = Molecule(smiles='[CH2]C=C1C=CC(=C)C2=C1C=CC=C2') + mol = Molecule(smiles="[CH2]C=C1C=CC(=C)C2=C1C=CC=C2") out = generate_resonance_structures(mol) - aromatic = Molecule().from_adjacency_list(""" + aromatic = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,B} {4,B} {8,B} 2 C u0 p0 c0 {1,B} {3,B} {7,B} @@ -1163,7 +1257,8 @@ def test_false_negative_polycylic_aromaticity_perception2(self): 22 H u0 p0 c0 {12,S} 23 H u0 p0 c0 {13,S} 24 H u0 p0 c0 {13,S} -""") +""" + ) self.assertEqual(len(out), 7) self.assertTrue(any([m.is_isomorphic(aromatic) for m in out])) @@ -1173,7 +1268,8 @@ def test_inconsistent_aromatic_structure_generation(self): Update: Highly-strained fused rings are no longer considered aromatic. That prevents the inconsistent aromatic structure for this molecule.""" - mol1 = Molecule().from_adjacency_list(""" + mol1 = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {11,S} {12,S} 2 C u0 p0 c0 {1,S} {3,D} {4,S} @@ -1192,9 +1288,11 @@ def test_inconsistent_aromatic_structure_generation(self): 15 H u0 p0 c0 {9,S} 16 H u0 p0 c0 {10,S} 17 H u0 p0 c0 {7,S} -""") +""" + ) - mol2 = Molecule().from_adjacency_list(""" + mol2 = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {11,S} {12,S} 2 C u0 p0 c0 {1,S} {3,D} {4,S} @@ -1213,7 +1311,8 @@ def test_inconsistent_aromatic_structure_generation(self): 15 H u0 p0 c0 {8,S} 16 H u0 p0 c0 {7,S} 17 H u0 p0 c0 {9,S} -""") +""" + ) # These two slightly different adjlists should be the same structure self.assertTrue(mol1.is_isomorphic(mol2)) @@ -1225,7 +1324,8 @@ def test_inconsistent_aromatic_structure_generation(self): def test_resonance_without_changing_atom_order1(self): """Test generating resonance structures without changing the atom order""" - mol = Molecule().from_adjacency_list("""multiplicity 2 + mol = Molecule().from_adjacency_list( + """multiplicity 2 1 C u1 p0 c0 {2,S} {8,S} {9,S} 2 C u0 p0 c0 {1,S} {3,S} {4,D} 3 C u0 p0 c0 {2,S} {10,S} {11,S} {12,S} @@ -1243,7 +1343,8 @@ def test_resonance_without_changing_atom_order1(self): 15 H u0 p0 c0 {5,S} 16 H u0 p0 c0 {6,S} 17 H u0 p0 c0 {6,S} -18 H u0 p0 c0 {7,S}""") +18 H u0 p0 c0 {7,S}""" + ) # Note: if save_order = False, atoms will be sorted # and the O atom will be reindexed to 1, which should be @@ -1266,7 +1367,8 @@ def test_resonance_without_changing_atom_order1(self): def test_resonance_without_changing_atom_order2(self): """Test generating resonance structures for aromatic molecules without changing the atom order""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {7,D} 2 O u1 p2 c0 {1,S} @@ -1280,7 +1382,8 @@ def test_resonance_without_changing_atom_order2(self): 10 H u0 p0 c0 {5,S} 11 H u0 p0 c0 {6,S} 12 H u0 p0 c0 {7,S} -""") +""" + ) # Note: if save_order = False, atoms will be sorted # and the O atom will be reindexed to 1, which should be @@ -1310,7 +1413,7 @@ class ClarTest(unittest.TestCase): def test_clar_transformation(self): """Test that clarTransformation generates an aromatic ring.""" - mol = Molecule().from_smiles('c1ccccc1') + mol = Molecule().from_smiles("c1ccccc1") sssr = mol.get_smallest_set_of_smallest_rings() _clar_transformation(mol, sssr[0]) mol.update_atomtypes() @@ -1319,11 +1422,10 @@ def test_clar_transformation(self): def test_clar_optimization(self): """Test to ensure pi electrons are conserved during optimization""" - mol = Molecule().from_smiles('C1=CC=C2C=CC=CC2=C1') # Naphthalene + mol = Molecule().from_smiles("C1=CC=C2C=CC=CC2=C1") # Naphthalene output = _clar_optimization(mol) for molecule, asssr, bonds, solution in output: - # Count pi electrons in molecule pi = 0 for bond in bonds: @@ -1331,8 +1433,8 @@ def test_clar_optimization(self): pi += 2 # Count pi electrons in solution - y = solution[0:len(asssr)] - x = solution[len(asssr):] + y = solution[0 : len(asssr)] + x = solution[len(asssr) :] pi_solution = 6 * sum(y) + 2 * sum(x) # Check that both counts give 10 pi electrons @@ -1344,10 +1446,11 @@ def test_clar_optimization(self): def test_phenanthrene(self): """Test that we generate 1 Clar structure for phenanthrene.""" - mol = Molecule().from_smiles('C1=CC=C2C(C=CC3=CC=CC=C32)=C1') + mol = Molecule().from_smiles("C1=CC=C2C(C=CC3=CC=CC=C32)=C1") newmol = generate_clar_structures(mol) - struct = Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {3,B} {5,B} + struct = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {3,B} {5,B} 2 C u0 p0 c0 {1,S} {4,B} {9,B} 3 C u0 p0 c0 {1,B} {6,S} {10,B} 4 C u0 p0 c0 {2,B} {7,S} {8,B} @@ -1371,7 +1474,8 @@ def test_phenanthrene(self): 22 H u0 p0 c0 {14,S} 23 H u0 p0 c0 {9,S} 24 H u0 p0 c0 {10,S} -""") +""" + ) self.assertEqual(len(newmol), 1) self.assertTrue(newmol[0].is_isomorphic(struct)) @@ -1380,10 +1484,11 @@ def test_phenalene(self): """Test that we generate 2 Clar structures for phenalene. Case where there is one non-aromatic ring.""" - mol = Molecule().from_smiles('C1=CC2=CC=CC3CC=CC(=C1)C=32') + mol = Molecule().from_smiles("C1=CC2=CC=CC3CC=CC(=C1)C=32") newmol = generate_clar_structures(mol) - struct1 = Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {6,S} {14,S} {15,S} + struct1 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {6,S} {14,S} {15,S} 2 C u0 p0 c0 {1,S} {3,S} {7,D} 3 C u0 p0 c0 {2,S} {4,B} {5,B} 4 C u0 p0 c0 {3,B} {9,B} {10,S} @@ -1406,8 +1511,10 @@ def test_phenalene(self): 21 H u0 p0 c0 {7,S} 22 H u0 p0 c0 {8,S} 23 H u0 p0 c0 {11,S} -""") - struct2 = Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {6,S} {14,S} {15,S} +""" + ) + struct2 = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {6,S} {14,S} {15,S} 2 C u0 p0 c0 {1,S} {3,B} {7,B} 3 C u0 p0 c0 {2,B} {4,B} {5,S} 4 C u0 p0 c0 {3,B} {9,S} {10,B} @@ -1430,21 +1537,27 @@ def test_phenalene(self): 21 H u0 p0 c0 {7,S} 22 H u0 p0 c0 {8,S} 23 H u0 p0 c0 {11,S} -""") +""" + ) self.assertEqual(len(newmol), 2) - self.assertTrue(newmol[0].is_isomorphic(struct1) or newmol[0].is_isomorphic(struct2)) - self.assertTrue(newmol[1].is_isomorphic(struct2) or newmol[1].is_isomorphic(struct1)) + self.assertTrue( + newmol[0].is_isomorphic(struct1) or newmol[0].is_isomorphic(struct2) + ) + self.assertTrue( + newmol[1].is_isomorphic(struct2) or newmol[1].is_isomorphic(struct1) + ) self.assertFalse(newmol[0].is_isomorphic(newmol[1])) def test_corannulene(self): """Test that we generate 5 Clar structures for corannulene Case where linear relaxation does not give an integer solution""" - mol = Molecule().from_smiles('C1=CC2=CC=C3C=CC4=C5C6=C(C2=C35)C1=CC=C6C=C4') + mol = Molecule().from_smiles("C1=CC2=CC=C3C=CC4=C5C6=C(C2=C35)C1=CC=C6C=C4") newmol = generate_clar_structures(mol) - struct = Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {5,B} {8,B} + struct = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {5,B} {8,B} 2 C u0 p0 c0 {1,S} {3,B} {10,B} 3 C u0 p0 c0 {2,B} {4,S} {9,B} 4 C u0 p0 c0 {3,S} {5,S} {6,D} @@ -1474,7 +1587,8 @@ def test_corannulene(self): 28 H u0 p0 c0 {18,S} 29 H u0 p0 c0 {19,S} 30 H u0 p0 c0 {20,S} -""") +""" + ) self.assertEqual(len(newmol), 5) self.assertTrue(newmol[0].is_isomorphic(struct)) @@ -1487,7 +1601,8 @@ def test_exocyclic_db(self): """Test that Clar structure generation doesn't modify exocyclic double bonds Important for cases where RDKit considers rings to be aromatic by counting pi-electron contributions - from exocyclic double bonds, while they don't actually contribute to aromaticity""" + from exocyclic double bonds, while they don't actually contribute to aromaticity + """ mol = Molecule(smiles="C=C1C=CC=CC1=C") newmol = generate_clar_structures(mol) @@ -1499,22 +1614,28 @@ def test_surface_o(self): Should not crash.""" # See https://github.com/cfgoldsmith/RMG-Py/issues/43 - mol_list = generate_resonance_structures(Molecule().from_adjacency_list("""OX + mol_list = generate_resonance_structures( + Molecule().from_adjacency_list( + """OX 1 X u0 p0 c0 {2,D} -2 O u0 p2 c0 {1,D}""")) +2 O u0 p2 c0 {1,D}""" + ) + ) self.assertEquals(len(mol_list), 1) def test_surface_radical(self): """Test resonance structure generation for radical on surface Should not put radical on X atom""" - mol_list = generate_resonance_structures(Molecule(smiles='*=C[CH]C')) + mol_list = generate_resonance_structures(Molecule(smiles="*=C[CH]C")) self.assertEquals(len(mol_list), 1) def test_sulfur_triple_bond(self): """ - Test the prevention of S#S formation through the find_lone_pair_multiplebond_paths and - find_adj_lone_pair_multiple_bond_delocalization_paths + Test the prevention of S#S formation through the find_lone_pair_multiplebond_paths and + find_adj_lone_pair_multiple_bond_delocalization_paths """ - mol_list = generate_resonance_structures(Molecule(smiles="S1SSS1"), filter_structures=False) + mol_list = generate_resonance_structures( + Molecule(smiles="S1SSS1"), filter_structures=False + ) self.assertEqual(len(mol_list), 10) diff --git a/test/rmgpy/molecule/symmetryTest.py b/test/rmgpy/molecule/symmetryTest.py index a162b45c57..634c985b69 100644 --- a/test/rmgpy/molecule/symmetryTest.py +++ b/test/rmgpy/molecule/symmetryTest.py @@ -32,8 +32,13 @@ from external.wip import work_in_progress from rmgpy.molecule.molecule import Molecule from rmgpy.molecule.resonance import generate_optimal_aromatic_resonance_structures -from rmgpy.molecule.symmetry import calculate_atom_symmetry_number, calculate_axis_symmetry_number, \ - calculate_bond_symmetry_number, calculate_cyclic_symmetry_number, _indistinguishable +from rmgpy.molecule.symmetry import ( + calculate_atom_symmetry_number, + calculate_axis_symmetry_number, + calculate_bond_symmetry_number, + calculate_cyclic_symmetry_number, + _indistinguishable, +) from rmgpy.species import Species @@ -50,7 +55,7 @@ def test_atom_symmetry_number_methane(self): """ Test the Molecule.calculate_atom_symmetry_number() on CH4 """ - molecule = Molecule().from_smiles('C') + molecule = Molecule().from_smiles("C") symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -61,7 +66,7 @@ def test_atom_symmetry_number_methyl(self): """ Test the Molecule.calculate_atom_symmetry_number() on [CH3] """ - molecule = Molecule().from_smiles('[CH3]') + molecule = Molecule().from_smiles("[CH3]") symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -72,7 +77,7 @@ def test_atom_symmetry_number_ethane(self): """ Test the Molecule.calculate_atom_symmetry_number() on CC """ - molecule = Molecule().from_smiles('CC') + molecule = Molecule().from_smiles("CC") symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -89,7 +94,8 @@ def test_atom_symmetry_number_ethane_with_deuterium_tritium(self): The total number is 1.5 because the methyl group contributes *3 and the chiral center contributes *0.5 """ - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 D u0 p0 c0 {1,S} @@ -98,7 +104,8 @@ def test_atom_symmetry_number_ethane_with_deuterium_tritium(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -115,7 +122,8 @@ def test_atom_symmetry_number_with_two_chiral_centers(self): The molecule has one methyl group (*3), two CH2dot groups (*2 each), and two chiral centers (*0.5), leading to a total atom symmetry number of 3 """ - molecule = Molecule().from_adjacency_list(""" + molecule = Molecule().from_adjacency_list( + """ multiplicity 3 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} @@ -139,7 +147,8 @@ def test_atom_symmetry_number_with_two_chiral_centers(self): 20 H u0 p0 c0 {11,S} 21 H u0 p0 c0 {12,S} 22 H u0 p0 c0 {12,S} -""") +""" + ) symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -150,7 +159,7 @@ def test_atom_symmetry_number_propane(self): """ Test the Molecule.calculate_atom_symmetry_number() on CCC """ - molecule = Molecule().from_smiles('CCC') + molecule = Molecule().from_smiles("CCC") symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -161,7 +170,7 @@ def test_atom_symmetry_number_isobutane(self): """ Test the Molecule.calculate_atom_symmetry_number() on CC(C)C """ - molecule = Molecule().from_smiles('CC(C)C') + molecule = Molecule().from_smiles("CC(C)C") symmetry_number = 1 for atom in molecule.atoms: if not molecule.is_atom_in_cycle(atom): @@ -172,123 +181,133 @@ def test_bond_symmetry_number_ethane(self): """ Test the Molecule.calculate_bond_symmetry_number() on CC """ - molecule = Molecule().from_smiles('CC') + molecule = Molecule().from_smiles("CC") symmetry_number = 1 for atom1 in molecule.atoms: for atom2 in list(atom1.bonds): if molecule.atoms.index(atom1) < molecule.atoms.index(atom2): - symmetry_number *= calculate_bond_symmetry_number(molecule, atom1, atom2) + symmetry_number *= calculate_bond_symmetry_number( + molecule, atom1, atom2 + ) self.assertEqual(symmetry_number, 2) def test_bond_symmetry_number_propane(self): """ Test the Molecule.calculate_bond_symmetry_number() on CCC """ - molecule = Molecule().from_smiles('CCC') + molecule = Molecule().from_smiles("CCC") symmetry_number = 1 for atom1 in molecule.atoms: for atom2 in list(atom1.bonds): if molecule.atoms.index(atom1) < molecule.atoms.index(atom2): - symmetry_number *= calculate_bond_symmetry_number(molecule, atom1, atom2) + symmetry_number *= calculate_bond_symmetry_number( + molecule, atom1, atom2 + ) self.assertEqual(symmetry_number, 1) def test_bond_symmetry_number_butane(self): """ Test the Molecule.calculate_bond_symmetry_number() on CCCC """ - molecule = Molecule().from_smiles('CCCC') + molecule = Molecule().from_smiles("CCCC") symmetry_number = 1 for atom1 in molecule.atoms: for atom2 in list(atom1.bonds): if molecule.atoms.index(atom1) < molecule.atoms.index(atom2): - symmetry_number *= calculate_bond_symmetry_number(molecule, atom1, atom2) + symmetry_number *= calculate_bond_symmetry_number( + molecule, atom1, atom2 + ) self.assertEqual(symmetry_number, 2) def test_bond_symmetry_number_ethylene(self): """ Test the Molecule.calculate_bond_symmetry_number() on C=C """ - molecule = Molecule().from_smiles('C=C') + molecule = Molecule().from_smiles("C=C") symmetry_number = 1 for atom1 in molecule.atoms: for atom2 in list(atom1.bonds): if molecule.atoms.index(atom1) < molecule.atoms.index(atom2): - symmetry_number *= calculate_bond_symmetry_number(molecule, atom1, atom2) + symmetry_number *= calculate_bond_symmetry_number( + molecule, atom1, atom2 + ) self.assertEqual(symmetry_number, 2) def test_bond_symmetry_number_acetylene(self): """ Test the Molecule.calculate_bond_symmetry_number() on C#C """ - molecule = Molecule().from_smiles('C#C') + molecule = Molecule().from_smiles("C#C") symmetry_number = 1 for atom1 in molecule.atoms: for atom2 in list(atom1.bonds): if molecule.atoms.index(atom1) < molecule.atoms.index(atom2): - symmetry_number *= calculate_bond_symmetry_number(molecule, atom1, atom2) + symmetry_number *= calculate_bond_symmetry_number( + molecule, atom1, atom2 + ) self.assertEqual(symmetry_number, 2) def test_axis_symmetry_number_ethylene(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C """ - molecule = Molecule().from_smiles('C=C') + molecule = Molecule().from_smiles("C=C") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_number_propadiene(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C """ - molecule = Molecule().from_smiles('C=C=C') + molecule = Molecule().from_smiles("C=C=C") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_number_butatriene(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C=C """ - molecule = Molecule().from_smiles('C=C=C=C') + molecule = Molecule().from_smiles("C=C=C=C") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_number_butatrienyl(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C=[CH] """ - molecule = Molecule().from_smiles('C=C=C=[CH]') + molecule = Molecule().from_smiles("C=C=C=[CH]") self.assertEqual(calculate_axis_symmetry_number(molecule), 1) def test_axis_symmetry_number_propadienyl(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=[C] """ - molecule = Molecule().from_smiles('C=C=[C]') + molecule = Molecule().from_smiles("C=C=[C]") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_number_12_butadienyl(self): """ Test the Molecule.calculate_axis_symmetry_number() on CC=C=[C] """ - molecule = Molecule().from_smiles('CC=C=[C]') + molecule = Molecule().from_smiles("CC=C=[C]") self.assertEqual(calculate_axis_symmetry_number(molecule), 1) def test_axis_symmetry_number_12_hexadienyl(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=CCCC """ - molecule = Molecule().from_smiles('C=C=CCCC') + molecule = Molecule().from_smiles("C=C=CCCC") self.assertEqual(calculate_axis_symmetry_number(molecule), 1) def test_axis_symmetry_number1(self): """ Test the Molecule.calculate_axis_symmetry_number() on CC(C)=C=C(CC)CC """ - molecule = Molecule().from_smiles('CC(C)=C=C(CC)CC') + molecule = Molecule().from_smiles("CC(C)=C=C(CC)CC") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_number2(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C(C(C(C(C=C=C)=C=C)=C=C)=C=C) """ - molecule = Molecule().from_smiles('C=C=C(C(C(C(C=C=C)=C=C)=C=C)=C=C)') + molecule = Molecule().from_smiles("C=C=C(C(C(C(C=C=C)=C=C)=C=C)=C=C)") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) @work_in_progress @@ -296,49 +315,49 @@ def test_axis_symmetry_number3(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=[C]C(C)(C)[C]=C=C """ - molecule = Molecule().from_smiles('C=C=[C]C(C)(C)[C]=C=C') + molecule = Molecule().from_smiles("C=C=[C]C(C)(C)[C]=C=C") self.assertEqual(calculate_axis_symmetry_number(molecule), 4) def test_axis_symmetry_number4(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C=O """ - molecule = Molecule().from_smiles('C=C=C=O') + molecule = Molecule().from_smiles("C=C=C=O") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_number5(self): """ Test the Molecule.calculate_axis_symmetry_number() on CC=C=C=O """ - molecule = Molecule().from_smiles('CC=C=C=O') + molecule = Molecule().from_smiles("CC=C=C=O") self.assertEqual(calculate_axis_symmetry_number(molecule), 1) def test_axis_symmetry_number6(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C=N """ - molecule = Molecule().from_smiles('C=C=C=N') + molecule = Molecule().from_smiles("C=C=C=N") self.assertEqual(calculate_axis_symmetry_number(molecule), 1) def test_axis_symmetry_number7(self): """ Test the Molecule.calculate_axis_symmetry_number() on C=C=C=[N] """ - molecule = Molecule().from_smiles('C=C=C=[N]') + molecule = Molecule().from_smiles("C=C=C=[N]") self.assertEqual(calculate_axis_symmetry_number(molecule), 2) def test_axis_symmetry_oxygen_singlet(self): """ Test the Molecule.calculate_axis_symmetry_number() on O=O """ - molecule = Molecule().from_smiles('O=O') + molecule = Molecule().from_smiles("O=O") self.assertEqual(calculate_axis_symmetry_number(molecule), 1) def test_cyclic_symmetry_number_cyclohexane(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on C1CCCCC1 """ - molecule = Molecule().from_smiles('C1CCCCC1') + molecule = Molecule().from_smiles("C1CCCCC1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 12) @@ -346,7 +365,7 @@ def test_cyclic_symmetry_number_cyclohexanone(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on C1CCCCC1=O """ - molecule = Molecule().from_smiles('C1CCCCC1=O') + molecule = Molecule().from_smiles("C1CCCCC1=O") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 2) @@ -354,7 +373,7 @@ def test_cyclic_symmetry_number_cyclohexan_tri_one(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on C1CCC(=O)C(=O)C1=O """ - molecule = Molecule().from_smiles('C1CCC(=O)C(=O)C1=O') + molecule = Molecule().from_smiles("C1CCC(=O)C(=O)C1=O") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 2) @@ -362,7 +381,7 @@ def test_total_symmetry_number_benzene(self): """ Test the Species.get_symmetry_number() (total symmetry) on c1ccccc1 """ - molecule = Molecule().from_smiles('c1ccccc1') + molecule = Molecule().from_smiles("c1ccccc1") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 12) @@ -371,7 +390,7 @@ def test_total_symmetry_numberbute_di_yl(self): """ Test the Species.get_symmetry_number() (total symmetry) on [CH2][CH]C=C """ - species = Species().from_smiles('[CH2][CH]C=C') + species = Species().from_smiles("[CH2][CH]C=C") symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 2) @@ -379,7 +398,7 @@ def test_total_symmetry_number_allyl(self): """ Test the Species.get_symmetry_number() (total symmetry) on Allyl, [CH2]C=C """ - molecule = Molecule().from_smiles('[CH2]C=C') + molecule = Molecule().from_smiles("[CH2]C=C") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 2) @@ -389,10 +408,15 @@ def test_total_symmetry_number_pentenyl(self): Test the Species.getSymmetryNumer() for C[CH]C=CC and ensures that it is differet than the molecule object """ - spc = Species(molecule=[Molecule().from_smiles('C[CH]C=CC')]) + spc = Species(molecule=[Molecule().from_smiles("C[CH]C=CC")]) symmetry_number = spc.get_symmetry_number() - self.assertEqual(symmetry_number, 18, - 'the symmetry number for C[CH]C=CC is 18, but RMG returned {}'.format(symmetry_number)) + self.assertEqual( + symmetry_number, + 18, + "the symmetry number for C[CH]C=CC is 18, but RMG returned {}".format( + symmetry_number + ), + ) def test_species_symmetry_number_is_not_molecule_symmetry_number(self): """ @@ -401,15 +425,17 @@ def test_species_symmetry_number_is_not_molecule_symmetry_number(self): This molecule's resonance isomer hybrid should return more symmetry than the base molecule object. """ - molecule = Molecule().from_smiles('C[CH]C=CC') + molecule = Molecule().from_smiles("C[CH]C=CC") species = Species(molecule=[molecule]) - self.assertEqual(molecule.get_symmetry_number() * 2, species.get_symmetry_number()) + self.assertEqual( + molecule.get_symmetry_number() * 2, species.get_symmetry_number() + ) def test_axis_symmetry_number_allyl(self): """ Test the Molecule.calculate_axis_symmetry_number() on [CH2]C=C """ - spc = Species(molecule=[Molecule().from_smiles('[CH2]C=C')]) + spc = Species(molecule=[Molecule().from_smiles("[CH2]C=C")]) molecule = spc.get_resonance_hybrid() self.assertEqual(calculate_axis_symmetry_number(molecule), 1) @@ -418,15 +444,19 @@ def test_middle_carbon_atom_symmetry_number_allyl_using_resonance_hybrid(self): Test the Molecule.calculate_atom_symmetry_number() for the middle carbon on [CH2]C=C using the resonance hybrid structure """ - molecule = Molecule().from_smiles('[CH2]C=C') + molecule = Molecule().from_smiles("[CH2]C=C") species = Species(molecule=[molecule]) resonance_hybrid = species.get_resonance_hybrid() for atom in resonance_hybrid.atoms: - if atom.symbol == 'C': - number_carbon_bonds = sum([1 for bond in atom.bonds if bond.symbol == 'C']) + if atom.symbol == "C": + number_carbon_bonds = sum( + [1 for bond in atom.bonds if bond.symbol == "C"] + ) if number_carbon_bonds == 2: - atom.label = 'center' - symmetry_number = calculate_atom_symmetry_number(resonance_hybrid, atom) + atom.label = "center" + symmetry_number = calculate_atom_symmetry_number( + resonance_hybrid, atom + ) self.assertEqual(symmetry_number, 2) pass @@ -435,13 +465,15 @@ def test_edge_carbon_atom_symmetry_number_allyl(self): Test the Molecule.calculate_atom_symmetry_number() for the edge carbons on [CH2]C=C """ - spc = Species(molecule=[Molecule().from_smiles('[CH2]C=C')]) + spc = Species(molecule=[Molecule().from_smiles("[CH2]C=C")]) molecule = spc.get_resonance_hybrid() for atom in molecule.atoms: - if atom.symbol == 'C': - number_carbon_bonds = sum([1 for bond in atom.bonds if bond.symbol == 'C']) + if atom.symbol == "C": + number_carbon_bonds = sum( + [1 for bond in atom.bonds if bond.symbol == "C"] + ) if number_carbon_bonds == 1: - atom.label = 'edge' + atom.label = "edge" symmetry_number = calculate_atom_symmetry_number(molecule, atom) self.assertEqual(symmetry_number, 1) @@ -450,22 +482,26 @@ def test_edge_carbon_atom_symmetry_number_allyl_using_resonance_hybrid(self): Test the Molecule.calculate_atom_symmetry_number() for the edge carbons on [CH2]C=C """ - molecule = Molecule().from_smiles('[CH2]C=C') + molecule = Molecule().from_smiles("[CH2]C=C") species = Species(molecule=[molecule]) resonance_hybrid = species.get_resonance_hybrid() for atom in resonance_hybrid.atoms: - if atom.symbol == 'C': - number_carbon_bonds = sum([1 for bond in atom.bonds if bond.symbol == 'C']) + if atom.symbol == "C": + number_carbon_bonds = sum( + [1 for bond in atom.bonds if bond.symbol == "C"] + ) if number_carbon_bonds == 1: - atom.label = 'edge' - symmetry_number = calculate_atom_symmetry_number(resonance_hybrid, atom) + atom.label = "edge" + symmetry_number = calculate_atom_symmetry_number( + resonance_hybrid, atom + ) self.assertEqual(symmetry_number, 1) def test_atom_symmetry_number_allyl(self): """ Test the Molecule.calculate_atom_symmetry_number() on [CH2]C=C """ - spc = Species(molecule=[Molecule().from_smiles('[CH2]C=C')]) + spc = Species(molecule=[Molecule().from_smiles("[CH2]C=C")]) molecule = spc.get_resonance_hybrid() symmetry_number = 1 for atom in molecule.atoms: @@ -477,20 +513,22 @@ def test_bond_symmetry_number_allyl(self): """ Test the Molecule.calculate_bond_symmetry_number() on [CH2]C=C """ - spc = Species(molecule=[Molecule().from_smiles('[CH2]C=C')]) + spc = Species(molecule=[Molecule().from_smiles("[CH2]C=C")]) molecule = spc.get_resonance_hybrid() symmetry_number = 1 for atom1 in molecule.atoms: for atom2 in atom1.bonds: if molecule.atoms.index(atom1) < molecule.atoms.index(atom2): - symmetry_number *= calculate_bond_symmetry_number(molecule, atom1, atom2) + symmetry_number *= calculate_bond_symmetry_number( + molecule, atom1, atom2 + ) self.assertEqual(symmetry_number, 1) def test_total_symmetry_number_toluene(self): """ Test the Species.get_symmetry_number() (total symmetry) on c1ccccc1C """ - molecule = Molecule().from_smiles('c1ccccc1C') + molecule = Molecule().from_smiles("c1ccccc1C") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 6) @@ -499,7 +537,9 @@ def test_total_symmetry_number_special_cyclic(self): """ Test the Species.get_symmetry_number() (total symmetry) from issue # 332 """ - molecule = Molecule().from_smiles('C1(C(C(C(C(C1C2CCC2)C3CCC3)C4CCC4)C5CCC5)C6CCC6)C7CCC7') + molecule = Molecule().from_smiles( + "C1(C(C(C(C(C1C2CCC2)C3CCC3)C4CCC4)C5CCC5)C6CCC6)C7CCC7" + ) species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 12) @@ -508,7 +548,7 @@ def test_total_symmetry_number_chlorobenzene(self): """ Test the Species.get_symmetry_number() (total symmetry) on c1ccccc1Cl """ - molecule = Molecule().from_smiles('c1ccccc1Cl') + molecule = Molecule().from_smiles("c1ccccc1Cl") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 2) @@ -518,7 +558,7 @@ def test_total_symmetry_number_phenoxy_kecle(self): Test the Species.get_symmetry_number() (total symmetry) on c1ccccc1[O] using kecle structure """ - molecule = Molecule().from_smiles('c1ccccc1[O]') + molecule = Molecule().from_smiles("c1ccccc1[O]") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 2) @@ -527,7 +567,7 @@ def test_total_symmetry_number_phenoxy_benzene(self): """ Test symmetry on c1ccccc1[O] using phenoxy benzene structure """ - molecule = Molecule().from_smiles('c1ccccc1[O]') + molecule = Molecule().from_smiles("c1ccccc1[O]") aromatic_molecule = generate_optimal_aromatic_resonance_structures(molecule)[0] symmetry_number = aromatic_molecule.get_symmetry_number() self.assertEqual(symmetry_number, 2) @@ -536,7 +576,7 @@ def test_total_symmetry_number12_dimethylbenzene(self): """ Test the Species.get_symmetry_number() (total symmetry) on Cc1ccccc1C """ - molecule = Molecule().from_smiles('Cc1ccccc1C') + molecule = Molecule().from_smiles("Cc1ccccc1C") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 18) @@ -545,7 +585,7 @@ def test_total_symmetry_number14_dimethylbenzene(self): """ Test the Species.get_symmetry_number() (total symmetry) on Cc1ccc(C)cc1 """ - molecule = Molecule().from_smiles('Cc1ccc(C)cc1') + molecule = Molecule().from_smiles("Cc1ccc(C)cc1") species = Species(molecule=[molecule]) symmetry_number = species.get_symmetry_number() self.assertEqual(symmetry_number, 36) @@ -554,111 +594,119 @@ def test_total_symmetry_number_ethane(self): """ Test the Molecule.calculate_symmetry_number() on CC """ - self.assertEqual(Species().from_smiles('CC').get_symmetry_number(), 18) + self.assertEqual(Species().from_smiles("CC").get_symmetry_number(), 18) def test_total_symmetry_number1(self): """ Test the Molecule.calculate_symmetry_number() on C=C=[C]C(C)(C)[C]=C=C """ - self.assertEqual(Species().from_smiles('C=C=[C]C(C)(C)[C]=C=C').get_symmetry_number(), 18) + self.assertEqual( + Species().from_smiles("C=C=[C]C(C)(C)[C]=C=C").get_symmetry_number(), 18 + ) @work_in_progress def test_total_symmetry_number2(self): """ Test the Molecule.calculate_symmetry_number() on C(=CC(c1ccccc1)C([CH]CCCCCC)C=Cc1ccccc1)[CH]CCCCCC """ - self.assertEqual(Species().from_smiles( - 'C(=CC(c1ccccc1)C([CH]CCCCCC)C=Cc1ccccc1)[CH]CCCCCC').get_symmetry_number(), '36?') + self.assertEqual( + Species() + .from_smiles("C(=CC(c1ccccc1)C([CH]CCCCCC)C=Cc1ccccc1)[CH]CCCCCC") + .get_symmetry_number(), + "36?", + ) def test_symmetry_number_hydroxyl(self): """ Test the Molecule.calculate_symmetry_number() on [OH] """ - self.assertEqual(Species().from_smiles('[OH]').get_symmetry_number(), 1) + self.assertEqual(Species().from_smiles("[OH]").get_symmetry_number(), 1) def test_symmetry_number_oxygen(self): """ Test the Molecule.calculate_symmetry_number() on O=O """ - self.assertEqual(Species().from_smiles('O=O').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("O=O").get_symmetry_number(), 2) def test_symmetry_number_dicarbon(self): """ Test the Molecule.calculate_symmetry_number() on [C]#[C] """ - self.assertEqual(Species().from_smiles('[C]#[C]').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("[C]#[C]").get_symmetry_number(), 2) def test_symmetry_number_hydrogen(self): """ Test the Molecule.calculate_symmetry_number() on [H][H] """ - self.assertEqual(Species().from_smiles('[H][H]').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("[H][H]").get_symmetry_number(), 2) def test_symmetry_number_acetylene(self): """ Test the Molecule.calculate_symmetry_number() on C#C """ - self.assertEqual(Species().from_smiles('C#C').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("C#C").get_symmetry_number(), 2) def test_symmetry_number_butadiyne(self): """ Test the Molecule.calculate_symmetry_number() on C#CC#C """ - self.assertEqual(Species().from_smiles('C#CC#C').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("C#CC#C").get_symmetry_number(), 2) def test_symmetry_number_methane(self): """ Test the Molecule.calculate_symmetry_number() on CH4 """ - self.assertEqual(Species().from_smiles('C').get_symmetry_number(), 12) + self.assertEqual(Species().from_smiles("C").get_symmetry_number(), 12) def test_symmetry_number_formaldehyde(self): """ Test the Molecule.calculate_symmetry_number() on C=O """ - self.assertEqual(Species().from_smiles('C=O').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("C=O").get_symmetry_number(), 2) def test_symmetry_number_methyl(self): """ Test the Molecule.calculate_symmetry_number() on [CH3] """ - self.assertEqual(Species().from_smiles('[CH3]').get_symmetry_number(), 6) + self.assertEqual(Species().from_smiles("[CH3]").get_symmetry_number(), 6) def test_symmetry_number_water(self): """ Test the Molecule.calculate_symmetry_number() on H2O """ - self.assertEqual(Species().from_smiles('O').get_symmetry_number(), 2) + self.assertEqual(Species().from_smiles("O").get_symmetry_number(), 2) def test_symmetry_number_ethylene(self): """ Test the Molecule.calculate_symmetry_number() on C=C """ - self.assertEqual(Species().from_smiles('C=C').get_symmetry_number(), 4) + self.assertEqual(Species().from_smiles("C=C").get_symmetry_number(), 4) def test_symmetry_number_ethenyl(self): """ Test the Molecule.calculate_symmetry_number() on C=[CH]. """ - self.assertEqual(Species().from_smiles('C=[CH]').get_symmetry_number(), 1) + self.assertEqual(Species().from_smiles("C=[CH]").get_symmetry_number(), 1) def test_symmetry_number_cyclic(self): """ Test the Molecule.calculate_symmetry_number() on C1=C=C=1 """ - self.assertEqual(Species().from_smiles('C1=C=C=1').get_symmetry_number(), 6) + self.assertEqual(Species().from_smiles("C1=C=C=1").get_symmetry_number(), 6) def test_symmetry_number__s1_total(self): """ Test the Molecule.calculate_symmetry_number() on [CH]1CCC1CC1CC1 """ - self.assertEqual(Species().from_smiles('[CH]1CCC1CC1CC1').get_symmetry_number(), 1) + self.assertEqual( + Species().from_smiles("[CH]1CCC1CC1CC1").get_symmetry_number(), 1 + ) def test_cyclic_symmetry_number_s1(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on [CH]1CCC1CC1CC1 """ - molecule = Molecule().from_smiles('[CH]1CCC1CC1CC1') + molecule = Molecule().from_smiles("[CH]1CCC1CC1CC1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 1) @@ -666,7 +714,7 @@ def test_cyclic_symmetry_number_methyl_cyclo_propane(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on CC1CC1 """ - molecule = Molecule().from_smiles('CC1CC1') + molecule = Molecule().from_smiles("CC1CC1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 1) @@ -674,7 +722,7 @@ def test_cyclic_symmetry_number_methyl_cyclo_propene(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on C=C1CC1 """ - molecule = Molecule().from_smiles('C=C1CC1') + molecule = Molecule().from_smiles("C=C1CC1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 2) @@ -682,7 +730,7 @@ def test_cyclic_symmetry_number_methyl_cyclo_butene(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on C=C1CCC1 """ - molecule = Molecule().from_smiles('C=C1CCC1') + molecule = Molecule().from_smiles("C=C1CCC1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 2) @@ -690,7 +738,7 @@ def test_cyclic_symmetry_number_methyl_cyclo_butane(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on CC1CCC1 """ - molecule = Molecule().from_smiles('CC1CCC1') + molecule = Molecule().from_smiles("CC1CCC1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 1) @@ -698,7 +746,7 @@ def test_cyclic_symmetry_number_di_methyl_cyclo_butane(self): """ Test the Molecule.calculate_cyclic_symmetry_number() on CC1CC(C)C1 """ - molecule = Molecule().from_smiles('CC1CC(C)C1') + molecule = Molecule().from_smiles("CC1CC(C)C1") symmetry_number = calculate_cyclic_symmetry_number(molecule) self.assertEqual(symmetry_number, 4) @@ -706,13 +754,13 @@ def test_symmetry_number_dimethylcylcobutane_total(self): """ Test the Molecule.calculate_symmetry_number() on CC1CC(C)C1 """ - self.assertEqual(Species().from_smiles('CC1CC(C)C1').get_symmetry_number(), 36) + self.assertEqual(Species().from_smiles("CC1CC(C)C1").get_symmetry_number(), 36) def test_indistinguishable(self): """ Test that the _indistinguishable function works properly """ - mol = Molecule().from_smiles('c1ccccc1') + mol = Molecule().from_smiles("c1ccccc1") self.assertTrue(_indistinguishable(mol.atoms[0], mol.atoms[1])) self.assertTrue(_indistinguishable(mol.atoms[0], mol.atoms[2])) self.assertTrue(_indistinguishable(mol.atoms[0], mol.atoms[3])) @@ -721,7 +769,7 @@ def test_indistinguishable_2(self): """ Test that the _indistinguishable function works properly """ - mol = Molecule().from_smiles('c1ccccc1[O]') + mol = Molecule().from_smiles("c1ccccc1[O]") # Carbon with O different from other carbons (with H) self.assertFalse(_indistinguishable(mol.atoms[5], mol.atoms[4])) self.assertFalse(_indistinguishable(mol.atoms[5], mol.atoms[3])) @@ -736,5 +784,5 @@ def test_indistinguishable_2(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/translatorTest.py b/test/rmgpy/molecule/translatorTest.py index 0e4b5502a8..3d126c7b27 100644 --- a/test/rmgpy/molecule/translatorTest.py +++ b/test/rmgpy/molecule/translatorTest.py @@ -38,31 +38,38 @@ from rmgpy.molecule.adjlist import ConsistencyChecker from rmgpy.molecule.atomtype import ATOMTYPES -from rmgpy.molecule.inchi import compose_aug_inchi, P_LAYER_PREFIX, P_LAYER_SEPARATOR, U_LAYER_PREFIX, U_LAYER_SEPARATOR +from rmgpy.molecule.inchi import ( + compose_aug_inchi, + P_LAYER_PREFIX, + P_LAYER_SEPARATOR, + U_LAYER_PREFIX, + U_LAYER_SEPARATOR, +) from rmgpy.molecule.molecule import Molecule from rmgpy.molecule.translator import * from rmgpy.species import Species class TranslatorTest(unittest.TestCase): - def test_empty_molecule(self): """Test that we can safely return a blank identifier for an empty molecule.""" mol = Molecule() - self.assertEqual(mol.to_smiles(), '') - self.assertEqual(mol.to_inchi(), '') + self.assertEqual(mol.to_smiles(), "") + self.assertEqual(mol.to_inchi(), "") - @patch('rmgpy.molecule.translator.logging') + @patch("rmgpy.molecule.translator.logging") def test_failure_message(self, mock_logging): """Test that we log the molecule adjlist upon failure.""" - mol = Molecule(smiles='[CH2-][N+]#N') + mol = Molecule(smiles="[CH2-][N+]#N") - with self.assertRaisesRegex(ValueError, 'Unable to generate identifier type'): - to_inchi(mol, backend='rdkit') + with self.assertRaisesRegex(ValueError, "Unable to generate identifier type"): + to_inchi(mol, backend="rdkit") mock_logging.error.assert_called_with( - "Unable to generate identifier for this molecule:\n{0}".format(mol.to_adjacency_list()) + "Unable to generate identifier for this molecule:\n{0}".format( + mol.to_adjacency_list() + ) ) @@ -91,7 +98,7 @@ def test_c5h5(self): 5 C 1 {4,S} {1,S} """ - aug_inchi = 'InChI=1S/C5H5/c1-2-4-5-3-1/h1-5H/u1' + aug_inchi = "InChI=1S/C5H5/c1-2-4-5-3-1/h1-5H/u1" self.compare(adjlist, aug_inchi) def test_c7h8(self): @@ -116,7 +123,7 @@ def test_c7h8(self): 15 H u0 p0 c0 {5,S} """ - aug_inchi = 'InChI=1S/C7H8/c1-7-5-3-2-4-6-7/h2-6H,1H3/u2,3' + aug_inchi = "InChI=1S/C7H8/c1-7-5-3-2-4-6-7/h2-6H,1H3/u2,3" self.compare(adjlist, aug_inchi) def test_c8h8(self): @@ -141,7 +148,7 @@ def test_c8h8(self): 16 H u0 p0 c0 {8,S} """ - aug_inchi = 'InChI=1S/C8H8/c1-2-4-6-8-7-5-3-1/h1-8H/u1,2' + aug_inchi = "InChI=1S/C8H8/c1-2-4-6-8-7-5-3-1/h1-8H/u1,2" self.compare(adjlist, aug_inchi) def test_benzyne(self): @@ -157,7 +164,7 @@ def test_benzyne(self): 9 H u0 p0 c0 {5,S} 10 H u0 p0 c0 {6,S} """ - aug_inchi = 'InChI=1S/C6H4/c1-2-4-6-5-3-1/h1-4H' + aug_inchi = "InChI=1S/C6H4/c1-2-4-6-5-3-1/h1-4H" self.compare(adjlist, aug_inchi) def test_h(self): @@ -165,7 +172,7 @@ def test_h(self): multiplicity 2 1 H u1 p0 c0 """ - aug_inchi = 'InChI=1S/H/u1' + aug_inchi = "InChI=1S/H/u1" self.compare(adjlist, aug_inchi) def test_c6h8(self): @@ -182,7 +189,7 @@ def test_c6h8(self): 6 C 0 {4,D} """ - aug_inchi = 'InChI=1S/C6H8/c1-5(2)6(3)4/h1-4H2/u1,3' + aug_inchi = "InChI=1S/C6H8/c1-5(2)6(3)4/h1-4H2/u1,3" self.compare(adjlist, aug_inchi) def test_c6h10_tetrarad(self): @@ -205,7 +212,7 @@ def test_c6h10_tetrarad(self): 16 H u0 p0 c0 {6,S} """ - aug_inchi = 'InChI=1S/C6H10/c1-3-5-6-4-2/h3-4H,1-2,5-6H2/u1,2,3,4' + aug_inchi = "InChI=1S/C6H10/c1-3-5-6-4-2/h3-4H,1-2,5-6H2/u1,2,3,4" self.compare(adjlist, aug_inchi) def test_buta13diyl_triplet(self): @@ -226,7 +233,7 @@ def test_buta13diyl_triplet(self): 10 H u0 p0 c0 {4,S} """ - aug_inchi = 'InChI=1S/C4H6/c1-3-4-2/h3-4H,1-2H2/u1,2' + aug_inchi = "InChI=1S/C4H6/c1-3-4-2/h3-4H,1-2H2/u1,2" self.compare(adjlist, aug_inchi) def test_ch2o2(self): @@ -236,7 +243,7 @@ def test_ch2o2(self): 3 O 1 {1,S} """ - aug_inchi = 'InChI=1/CH2O2/c2-1-3/h1H,(H,2,3)/u1,2' + aug_inchi = "InChI=1/CH2O2/c2-1-3/h1H,(H,2,3)/u1,2" self.compare(adjlist, aug_inchi) def test_c7h10(self): @@ -251,7 +258,7 @@ def test_c7h10(self): 7 C 1 {5,S} """ - aug_inchi = 'InChI=1S/C7H10/c1-6(2)5-7(3)4/h1-5H2/u1,2,3,6' + aug_inchi = "InChI=1S/C7H10/c1-6(2)5-7(3)4/h1-5H2/u1,2,3,6" self.compare(adjlist, aug_inchi) def test_c5h6o(self): @@ -264,7 +271,7 @@ def test_c5h6o(self): 6 C 0 {5,D} """ - aug_inchi = 'InChI=1S/C5H6O/c1-3-5(6)4-2/h3-4H,1-2H2/u1,3' + aug_inchi = "InChI=1S/C5H6O/c1-3-5(6)4-2/h3-4H,1-2H2/u1,3" self.compare(adjlist, aug_inchi) def test_c7h9(self): @@ -278,7 +285,7 @@ def test_c7h9(self): 7 C 1 {4,S} {5,S} {6,S} """ - aug_inchi = 'InChI=1S/C7H9/c1-4-7(5-2)6-3/h4-6H,1-3H2/u1,2,4' + aug_inchi = "InChI=1S/C7H9/c1-4-7(5-2)6-3/h4-6H,1-3H2/u1,2,4" self.compare(adjlist, aug_inchi) def test_c11h16(self): @@ -296,7 +303,7 @@ def test_c11h16(self): 11 C 0 {7,S} {8,S} {9,S} {10,S} """ - aug_inchi = 'InChI=1S/C11H16/c1-5-9-11(7-3,8-4)10-6-2/h5-8H,1-4,9-10H2/u1,3,5,7' + aug_inchi = "InChI=1S/C11H16/c1-5-9-11(7-3,8-4)10-6-2/h5-8H,1-4,9-10H2/u1,3,5,7" self.compare(adjlist, aug_inchi) def test_singlet_vs_triplet(self): @@ -360,12 +367,13 @@ def test_c5h6_singlet(self): 14 H u0 p0 c0 {5,S} 15 H u0 p0 c0 {5,S} """ - aug_inchi = 'C5H10/c1-3-5-4-2/h3-4H2,1-2H3/lp5' + aug_inchi = "C5H10/c1-3-5-4-2/h3-4H2,1-2H3/lp5" self.compare(adjlist, aug_inchi) def test_aromatic_resonance_structures(self): """Test that different resonance structures give identical InChIs.""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,D} {14,S} {18,S} 2 C u0 p0 c0 {1,D} {3,S} {19,S} @@ -393,65 +401,72 @@ def test_aromatic_resonance_structures(self): 24 H u0 p0 c0 {10,S} 25 H u0 p0 c0 {11,S} 26 H u0 p0 c0 {12,S} -""") +""" + ) res = mol.generate_resonance_structures() inchi_list = [struct.to_inchi() for struct in res] - expected_inchi = 'InChI=1S/C15H11/c1-11-5-4-8-15-13(11)10-9-12-6-2-3-7-14(12)15/h2-10H,1H2' + expected_inchi = ( + "InChI=1S/C15H11/c1-11-5-4-8-15-13(11)10-9-12-6-2-3-7-14(12)15/h2-10H,1H2" + ) for inchi in inchi_list: self.assertEqual(inchi, expected_inchi) def test_disconnected_molecule(self): """Test that we can generate an InChI for a disconnected molecule.""" - mol = Molecule().from_smiles('CCCCO.C=O') + mol = Molecule().from_smiles("CCCCO.C=O") - inchi = 'InChI=1S/C4H10O.CH2O/c1-2-3-4-5;1-2/h5H,2-4H2,1H3;1H2' + inchi = "InChI=1S/C4H10O.CH2O/c1-2-3-4-5;1-2/h5H,2-4H2,1H3;1H2" self.assertEqual(mol.to_inchi(), inchi) def test_isotopic_molecule_1(self): """Test that we can generate an InChI for an isotopic molecule.""" - mol = Molecule().from_smiles('[13CH4]') + mol = Molecule().from_smiles("[13CH4]") - inchi = 'InChI=1S/CH4/h1H4/i1+1' + inchi = "InChI=1S/CH4/h1H4/i1+1" self.assertEqual(mol.to_inchi(), inchi) def test_isotopic_molecule_2(self): """Test that we can generate an InChI for an isotopic molecule.""" - mol = Molecule().from_smiles('[13CH3]C') + mol = Molecule().from_smiles("[13CH3]C") - inchi = 'InChI=1S/C2H6/c1-2/h1-2H3/i1+1' + inchi = "InChI=1S/C2H6/c1-2/h1-2H3/i1+1" self.assertEqual(mol.to_inchi(), inchi) def test_surface_molecule_rdkit(self): """Test InChI generation for a surface molecule using RDKit""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 X u0 p0 c0 {1,S} -""") - inchi = 'InChI=1S/CH3.Pt/h1H3;' +""" + ) + inchi = "InChI=1S/CH3.Pt/h1H3;" - self.assertEqual(to_inchi(mol, backend='rdkit'), inchi) + self.assertEqual(to_inchi(mol, backend="rdkit"), inchi) def test_surface_molecule_ob(self): """Test InChI generation for a surface molecule using OpenBabel""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 X u0 p0 c0 {1,S} -""") - inchi = 'InChI=1S/CH3.Pt/h1H3;' +""" + ) + inchi = "InChI=1S/CH3.Pt/h1H3;" - self.assertEqual(to_inchi(mol, backend='openbabel'), inchi) + self.assertEqual(to_inchi(mol, backend="openbabel"), inchi) class SMILESGenerationTest(unittest.TestCase): @@ -490,35 +505,35 @@ def test_various(self): "Test the SMILES generation for various molecules and radicals" # Test N2 - adjlist = ''' + adjlist = """ 1 N u0 p1 c0 {2,T} 2 N u0 p1 c0 {1,T} - ''' - smiles = 'N#N' + """ + smiles = "N#N" self.compare(adjlist, smiles) # Test CH4 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} - ''' - smiles = 'C' + """ + smiles = "C" self.compare(adjlist, smiles) # Test H2O - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} - ''' - smiles = 'O' + """ + smiles = "O" self.compare(adjlist, smiles) # Test C2H6 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -527,30 +542,30 @@ def test_various(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} - ''' - smiles = 'CC' + """ + smiles = "CC" self.compare(adjlist, smiles) # Test H2 - adjlist = ''' + adjlist = """ 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} - ''' - smiles = '[H][H]' + """ + smiles = "[H][H]" self.compare(adjlist, smiles) # Test H2O2 - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,S} {3,S} 2 O u0 p2 c0 {1,S} {4,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {2,S} - ''' - smiles = 'OO' + """ + smiles = "OO" self.compare(adjlist, smiles) # Test C3H8 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 {2,S} {9,S} {10,S} {11,S} @@ -562,95 +577,95 @@ def test_various(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} - ''' - smiles = 'CCC' + """ + smiles = "CCC" self.compare(adjlist, smiles) # Test Ar - adjlist = ''' + adjlist = """ 1 Ar u0 p4 c0 - ''' - smiles = '[Ar]' + """ + smiles = "[Ar]" self.compare(adjlist, smiles) # Test He - adjlist = ''' + adjlist = """ 1 He u0 p1 c0 - ''' - smiles = '[He]' + """ + smiles = "[He]" self.compare(adjlist, smiles) # Test CH4O - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 O u0 p2 c0 {1,S} {6,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {2,S} - ''' - smiles = 'CO' + """ + smiles = "CO" self.compare(adjlist, smiles) # Test CO2 - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} 3 O u0 p2 c0 {2,D} - ''' - smiles = 'O=C=O' + """ + smiles = "O=C=O" self.compare(adjlist, smiles) # Test CO - adjlist = ''' + adjlist = """ 1 C u0 p1 c-1 {2,T} 2 O u0 p1 c+1 {1,T} - ''' - smiles = '[C-]#[O+]' + """ + smiles = "[C-]#[O+]" self.compare(adjlist, smiles) # Test C2H4 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p0 c0 {1,D} {5,S} {6,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} - ''' - smiles = 'C=C' + """ + smiles = "C=C" self.compare(adjlist, smiles) # Test O2 - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,D} 2 O u0 p2 c0 {1,D} - ''' - smiles = 'O=O' + """ + smiles = "O=O" self.compare(adjlist, smiles) # Test CH3 - adjlist = ''' + adjlist = """ multiplicity 2 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - ''' - smiles = '[CH3]' + """ + smiles = "[CH3]" self.compare(adjlist, smiles) # Test HO - adjlist = ''' + adjlist = """ multiplicity 2 1 O u1 p2 c0 {2,S} 2 H u0 p0 c0 {1,S} - ''' - smiles = '[OH]' + """ + smiles = "[OH]" self.compare(adjlist, smiles) # Test C2H5 - adjlist = ''' + adjlist = """ multiplicity 2 1 C u0 p0 c0 {2,S} {5,S} {6,S} {7,S} 2 C u1 p0 c0 {1,S} {3,S} {4,S} @@ -659,92 +674,93 @@ def test_various(self): 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {1,S} 7 H u0 p0 c0 {1,S} - ''' - smiles = 'C[CH2]' + """ + smiles = "C[CH2]" self.compare(adjlist, smiles) # Test O - adjlist = ''' + adjlist = """ multiplicity 3 1 O u2 p2 c0 - ''' - smiles = '[O]' + """ + smiles = "[O]" self.compare(adjlist, smiles) # Test HO2 - adjlist = ''' + adjlist = """ multiplicity 2 1 O u1 p2 c0 {2,S} 2 O u0 p2 c0 {1,S} {3,S} 3 H u0 p0 c0 {2,S} - ''' - smiles = '[O]O' + """ + smiles = "[O]O" self.compare(adjlist, smiles) # Test CH - adjlist = ''' + adjlist = """ multiplicity 4 1 C u3 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} - ''' - smiles = '[CH]' + """ + smiles = "[CH]" self.compare(adjlist, smiles) # Test H - adjlist = ''' + adjlist = """ multiplicity 2 1 H u1 p0 c0 - ''' - smiles = '[H]' + """ + smiles = "[H]" self.compare(adjlist, smiles) # Test C - adjlist = ''' + adjlist = """ multiplicity 5 1 C u4 p0 c0 - ''' - smiles = '[C]' + """ + smiles = "[C]" self.compare(adjlist, smiles) # Test O2 - adjlist = ''' + adjlist = """ multiplicity 3 1 O u1 p2 c0 {2,S} 2 O u1 p2 c0 {1,S} - ''' - smiles = '[O][O]' + """ + smiles = "[O][O]" self.compare(adjlist, smiles) # Test CF - adjlist = ''' + adjlist = """ multiplicity 2 1 C u1 p1 c0 {2,S} 2 F u0 p3 c0 {1,S} - ''' - smiles = '[C]F' + """ + smiles = "[C]F" self.compare(adjlist, smiles) # Test CCl - adjlist = ''' + adjlist = """ multiplicity 2 1 C u1 p1 c0 {2,S} 2 Cl u0 p3 c0 {1,S} - ''' - smiles = '[C]Cl' + """ + smiles = "[C]Cl" self.compare(adjlist, smiles) # Test CBr - adjlist = ''' + adjlist = """ multiplicity 2 1 C u1 p1 c0 {2,S} 2 Br u0 p3 c0 {1,S} - ''' - smiles = '[C]Br' + """ + smiles = "[C]Br" self.compare(adjlist, smiles) def test_aromatics(self): """Test that different aromatics representations returns different SMILES.""" - mol1 = Molecule().from_adjacency_list(""" + mol1 = Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {6,S} {9,S} 2 C u0 p0 c0 {3,D} {5,S} {11,S} 3 C u0 p0 c0 {2,D} {4,S} {12,S} @@ -761,8 +777,10 @@ def test_aromatics(self): 14 H u0 p0 c0 {8,S} 15 H u0 p0 c0 {8,S} 16 H u0 p0 c0 {8,S} -""") - mol2 = Molecule().from_adjacency_list(""" +""" + ) + mol2 = Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {6,S} {9,S} 2 C u0 p0 c0 {3,S} {5,D} {11,S} 3 C u0 p0 c0 {2,S} {4,D} {12,S} @@ -779,8 +797,10 @@ def test_aromatics(self): 14 H u0 p0 c0 {8,S} 15 H u0 p0 c0 {8,S} 16 H u0 p0 c0 {8,S} -""") - mol3 = Molecule().from_adjacency_list(""" +""" + ) + mol3 = Molecule().from_adjacency_list( + """ 1 O u0 p2 c0 {6,S} {9,S} 2 C u0 p0 c0 {3,B} {5,B} {11,S} 3 C u0 p0 c0 {2,B} {4,B} {12,S} @@ -797,7 +817,8 @@ def test_aromatics(self): 14 H u0 p0 c0 {8,S} 15 H u0 p0 c0 {8,S} 16 H u0 p0 c0 {8,S} -""") +""" + ) smiles1 = mol1.to_smiles() smiles2 = mol2.to_smiles() @@ -809,41 +830,48 @@ def test_aromatics(self): def test_surface_molecule_rdkit(self): """Test InChI generation for a surface molecule using RDKit""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 X u0 p0 c0 {1,S} -""") - smiles = 'C[Pt]' +""" + ) + smiles = "C[Pt]" - self.assertEqual(to_smiles(mol, backend='rdkit'), smiles) + self.assertEqual(to_smiles(mol, backend="rdkit"), smiles) def test_surface_molecule_ob(self): """Test InChI generation for a surface molecule using OpenBabel""" - mol = Molecule().from_adjacency_list(""" + mol = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 X u0 p0 c0 {1,S} -""") - smiles = 'C[Pt]' +""" + ) + smiles = "C[Pt]" - self.assertEqual(to_smiles(mol, backend='openbabel'), smiles) + self.assertEqual(to_smiles(mol, backend="openbabel"), smiles) class ParsingTest(unittest.TestCase): def setUp(self): - self.methane = Molecule().from_adjacency_list(""" + self.methane = Molecule().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -""") - self.methylamine = Molecule().from_adjacency_list(""" +""" + ) + self.methylamine = Molecule().from_adjacency_list( + """ 1 N u0 p1 c0 {2,S} {3,S} {4,S} 2 C u0 p0 c0 {1,S} {5,S} {6,S} {7,S} 3 H u0 p0 c0 {1,S} @@ -851,17 +879,18 @@ def setUp(self): 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} -""") +""" + ) def test_from_augmented_inchi(self): - aug_inchi = 'InChI=1S/CH4/h1H4' + aug_inchi = "InChI=1S/CH4/h1H4" mol = from_augmented_inchi(Molecule(), aug_inchi) - self.assertTrue(not mol.inchi == '') + self.assertTrue(not mol.inchi == "") self.assertTrue(mol.is_isomorphic(self.methane)) - aug_inchi = 'InChI=1/CH4/h1H4' + aug_inchi = "InChI=1/CH4/h1H4" mol = from_augmented_inchi(Molecule(), aug_inchi) - self.assertTrue(not mol.inchi == '') + self.assertTrue(not mol.inchi == "") self.assertTrue(mol.is_isomorphic(self.methane)) def compare(self, adjlist, smiles): @@ -872,49 +901,53 @@ def compare(self, adjlist, smiles): """ mol1 = Molecule().from_adjacency_list(adjlist) mol2 = Molecule(smiles=smiles) - self.assertTrue(mol1.is_isomorphic(mol2), - "Parsing SMILES={!r} gave unexpected molecule\n{}".format(smiles, mol2.to_adjacency_list())) + self.assertTrue( + mol1.is_isomorphic(mol2), + "Parsing SMILES={!r} gave unexpected molecule\n{}".format( + smiles, mol2.to_adjacency_list() + ), + ) def test_from_smiles(self): - smiles = 'C' + smiles = "C" mol = from_smiles(Molecule(), smiles) self.assertTrue(mol.is_isomorphic(self.methane)) # Test that atomtypes that rely on lone pairs for identity are typed correctly - smiles = 'CN' + smiles = "CN" mol = from_smiles(Molecule(), smiles) - self.assertEquals(mol.atoms[1].atomtype, ATOMTYPES['N3s']) + self.assertEquals(mol.atoms[1].atomtype, ATOMTYPES["N3s"]) # Test N2 - adjlist = ''' + adjlist = """ 1 N u0 p1 c0 {2,T} 2 N u0 p1 c0 {1,T} - ''' - smiles = 'N#N' + """ + smiles = "N#N" self.compare(adjlist, smiles) # Test CH4 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} - ''' - smiles = 'C' + """ + smiles = "C" self.compare(adjlist, smiles) # Test H2O - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} - ''' - smiles = 'O' + """ + smiles = "O" self.compare(adjlist, smiles) # Test C2H6 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -923,30 +956,30 @@ def test_from_smiles(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} - ''' - smiles = 'CC' + """ + smiles = "CC" self.compare(adjlist, smiles) # Test H2 - adjlist = ''' + adjlist = """ 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} - ''' - smiles = '[H][H]' + """ + smiles = "[H][H]" self.compare(adjlist, smiles) # Test H2O2 - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,S} {3,S} 2 O u0 p2 c0 {1,S} {4,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {2,S} - ''' - smiles = 'OO' + """ + smiles = "OO" self.compare(adjlist, smiles) # Test C3H8 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 {2,S} {9,S} {10,S} {11,S} @@ -958,95 +991,95 @@ def test_from_smiles(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} - ''' - smiles = 'CCC' + """ + smiles = "CCC" self.compare(adjlist, smiles) # Test Ar - adjlist = ''' + adjlist = """ 1 Ar u0 p4 c0 - ''' - smiles = '[Ar]' + """ + smiles = "[Ar]" self.compare(adjlist, smiles) # Test He - adjlist = ''' + adjlist = """ 1 He u0 p1 c0 - ''' - smiles = '[He]' + """ + smiles = "[He]" self.compare(adjlist, smiles) # Test CH4O - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 O u0 p2 c0 {1,S} {6,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {2,S} - ''' - smiles = 'CO' + """ + smiles = "CO" self.compare(adjlist, smiles) # Test CO2 - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} 3 O u0 p2 c0 {2,D} - ''' - smiles = 'O=C=O' + """ + smiles = "O=C=O" self.compare(adjlist, smiles) # Test CO - adjlist = ''' + adjlist = """ 1 C u0 p1 c-1 {2,T} 2 O u0 p1 c+1 {1,T} - ''' - smiles = '[C-]#[O+]' + """ + smiles = "[C-]#[O+]" self.compare(adjlist, smiles) # Test C2H4 - adjlist = ''' + adjlist = """ 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p0 c0 {1,D} {5,S} {6,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} - ''' - smiles = 'C=C' + """ + smiles = "C=C" self.compare(adjlist, smiles) # Test O2 - adjlist = ''' + adjlist = """ 1 O u0 p2 c0 {2,D} 2 O u0 p2 c0 {1,D} - ''' - smiles = 'O=O' + """ + smiles = "O=O" self.compare(adjlist, smiles) # Test CH3 - adjlist = ''' + adjlist = """ multiplicity 2 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} - ''' - smiles = '[CH3]' + """ + smiles = "[CH3]" self.compare(adjlist, smiles) # Test HO - adjlist = ''' + adjlist = """ multiplicity 2 1 O u1 p2 c0 {2,S} 2 H u0 p0 c0 {1,S} - ''' - smiles = '[OH]' + """ + smiles = "[OH]" self.compare(adjlist, smiles) # Test C2H5 - adjlist = ''' + adjlist = """ multiplicity 2 1 C u0 p0 c0 {2,S} {5,S} {6,S} {7,S} 2 C u1 p0 c0 {1,S} {3,S} {4,S} @@ -1055,26 +1088,26 @@ def test_from_smiles(self): 5 H u0 p0 c0 {1,S} 6 H u0 p0 c0 {1,S} 7 H u0 p0 c0 {1,S} - ''' - smiles = 'C[CH2]' + """ + smiles = "C[CH2]" self.compare(adjlist, smiles) # Test O - adjlist = ''' + adjlist = """ multiplicity 3 1 O u2 p2 c0 - ''' - smiles = '[O]' + """ + smiles = "[O]" self.compare(adjlist, smiles) # Test HO2 - adjlist = ''' + adjlist = """ multiplicity 2 1 O u1 p2 c0 {2,S} 2 O u0 p2 c0 {1,S} {3,S} 3 H u0 p0 c0 {2,S} - ''' - smiles = '[O]O' + """ + smiles = "[O]O" self.compare(adjlist, smiles) # Test CH, methylidyne. @@ -1086,73 +1119,81 @@ def test_from_smiles(self): # of methylidyne exists as a mixture of electronic states even at # room temperature, giving rise to complex reactions. # - adjlist = ''' + adjlist = """ multiplicity 2 1 C u1 p1 c0 {2,S} 2 H u0 p0 c0 {1,S} - ''' - smiles = '[CH]' + """ + smiles = "[CH]" self.compare(adjlist, smiles) # Test H - adjlist = ''' + adjlist = """ multiplicity 2 1 H u1 p0 c0 - ''' - smiles = '[H]' + """ + smiles = "[H]" self.compare(adjlist, smiles) # Test atomic C, which is triplet in ground state - adjlist = ''' + adjlist = """ multiplicity 3 1 C u2 p1 c0 - ''' - smiles = '[C]' + """ + smiles = "[C]" self.compare(adjlist, smiles) # Test O2 - adjlist = ''' + adjlist = """ multiplicity 3 1 O u1 p2 c0 {2,S} 2 O u1 p2 c0 {1,S} - ''' - smiles = '[O][O]' + """ + smiles = "[O][O]" self.compare(adjlist, smiles) def test_from_inchi(self): - inchi = 'InChI=1S/CH4/h1H4' + inchi = "InChI=1S/CH4/h1H4" mol = from_inchi(Molecule(), inchi) self.assertTrue(mol.is_isomorphic(self.methane)) # Test that atomtypes that rely on lone pairs for identity are typed correctly inchi = "InChI=1S/CH5N/c1-2/h2H2,1H3" mol = from_inchi(Molecule(), inchi) - self.assertEquals(mol.atoms[1].atomtype, ATOMTYPES['N3s']) + self.assertEquals(mol.atoms[1].atomtype, ATOMTYPES["N3s"]) # current implementation of SMARTS is broken def test_from_smarts(self): - smarts = '[CH4]' + smarts = "[CH4]" mol = from_smarts(Molecule(), smarts) self.assertTrue(mol.is_isomorphic(self.methane)) def test_incorrect_identifier_type(self): """Test that the appropriate error is raised for identifier/type mismatch.""" with self.assertRaises(ValueError) as cm: - Molecule().from_smiles('InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H') + Molecule().from_smiles("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H") - self.assertTrue('Improper identifier type' in str(cm.exception)) + self.assertTrue("Improper identifier type" in str(cm.exception)) def test_read_inchikey_error(self): """Test that the correct error is raised when reading an InChIKey""" with self.assertRaises(ValueError) as cm: - Molecule().from_inchi('InChIKey=UHOVQNZJYSORNB-UHFFFAOYSA-N') + Molecule().from_inchi("InChIKey=UHOVQNZJYSORNB-UHFFFAOYSA-N") - self.assertTrue('InChIKey is a write-only format' in str(cm.exception)) + self.assertTrue("InChIKey is a write-only format" in str(cm.exception)) class InChIParsingTest(unittest.TestCase): def compare(self, inchi, u_indices=None, p_indices=None): - u_layer = U_LAYER_PREFIX + U_LAYER_SEPARATOR.join(map(str, u_indices)) if u_indices else None - p_layer = P_LAYER_PREFIX + P_LAYER_SEPARATOR.join(map(str, p_indices)) if p_indices else None + u_layer = ( + U_LAYER_PREFIX + U_LAYER_SEPARATOR.join(map(str, u_indices)) + if u_indices + else None + ) + p_layer = ( + P_LAYER_PREFIX + P_LAYER_SEPARATOR.join(map(str, p_indices)) + if p_indices + else None + ) aug_inchi = compose_aug_inchi(inchi, u_layer, p_layer) @@ -1173,96 +1214,96 @@ def compare(self, inchi, u_indices=None, p_indices=None): return mol def test_ethane_parsing(self): - inchi = 'C2H6/c1-2/h1-2H3' + inchi = "C2H6/c1-2/h1-2H3" self.compare(inchi) def test_ethyl_parsing(self): - inchi = 'C2H5/c1-2/h1H2,2H3' + inchi = "C2H5/c1-2/h1H2,2H3" u_indices = [1] self.compare(inchi, u_indices) def test_ch3_parsing(self): - inchi = 'CH3/h1H3' + inchi = "CH3/h1H3" u_indices = [1] self.compare(inchi, u_indices) def test_h2_parsing(self): - inchi = 'H2/h1H' + inchi = "H2/h1H" self.compare(inchi) def test_c2h4_biradical_parsing(self): - inchi = 'C2H4/c1-2/h1-2H2' + inchi = "C2H4/c1-2/h1-2H2" u_indices = [1, 2] self.compare(inchi, u_indices) def test_c2h3_triradical_parsing(self): - inchi = 'C2H3/c1-2/h1H,2H2' + inchi = "C2H3/c1-2/h1H,2H2" u_indices = [1, 1, 2] self.compare(inchi, u_indices) def test_c3h6_biradical_parsing(self): - inchi = 'C3H6/c1-3-2/h1-3H2' + inchi = "C3H6/c1-3-2/h1-3H2" u_indices = [1, 2] self.compare(inchi, u_indices) def test_c2h3o3(self): - inchi = 'C2H3O3/c1-2(3)5-4/h4H,1H2' + inchi = "C2H3O3/c1-2(3)5-4/h4H,1H2" u_indices = [1] self.compare(inchi, u_indices) def test_c2h2(self): - inchi = 'C2H2/c1-2/h1-2H' + inchi = "C2H2/c1-2/h1-2H" u_indices = [1, 2] self.compare(inchi, u_indices) def test_o2(self): - inchi = 'O2/c1-2' + inchi = "O2/c1-2" u_indices = [1, 2] self.compare(inchi, u_indices) def test_tri_radical_zwitter_mult4(self): - inchi = 'C6H11/c1-3-5-6-4-2/h5H,1-4,6H2' + inchi = "C6H11/c1-3-5-6-4-2/h5H,1-4,6H2" u_indices = [1, 2, 5] self.compare(inchi, u_indices) def test_tri_radical_double_bond_mult4(self): - inchi = 'C4H7/c1-3-4-2/h3H,1-2,4H2' + inchi = "C4H7/c1-3-4-2/h3H,1-2,4H2" u_indices = [1, 2, 3] self.compare(inchi, u_indices) def test_tri_radical2_double_bond_mult4(self): - inchi = 'C6H9/c1-4-6(3)5-2/h1,4-6H,2H2,3H3' + inchi = "C6H9/c1-4-6(3)5-2/h1,4-6H,2H2,3H3" u_indices = [1, 2, 5] self.compare(inchi, u_indices) def test_quadri_radical_double_bond_zwitter_mult5(self): - inchi = 'C8H14/c1-4-6-7-8(3)5-2/h5-6,8H,1-2,4,7H2,3H3' + inchi = "C8H14/c1-4-6-7-8(3)5-2/h5-6,8H,1-2,4,7H2,3H3" u_indices = [1, 2, 5, 6] self.compare(inchi, u_indices) def test_quadri2_double_bond_mult5(self): - inchi = 'C8H14/c1-5-7(3)8(4)6-2/h5-8H,1-2H2,3-4H3' + inchi = "C8H14/c1-5-7(3)8(4)6-2/h5-8H,1-2H2,3-4H3" u_indices = [1, 2, 5, 6] self.compare(inchi, u_indices) def test_c5h6o(self): - inchi = 'C5H6O/c6-5-3-1-2-4-5/h1-3,5H,4H2' + inchi = "C5H6O/c6-5-3-1-2-4-5/h1-3,5H,4H2" u_indices = [2, 6] self.compare(inchi, u_indices) def test_c5h6o2(self): - inchi = 'C5H6O/c1-5-3-2-4-6-5/h2-5H,1H2' + inchi = "C5H6O/c1-5-3-2-4-6-5/h2-5H,1H2" u_indices = [1, 3] self.compare(inchi, u_indices) def test_c5h6o3(self): - inchi = 'C5H6O/c1-5-3-2-4-6-5/h2-5H,1H2' + inchi = "C5H6O/c1-5-3-2-4-6-5/h2-5H,1H2" u_indices = [1, 2, 3, 4] self.compare(inchi, u_indices) @work_in_progress def test_co(self): - inchi = 'CO/c1-2' + inchi = "CO/c1-2" p_indices = [1, 2] mol = self.compare(inchi, [], p_indices) @@ -1272,19 +1313,19 @@ def test_co(self): self.assertEqual(mol.atoms[1].charge, 1) def test_triplet_methylene(self): - inchi = 'CH2/h1H2' + inchi = "CH2/h1H2" u_indices = [1, 1] self.compare(inchi, u_indices) def test_singlet_methylene(self): - inchi = 'CH2/h1H2' + inchi = "CH2/h1H2" p_indices = [1] self.compare(inchi, u_indices=[], p_indices=p_indices) def test_c4h6o(self): - inchi = 'C4H6O/c1-2-3-4-5/h2H,3H2,1H3' + inchi = "C4H6O/c1-2-3-4-5/h2H,3H2,1H3" u_indices = [2, 4] mol = self.compare(inchi, u_indices) for at in mol.atoms: @@ -1292,17 +1333,16 @@ def test_c4h6o(self): self.assertTrue(at.lone_pairs == 2) def test_c6h6(self): - inchi = 'C6H6/c1-3-5-6-4-2/h1,6H,2,5H2' + inchi = "C6H6/c1-3-5-6-4-2/h1,6H,2,5H2" u_indices = [1, 3] self.compare(inchi, u_indices) def test_c4h6o2(self): - inchi = 'C4H6O/c1-2-3-4-5/h2,4H,1,3H2' + inchi = "C4H6O/c1-2-3-4-5/h2,4H,1,3H2" u_indices = [4, 5] self.compare(inchi, u_indices) def test_co_triplet(self): - adjlist = """ multiplicity 3 1 C u2 p0 c0 {2,D} @@ -1312,10 +1352,14 @@ def test_co_triplet(self): spc = Species(molecule=[Molecule().from_adjacency_list(adjlist)]) aug_inchi = spc.get_augmented_inchi() - self.assertEqual(Species(molecule=[Molecule().from_augmented_inchi(aug_inchi)]).is_isomorphic(spc), True) + self.assertEqual( + Species( + molecule=[Molecule().from_augmented_inchi(aug_inchi)] + ).is_isomorphic(spc), + True, + ) def test_ccco_triplet(self): - adjlist = """ multiplicity 3 1 C u0 p0 c0 {2,D} {5,S} {6,S} @@ -1333,35 +1377,40 @@ def test_ccco_triplet(self): spc.generate_resonance_structures() aug_inchi = spc.get_augmented_inchi() - self.assertEqual(Species(molecule=[Molecule().from_augmented_inchi(aug_inchi)]).is_isomorphic(spc), True) + self.assertEqual( + Species( + molecule=[Molecule().from_augmented_inchi(aug_inchi)] + ).is_isomorphic(spc), + True, + ) def test_c3h4(self): - inchi = 'C3H4/c1-3-2/h1,3H,2H2' + inchi = "C3H4/c1-3-2/h1,3H,2H2" u_indices = [1, 1] self.compare(inchi, u_indices) def test_c6h8o2(self): - inchi = 'C6H8O2/c1-3-5(7)6(8)4-2/h3-6H,1-2H2' + inchi = "C6H8O2/c1-3-5(7)6(8)4-2/h3-6H,1-2H2" u_indices = [7, 8] self.compare(inchi, u_indices) def test_c3h3o3(self): - inchi = 'C3H3O3/c1-2-5-3-6-4/h1-3H' + inchi = "C3H3O3/c1-2-5-3-6-4/h1-3H" u_indices = [1, 3, 4] self.compare(inchi, u_indices) def test_ch2o2(self): - inchi = 'CH2O2/c2-1-3/h1H,(H,2,3)' + inchi = "CH2O2/c2-1-3/h1H,(H,2,3)" u_indices = [1, 2] self.compare(inchi, u_indices) def test_c2h2o3(self): - inchi = 'C2H2O3/c1-5-2(3)4/h1H2' + inchi = "C2H2O3/c1-5-2(3)4/h1H2" u_indices = [1, 3] self.compare(inchi, u_indices) def test_c3h4o4(self): - inchi = 'C3H4O4/c4-3(5)1-2-7-6/h1-3,6H' + inchi = "C3H4O4/c4-3(5)1-2-7-6/h1-3,6H" u_indices = [4, 5] self.compare(inchi, u_indices) @@ -1376,44 +1425,43 @@ def test_c6h6o4(self): which at least doesn't make OpenBabel complain. However, both have a net charge and cause RMG to crash. I'm not sure what the molecule was ever supposed to represent. """ - inchi = 'InChI=1S/C6H6O4/c1-2-4-9-6(7)3-5-10-8/h2-3H,1,5H2' + inchi = "InChI=1S/C6H6O4/c1-2-4-9-6(7)3-5-10-8/h2-3H,1,5H2" u_indices = [1, 3, 4, 8] self.compare(inchi, u_indices) def test_c3h2o3(self): - - inchi = 'InChI=1S/C3H2O3/c1-2-3(4)6-5/h1H2' + inchi = "InChI=1S/C3H2O3/c1-2-3(4)6-5/h1H2" u_indices = [2, 5] self.compare(inchi, u_indices) def test_c6h6o6(self): - inchi = 'C6H6O6/c7-6(2-5-12-9)10-3-1-4-11-8/h1,7H,4-5H2' + inchi = "C6H6O6/c7-6(2-5-12-9)10-3-1-4-11-8/h1,7H,4-5H2" u_indices = [2, 3, 8, 9] self.compare(inchi, u_indices) def test_c3h2(self): - inchi = 'C3H2/c1-3-2/h1-2H' + inchi = "C3H2/c1-3-2/h1-2H" u_indices = [1, 1] self.compare(inchi, u_indices) def test_c3h4(self): - inchi = 'InChI=1S/C3H4/c1-3-2/h1,3H,2H2' + inchi = "InChI=1S/C3H4/c1-3-2/h1,3H,2H2" u_indices = [1, 1] self.compare(inchi, u_indices) def test_c6h8(self): - inchi = 'InChI=1S/C6H8/c1-3-5-6-4-2/h1,4H,2,5-6H2' + inchi = "InChI=1S/C6H8/c1-3-5-6-4-2/h1,4H,2,5-6H2" u_indices = [1, 1, 3, 3] self.compare(inchi, u_indices) def test_c6h10(self): - inchi = 'InChI=1S/C6H10/c1-3-5-6-4-2/h3-4H,1-2,5-6H2' + inchi = "InChI=1S/C6H10/c1-3-5-6-4-2/h3-4H,1-2,5-6H2" u_indices = [1, 3] self.compare(inchi, u_indices) def test_ammonia(self): - inchi = 'InChI=1S/H3N/h1H3' + inchi = "InChI=1S/H3N/h1H3" self.compare(inchi) @work_in_progress @@ -1421,19 +1469,19 @@ def test_ammonium(self): """ has same inchi as ammonia but gets a proton layer: /p+1 """ - inchi = 'InChI=1S/H3N/h1H3/p+1' + inchi = "InChI=1S/H3N/h1H3/p+1" self.compare(inchi) def test_h2s(self): - inchi = 'InChI=1S/H2S/h1H2' + inchi = "InChI=1S/H2S/h1H2" self.compare(inchi) def test_pyridine(self): - inchi = 'InChI=1S/C5H5N/c1-2-4-6-5-3-1/h1-5H' + inchi = "InChI=1S/C5H5N/c1-2-4-6-5-3-1/h1-5H" self.compare(inchi) def test_pyrimidine(self): - inchi = 'InChI=1S/C4H4N2/c1-2-5-4-6-3-1/h1-4H' + inchi = "InChI=1S/C4H4N2/c1-2-5-4-6-3-1/h1-4H" self.compare(inchi) @work_in_progress @@ -1444,25 +1492,25 @@ def test_nitrate(self): - Nitrogen 1 positively charged """ - inchi = 'InChI=1S/HNO3/c2-1(3)4/h(H,2,3,4)' + inchi = "InChI=1S/HNO3/c2-1(3)4/h(H,2,3,4)" p_indices = [-1, 3, 3, 3] # ??? self.compare(inchi, [], p_indices) def test_no(self): - inchi = 'InChI=1S/NO/c1-2' + inchi = "InChI=1S/NO/c1-2" u_indices = [1] self.compare(inchi, u_indices) def test_isotopic_molecule_1(self): """Test that we can parse an InChI for an isotopic molecule.""" - mol = Molecule().from_inchi('InChI=1S/CH4/h1H4/i1+1') + mol = Molecule().from_inchi("InChI=1S/CH4/h1H4/i1+1") self.assertTrue(len(mol.atoms), 4) self.assertEqual([atom.element.isotope for atom in mol.atoms].count(13), 1) def test_isotopic_molecule_2(self): """Test that we can parse an InChI for an isotopic molecule.""" - mol = Molecule().from_inchi('InChI=1S/C2H6/c1-2/h1-2H3/i1+1') + mol = Molecule().from_inchi("InChI=1S/C2H6/c1-2/h1-2H3/i1+1") self.assertTrue(len(mol.atoms), 6) self.assertEqual([atom.element.isotope for atom in mol.atoms].count(13), 1) diff --git a/test/rmgpy/molecule/utilTest.py b/test/rmgpy/molecule/utilTest.py index 94c465608b..bad95ecb45 100644 --- a/test/rmgpy/molecule/utilTest.py +++ b/test/rmgpy/molecule/utilTest.py @@ -30,16 +30,21 @@ import unittest from scipy.special import comb -from rmgpy.molecule.util import get_element_count, agglomerate, generate_combo, partition, swap +from rmgpy.molecule.util import ( + get_element_count, + agglomerate, + generate_combo, + partition, + swap, +) class ElementCountTest(unittest.TestCase): - def test_inchi_count(self): """Test element counting for InChI""" - inchi = 'InChI=1S/C4H10O/c1-2-3-4-5/h5H,2-4H2,1H3' + inchi = "InChI=1S/C4H10O/c1-2-3-4-5/h5H,2-4H2,1H3" - expected = {'C': 4, 'H': 10, 'O': 1} + expected = {"C": 4, "H": 10, "O": 1} count = get_element_count(inchi) @@ -47,9 +52,9 @@ def test_inchi_count(self): def test_inchi_count_disconnected(self): """Test element counting for InChI with disconnected molecule""" - inchi = 'InChI=1S/C4H10O.CH2O/c1-2-3-4-5;1-2/h5H,2-4H2,1H3;1H2' + inchi = "InChI=1S/C4H10O.CH2O/c1-2-3-4-5;1-2/h5H,2-4H2,1H3;1H2" - expected = {'C': 5, 'H': 12, 'O': 2} + expected = {"C": 5, "H": 12, "O": 2} count = get_element_count(inchi) @@ -57,7 +62,6 @@ def test_inchi_count_disconnected(self): class PartitionTest(unittest.TestCase): - def test_singleton(self): """ Test that a index not part of the parameter list, results in a key-value pair with @@ -95,7 +99,10 @@ def test_2_elements_in_2_layers(self): def test_3_elements_in_2_layers(self): indices = [1, 4, 5] list_of_samples = [[1, 2, 3, 4], [5, 6]] - expected_partitions, expected_sample_lists = [[1, 4], [5]], [[1, 2, 3, 4], [5, 6]] + expected_partitions, expected_sample_lists = [[1, 4], [5]], [ + [1, 2, 3, 4], + [5, 6], + ] partitions, sample_lists = partition(indices, list_of_samples) @@ -105,7 +112,11 @@ def test_3_elements_in_2_layers(self): def test_3_elements_in_2_layers_1_singleton(self): indices = [1, 5, 7] list_of_samples = [[1, 2, 3, 4], [5, 6]] - expected_partitions, expected_sample_lists = [[1], [5], [7]], [[1, 2, 3, 4], [5, 6], []] + expected_partitions, expected_sample_lists = [[1], [5], [7]], [ + [1, 2, 3, 4], + [5, 6], + [], + ] partitions, sample_lists = partition(indices, list_of_samples) @@ -114,7 +125,6 @@ def test_3_elements_in_2_layers_1_singleton(self): class AgglomerateTest(unittest.TestCase): - def test_normal(self): groups = [[1, 2, 3], [4], [5, 6], [7]] agglomerates = agglomerate(groups) @@ -141,7 +151,6 @@ def test_2_elements(self): class SwapTest(unittest.TestCase): - def test_2_elements_sets(self): to_be_swapped = [2, 3] sample = [1, 3] diff --git a/test/rmgpy/molecule/vf2Test.py b/test/rmgpy/molecule/vf2Test.py index 34c98c1b66..edf7429f50 100644 --- a/test/rmgpy/molecule/vf2Test.py +++ b/test/rmgpy/molecule/vf2Test.py @@ -54,21 +54,29 @@ def test_import_graph(self): self.mol.sort_vertices() - ordered_original_connectivity_order = [get_vertex_connectivity_value(atom) for atom in self.mol.atoms] + ordered_original_connectivity_order = [ + get_vertex_connectivity_value(atom) for atom in self.mol.atoms + ] self.vf2.graphA = self.mol self.vf2.graphB = self.mol2 - final_connectivity_order = [get_vertex_connectivity_value(atom) for atom in self.vf2.graphA.atoms] - final_connectivity_order2 = [get_vertex_connectivity_value(atom) for atom in self.vf2.graphB.atoms] + final_connectivity_order = [ + get_vertex_connectivity_value(atom) for atom in self.vf2.graphA.atoms + ] + final_connectivity_order2 = [ + get_vertex_connectivity_value(atom) for atom in self.vf2.graphB.atoms + ] testing.assert_array_equal(final_connectivity_order, final_connectivity_order2) - testing.assert_array_equal(final_connectivity_order, ordered_original_connectivity_order) + testing.assert_array_equal( + final_connectivity_order, ordered_original_connectivity_order + ) def test_feasible(self): """ Test that feasibility returns correct values on highly functional molecule - + `feasible` method isn't perfect in assigning values but it should do a good job on highly functional values """ @@ -79,7 +87,9 @@ def test_feasible(self): for atom1 in self.vf2.graphA.atoms: for atom2 in self.vf2.graphB.atoms: # same connectivity values should result in `feasible` being true - if get_vertex_connectivity_value(atom1) == get_vertex_connectivity_value(atom2): + if get_vertex_connectivity_value( + atom1 + ) == get_vertex_connectivity_value(atom2): self.assertTrue(self.vf2.feasible(atom1, atom2)) else: # different connectivity values should return false self.assertFalse(self.vf2.feasible(atom1, atom2)) @@ -95,5 +105,5 @@ def test_clear_mapping(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/pdep/collisionTest.py b/test/rmgpy/pdep/collisionTest.py index 7d689c81fb..17fb3104e1 100644 --- a/test/rmgpy/pdep/collisionTest.py +++ b/test/rmgpy/pdep/collisionTest.py @@ -45,7 +45,7 @@ class TestSingleExponentialDown(unittest.TestCase): def setUp(self): self.alpha0 = 0.5 - self.T0 = 300. + self.T0 = 300.0 self.n = 0.85 self.singleExponentialDown = SingleExponentialDown( alpha0=(self.alpha0, "kJ/mol"), @@ -57,7 +57,9 @@ def test_alpha0(self): """ Test the SingleExponentialDown.sigma attribute. """ - self.assertAlmostEqual(self.singleExponentialDown.alpha0.value_si * 0.001, self.alpha0, 4) + self.assertAlmostEqual( + self.singleExponentialDown.alpha0.value_si * 0.001, self.alpha0, 4 + ) def test_temperature_0(self): """ @@ -76,7 +78,7 @@ def test_get_alpha(self): Test the SingleExponentialDown.get_alpha() method. """ for T in [300, 400, 500, 600, 800, 1000, 1500, 2000]: - dEdown0 = 1000. * self.alpha0 * (T / self.T0) ** self.n + dEdown0 = 1000.0 * self.alpha0 * (T / self.T0) ** self.n dEdown = self.singleExponentialDown.get_alpha(T) self.assertAlmostEqual(dEdown0, dEdown, 6) @@ -86,24 +88,51 @@ def test_pickle(self): and unpickled with no loss of information. """ import pickle - singleExponentialDown = pickle.loads(pickle.dumps(self.singleExponentialDown, -1)) - self.assertAlmostEqual(self.singleExponentialDown.alpha0.value, singleExponentialDown.alpha0.value, 6) - self.assertEqual(self.singleExponentialDown.alpha0.units, singleExponentialDown.alpha0.units) - self.assertAlmostEqual(self.singleExponentialDown.T0.value, singleExponentialDown.T0.value, 6) - self.assertEqual(self.singleExponentialDown.T0.units, singleExponentialDown.T0.units) + + singleExponentialDown = pickle.loads( + pickle.dumps(self.singleExponentialDown, -1) + ) + self.assertAlmostEqual( + self.singleExponentialDown.alpha0.value, + singleExponentialDown.alpha0.value, + 6, + ) + self.assertEqual( + self.singleExponentialDown.alpha0.units, singleExponentialDown.alpha0.units + ) + self.assertAlmostEqual( + self.singleExponentialDown.T0.value, singleExponentialDown.T0.value, 6 + ) + self.assertEqual( + self.singleExponentialDown.T0.units, singleExponentialDown.T0.units + ) self.assertAlmostEqual(self.singleExponentialDown.n, singleExponentialDown.n, 4) def test_repr(self): """ - Test that a SingleExponentialDown object can be successfully + Test that a SingleExponentialDown object can be successfully reconstructed from its repr() with no loss of information. """ namespace = {} - exec('singleExponentialDown = {0!r}'.format(self.singleExponentialDown), globals(), namespace) - self.assertIn('singleExponentialDown', namespace) - singleExponentialDown = namespace['singleExponentialDown'] - self.assertAlmostEqual(self.singleExponentialDown.alpha0.value, singleExponentialDown.alpha0.value, 6) - self.assertEqual(self.singleExponentialDown.alpha0.units, singleExponentialDown.alpha0.units) - self.assertAlmostEqual(self.singleExponentialDown.T0.value, singleExponentialDown.T0.value, 6) - self.assertEqual(self.singleExponentialDown.T0.units, singleExponentialDown.T0.units) + exec( + "singleExponentialDown = {0!r}".format(self.singleExponentialDown), + globals(), + namespace, + ) + self.assertIn("singleExponentialDown", namespace) + singleExponentialDown = namespace["singleExponentialDown"] + self.assertAlmostEqual( + self.singleExponentialDown.alpha0.value, + singleExponentialDown.alpha0.value, + 6, + ) + self.assertEqual( + self.singleExponentialDown.alpha0.units, singleExponentialDown.alpha0.units + ) + self.assertAlmostEqual( + self.singleExponentialDown.T0.value, singleExponentialDown.T0.value, 6 + ) + self.assertEqual( + self.singleExponentialDown.T0.units, singleExponentialDown.T0.units + ) self.assertAlmostEqual(self.singleExponentialDown.n, singleExponentialDown.n, 4) diff --git a/test/rmgpy/pdep/configurationTest.py b/test/rmgpy/pdep/configurationTest.py index 549411405b..3a33722b67 100644 --- a/test/rmgpy/pdep/configurationTest.py +++ b/test/rmgpy/pdep/configurationTest.py @@ -47,6 +47,7 @@ ################################################################################ + class TestConfiguration(unittest.TestCase): """ Contains unit tests of the :class:`Network` class. @@ -57,54 +58,173 @@ def setUp(self): A function run before each unit test in this class. """ self.nC4H10O = Species( - label='n-C4H10O', + label="n-C4H10O", conformer=Conformer( - E0=(-317.807, 'kJ/mol'), + E0=(-317.807, "kJ/mol"), modes=[ IdealGasTranslation(mass=(74.07, "g/mol")), - NonlinearRotor(inertia=([41.5091, 215.751, 233.258], "amu*angstrom^2"), symmetry=1), + NonlinearRotor( + inertia=([41.5091, 215.751, 233.258], "amu*angstrom^2"), + symmetry=1, + ), HarmonicOscillator( - frequencies=([240.915, 341.933, 500.066, 728.41, 809.987, 833.93, 926.308, 948.571, 1009.3, - 1031.46, 1076, 1118.4, 1184.66, 1251.36, 1314.36, 1321.42, 1381.17, 1396.5, - 1400.54, 1448.08, 1480.18, 1485.34, 1492.24, 1494.99, 1586.16, 2949.01, 2963.03, - 2986.19, 2988.1, 2995.27, 3026.03, 3049.05, 3053.47, 3054.83, 3778.88], "cm^-1")), - HinderedRotor(inertia=(0.854054, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.25183, -1.37378, -2.8379, 0.0305112, 0.0028088], - [0.458307, 0.542121, -0.599366, -0.00283925, 0.0398529]], "kJ/mol")), - HinderedRotor(inertia=(8.79408, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.26871, -0.59533, -8.15002, -0.294325, -0.145357], - [1.1884, 0.99479, -0.940416, -0.186538, 0.0309834]], "kJ/mol")), - HinderedRotor(inertia=(7.88153, "amu*angstrom^2"), symmetry=1, fourier=( - [[-4.67373, 2.03735, -6.25993, -0.27325, -0.048748], - [-0.982845, 1.76637, -1.57619, 0.474364, -0.000681718]], "kJ/mol")), - HinderedRotor(inertia=(2.81525, "amu*angstrom^2"), symmetry=3, barrier=(2.96807, "kcal/mol")), + frequencies=( + [ + 240.915, + 341.933, + 500.066, + 728.41, + 809.987, + 833.93, + 926.308, + 948.571, + 1009.3, + 1031.46, + 1076, + 1118.4, + 1184.66, + 1251.36, + 1314.36, + 1321.42, + 1381.17, + 1396.5, + 1400.54, + 1448.08, + 1480.18, + 1485.34, + 1492.24, + 1494.99, + 1586.16, + 2949.01, + 2963.03, + 2986.19, + 2988.1, + 2995.27, + 3026.03, + 3049.05, + 3053.47, + 3054.83, + 3778.88, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(0.854054, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.25183, -1.37378, -2.8379, 0.0305112, 0.0028088], + [0.458307, 0.542121, -0.599366, -0.00283925, 0.0398529], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(8.79408, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.26871, -0.59533, -8.15002, -0.294325, -0.145357], + [1.1884, 0.99479, -0.940416, -0.186538, 0.0309834], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(7.88153, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-4.67373, 2.03735, -6.25993, -0.27325, -0.048748], + [-0.982845, 1.76637, -1.57619, 0.474364, -0.000681718], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.81525, "amu*angstrom^2"), + symmetry=3, + barrier=(2.96807, "kcal/mol"), + ), ], spin_multiplicity=1, optical_isomers=1, ), molecular_weight=(74.07, "g/mol"), - transport_data=TransportData(sigma=(5.94, 'angstrom'), epsilon=(559, 'K')), - energy_transfer_model=SingleExponentialDown(alpha0=(447.5 * 0.011962, "kJ/mol"), T0=(300, "K"), n=0.85), + transport_data=TransportData(sigma=(5.94, "angstrom"), epsilon=(559, "K")), + energy_transfer_model=SingleExponentialDown( + alpha0=(447.5 * 0.011962, "kJ/mol"), T0=(300, "K"), n=0.85 + ), ) self.nC4H8 = Species( - label='n-C4H8', + label="n-C4H8", conformer=Conformer( - E0=(-17.8832, 'kJ/mol'), + E0=(-17.8832, "kJ/mol"), modes=[ IdealGasTranslation(mass=(56.06, "g/mol")), - NonlinearRotor(inertia=([22.2748, 122.4, 125.198], "amu*angstrom^2"), symmetry=1), + NonlinearRotor( + inertia=([22.2748, 122.4, 125.198], "amu*angstrom^2"), + symmetry=1, + ), HarmonicOscillator( - frequencies=([308.537, 418.67, 636.246, 788.665, 848.906, 936.762, 979.97, 1009.48, 1024.22, - 1082.96, 1186.38, 1277.55, 1307.65, 1332.87, 1396.67, 1439.09, 1469.71, 1484.45, - 1493.19, 1691.49, 2972.12, 2994.31, 3018.48, 3056.87, 3062.76, 3079.38, 3093.54, - 3174.52], "cm^-1")), - HinderedRotor(inertia=(5.28338, "amu*angstrom^2"), symmetry=1, fourier=( - [[-0.579364, -0.28241, -4.46469, 0.143368, 0.126756], - [1.01804, -0.494628, -0.00318651, -0.245289, 0.193728]], "kJ/mol")), - HinderedRotor(inertia=(2.60818, "amu*angstrom^2"), symmetry=3, fourier=( - [[0.0400372, 0.0301986, -6.4787, -0.0248675, -0.0324753], - [0.0312541, 0.0538, -0.493785, 0.0965968, 0.125292]], "kJ/mol")), + frequencies=( + [ + 308.537, + 418.67, + 636.246, + 788.665, + 848.906, + 936.762, + 979.97, + 1009.48, + 1024.22, + 1082.96, + 1186.38, + 1277.55, + 1307.65, + 1332.87, + 1396.67, + 1439.09, + 1469.71, + 1484.45, + 1493.19, + 1691.49, + 2972.12, + 2994.31, + 3018.48, + 3056.87, + 3062.76, + 3079.38, + 3093.54, + 3174.52, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(5.28338, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-0.579364, -0.28241, -4.46469, 0.143368, 0.126756], + [1.01804, -0.494628, -0.00318651, -0.245289, 0.193728], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.60818, "amu*angstrom^2"), + symmetry=3, + fourier=( + [ + [0.0400372, 0.0301986, -6.4787, -0.0248675, -0.0324753], + [0.0312541, 0.0538, -0.493785, 0.0965968, 0.125292], + ], + "kJ/mol", + ), + ), ], spin_multiplicity=1, optical_isomers=1, @@ -112,13 +232,18 @@ def setUp(self): ) self.H2O = Species( - label='H2O', + label="H2O", conformer=Conformer( - E0=(-269.598, 'kJ/mol'), + E0=(-269.598, "kJ/mol"), modes=[ IdealGasTranslation(mass=(18.01, "g/mol")), - NonlinearRotor(inertia=([0.630578, 1.15529, 1.78586], "amu*angstrom^2"), symmetry=2), - HarmonicOscillator(frequencies=([1622.09, 3771.85, 3867.85], "cm^-1")), + NonlinearRotor( + inertia=([0.630578, 1.15529, 1.78586], "amu*angstrom^2"), + symmetry=2, + ), + HarmonicOscillator( + frequencies=([1622.09, 3771.85, 3867.85], "cm^-1") + ), ], spin_multiplicity=1, optical_isomers=1, @@ -133,14 +258,25 @@ def test_repr(self): """ output = repr(self.configuration) # ensure species strings - labels = ['H2O', 'n-C4H8'] + labels = ["H2O", "n-C4H8"] for label in labels: self.assertIn(label, output) # ensure classes are used as well - attributes = ['Configuration', 'Species', 'Conformer', 'NonlinearRotor', - 'HarmonicOscillator', 'frequencies', 'IdealGasTranslation', - 'HinderedRotor', 'E0', 'mass', 'symmetry', 'fourier'] + attributes = [ + "Configuration", + "Species", + "Conformer", + "NonlinearRotor", + "HarmonicOscillator", + "frequencies", + "IdealGasTranslation", + "HinderedRotor", + "E0", + "mass", + "symmetry", + "fourier", + ] for label in attributes: self.assertIn(label, output) @@ -150,14 +286,23 @@ def test_str(self): """ output = str(self.configuration) # ensure species strings - labels = ['H2O', 'n-C4H8'] + labels = ["H2O", "n-C4H8"] for label in labels: self.assertIn(label, output) # ensure this extra fluff is not in Network string - attributes = ['Species', 'Conformer', 'Molecule', 'NonlinearRotor', - 'HarmonicOscillator', 'frequencies', 'spin_multiplicity', 'TransportData', - 'molecular_weight', 'SingleExponentialDown'] + attributes = [ + "Species", + "Conformer", + "Molecule", + "NonlinearRotor", + "HarmonicOscillator", + "frequencies", + "spin_multiplicity", + "TransportData", + "molecular_weight", + "SingleExponentialDown", + ] for label in attributes: self.assertNotIn(label, output) @@ -170,7 +315,8 @@ def test_no_nan_in_densStates(self): self.configuration.calculate_density_of_states(elist) self.assertFalse(np.isnan(self.configuration.dens_states).any()) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/pdep/networkTest.py b/test/rmgpy/pdep/networkTest.py index 55a40f8e58..908ee68354 100644 --- a/test/rmgpy/pdep/networkTest.py +++ b/test/rmgpy/pdep/networkTest.py @@ -48,6 +48,7 @@ ################################################################################ + class TestNetwork(unittest.TestCase): """ Contains unit tests of the :class:`Network` class. @@ -58,54 +59,173 @@ def setUp(self): A function run before each unit test in this class. """ self.nC4H10O = Species( - label='n-C4H10O', + label="n-C4H10O", conformer=Conformer( - E0=(-317.807, 'kJ/mol'), + E0=(-317.807, "kJ/mol"), modes=[ IdealGasTranslation(mass=(74.07, "g/mol")), - NonlinearRotor(inertia=([41.5091, 215.751, 233.258], "amu*angstrom^2"), symmetry=1), + NonlinearRotor( + inertia=([41.5091, 215.751, 233.258], "amu*angstrom^2"), + symmetry=1, + ), HarmonicOscillator( - frequencies=([240.915, 341.933, 500.066, 728.41, 809.987, 833.93, 926.308, 948.571, 1009.3, - 1031.46, 1076, 1118.4, 1184.66, 1251.36, 1314.36, 1321.42, 1381.17, 1396.5, - 1400.54, 1448.08, 1480.18, 1485.34, 1492.24, 1494.99, 1586.16, 2949.01, 2963.03, - 2986.19, 2988.1, 2995.27, 3026.03, 3049.05, 3053.47, 3054.83, 3778.88], "cm^-1")), - HinderedRotor(inertia=(0.854054, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.25183, -1.37378, -2.8379, 0.0305112, 0.0028088], - [0.458307, 0.542121, -0.599366, -0.00283925, 0.0398529]], "kJ/mol")), - HinderedRotor(inertia=(8.79408, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.26871, -0.59533, -8.15002, -0.294325, -0.145357], - [1.1884, 0.99479, -0.940416, -0.186538, 0.0309834]], "kJ/mol")), - HinderedRotor(inertia=(7.88153, "amu*angstrom^2"), symmetry=1, fourier=( - [[-4.67373, 2.03735, -6.25993, -0.27325, -0.048748], - [-0.982845, 1.76637, -1.57619, 0.474364, -0.000681718]], "kJ/mol")), - HinderedRotor(inertia=(2.81525, "amu*angstrom^2"), symmetry=3, barrier=(2.96807, "kcal/mol")), + frequencies=( + [ + 240.915, + 341.933, + 500.066, + 728.41, + 809.987, + 833.93, + 926.308, + 948.571, + 1009.3, + 1031.46, + 1076, + 1118.4, + 1184.66, + 1251.36, + 1314.36, + 1321.42, + 1381.17, + 1396.5, + 1400.54, + 1448.08, + 1480.18, + 1485.34, + 1492.24, + 1494.99, + 1586.16, + 2949.01, + 2963.03, + 2986.19, + 2988.1, + 2995.27, + 3026.03, + 3049.05, + 3053.47, + 3054.83, + 3778.88, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(0.854054, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.25183, -1.37378, -2.8379, 0.0305112, 0.0028088], + [0.458307, 0.542121, -0.599366, -0.00283925, 0.0398529], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(8.79408, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.26871, -0.59533, -8.15002, -0.294325, -0.145357], + [1.1884, 0.99479, -0.940416, -0.186538, 0.0309834], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(7.88153, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-4.67373, 2.03735, -6.25993, -0.27325, -0.048748], + [-0.982845, 1.76637, -1.57619, 0.474364, -0.000681718], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.81525, "amu*angstrom^2"), + symmetry=3, + barrier=(2.96807, "kcal/mol"), + ), ], spin_multiplicity=1, optical_isomers=1, ), molecular_weight=(74.07, "g/mol"), - transport_data=TransportData(sigma=(5.94, 'angstrom'), epsilon=(559, 'K')), - energy_transfer_model=SingleExponentialDown(alpha0=(447.5 * 0.011962, "kJ/mol"), T0=(300, "K"), n=0.85), + transport_data=TransportData(sigma=(5.94, "angstrom"), epsilon=(559, "K")), + energy_transfer_model=SingleExponentialDown( + alpha0=(447.5 * 0.011962, "kJ/mol"), T0=(300, "K"), n=0.85 + ), ) self.nC4H8 = Species( - label='n-C4H8', + label="n-C4H8", conformer=Conformer( - E0=(-17.8832, 'kJ/mol'), + E0=(-17.8832, "kJ/mol"), modes=[ IdealGasTranslation(mass=(56.06, "g/mol")), - NonlinearRotor(inertia=([22.2748, 122.4, 125.198], "amu*angstrom^2"), symmetry=1), + NonlinearRotor( + inertia=([22.2748, 122.4, 125.198], "amu*angstrom^2"), + symmetry=1, + ), HarmonicOscillator( - frequencies=([308.537, 418.67, 636.246, 788.665, 848.906, 936.762, 979.97, 1009.48, 1024.22, - 1082.96, 1186.38, 1277.55, 1307.65, 1332.87, 1396.67, 1439.09, 1469.71, 1484.45, - 1493.19, 1691.49, 2972.12, 2994.31, 3018.48, 3056.87, 3062.76, 3079.38, 3093.54, - 3174.52], "cm^-1")), - HinderedRotor(inertia=(5.28338, "amu*angstrom^2"), symmetry=1, fourier=( - [[-0.579364, -0.28241, -4.46469, 0.143368, 0.126756], - [1.01804, -0.494628, -0.00318651, -0.245289, 0.193728]], "kJ/mol")), - HinderedRotor(inertia=(2.60818, "amu*angstrom^2"), symmetry=3, fourier=( - [[0.0400372, 0.0301986, -6.4787, -0.0248675, -0.0324753], - [0.0312541, 0.0538, -0.493785, 0.0965968, 0.125292]], "kJ/mol")), + frequencies=( + [ + 308.537, + 418.67, + 636.246, + 788.665, + 848.906, + 936.762, + 979.97, + 1009.48, + 1024.22, + 1082.96, + 1186.38, + 1277.55, + 1307.65, + 1332.87, + 1396.67, + 1439.09, + 1469.71, + 1484.45, + 1493.19, + 1691.49, + 2972.12, + 2994.31, + 3018.48, + 3056.87, + 3062.76, + 3079.38, + 3093.54, + 3174.52, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(5.28338, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-0.579364, -0.28241, -4.46469, 0.143368, 0.126756], + [1.01804, -0.494628, -0.00318651, -0.245289, 0.193728], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.60818, "amu*angstrom^2"), + symmetry=3, + fourier=( + [ + [0.0400372, 0.0301986, -6.4787, -0.0248675, -0.0324753], + [0.0312541, 0.0538, -0.493785, 0.0965968, 0.125292], + ], + "kJ/mol", + ), + ), ], spin_multiplicity=1, optical_isomers=1, @@ -113,13 +233,18 @@ def setUp(self): ) self.H2O = Species( - label='H2O', + label="H2O", conformer=Conformer( - E0=(-269.598, 'kJ/mol'), + E0=(-269.598, "kJ/mol"), modes=[ IdealGasTranslation(mass=(18.01, "g/mol")), - NonlinearRotor(inertia=([0.630578, 1.15529, 1.78586], "amu*angstrom^2"), symmetry=2), - HarmonicOscillator(frequencies=([1622.09, 3771.85, 3867.85], "cm^-1")), + NonlinearRotor( + inertia=([0.630578, 1.15529, 1.78586], "amu*angstrom^2"), + symmetry=2, + ), + HarmonicOscillator( + frequencies=([1622.09, 3771.85, 3867.85], "cm^-1") + ), ], spin_multiplicity=1, optical_isomers=1, @@ -127,45 +252,98 @@ def setUp(self): ) self.N2 = Species( - label='N2', + label="N2", molecular_weight=(28.04, "g/mol"), transport_data=TransportData(sigma=(3.41, "angstrom"), epsilon=(124, "K")), energy_transfer_model=None, ) self.TS = TransitionState( - label='TS', + label="TS", conformer=Conformer( E0=(-42.4373, "kJ/mol"), modes=[ IdealGasTranslation(mass=(74.07, "g/mol")), - NonlinearRotor(inertia=([40.518, 232.666, 246.092], "u*angstrom**2"), symmetry=1, quantum=False), + NonlinearRotor( + inertia=([40.518, 232.666, 246.092], "u*angstrom**2"), + symmetry=1, + quantum=False, + ), HarmonicOscillator( - frequencies=([134.289, 302.326, 351.792, 407.986, 443.419, 583.988, 699.001, 766.1, 777.969, - 829.671, 949.753, 994.731, 1013.59, 1073.98, 1103.79, 1171.89, 1225.91, 1280.67, - 1335.08, 1373.9, 1392.32, 1417.43, 1469.51, 1481.61, 1490.16, 1503.73, 1573.16, - 2972.85, 2984.3, 3003.67, 3045.78, 3051.77, 3082.37, 3090.44, 3190.73, 3708.52], - "kayser")), - HinderedRotor(inertia=(2.68206, "amu*angstrom^2"), symmetry=3, barrier=(3.35244, "kcal/mol")), - HinderedRotor(inertia=(9.77669, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.208938, -1.55291, -4.05398, -0.105798, -0.104752], - [2.00518, -0.020767, -0.333595, 0.137791, -0.274578]], "kJ/mol")), + frequencies=( + [ + 134.289, + 302.326, + 351.792, + 407.986, + 443.419, + 583.988, + 699.001, + 766.1, + 777.969, + 829.671, + 949.753, + 994.731, + 1013.59, + 1073.98, + 1103.79, + 1171.89, + 1225.91, + 1280.67, + 1335.08, + 1373.9, + 1392.32, + 1417.43, + 1469.51, + 1481.61, + 1490.16, + 1503.73, + 1573.16, + 2972.85, + 2984.3, + 3003.67, + 3045.78, + 3051.77, + 3082.37, + 3090.44, + 3190.73, + 3708.52, + ], + "kayser", + ) + ), + HinderedRotor( + inertia=(2.68206, "amu*angstrom^2"), + symmetry=3, + barrier=(3.35244, "kcal/mol"), + ), + HinderedRotor( + inertia=(9.77669, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.208938, -1.55291, -4.05398, -0.105798, -0.104752], + [2.00518, -0.020767, -0.333595, 0.137791, -0.274578], + ], + "kJ/mol", + ), + ), ], spin_multiplicity=1, optical_isomers=1, ), - frequency=(-2038.34, 'cm^-1'), + frequency=(-2038.34, "cm^-1"), ) self.reaction = Reaction( - label='dehydration', + label="dehydration", reactants=[self.nC4H10O], products=[self.nC4H8, self.H2O], transition_state=self.TS, ) self.network = Network( - label='n-butanol', + label="n-butanol", isomers=[Configuration(self.nC4H10O)], reactants=[], products=[Configuration(self.nC4H8, self.H2O)], @@ -177,7 +355,7 @@ def test_label(self): """ Test that the network `label` property was properly set. """ - self.assertEqual('n-butanol', self.network.label) + self.assertEqual("n-butanol", self.network.label) def test_isomers(self): """ @@ -225,14 +403,23 @@ def test_repr(self): """ output = repr(self.network) # ensure species strings - labels = ['dehydration', 'H2O', 'N2', 'TS', 'n-C4H8', 'n-C4H10O'] + labels = ["dehydration", "H2O", "N2", "TS", "n-C4H8", "n-C4H10O"] for label in labels: self.assertIn(label, output) # ensure classes are used as well - attributes = ['Configuration', 'Network', 'Species', 'Conformer', 'NonlinearRotor', - 'HarmonicOscillator', 'frequencies', 'TransportData', - 'molecular_weight', 'SingleExponentialDown'] + attributes = [ + "Configuration", + "Network", + "Species", + "Conformer", + "NonlinearRotor", + "HarmonicOscillator", + "frequencies", + "TransportData", + "molecular_weight", + "SingleExponentialDown", + ] for label in attributes: self.assertIn(label, output) @@ -242,14 +429,24 @@ def test_str(self): """ output = str(self.network) # ensure species strings - labels = ['dehydration', 'H2O', 'N2', 'n-C4H8', 'n-C4H10O'] + labels = ["dehydration", "H2O", "N2", "n-C4H8", "n-C4H10O"] for label in labels: self.assertIn(label, output) # ensure this extra fluff is not in Network string - attributes = ['Configuration', 'Species', 'Conformer', 'Molecule', 'NonlinearRotor', - 'HarmonicOscillator', 'frequencies', 'spin_multiplicity', 'TransportData', - 'molecular_weight', 'SingleExponentialDown'] + attributes = [ + "Configuration", + "Species", + "Conformer", + "Molecule", + "NonlinearRotor", + "HarmonicOscillator", + "frequencies", + "spin_multiplicity", + "TransportData", + "molecular_weight", + "SingleExponentialDown", + ] for label in attributes: self.assertNotIn(label, output) @@ -262,7 +459,9 @@ def test_collision_matrix_memory_handling(self): try: net.calculate_collision_model() except MemoryError: - raise AssertionError('Large collision matrix resulted in memory error, handling failed') + raise AssertionError( + "Large collision matrix resulted in memory error, handling failed" + ) except: pass @@ -279,5 +478,5 @@ def test_get_all_species(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/qm/qmMoleculeTest.py b/test/rmgpy/qm/qmMoleculeTest.py index 3e2499cbf6..7af6fac643 100644 --- a/test/rmgpy/qm/qmMoleculeTest.py +++ b/test/rmgpy/qm/qmMoleculeTest.py @@ -36,7 +36,8 @@ from rmgpy.qm.main import QMSettings from rmgpy.qm.molecule import Geometry -scratch_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'scratch') +scratch_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), "scratch") + class TestQMMolecule(unittest.TestCase): """ @@ -47,15 +48,28 @@ def test_rd_embed_common_species(self): """ Test that rd_embed() works for various commmon molecules. """ - for smi in ['O', 'C', '[CH2]', '[CH3]', - '[OH]', 'O=C=O', '[CH3+]', '[OH-]', - 'N', 'N#N', '[NH2]', 'CO[O]',]: + for smi in [ + "O", + "C", + "[CH2]", + "[CH3]", + "[OH]", + "O=C=O", + "[CH3+]", + "[OH-]", + "N", + "N#N", + "[NH2]", + "CO[O]", + ]: mol = Molecule().from_smiles(smi) - geom = Geometry(settings=QMSettings( - scratchDirectory=scratch_dir, - ), - unique_id='0', - molecule=mol) + geom = Geometry( + settings=QMSettings( + scratchDirectory=scratch_dir, + ), + unique_id="0", + molecule=mol, + ) rdmol, _ = geom.rd_build() rdmol, _ = geom.rd_embed(rdmol, num_conf_attempts=20) self.assertEqual(rdmol.GetNumConformers(), 20) @@ -65,22 +79,26 @@ def test_rd_embed_uncommon_species(self): """ Test that rd_embed() works for species that ETKDG fails to embed conformers for. """ - for smi in ['[N:1](=[C-:2][C@@:3]1([H:8])[O:4][C@@:5]2([H:9])[C:6]([H:10])([H:11])[C+:7]12)[H:12]', - '[N+:1]1#[C:2][C@@:3]2([H:8])[O:4][C-:5]([H:9])[C:6]([H:10])([H:11])[C@@:7]12[H:12]',]: + for smi in [ + "[N:1](=[C-:2][C@@:3]1([H:8])[O:4][C@@:5]2([H:9])[C:6]([H:10])([H:11])[C+:7]12)[H:12]", + "[N+:1]1#[C:2][C@@:3]2([H:8])[O:4][C-:5]([H:9])[C:6]([H:10])([H:11])[C@@:7]12[H:12]", + ]: # RMG has difficulty converting these charged species into RDKit Mol. # Directly, generating rdmol using RDKit here. # So far, this shouldn't be a concern since RMG doesn't work for charged species # And these species are only to test the `rd_embed`` method - geom = Geometry(settings=QMSettings( - scratchDirectory=scratch_dir, - ), - unique_id='0', - molecule=None) + geom = Geometry( + settings=QMSettings( + scratchDirectory=scratch_dir, + ), + unique_id="0", + molecule=None, + ) rdmol = Chem.rdmolops.AddHs(Chem.MolFromSmiles(smi)) rdmol, _ = geom.rd_embed(rdmol, num_conf_attempts=20) self.assertEqual(rdmol.GetNumConformers(), 20) shutil.rmtree(scratch_dir) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/quantityTest.py b/test/rmgpy/quantityTest.py index 3d2815989c..eee4ad46b7 100644 --- a/test/rmgpy/quantityTest.py +++ b/test/rmgpy/quantityTest.py @@ -40,6 +40,7 @@ ################################################################################ + class TestAcceleration(unittest.TestCase): """ Contains unit tests of the Acceleration unit type object. @@ -66,6 +67,7 @@ def test_cmpers2(self): ################################################################################ + class TestArea(unittest.TestCase): """ Contains unit tests of the Area unit type object. @@ -92,6 +94,7 @@ def test_cm2(self): ################################################################################ + class TestConcentration(unittest.TestCase): """ Contains unit tests of the Concentration unit type object. @@ -128,6 +131,7 @@ def test_moleculesperm3(self): ################################################################################ + class TestEnergy(unittest.TestCase): """ Contains unit tests of the Energy unit type object. @@ -187,7 +191,7 @@ def test_kj_per_mol(self): """ q = quantity.Energy(1.0, "kJ/mol") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 1000., delta=1e-6) + self.assertAlmostEqual(q.value_si, 1000.0, delta=1e-6) self.assertEqual(q.units, "kJ/mol") def test_kcal(self): @@ -206,7 +210,7 @@ def test_kcal_per_mol(self): """ q = quantity.Energy(1.0, "kcal/mol") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 4184., delta=1e-6) + self.assertAlmostEqual(q.value_si, 4184.0, delta=1e-6) self.assertEqual(q.units, "kcal/mol") def test_kelvin(self): @@ -220,6 +224,7 @@ def test_kelvin(self): ################################################################################ + class TestDipoleMoment(unittest.TestCase): """ Contains unit tests of the DipoleMoment unit type object. @@ -246,6 +251,7 @@ def test_debye(self): ################################################################################ + class TestFlux(unittest.TestCase): """ Contains unit tests of the Flux unit type object. @@ -282,6 +288,7 @@ def test_moleculesperm3(self): ################################################################################ + class TestForce(unittest.TestCase): """ Contains unit tests of the Force unit type object. @@ -299,6 +306,7 @@ def test_newton(self): ################################################################################ + class TestFrequency(unittest.TestCase): """ Contains unit tests of the Frequency unit type object. Note that, as a @@ -320,8 +328,8 @@ def test_s_1(self): Test the creation of a frequency quantity with units of s^-1. """ q = quantity.Frequency(1.0, "s^-1") - self.assertAlmostEqual(q.value, 1. / (constants.c * 100.), delta=1e-17) - self.assertAlmostEqual(q.value_si, 1. / (constants.c * 100.), delta=1e-17) + self.assertAlmostEqual(q.value, 1.0 / (constants.c * 100.0), delta=1e-17) + self.assertAlmostEqual(q.value_si, 1.0 / (constants.c * 100.0), delta=1e-17) self.assertEqual(q.units, "cm^-1") def test_k(self): @@ -329,8 +337,12 @@ def test_k(self): Test the creation of a frequency quantity with units of K. """ q = quantity.Frequency(1.0, "K") - self.assertAlmostEqual(q.value, constants.kB / (constants.h * constants.c * 100.), 6) - self.assertAlmostEqual(q.value_si, constants.kB / (constants.h * constants.c * 100.), delta=1e-6) + self.assertAlmostEqual( + q.value, constants.kB / (constants.h * constants.c * 100.0), 6 + ) + self.assertAlmostEqual( + q.value_si, constants.kB / (constants.h * constants.c * 100.0), delta=1e-6 + ) self.assertEqual(q.units, "cm^-1") def test_ev(self): @@ -338,8 +350,12 @@ def test_ev(self): Test the creation of a frequency quantity with units of eV. """ q = quantity.Frequency(1.0, "eV") - self.assertAlmostEqual(q.value, constants.e / (constants.h * constants.c * 100.), 2) - self.assertAlmostEqual(q.value_si, constants.e / (constants.h * constants.c * 100.), delta=1e-2) + self.assertAlmostEqual( + q.value, constants.e / (constants.h * constants.c * 100.0), 2 + ) + self.assertAlmostEqual( + q.value_si, constants.e / (constants.h * constants.c * 100.0), delta=1e-2 + ) self.assertEqual(q.units, "cm^-1") def test_hz(self): @@ -347,8 +363,8 @@ def test_hz(self): Test the creation of a frequency quantity with units of Hz. """ q = quantity.Frequency(1.0, "Hz") - self.assertAlmostEqual(q.value, 1. / (constants.c * 100.), delta=1e-17) - self.assertAlmostEqual(q.value_si, 1. / (constants.c * 100.), delta=1e-17) + self.assertAlmostEqual(q.value, 1.0 / (constants.c * 100.0), delta=1e-17) + self.assertAlmostEqual(q.value_si, 1.0 / (constants.c * 100.0), delta=1e-17) self.assertEqual(q.units, "cm^-1") def test_khz(self): @@ -356,8 +372,8 @@ def test_khz(self): Test the creation of a frequency quantity with units of kHz. """ q = quantity.Frequency(1.0, "kHz") - self.assertAlmostEqual(q.value, 1e3 / (constants.c * 100.), delta=1e-14) - self.assertAlmostEqual(q.value_si, 1e3 / (constants.c * 100.), delta=1e-14) + self.assertAlmostEqual(q.value, 1e3 / (constants.c * 100.0), delta=1e-14) + self.assertAlmostEqual(q.value_si, 1e3 / (constants.c * 100.0), delta=1e-14) self.assertEqual(q.units, "cm^-1") def test_mhz(self): @@ -365,8 +381,8 @@ def test_mhz(self): Test the creation of a frequency quantity with units of MHz. """ q = quantity.Frequency(1.0, "MHz") - self.assertAlmostEqual(q.value, 1e6 / (constants.c * 100.), delta=1e-11) - self.assertAlmostEqual(q.value_si, 1e6 / (constants.c * 100.), delta=1e-11) + self.assertAlmostEqual(q.value, 1e6 / (constants.c * 100.0), delta=1e-11) + self.assertAlmostEqual(q.value_si, 1e6 / (constants.c * 100.0), delta=1e-11) self.assertEqual(q.units, "cm^-1") def test_ghz(self): @@ -374,13 +390,14 @@ def test_ghz(self): Test the creation of a frequency quantity with units of GHz. """ q = quantity.Frequency(1.0, "GHz") - self.assertAlmostEqual(q.value, 1e9 / (constants.c * 100.), delta=1e-08) - self.assertAlmostEqual(q.value_si, 1e9 / (constants.c * 100.), delta=1e-08) + self.assertAlmostEqual(q.value, 1e9 / (constants.c * 100.0), delta=1e-08) + self.assertAlmostEqual(q.value_si, 1e9 / (constants.c * 100.0), delta=1e-08) self.assertEqual(q.units, "cm^-1") ################################################################################ + class TestHeatCapacity(unittest.TestCase): """ Contains unit tests of the HeatCapacity unit type object. @@ -440,7 +457,7 @@ def test_kj_per_mol_kelvin(self): """ q = quantity.HeatCapacity(1.0, "kJ/(mol*K)") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 1000., delta=1e-6) + self.assertAlmostEqual(q.value_si, 1000.0, delta=1e-6) self.assertEqual(q.units, "kJ/(mol*K)") def test_kcal_per_kelvin(self): @@ -459,12 +476,13 @@ def test_kcal_per_mol_kelvin(self): """ q = quantity.HeatCapacity(1.0, "kcal/(mol*K)") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 4184., delta=1e-6) + self.assertAlmostEqual(q.value_si, 4184.0, delta=1e-6) self.assertEqual(q.units, "kcal/(mol*K)") ################################################################################ + class TestInertia(unittest.TestCase): """ Contains unit tests of the Inertia unit type object. @@ -491,6 +509,7 @@ def test_amu_angstrom2(self): ################################################################################ + class TestLength(unittest.TestCase): """ Contains unit tests of the Length unit type object. @@ -562,10 +581,11 @@ def test_pm(self): ################################################################################ + class TestMass(unittest.TestCase): """ Contains unit tests of the Mass unit type object. - + Note that value_si is always kg (per molecule), not kg/mol. """ @@ -595,7 +615,7 @@ def test_kgpermol(self): """ q = quantity.Mass(1.0, "kg/mol") self.assertAlmostEqual(q.value, 1000.0, 3) - self.assertAlmostEqual(q.value_si, 1000. * constants.amu, delta=1e-29) + self.assertAlmostEqual(q.value_si, 1000.0 * constants.amu, delta=1e-29) self.assertEqual(q.units, "amu") def test_amu(self): @@ -610,6 +630,7 @@ def test_amu(self): ################################################################################ + class TestMomentum(unittest.TestCase): """ Contains unit tests of the Momentum unit type object. @@ -627,6 +648,7 @@ def test_kgmpers2(self): ################################################################################ + class TestPower(unittest.TestCase): """ Contains unit tests of the Power unit type object. @@ -644,6 +666,7 @@ def test_w(self): ################################################################################ + class TestPressure(unittest.TestCase): """ Contains unit tests of the Pressure unit type object. @@ -673,7 +696,7 @@ def test_atm(self): """ q = quantity.Pressure(1.0, "atm") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 101325., delta=1e-6) + self.assertAlmostEqual(q.value_si, 101325.0, delta=1e-6) self.assertEqual(q.units, "atm") def test_torr(self): @@ -682,7 +705,7 @@ def test_torr(self): """ q = quantity.Pressure(1.0, "torr") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 101325. / 760., delta=1e-6) + self.assertAlmostEqual(q.value_si, 101325.0 / 760.0, delta=1e-6) self.assertEqual(q.units, "torr") def test_psi(self): @@ -691,12 +714,13 @@ def test_psi(self): """ q = quantity.Pressure(1.0, "psi") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si, 101325. / 14.695949, delta=1e-2) + self.assertAlmostEqual(q.value_si, 101325.0 / 14.695949, delta=1e-2) self.assertEqual(q.units, "psi") ################################################################################ + class TestRateCoefficient(unittest.TestCase): """ Contains unit tests of the RateCoefficient unit type object. @@ -710,7 +734,9 @@ def test_s(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si, 1.0, delta=1e-6) self.assertEqual(q.units, "s^-1") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1.0, places=1) # 1 /s = 1 /s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1.0, places=1 + ) # 1 /s = 1 /s def test_m3permols(self): """ @@ -720,7 +746,9 @@ def test_m3permols(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si, 1.0, delta=1e-6) self.assertEqual(q.units, "m^3/(mol*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e6, places=1) # 1 m3/mol/s = 1e6 cm3/mol/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e6, places=1 + ) # 1 m3/mol/s = 1e6 cm3/mol/s def test_m6permol2s(self): """ @@ -730,8 +758,9 @@ def test_m6permol2s(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si, 1.0, delta=1e-6) self.assertEqual(q.units, "m^6/(mol^2*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e12, - places=1) # 1 m6/mol2/s = 1e12 cm6/mol2/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e12, places=1 + ) # 1 m6/mol2/s = 1e12 cm6/mol2/s def test_m9permol3s(self): """ @@ -741,8 +770,9 @@ def test_m9permol3s(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si, 1.0, delta=1e-6) self.assertEqual(q.units, "m^9/(mol^3*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e18, - delta=1e3) # 1 m9/mol3/s = 1e18 cm9/mol3/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e18, delta=1e3 + ) # 1 m9/mol3/s = 1e18 cm9/mol3/s def test_cm3permols(self): """ @@ -752,7 +782,9 @@ def test_cm3permols(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si * 1e6, 1.0, delta=1e-6) self.assertEqual(q.units, "cm^3/(mol*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e6, places=1) # 1 m3/mol/s = 1 cm3/mol/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e6, places=1 + ) # 1 m3/mol/s = 1 cm3/mol/s def test_cm6permol2s(self): """ @@ -760,10 +792,11 @@ def test_cm6permol2s(self): """ q = quantity.RateCoefficient(1.0, "cm^6/(mol^2*s)") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si * 1e6 ** 2, 1.0, delta=1e-6) + self.assertAlmostEqual(q.value_si * 1e6**2, 1.0, delta=1e-6) self.assertEqual(q.units, "cm^6/(mol^2*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e12, - places=1) # 1 m6/mol2/s = 1e12 cm6/mol2/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e12, places=1 + ) # 1 m6/mol2/s = 1e12 cm6/mol2/s def test_cm9permol3s(self): """ @@ -771,10 +804,11 @@ def test_cm9permol3s(self): """ q = quantity.RateCoefficient(1.0, "cm^9/(mol^3*s)") self.assertAlmostEqual(q.value, 1.0, 6) - self.assertAlmostEqual(q.value_si * 1e6 ** 3, 1.0, delta=1e-6) + self.assertAlmostEqual(q.value_si * 1e6**3, 1.0, delta=1e-6) self.assertEqual(q.units, "cm^9/(mol^3*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e18, - delta=1e3) # 1 m9/mol3/s = 1e18 cm9/mol3/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e18, delta=1e3 + ) # 1 m9/mol3/s = 1e18 cm9/mol3/s def test_cm3permolecules(self): """ @@ -784,7 +818,9 @@ def test_cm3permolecules(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si * 1e6 / constants.Na, 1.0, delta=1e-6) self.assertEqual(q.units, "cm^3/(molecule*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e6, delta=1e0) # 1 m3/mol/s = 1e6 cm3/mol/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e6, delta=1e0 + ) # 1 m3/mol/s = 1e6 cm3/mol/s def test_cm6permolecule2s(self): """ @@ -794,8 +830,9 @@ def test_cm6permolecule2s(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si * (1e6 / constants.Na) ** 2, 1.0, delta=1e-6) self.assertEqual(q.units, "cm^6/(molecule^2*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e12, - delta=1e0) # 1 m6/mol2/s = 1e12 cm6/mol2/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e12, delta=1e0 + ) # 1 m6/mol2/s = 1e12 cm6/mol2/s def test_cm9permolecule3s(self): """ @@ -805,12 +842,14 @@ def test_cm9permolecule3s(self): self.assertAlmostEqual(q.value, 1.0, 6) self.assertAlmostEqual(q.value_si * (1e6 / constants.Na) ** 3, 1.0, delta=1e-6) self.assertEqual(q.units, "cm^9/(molecule^3*s)") - self.assertAlmostEqual(q.get_conversion_factor_from_si_to_cm_mol_s(), 1e18, - delta=1e3) # 1 m9/mole3/s = 1e18 cm9/mol3/s + self.assertAlmostEqual( + q.get_conversion_factor_from_si_to_cm_mol_s(), 1e18, delta=1e3 + ) # 1 m9/mole3/s = 1e18 cm9/mol3/s ################################################################################ + class TestTemperature(unittest.TestCase): """ Contains unit tests of the Temperature unit type object. @@ -849,6 +888,7 @@ def test_deg_r(self): ################################################################################ + class TestTime(unittest.TestCase): """ Contains unit tests of the Time unit type object. @@ -929,6 +969,7 @@ def test_hr(self): ################################################################################ + class TestVelocity(unittest.TestCase): """ Contains unit tests of the Velocity unit type object. @@ -955,6 +996,7 @@ def test_cmpers(self): ################################################################################ + class TestVolume(unittest.TestCase): """ Contains unit tests of the Volume unit type object. @@ -989,17 +1031,29 @@ def setUp(self): A function run before each unit test in this class. This tests the creation of several both ScalarQuantity and ArrayQuantity objects """ - self.Cp = quantity.Quantity([-6.51, -5.19333, -4.47333, -3.76, -3.44333, -2.94667, -2.47], 'cal/(mol*K)', - '+|-', [2.72057, 3.42407, 4.84068, 5.11681, 5.13207, 5.8757, 8.29108]) - self.v = quantity.Quantity([5, 10, 12], 'cm/s', '*|/', [1.2, 0.4, 1]) - self.H = quantity.Quantity(33.1097, 'kcal/mol', '+|-', 24.8344) - self.A = quantity.Quantity(7.25e+13, 'cm^3/(mol*s)', '*|/', 5) - self.Cp_array = quantity.ArrayQuantity([-6.51, -5.19333, -4.47333, -3.76, -3.44333, -2.94667, -2.47], - 'cal/(mol*K)', - [2.72057, 3.42407, 4.84068, 5.11681, 5.13207, 5.8757, 8.29108], '+|-') - self.v_array = quantity.ArrayQuantity([5, 10, 12], 'cm/s', [1.2, 0.4, 1], '*|/') - self.H_scalar = quantity.ScalarQuantity(33.1097, 'kcal/mol', 24.8344, '+|-', ) - self.A_scalar = quantity.ScalarQuantity(7.25e+13, 'cm^3/(mol*s)', 5, '*|/') + self.Cp = quantity.Quantity( + [-6.51, -5.19333, -4.47333, -3.76, -3.44333, -2.94667, -2.47], + "cal/(mol*K)", + "+|-", + [2.72057, 3.42407, 4.84068, 5.11681, 5.13207, 5.8757, 8.29108], + ) + self.v = quantity.Quantity([5, 10, 12], "cm/s", "*|/", [1.2, 0.4, 1]) + self.H = quantity.Quantity(33.1097, "kcal/mol", "+|-", 24.8344) + self.A = quantity.Quantity(7.25e13, "cm^3/(mol*s)", "*|/", 5) + self.Cp_array = quantity.ArrayQuantity( + [-6.51, -5.19333, -4.47333, -3.76, -3.44333, -2.94667, -2.47], + "cal/(mol*K)", + [2.72057, 3.42407, 4.84068, 5.11681, 5.13207, 5.8757, 8.29108], + "+|-", + ) + self.v_array = quantity.ArrayQuantity([5, 10, 12], "cm/s", [1.2, 0.4, 1], "*|/") + self.H_scalar = quantity.ScalarQuantity( + 33.1097, + "kcal/mol", + 24.8344, + "+|-", + ) + self.A_scalar = quantity.ScalarQuantity(7.25e13, "cm^3/(mol*s)", 5, "*|/") def test_scalar_conversion(self): """ @@ -1009,7 +1063,9 @@ def test_scalar_conversion(self): self.assertAlmostEqual(self.H.value_si, self.H.value * 4184) self.assertAlmostEqual(self.H.uncertainty_si, self.H.uncertainty * 4184) self.assertAlmostEqual(self.H_scalar.value_si, self.H_scalar.value * 4184) - self.assertAlmostEqual(self.H_scalar.uncertainty_si, self.H_scalar.uncertainty * 4184) + self.assertAlmostEqual( + self.H_scalar.uncertainty_si, self.H_scalar.uncertainty * 4184 + ) # Uncertainty of type *|/ does not need to be adjusted by units self.assertAlmostEqual(self.A.value_si, self.A.value * 1e-6) @@ -1024,12 +1080,20 @@ def test_array_conversion(self): np.testing.assert_array_almost_equal(self.v.value_si, self.v.value * 1e-2) np.testing.assert_array_almost_equal(self.v.uncertainty_si, self.v.uncertainty) np.testing.assert_array_almost_equal(self.v_array.value_si, self.v.value * 1e-2) - np.testing.assert_array_almost_equal(self.v_array.uncertainty_si, self.v.uncertainty) + np.testing.assert_array_almost_equal( + self.v_array.uncertainty_si, self.v.uncertainty + ) np.testing.assert_array_almost_equal(self.Cp.value_si, self.Cp.value * 4.184) - np.testing.assert_array_almost_equal(self.Cp.uncertainty_si, self.Cp.uncertainty * 4.184) - np.testing.assert_array_almost_equal(self.Cp_array.value_si, self.Cp.value * 4.184) - np.testing.assert_array_almost_equal(self.Cp_array.uncertainty_si, self.Cp.uncertainty * 4.184) + np.testing.assert_array_almost_equal( + self.Cp.uncertainty_si, self.Cp.uncertainty * 4.184 + ) + np.testing.assert_array_almost_equal( + self.Cp_array.value_si, self.Cp.value * 4.184 + ) + np.testing.assert_array_almost_equal( + self.Cp_array.uncertainty_si, self.Cp.uncertainty * 4.184 + ) def test_scalar_repr(self): """ @@ -1087,39 +1151,53 @@ def setUp(self): """ Initialize necessary variables for the TestQuantityDictionaryConversion unit test """ - self.class_dict = {'ScalarQuantity': quantity.ScalarQuantity, - 'ArrayQuantity': quantity.ArrayQuantity, - 'np_array': np.array - } + self.class_dict = { + "ScalarQuantity": quantity.ScalarQuantity, + "ArrayQuantity": quantity.ArrayQuantity, + "np_array": np.array, + } self.empty_scalar = quantity.ScalarQuantity() self.minimal_scalar = quantity.ScalarQuantity(value=5) - self.know_scalar = quantity.ScalarQuantity(value=2.4, units='kcal/mol') + self.know_scalar = quantity.ScalarQuantity(value=2.4, units="kcal/mol") self.uncertain_scalar = quantity.ScalarQuantity(value=3, uncertainty=0.2) self.empty_array = quantity.ArrayQuantity() - self.minimal_array = quantity.ArrayQuantity(value=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])) - self.known_array = quantity.ArrayQuantity(value=np.array([[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9]]), - units='kcal/mol') - self.uncertain_array = quantity.ArrayQuantity(value=np.array([[1.2, 2.4, 3.4], - [4.8, 5.0, 6.0], - [7.4, 8.6, 9.0]] - ), - uncertainty=np.array([[0.2, 0.4, 0.6], - [0.6, 0.4, 0.2], - [0.8, 0.2, 0.4]]) - ) + self.minimal_array = quantity.ArrayQuantity( + value=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + ) + self.known_array = quantity.ArrayQuantity( + value=np.array([[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9]]), + units="kcal/mol", + ) + self.uncertain_array = quantity.ArrayQuantity( + value=np.array([[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9.0]]), + uncertainty=np.array([[0.2, 0.4, 0.6], [0.6, 0.4, 0.2], [0.8, 0.2, 0.4]]), + ) def test_scalar_as_dict(self): """ Test the `as_dict` method of ScalarQuantity objects """ - self.assertEqual(self.empty_scalar.as_dict(), {'class': 'ScalarQuantity', 'value': 0.0}) - self.assertEqual(self.minimal_scalar.as_dict(), {'class': 'ScalarQuantity', 'value': 5}) - self.assertEqual(self.know_scalar.as_dict(), {'class': 'ScalarQuantity', 'value': 2.4, 'units': 'kcal/mol'}) - self.assertEqual(self.uncertain_scalar.as_dict(), {'class': 'ScalarQuantity', 'value': 3, - 'uncertainty': 0.2, 'uncertainty_type': '+|-'} - ) + self.assertEqual( + self.empty_scalar.as_dict(), {"class": "ScalarQuantity", "value": 0.0} + ) + self.assertEqual( + self.minimal_scalar.as_dict(), {"class": "ScalarQuantity", "value": 5} + ) + self.assertEqual( + self.know_scalar.as_dict(), + {"class": "ScalarQuantity", "value": 2.4, "units": "kcal/mol"}, + ) + self.assertEqual( + self.uncertain_scalar.as_dict(), + { + "class": "ScalarQuantity", + "value": 3, + "uncertainty": 0.2, + "uncertainty_type": "+|-", + }, + ) def test_scalar_make_object(self): """ @@ -1131,13 +1209,17 @@ def test_scalar_make_object(self): uncertain_scalar = quantity.ScalarQuantity() empty_scalar.make_object({}, self.class_dict) - minimal_scalar.make_object({'value': 5}, self.class_dict) - known_scalar.make_object({'value': 2.4, 'units': 'kcal/mol'}, self.class_dict) - uncertain_scalar.make_object({'class': 'ScalarQuantity', 'value': 3, 'uncertainty': 0.2, - 'uncertainty_type': '+|-' - }, - self.class_dict - ) + minimal_scalar.make_object({"value": 5}, self.class_dict) + known_scalar.make_object({"value": 2.4, "units": "kcal/mol"}, self.class_dict) + uncertain_scalar.make_object( + { + "class": "ScalarQuantity", + "value": 3, + "uncertainty": 0.2, + "uncertainty_type": "+|-", + }, + self.class_dict, + ) self.assertEqual(empty_scalar.as_dict(), self.empty_scalar.as_dict()) self.assertEqual(minimal_scalar.as_dict(), self.minimal_scalar.as_dict()) @@ -1148,41 +1230,49 @@ def test_array_as_dict(self): """ Test the `as_dict` method of ArrayQuantity objects """ - self.assertEqual(self.empty_array.as_dict(), {'class': 'ArrayQuantity', - 'value': {'class': 'np_array', 'object': [0.0]} - } - ) - - self.assertEqual(self.minimal_array.as_dict(), {'class': 'ArrayQuantity', - 'value': {'class': 'np_array', 'object': [[1, 2, 3], - [4, 5, 6], - [7, 8, 9]] - } - } - ) - - self.assertEqual(self.known_array.as_dict(), {'class': 'ArrayQuantity', - 'value': {'class': 'np_array', 'object': [[1.2, 2.4, 3.4], - [4.8, 5.0, 6.0], - [7.4, 8.6, 9]] - }, - 'units': 'kcal/mol' - } - ) - - self.assertEqual(self.uncertain_array.as_dict(), {'class': 'ArrayQuantity', - 'value': {'class': 'np_array', 'object': [[1.2, 2.4, 3.4], - [4.8, 5.0, 6.0], - [7.4, 8.6, 9.0]] - }, - 'uncertainty': {'class': 'np_array', - 'object': [[0.2, 0.4, 0.6], - [0.6, 0.4, 0.2], - [0.8, 0.2, 0.4]] - }, - 'uncertainty_type': '+|-' - } - ) + self.assertEqual( + self.empty_array.as_dict(), + {"class": "ArrayQuantity", "value": {"class": "np_array", "object": [0.0]}}, + ) + + self.assertEqual( + self.minimal_array.as_dict(), + { + "class": "ArrayQuantity", + "value": { + "class": "np_array", + "object": [[1, 2, 3], [4, 5, 6], [7, 8, 9]], + }, + }, + ) + + self.assertEqual( + self.known_array.as_dict(), + { + "class": "ArrayQuantity", + "value": { + "class": "np_array", + "object": [[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9]], + }, + "units": "kcal/mol", + }, + ) + + self.assertEqual( + self.uncertain_array.as_dict(), + { + "class": "ArrayQuantity", + "value": { + "class": "np_array", + "object": [[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9.0]], + }, + "uncertainty": { + "class": "np_array", + "object": [[0.2, 0.4, 0.6], [0.6, 0.4, 0.2], [0.8, 0.2, 0.4]], + }, + "uncertainty_type": "+|-", + }, + ) def test_array_make_object(self): """ @@ -1193,32 +1283,32 @@ def test_array_make_object(self): known_array = quantity.ArrayQuantity() uncertain_array = quantity.ArrayQuantity() - minimal_dict = {'class': 'ArrayQuantity', 'value': {'class': 'np_array', 'object': [[1, 2, 3], - [4, 5, 6], - [7, 8, 9]] - } - } - - known_dict = {'class': 'ArrayQuantity', - 'value': {'class': 'np_array', 'object': [[1.2, 2.4, 3.4], - [4.8, 5.0, 6.0], - [7.4, 8.6, 9]] - }, - 'units': 'kcal/mol' - } - - uncertain_dict = {'class': 'ArrayQuantity', - 'value': {'class': 'np_array', 'object': [[1.2, 2.4, 3.4], - [4.8, 5.0, 6.0], - [7.4, 8.6, 9.0]] - }, - 'uncertainty': {'class': 'np_array', - 'object': [[0.2, 0.4, 0.6], - [0.6, 0.4, 0.2], - [0.8, 0.2, 0.4]] - }, - 'uncertainty_type': '+|-' - } + minimal_dict = { + "class": "ArrayQuantity", + "value": {"class": "np_array", "object": [[1, 2, 3], [4, 5, 6], [7, 8, 9]]}, + } + + known_dict = { + "class": "ArrayQuantity", + "value": { + "class": "np_array", + "object": [[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9]], + }, + "units": "kcal/mol", + } + + uncertain_dict = { + "class": "ArrayQuantity", + "value": { + "class": "np_array", + "object": [[1.2, 2.4, 3.4], [4.8, 5.0, 6.0], [7.4, 8.6, 9.0]], + }, + "uncertainty": { + "class": "np_array", + "object": [[0.2, 0.4, 0.6], [0.6, 0.4, 0.2], [0.8, 0.2, 0.4]], + }, + "uncertainty_type": "+|-", + } empty_array.make_object({}, self.class_dict) minimal_array.make_object(minimal_dict, self.class_dict) @@ -1234,5 +1324,5 @@ def test_array_make_object(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/reactionTest.py b/test/rmgpy/reactionTest.py index 8c9e2e02e0..3367461a79 100644 --- a/test/rmgpy/reactionTest.py +++ b/test/rmgpy/reactionTest.py @@ -40,8 +40,19 @@ from copy import deepcopy import rmgpy.constants as constants -from rmgpy.kinetics import Arrhenius, ArrheniusEP, MultiArrhenius, PDepArrhenius, MultiPDepArrhenius, \ - ThirdBody, Troe, Lindemann, Chebyshev, SurfaceArrhenius, StickingCoefficient +from rmgpy.kinetics import ( + Arrhenius, + ArrheniusEP, + MultiArrhenius, + PDepArrhenius, + MultiPDepArrhenius, + ThirdBody, + Troe, + Lindemann, + Chebyshev, + SurfaceArrhenius, + StickingCoefficient, +) from rmgpy.molecule import Molecule from rmgpy.quantity import Quantity from rmgpy.reaction import Reaction @@ -56,10 +67,11 @@ ################################################################################ + class PseudoSpecies(object): """ Can be used in place of a :class:`rmg.species.Species` for isomorphism checks. - + PseudoSpecies('a') is isomorphic with PseudoSpecies('A') but nothing else. """ @@ -73,7 +85,9 @@ def __repr__(self): def __str__(self): return self.label - def is_isomorphic(self, other, generate_initial_map=False, strict=True, save_order=False): + def is_isomorphic( + self, other, generate_initial_map=False, strict=True, save_order=False + ): return self.label.lower() == other.label.lower() @@ -83,55 +97,85 @@ class TestReactionIsomorphism(unittest.TestCase): """ def make_reaction(self, reaction_string): - """" + """ " Make a Reaction (containing PseudoSpecies) of from a string like 'Ab=CD' """ - reactants, products = reaction_string.split('=') + reactants, products = reaction_string.split("=") reactants = [PseudoSpecies(i) for i in reactants] products = [PseudoSpecies(i) for i in products] return Reaction(reactants=reactants, products=products) def test1to1(self): - r1 = self.make_reaction('A=B') - self.assertTrue(r1.is_isomorphic(self.make_reaction('a=B'))) - self.assertTrue(r1.is_isomorphic(self.make_reaction('b=A'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('B=a'), either_direction=False)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('A=C'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('A=BB'))) + r1 = self.make_reaction("A=B") + self.assertTrue(r1.is_isomorphic(self.make_reaction("a=B"))) + self.assertTrue(r1.is_isomorphic(self.make_reaction("b=A"))) + self.assertFalse( + r1.is_isomorphic(self.make_reaction("B=a"), either_direction=False) + ) + self.assertFalse(r1.is_isomorphic(self.make_reaction("A=C"))) + self.assertFalse(r1.is_isomorphic(self.make_reaction("A=BB"))) def test1to2(self): - r1 = self.make_reaction('A=BC') - self.assertTrue(r1.is_isomorphic(self.make_reaction('a=Bc'))) - self.assertTrue(r1.is_isomorphic(self.make_reaction('cb=a'))) - self.assertTrue(r1.is_isomorphic(self.make_reaction('a=cb'), either_direction=False)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('bc=a'), either_direction=False)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('a=c'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('ab=c'))) + r1 = self.make_reaction("A=BC") + self.assertTrue(r1.is_isomorphic(self.make_reaction("a=Bc"))) + self.assertTrue(r1.is_isomorphic(self.make_reaction("cb=a"))) + self.assertTrue( + r1.is_isomorphic(self.make_reaction("a=cb"), either_direction=False) + ) + self.assertFalse( + r1.is_isomorphic(self.make_reaction("bc=a"), either_direction=False) + ) + self.assertFalse(r1.is_isomorphic(self.make_reaction("a=c"))) + self.assertFalse(r1.is_isomorphic(self.make_reaction("ab=c"))) def test2to2(self): - r1 = self.make_reaction('AB=CD') - self.assertTrue(r1.is_isomorphic(self.make_reaction('ab=cd'))) - self.assertTrue(r1.is_isomorphic(self.make_reaction('ab=dc'), either_direction=False)) - self.assertTrue(r1.is_isomorphic(self.make_reaction('dc=ba'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('cd=ab'), either_direction=False)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('ab=ab'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('ab=cde'))) + r1 = self.make_reaction("AB=CD") + self.assertTrue(r1.is_isomorphic(self.make_reaction("ab=cd"))) + self.assertTrue( + r1.is_isomorphic(self.make_reaction("ab=dc"), either_direction=False) + ) + self.assertTrue(r1.is_isomorphic(self.make_reaction("dc=ba"))) + self.assertFalse( + r1.is_isomorphic(self.make_reaction("cd=ab"), either_direction=False) + ) + self.assertFalse(r1.is_isomorphic(self.make_reaction("ab=ab"))) + self.assertFalse(r1.is_isomorphic(self.make_reaction("ab=cde"))) def test2to3(self): - r1 = self.make_reaction('AB=CDE') - self.assertTrue(r1.is_isomorphic(self.make_reaction('ab=cde'))) - self.assertTrue(r1.is_isomorphic(self.make_reaction('ba=edc'), either_direction=False)) - self.assertTrue(r1.is_isomorphic(self.make_reaction('dec=ba'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('cde=ab'), either_direction=False)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('ab=abc'))) - self.assertFalse(r1.is_isomorphic(self.make_reaction('abe=cde'))) + r1 = self.make_reaction("AB=CDE") + self.assertTrue(r1.is_isomorphic(self.make_reaction("ab=cde"))) + self.assertTrue( + r1.is_isomorphic(self.make_reaction("ba=edc"), either_direction=False) + ) + self.assertTrue(r1.is_isomorphic(self.make_reaction("dec=ba"))) + self.assertFalse( + r1.is_isomorphic(self.make_reaction("cde=ab"), either_direction=False) + ) + self.assertFalse(r1.is_isomorphic(self.make_reaction("ab=abc"))) + self.assertFalse(r1.is_isomorphic(self.make_reaction("abe=cde"))) def test2to3_using_check_only_label(self): - r1 = self.make_reaction('AB=CDE') - self.assertTrue(r1.is_isomorphic(self.make_reaction('AB=CDE'), check_only_label=True)) - self.assertTrue(r1.is_isomorphic(self.make_reaction('BA=EDC'), either_direction=False, check_only_label=True)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('Ab=CDE'), check_only_label=True)) - self.assertFalse(r1.is_isomorphic(self.make_reaction('BA=EDd'), either_direction=False, check_only_label=True)) + r1 = self.make_reaction("AB=CDE") + self.assertTrue( + r1.is_isomorphic(self.make_reaction("AB=CDE"), check_only_label=True) + ) + self.assertTrue( + r1.is_isomorphic( + self.make_reaction("BA=EDC"), + either_direction=False, + check_only_label=True, + ) + ) + self.assertFalse( + r1.is_isomorphic(self.make_reaction("Ab=CDE"), check_only_label=True) + ) + self.assertFalse( + r1.is_isomorphic( + self.make_reaction("BA=EDd"), + either_direction=False, + check_only_label=True, + ) + ) class TestSurfaceReaction(unittest.TestCase): @@ -143,151 +187,232 @@ def setUp(self): m_hx = Molecule().from_smiles("[H][*]") # m_hx = Molecule().from_adjacency_list("1 H u0 p0 {2,S} \n 2 X u0 p0 {1,S}") m_ch3 = Molecule().from_smiles("[CH3]") - m_ch3x = Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} + m_ch3x = Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -5 X u0 p0 c0 {1,S}""") +5 X u0 p0 c0 {1,S}""" + ) s_h2 = Species( label="H2(1)", molecule=[m_h2], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500, 2000], - "K"), - Cpdata=([6.955, 6.955, 6.956, 6.961, 7.003, - 7.103, 7.502, 8.17], "cal/(mol*K)"), - H298=(0, "kcal/mol"), - S298=(31.129, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500, 2000], "K"), + Cpdata=( + [6.955, 6.955, 6.956, 6.961, 7.003, 7.103, 7.502, 8.17], + "cal/(mol*K)", + ), + H298=(0, "kcal/mol"), + S298=(31.129, "cal/(mol*K)"), + ), + ) s_x = Species( label="X(2)", molecule=[m_x], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500, 2000], - "K"), - Cpdata=([0., 0., 0., 0., 0., 0., 0., 0.], "cal/(mol*K)"), - H298=(0.0, "kcal/mol"), - S298=(0.0, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500, 2000], "K"), + Cpdata=([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "cal/(mol*K)"), + H298=(0.0, "kcal/mol"), + S298=(0.0, "cal/(mol*K)"), + ), + ) s_hx = Species( label="HX(3)", molecule=[m_hx], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500, 2000], - "K"), - Cpdata=([1.50, 2.58, 3.40, 4.00, 4.73, 5.13, 5.57, 5.82], "cal/(mol*K)"), - H298=(-11.26, "kcal/mol"), - S298=(0.44, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500, 2000], "K"), + Cpdata=( + [1.50, 2.58, 3.40, 4.00, 4.73, 5.13, 5.57, 5.82], + "cal/(mol*K)", + ), + H298=(-11.26, "kcal/mol"), + S298=(0.44, "cal/(mol*K)"), + ), + ) s_ch3 = Species( label="CH3(4)", molecule=[m_ch3], - thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.91547, 0.00184155, 3.48741e-06, -3.32746e-09, 8.49953e-13, 16285.6, 0.351743], - Tmin=(100, 'K'), Tmax=(1337.63, 'K')), - NASAPolynomial(coeffs=[3.54146, 0.00476786, -1.82148e-06, 3.28876e-10, -2.22545e-14, 16224, 1.66032], - Tmin=(1337.63, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), E0=(135.382, 'kJ/mol'), - comment="""Thermo library: primaryThermoLibrary + radical(CH3)""" - ), - molecular_weight=(15.0345, 'amu'), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.91547, + 0.00184155, + 3.48741e-06, + -3.32746e-09, + 8.49953e-13, + 16285.6, + 0.351743, + ], + Tmin=(100, "K"), + Tmax=(1337.63, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.54146, + 0.00476786, + -1.82148e-06, + 3.28876e-10, + -2.22545e-14, + 16224, + 1.66032, + ], + Tmin=(1337.63, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(135.382, "kJ/mol"), + comment="""Thermo library: primaryThermoLibrary + radical(CH3)""", + ), + molecular_weight=(15.0345, "amu"), ) s_ch3x = Species( label="CH3X(5)", molecule=[m_ch3x], - thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[-0.552219, 0.026442, -3.55617e-05, 2.60044e-08, -7.52707e-12, -4433.47, 0.692144], - Tmin=(298, 'K'), Tmax=(1000, 'K')), - NASAPolynomial(coeffs=[3.62557, 0.00739512, -2.43797e-06, 1.86159e-10, 3.6485e-14, -5187.22, -18.9668], - Tmin=(1000, 'K'), Tmax=(2000, 'K'))], - Tmin=(298, 'K'), Tmax=(2000, 'K'), E0=(-39.1285, 'kJ/mol'), - comment="""Thermo library: surfaceThermoNi111""") - ) - - rxn1s = Reaction(reactants=[s_h2, s_x, s_x], - products=[s_hx, s_hx], - kinetics=SurfaceArrhenius(A=(9.05e18, 'cm^5/(mol^2*s)'), - n=0.5, - Ea=(5.0, 'kJ/mol'), - T0=(1.0, 'K'))) + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + -0.552219, + 0.026442, + -3.55617e-05, + 2.60044e-08, + -7.52707e-12, + -4433.47, + 0.692144, + ], + Tmin=(298, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.62557, + 0.00739512, + -2.43797e-06, + 1.86159e-10, + 3.6485e-14, + -5187.22, + -18.9668, + ], + Tmin=(1000, "K"), + Tmax=(2000, "K"), + ), + ], + Tmin=(298, "K"), + Tmax=(2000, "K"), + E0=(-39.1285, "kJ/mol"), + comment="""Thermo library: surfaceThermoNi111""", + ), + ) + + rxn1s = Reaction( + reactants=[s_h2, s_x, s_x], + products=[s_hx, s_hx], + kinetics=SurfaceArrhenius( + A=(9.05e18, "cm^5/(mol^2*s)"), n=0.5, Ea=(5.0, "kJ/mol"), T0=(1.0, "K") + ), + ) self.rxn1s = rxn1s - rxn1m = Reaction(reactants=[m_h2, m_x, m_x], - products=[m_hx, m_hx]) + rxn1m = Reaction(reactants=[m_h2, m_x, m_x], products=[m_hx, m_hx]) self.rxn1m = rxn1m self.rxn2sSC = Reaction( reactants=[s_ch3, s_x], products=[s_ch3x], - kinetics=StickingCoefficient(A=0.1, n=0, Ea=(0, 'kcal/mol'), - T0=(1, 'K'), - Tmin=(200, 'K'), Tmax=(3000, 'K'), - comment="""Exact match found for rate rule (Adsorbate;VacantSite)""" - ) + kinetics=StickingCoefficient( + A=0.1, + n=0, + Ea=(0, "kcal/mol"), + T0=(1, "K"), + Tmin=(200, "K"), + Tmax=(3000, "K"), + comment="""Exact match found for rate rule (Adsorbate;VacantSite)""", + ), ) self.rxn2sSA = Reaction( reactants=[s_ch3, s_x], products=[s_ch3x], - kinetics=SurfaceArrhenius(A=(2.7e10, 'cm^3/(mol*s)'), - n=0.5, - Ea=(5.0, 'kJ/mol'), - T0=(1.0, 'K'), - comment="""Approximate rate""") + kinetics=SurfaceArrhenius( + A=(2.7e10, "cm^3/(mol*s)"), + n=0.5, + Ea=(5.0, "kJ/mol"), + T0=(1.0, "K"), + comment="""Approximate rate""", + ), ) # adding coverage dependent reaction self.rxn_covdep = Reaction( reactants=[s_h2, s_x, s_x], products=[s_hx, s_hx], - kinetics=SurfaceArrhenius(A=(9.05e18, 'cm^5/(mol^2*s)'), - n=0.5, - Ea=(5.0, 'kJ/mol'), - T0=(1.0, 'K'), - coverage_dependence={Species().from_adjacency_list('1 X u0 p0 c0'): {'E': (0.1, 'J/mol'), 'm': -1.0, 'a': 1.0}, - Species().from_adjacency_list('1 X u0 p0 c0 {2,S}\n2 H u0 p0 c0 {1,S}'): {'E': (0.2, 'J/mol'), 'm': -2.0, 'a': 2.0}})) + kinetics=SurfaceArrhenius( + A=(9.05e18, "cm^5/(mol^2*s)"), + n=0.5, + Ea=(5.0, "kJ/mol"), + T0=(1.0, "K"), + coverage_dependence={ + Species().from_adjacency_list("1 X u0 p0 c0"): { + "E": (0.1, "J/mol"), + "m": -1.0, + "a": 1.0, + }, + Species().from_adjacency_list( + "1 X u0 p0 c0 {2,S}\n2 H u0 p0 c0 {1,S}" + ): {"E": (0.2, "J/mol"), "m": -2.0, "a": 2.0}, + }, + ), + ) def test_is_surface_reaction_species(self): - """Test is_surface_reaction for reaction based on Species """ + """Test is_surface_reaction for reaction based on Species""" self.assertTrue(self.rxn1s.is_surface_reaction()) def test_is_surface_reaction_molecules(self): - """Test is_surface_reaction for reaction based on Molecules """ + """Test is_surface_reaction for reaction based on Molecules""" self.assertTrue(self.rxn1m.is_surface_reaction()) def test_methyl_adsorption_surface_arrhenius(self): """Test the CH3 adsorption rate given by SurfaceArrhenius""" T = 800 - surface_site_density = Quantity(2.72e-9, 'mol/cm^2').value_si + surface_site_density = Quantity(2.72e-9, "mol/cm^2").value_si calculated = self.rxn2sSA.get_surface_rate_coefficient(T, surface_site_density) target = 1e6 # mol/m2 - self.assertAlmostEqual(numpy.log10(calculated), - numpy.log10(target), - places=0) + self.assertAlmostEqual(numpy.log10(calculated), numpy.log10(target), places=0) def test_methyl_adsorption_sticking_coefficient(self): """Test the CH3 adsorption rate given by StickingCoefficient""" # First, check the molecular weight is in units we expect - self.assertAlmostEqual(self.rxn2sSC.reactants[0].molecular_weight.value_si / constants.amu / 1000, - 15.0345e-3) # kg/mol + self.assertAlmostEqual( + self.rxn2sSC.reactants[0].molecular_weight.value_si / constants.amu / 1000, + 15.0345e-3, + ) # kg/mol T = 800 - surface_site_density = Quantity(2.72e-9, 'mol/cm^2').value_si + surface_site_density = Quantity(2.72e-9, "mol/cm^2").value_si calculated = self.rxn2sSC.get_surface_rate_coefficient(T, surface_site_density) target = 1e6 # mol/m2 - self.assertAlmostEqual(numpy.log10(calculated), - numpy.log10(target), - places=0) + self.assertAlmostEqual(numpy.log10(calculated), numpy.log10(target), places=0) def test_get_rate_coefficient_units_from_reaction_order(self): - - self.assertEqual(self.rxn1s.generate_reverse_rate_coefficient().A.units, 'm^2/(mol*s)') + self.assertEqual( + self.rxn1s.generate_reverse_rate_coefficient().A.units, "m^2/(mol*s)" + ) def test_equilibrium_constant_surface_kc(self): """ Test the Reaction.get_equilibrium_constant() method for Kc of a surface reaction. """ Tlist = numpy.arange(400.0, 1600.0, 200.0, numpy.float64) - Kclist0 = [15375.20186, 1.566753, 0.017772, 0.0013485, - 0.000263180, 8.73504e-05] - Kclist = self.rxn1s.get_equilibrium_constants(Tlist, type='Kc') + Kclist0 = [15375.20186, 1.566753, 0.017772, 0.0013485, 0.000263180, 8.73504e-05] + Kclist = self.rxn1s.get_equilibrium_constants(Tlist, type="Kc") for i in range(len(Tlist)): self.assertAlmostEqual(Kclist[i] / Kclist0[i], 1.0, 4) @@ -298,22 +423,32 @@ def test_reverse_sticking_coeff_rate(self): original_kinetics = self.rxn2sSC.kinetics rxn_copy = deepcopy(self.rxn2sSC) - reverse_kinetics = self.rxn2sSC.generate_reverse_rate_coefficient(surface_site_density=2.5e-5) + reverse_kinetics = self.rxn2sSC.generate_reverse_rate_coefficient( + surface_site_density=2.5e-5 + ) rxn_copy.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed rxn_copy.reactants, rxn_copy.products = rxn_copy.products, rxn_copy.reactants - reverse_reverse_kinetics = rxn_copy.generate_reverse_rate_coefficient(surface_site_density=2.5e-5) + reverse_reverse_kinetics = rxn_copy.generate_reverse_rate_coefficient( + surface_site_density=2.5e-5 + ) rxn_copy.kinetics = reverse_reverse_kinetics # check that reverting the reverse yields the original - Tlist = numpy.arange(original_kinetics.Tmin.value_si, original_kinetics.Tmax.value_si, 200.0, numpy.float64) + Tlist = numpy.arange( + original_kinetics.Tmin.value_si, + original_kinetics.Tmax.value_si, + 200.0, + numpy.float64, + ) P = 0 for T in Tlist: korig = self.rxn2sSC.get_rate_coefficient(T, P, surface_site_density=2.5e-5) krevrev = rxn_copy.get_rate_coefficient(T, P, surface_site_density=2.5e-5) self.assertAlmostEqual(korig / krevrev, 1.0, 0) + class TestReaction(unittest.TestCase): """ Contains unit tests of the Reaction class. @@ -324,25 +459,37 @@ def setUp(self): A method that is called prior to each unit test in this class. """ ethylene = Species( - label='C2H4', + label="C2H4", conformer=Conformer( - E0=(44.7127, 'kJ/mol'), + E0=(44.7127, "kJ/mol"), modes=[ IdealGasTranslation( - mass=(28.0313, 'amu'), + mass=(28.0313, "amu"), ), NonlinearRotor( inertia=( [3.41526, 16.6498, 20.065], - 'amu*angstrom^2', + "amu*angstrom^2", ), symmetry=4, ), HarmonicOscillator( frequencies=( - [828.397, 970.652, 977.223, 1052.93, 1233.55, 1367.56, 1465.09, 1672.25, 3098.46, 3111.7, - 3165.79, 3193.54], - 'cm^-1', + [ + 828.397, + 970.652, + 977.223, + 1052.93, + 1233.55, + 1367.56, + 1465.09, + 1672.25, + 3098.46, + 3111.7, + 3165.79, + 3193.54, + ], + "cm^-1", ), ), ], @@ -352,12 +499,12 @@ def setUp(self): ) hydrogen = Species( - label='H', + label="H", conformer=Conformer( - E0=(211.794, 'kJ/mol'), + E0=(211.794, "kJ/mol"), modes=[ IdealGasTranslation( - mass=(1.00783, 'amu'), + mass=(1.00783, "amu"), ), ], spin_multiplicity=2, @@ -366,31 +513,45 @@ def setUp(self): ) ethyl = Species( - label='C2H5', + label="C2H5", conformer=Conformer( - E0=(111.603, 'kJ/mol'), + E0=(111.603, "kJ/mol"), modes=[ IdealGasTranslation( - mass=(29.0391, 'amu'), + mass=(29.0391, "amu"), ), NonlinearRotor( inertia=( [4.8709, 22.2353, 23.9925], - 'amu*angstrom^2', + "amu*angstrom^2", ), symmetry=1, ), HarmonicOscillator( frequencies=( - [482.224, 791.876, 974.355, 1051.48, 1183.21, 1361.36, 1448.65, 1455.07, 1465.48, 2688.22, - 2954.51, 3033.39, 3101.54, 3204.73], - 'cm^-1', + [ + 482.224, + 791.876, + 974.355, + 1051.48, + 1183.21, + 1361.36, + 1448.65, + 1455.07, + 1465.48, + 2688.22, + 2954.51, + 3033.39, + 3101.54, + 3204.73, + ], + "cm^-1", ), ), HinderedRotor( - inertia=(1.11481, 'amu*angstrom^2'), + inertia=(1.11481, "amu*angstrom^2"), symmetry=6, - barrier=(0.244029, 'kJ/mol'), + barrier=(0.244029, "kJ/mol"), semiclassical=None, ), ], @@ -400,110 +561,154 @@ def setUp(self): ) TS = TransitionState( - label='TS', + label="TS", conformer=Conformer( - E0=(266.694, 'kJ/mol'), + E0=(266.694, "kJ/mol"), modes=[ IdealGasTranslation( - mass=(29.0391, 'amu'), + mass=(29.0391, "amu"), ), NonlinearRotor( inertia=( [6.78512, 22.1437, 22.2114], - 'amu*angstrom^2', + "amu*angstrom^2", ), symmetry=1, ), HarmonicOscillator( frequencies=( - [412.75, 415.206, 821.495, 924.44, 982.714, 1024.16, 1224.21, 1326.36, 1455.06, 1600.35, - 3101.46, 3110.55, 3175.34, 3201.88], - 'cm^-1', + [ + 412.75, + 415.206, + 821.495, + 924.44, + 982.714, + 1024.16, + 1224.21, + 1326.36, + 1455.06, + 1600.35, + 3101.46, + 3110.55, + 3175.34, + 3201.88, + ], + "cm^-1", ), ), ], spin_multiplicity=2, optical_isomers=1, ), - frequency=(-750.232, 'cm^-1'), + frequency=(-750.232, "cm^-1"), ) self.reaction = Reaction( reactants=[hydrogen, ethylene], products=[ethyl], kinetics=Arrhenius( - A=(501366000.0, 'cm^3/(mol*s)'), + A=(501366000.0, "cm^3/(mol*s)"), n=1.637, - Ea=(4.32508, 'kJ/mol'), - T0=(1, 'K'), - Tmin=(300, 'K'), - Tmax=(2500, 'K'), + Ea=(4.32508, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), transition_state=TS, degeneracy=2, ) - self.reaction.kinetics.comment = ''' + self.reaction.kinetics.comment = """ Multiplied by reaction path degeneracy 2.0 - ''' + """ # CC(=O)O[O] acetylperoxy = Species( - label='acetylperoxy', - molecule=[Molecule(smiles='CC(=O)O[O]')], - thermo=Wilhoit(Cp0=(4.0 * constants.R, "J/(mol*K)"), CpInf=(21.0 * constants.R, "J/(mol*K)"), a0=-3.95, - a1=9.26, a2=-15.6, a3=8.55, B=(500.0, "K"), H0=(-6.151e+04, "J/mol"), - S0=(-790.2, "J/(mol*K)")), + label="acetylperoxy", + molecule=[Molecule(smiles="CC(=O)O[O]")], + thermo=Wilhoit( + Cp0=(4.0 * constants.R, "J/(mol*K)"), + CpInf=(21.0 * constants.R, "J/(mol*K)"), + a0=-3.95, + a1=9.26, + a2=-15.6, + a3=8.55, + B=(500.0, "K"), + H0=(-6.151e04, "J/mol"), + S0=(-790.2, "J/(mol*K)"), + ), ) # C[C]=O acetyl = Species( - label='acetyl', - molecule=[Molecule(smiles='C[C]=O')], - thermo=Wilhoit(Cp0=(4.0 * constants.R, "J/(mol*K)"), CpInf=(15.5 * constants.R, "J/(mol*K)"), a0=0.2541, - a1=-0.4712, a2=-4.434, a3=2.25, B=(500.0, "K"), H0=(-1.439e+05, "J/mol"), - S0=(-524.6, "J/(mol*K)")), + label="acetyl", + molecule=[Molecule(smiles="C[C]=O")], + thermo=Wilhoit( + Cp0=(4.0 * constants.R, "J/(mol*K)"), + CpInf=(15.5 * constants.R, "J/(mol*K)"), + a0=0.2541, + a1=-0.4712, + a2=-4.434, + a3=2.25, + B=(500.0, "K"), + H0=(-1.439e05, "J/mol"), + S0=(-524.6, "J/(mol*K)"), + ), ) # [O][O] oxygen = Species( - label='oxygen', - molecule=[Molecule(smiles='[O][O]')], - thermo=Wilhoit(Cp0=(3.5 * constants.R, "J/(mol*K)"), CpInf=(4.5 * constants.R, "J/(mol*K)"), a0=-0.9324, - a1=26.18, a2=-70.47, a3=44.12, B=(500.0, "K"), H0=(1.453e+04, "J/mol"), - S0=(-12.19, "J/(mol*K)")), + label="oxygen", + molecule=[Molecule(smiles="[O][O]")], + thermo=Wilhoit( + Cp0=(3.5 * constants.R, "J/(mol*K)"), + CpInf=(4.5 * constants.R, "J/(mol*K)"), + a0=-0.9324, + a1=26.18, + a2=-70.47, + a3=44.12, + B=(500.0, "K"), + H0=(1.453e04, "J/mol"), + S0=(-12.19, "J/(mol*K)"), + ), ) self.reaction2 = Reaction( reactants=[acetyl, oxygen], products=[acetylperoxy], kinetics=Arrhenius( - A=(2.65e12, 'cm^3/(mol*s)'), + A=(2.65e12, "cm^3/(mol*s)"), n=0.0, - Ea=(0.0, 'kJ/mol'), - T0=(1, 'K'), - Tmin=(300, 'K'), - Tmax=(2000, 'K'), + Ea=(0.0, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ), ) - oxygen_atom = Species().from_smiles('[O]') - so2 = Species().from_smiles('O=S=O') - so3 = Species().from_smiles('O=S(=O)=O') + oxygen_atom = Species().from_smiles("[O]") + so2 = Species().from_smiles("O=S=O") + so3 = Species().from_smiles("O=S(=O)=O") self.reaction3 = Reaction( reactants=[oxygen_atom, so2], products=[so3], - kinetics=Arrhenius(A=(3.7e+11, 'cm^3/(mol*s)'), n=0, Ea=(1689, 'cal/mol'), T0=(1, 'K'))) + kinetics=Arrhenius( + A=(3.7e11, "cm^3/(mol*s)"), n=0, Ea=(1689, "cal/mol"), T0=(1, "K") + ), + ) - H2 = Species().from_smiles('[H][H]') - PO3 = Species().from_smiles('[O]P(=O)=O') - HOPO2 = Species().from_smiles('OP(=O)=O') - H_atom = Species().from_smiles('[H]') + H2 = Species().from_smiles("[H][H]") + PO3 = Species().from_smiles("[O]P(=O)=O") + HOPO2 = Species().from_smiles("OP(=O)=O") + H_atom = Species().from_smiles("[H]") self.reaction4 = Reaction( reactants=[H2, PO3], products=[HOPO2, H_atom], - kinetics=Arrhenius(A=(2.4e+7, 'cm^3/(mol*s)'), n=1.38, Ea=(15.38, 'kcal/mol'), T0=(1, 'K'))) + kinetics=Arrhenius( + A=(2.4e7, "cm^3/(mol*s)"), n=1.38, Ea=(15.38, "kcal/mol"), T0=(1, "K") + ), + ) self.reaction4_pairs = [(PO3, HOPO2), (H2, H_atom)] def test_is_isomerization(self): @@ -513,7 +718,9 @@ def test_is_isomerization(self): isomerization = Reaction(reactants=[Species()], products=[Species()]) association = Reaction(reactants=[Species(), Species()], products=[Species()]) dissociation = Reaction(reactants=[Species()], products=[Species(), Species()]) - bimolecular = Reaction(reactants=[Species(), Species()], products=[Species(), Species()]) + bimolecular = Reaction( + reactants=[Species(), Species()], products=[Species(), Species()] + ) self.assertTrue(isomerization.is_isomerization()) self.assertFalse(association.is_isomerization()) self.assertFalse(dissociation.is_isomerization()) @@ -526,7 +733,9 @@ def test_is_association(self): isomerization = Reaction(reactants=[Species()], products=[Species()]) association = Reaction(reactants=[Species(), Species()], products=[Species()]) dissociation = Reaction(reactants=[Species()], products=[Species(), Species()]) - bimolecular = Reaction(reactants=[Species(), Species()], products=[Species(), Species()]) + bimolecular = Reaction( + reactants=[Species(), Species()], products=[Species(), Species()] + ) self.assertFalse(isomerization.is_association()) self.assertTrue(association.is_association()) self.assertFalse(dissociation.is_association()) @@ -539,7 +748,9 @@ def test_is_dissociation(self): isomerization = Reaction(reactants=[Species()], products=[Species()]) association = Reaction(reactants=[Species(), Species()], products=[Species()]) dissociation = Reaction(reactants=[Species()], products=[Species(), Species()]) - bimolecular = Reaction(reactants=[Species(), Species()], products=[Species(), Species()]) + bimolecular = Reaction( + reactants=[Species(), Species()], products=[Species(), Species()] + ) self.assertFalse(isomerization.is_dissociation()) self.assertFalse(association.is_dissociation()) self.assertTrue(dissociation.is_dissociation()) @@ -582,21 +793,45 @@ def test_enthalpy_of_reaction(self): Test the Reaction.get_enthalpy_of_reaction() method. """ Tlist = numpy.arange(200.0, 2001.0, 200.0, numpy.float64) - Hlist0 = [float(v) for v in - ['-146007', '-145886', '-144195', '-141973', '-139633', '-137341', '-135155', '-133093', '-131150', - '-129316']] + Hlist0 = [ + float(v) + for v in [ + "-146007", + "-145886", + "-144195", + "-141973", + "-139633", + "-137341", + "-135155", + "-133093", + "-131150", + "-129316", + ] + ] Hlist = self.reaction2.get_enthalpies_of_reaction(Tlist) for i in range(len(Tlist)): - self.assertAlmostEqual(Hlist[i] / 1000., Hlist0[i] / 1000., 2) + self.assertAlmostEqual(Hlist[i] / 1000.0, Hlist0[i] / 1000.0, 2) def test_entropy_of_reaction(self): """ Test the Reaction.get_entropy_of_reaction() method. """ Tlist = numpy.arange(200.0, 2001.0, 200.0, numpy.float64) - Slist0 = [float(v) for v in - ['-156.793', '-156.872', '-153.504', '-150.317', '-147.707', '-145.616', '-143.93', '-142.552', - '-141.407', '-140.441']] + Slist0 = [ + float(v) + for v in [ + "-156.793", + "-156.872", + "-153.504", + "-150.317", + "-147.707", + "-145.616", + "-143.93", + "-142.552", + "-141.407", + "-140.441", + ] + ] Slist = self.reaction2.get_entropies_of_reaction(Tlist) for i in range(len(Tlist)): self.assertAlmostEqual(Slist[i], Slist0[i], 2) @@ -606,22 +841,46 @@ def test_free_energy_of_reaction(self): Test the Reaction.get_free_energy_of_reaction() method. """ Tlist = numpy.arange(200.0, 2001.0, 200.0, numpy.float64) - Glist0 = [float(v) for v in - ['-114648', '-83137.2', '-52092.4', '-21719.3', '8073.53', '37398.1', '66346.8', '94990.6', '123383', - '151565']] + Glist0 = [ + float(v) + for v in [ + "-114648", + "-83137.2", + "-52092.4", + "-21719.3", + "8073.53", + "37398.1", + "66346.8", + "94990.6", + "123383", + "151565", + ] + ] Glist = self.reaction2.get_free_energies_of_reaction(Tlist) for i in range(len(Tlist)): - self.assertAlmostEqual(Glist[i] / 1000., Glist0[i] / 1000., 2) + self.assertAlmostEqual(Glist[i] / 1000.0, Glist0[i] / 1000.0, 2) def test_equilibrium_constant_ka(self): """ Test the Reaction.get_equilibrium_constant() method. """ Tlist = numpy.arange(200.0, 2001.0, 200.0, numpy.float64) - Kalist0 = [float(v) for v in - ['8.75951e+29', '7.1843e+10', '34272.7', '26.1877', '0.378696', '0.0235579', '0.00334673', - '0.000792389', '0.000262777', '0.000110053']] - Kalist = self.reaction2.get_equilibrium_constants(Tlist, type='Ka') + Kalist0 = [ + float(v) + for v in [ + "8.75951e+29", + "7.1843e+10", + "34272.7", + "26.1877", + "0.378696", + "0.0235579", + "0.00334673", + "0.000792389", + "0.000262777", + "0.000110053", + ] + ] + Kalist = self.reaction2.get_equilibrium_constants(Tlist, type="Ka") for i in range(len(Tlist)): self.assertAlmostEqual(Kalist[i] / Kalist0[i], 1.0, 4) @@ -630,16 +889,28 @@ def test_equilibrium_constant_kc(self): Test the Reaction.get_equilibrium_constant() method. """ Tlist = numpy.arange(200.0, 2001.0, 200.0, numpy.float64) - Kclist0 = [float(v) for v in - ['1.45661e+28', '2.38935e+09', '1709.76', '1.74189', '0.0314866', '0.00235045', '0.000389568', - '0.000105413', '3.93273e-05', '1.83006e-05']] - Kclist = self.reaction2.get_equilibrium_constants(Tlist, type='Kc') + Kclist0 = [ + float(v) + for v in [ + "1.45661e+28", + "2.38935e+09", + "1709.76", + "1.74189", + "0.0314866", + "0.00235045", + "0.000389568", + "0.000105413", + "3.93273e-05", + "1.83006e-05", + ] + ] + Kclist = self.reaction2.get_equilibrium_constants(Tlist, type="Kc") for i in range(len(Tlist)): self.assertAlmostEqual(Kclist[i] / Kclist0[i], 1.0, 4) rxn2_copy = self.reaction2.copy() rxn2_copy.reactants[0].molecule = [] - Kclist_2 = rxn2_copy.get_equilibrium_constants(Tlist, type='Kc') + Kclist_2 = rxn2_copy.get_equilibrium_constants(Tlist, type="Kc") for i in range(len(Tlist)): self.assertAlmostEqual(Kclist[i] / Kclist_2[i], 1.0, 4) @@ -648,10 +919,22 @@ def test_equilibrium_constant_kp(self): Test the Reaction.get_equilibrium_constant() method. """ Tlist = numpy.arange(200.0, 2001.0, 200.0, numpy.float64) - Kplist0 = [float(v) for v in - ['8.75951e+24', '718430', '0.342727', '0.000261877', '3.78696e-06', '2.35579e-07', '3.34673e-08', - '7.92389e-09', '2.62777e-09', '1.10053e-09']] - Kplist = self.reaction2.get_equilibrium_constants(Tlist, type='Kp') + Kplist0 = [ + float(v) + for v in [ + "8.75951e+24", + "718430", + "0.342727", + "0.000261877", + "3.78696e-06", + "2.35579e-07", + "3.34673e-08", + "7.92389e-09", + "2.62777e-09", + "1.10053e-09", + ] + ] + Kplist = self.reaction2.get_equilibrium_constants(Tlist, type="Kp") for i in range(len(Tlist)): self.assertAlmostEqual(Kplist[i] / Kplist0[i], 1.0, 4) @@ -676,7 +959,11 @@ def test_rate_coefficient(self): P = 1e5 for T in Tlist: self.assertAlmostEqual( - self.reaction.get_rate_coefficient(T, P) / self.reaction.kinetics.get_rate_coefficient(T), 1.0, 6) + self.reaction.get_rate_coefficient(T, P) + / self.reaction.kinetics.get_rate_coefficient(T), + 1.0, + 6, + ) def test_generate_reverse_rate_coefficient(self): """ @@ -686,7 +973,9 @@ def test_generate_reverse_rate_coefficient(self): P = 1e5 reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() for T in Tlist: - kr0 = self.reaction2.get_rate_coefficient(T, P) / self.reaction2.get_equilibrium_constant(T) + kr0 = self.reaction2.get_rate_coefficient( + T, P + ) / self.reaction2.get_equilibrium_constant(T) kr = reverse_kinetics.get_rate_coefficient(T) self.assertAlmostEqual(kr0 / kr, 1.0, 0) @@ -711,12 +1000,13 @@ def test_fix_barrier_height(self): rev_rxn.fix_barrier_height() Ea = rev_rxn.kinetics.Ea.value_si - H0 = sum([spec.get_thermo_data().E0.value_si for spec in rxn.products]) \ - - sum([spec.get_thermo_data().E0.value_si for spec in rxn.reactants]) + H0 = sum([spec.get_thermo_data().E0.value_si for spec in rxn.products]) - sum( + [spec.get_thermo_data().E0.value_si for spec in rxn.reactants] + ) self.assertAlmostEqual(Ea, -H0, 3) # test that Ea is forced to be positive if force_positive is set to True - Ea = Quantity((-10000.0, 'J/mol')) + Ea = Quantity((-10000.0, "J/mol")) rxn.kinetics.Ea = Ea rxn.fix_barrier_height() self.assertTrue(rxn.kinetics.Ea.value_si == Ea.value_si) @@ -734,7 +1024,7 @@ def test_fix_barrier_height(self): A=(1.0, rxn.kinetics.A.units), n=(0, rxn.kinetics.n.units), alpha=1.0, - E0=(E0, 'J/mol'), + E0=(E0, "J/mol"), ) rxn.kinetics = kinetics rxn.fix_barrier_height() @@ -751,12 +1041,12 @@ def test_generate_reverse_rate_coefficient_arrhenius(self): Test the Reaction.generate_reverse_rate_coefficient() method works for the Arrhenius format. """ original_kinetics = Arrhenius( - A=(2.65e12, 'cm^3/(mol*s)'), + A=(2.65e12, "cm^3/(mol*s)"), n=0.0, - Ea=(0.0, 'kJ/mol'), - T0=(1, 'K'), - Tmin=(300, 'K'), - Tmax=(2000, 'K'), + Ea=(0.0, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ) self.reaction2.kinetics = original_kinetics @@ -764,11 +1054,19 @@ def test_generate_reverse_rate_coefficient_arrhenius(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original - Tlist = numpy.arange(original_kinetics.Tmin.value_si, original_kinetics.Tmax.value_si, 200.0, numpy.float64) + Tlist = numpy.arange( + original_kinetics.Tmin.value_si, + original_kinetics.Tmax.value_si, + 200.0, + numpy.float64, + ) P = 1e5 for T in Tlist: korig = original_kinetics.get_rate_coefficient(T, P) @@ -780,12 +1078,12 @@ def test_reverse_surface_arrhenius_rate(self): Test the Reaction.reverse_surface_arrhenius_rate() method works for SurfaceArrhenius format. """ original_kinetics = SurfaceArrhenius( - A=(1.195e12, 'm^2/(mol*s)'), + A=(1.195e12, "m^2/(mol*s)"), n=0.0, - Ea=(14.989, 'kcal/mol'), - T0=(1, 'K'), - Tmin=(300, 'K'), - Tmax=(2000, 'K'), + Ea=(14.989, "kcal/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ) self.reaction2.kinetics = original_kinetics @@ -793,11 +1091,19 @@ def test_reverse_surface_arrhenius_rate(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original - Tlist = numpy.arange(original_kinetics.Tmin.value_si, original_kinetics.Tmax.value_si, 200.0, numpy.float64) + Tlist = numpy.arange( + original_kinetics.Tmin.value_si, + original_kinetics.Tmax.value_si, + 200.0, + numpy.float64, + ) P = 1e5 for T in Tlist: korig = original_kinetics.get_rate_coefficient(T, P) @@ -811,12 +1117,12 @@ def test_generate_reverse_rate_coefficient_arrhenius_ep(self): """ original_kinetics = ArrheniusEP( - A=(2.65e12, 'cm^3/(mol*s)'), + A=(2.65e12, "cm^3/(mol*s)"), n=0.0, alpha=0.5, - E0=(41.84, 'kJ/mol'), - Tmin=(300, 'K'), - Tmax=(2000, 'K'), + E0=(41.84, "kJ/mol"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ) self.reaction2.kinetics = original_kinetics @@ -824,11 +1130,16 @@ def test_generate_reverse_rate_coefficient_arrhenius_ep(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original - Tlist = numpy.arange(original_kinetics.Tmin, original_kinetics.Tmax, 200.0, numpy.float64) + Tlist = numpy.arange( + original_kinetics.Tmin, original_kinetics.Tmax, 200.0, numpy.float64 + ) P = 1e5 for T in Tlist: korig = original_kinetics.get_rate_coefficient(T, P) @@ -884,7 +1195,10 @@ def test_generate_reverse_rate_coefficient_pdep_arrhenius(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -902,20 +1216,44 @@ def test_generate_reverse_rate_coefficient_pdep_multi_arrhenius(self): arrhenius0 = MultiArrhenius( arrhenius=[ - Arrhenius(A=(1.0e6, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), - Tmax=(2000.0, "K")), - Arrhenius(A=(1.0e6, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), - Tmax=(2000.0, "K")), + Arrhenius( + A=(1.0e6, "s^-1"), + n=1.0, + Ea=(10.0, "kJ/mol"), + T0=(300.0, "K"), + Tmin=(300.0, "K"), + Tmax=(2000.0, "K"), + ), + Arrhenius( + A=(1.0e6, "s^-1"), + n=1.0, + Ea=(10.0, "kJ/mol"), + T0=(300.0, "K"), + Tmin=(300.0, "K"), + Tmax=(2000.0, "K"), + ), ], comment="""This data is completely made up""", ) arrhenius1 = MultiArrhenius( arrhenius=[ - Arrhenius(A=(1.0e12, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), - Tmax=(2000.0, "K")), - Arrhenius(A=(1.0e12, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), - Tmax=(2000.0, "K")), + Arrhenius( + A=(1.0e12, "s^-1"), + n=1.0, + Ea=(10.0, "kJ/mol"), + T0=(300.0, "K"), + Tmin=(300.0, "K"), + Tmax=(2000.0, "K"), + ), + Arrhenius( + A=(1.0e12, "s^-1"), + n=1.0, + Ea=(10.0, "kJ/mol"), + T0=(300.0, "K"), + Tmin=(300.0, "K"), + Tmax=(2000.0, "K"), + ), ], comment="""This data is completely made up""", ) @@ -944,7 +1282,10 @@ def test_generate_reverse_rate_coefficient_pdep_multi_arrhenius(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -1001,7 +1342,10 @@ def test_generate_reverse_rate_coefficient_multi_arrhenius(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -1017,12 +1361,12 @@ def test_generate_reverse_rate_coefficient_multi_pdep_arrhenius(self): Test the Reaction.generate_reverse_rate_coefficient() method works for the MultiPDepArrhenius format. """ - Tmin = 350. - Tmax = 1500. + Tmin = 350.0 + Tmax = 1500.0 Pmin = 1e-1 Pmax = 1e1 pressures = numpy.array([1e-1, 1e1]) - comment = 'CH3 + C2H6 <=> CH4 + C2H5 (Baulch 2005)' + comment = "CH3 + C2H6 <=> CH4 + C2H5 (Baulch 2005)" arrhenius = [ PDepArrhenius( pressures=(pressures, "bar"), @@ -1097,7 +1441,10 @@ def test_generate_reverse_rate_coefficient_multi_pdep_arrhenius(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -1114,16 +1461,24 @@ def test_generate_reverse_rate_coefficient_third_body(self): """ arrhenius_low = Arrhenius( - A=(2.62e+33, "cm^6/(mol^2*s)"), + A=(2.62e33, "cm^6/(mol^2*s)"), n=-4.76, Ea=(10.21, "kJ/mol"), T0=(1, "K"), ) - efficiencies = {"C": 3, "C(=O)=O": 2, "CC": 3, "O": 6, "[Ar]": 0.7, "[C]=O": 1.5, "[H][H]": 2} - Tmin = 300. - Tmax = 2000. + efficiencies = { + "C": 3, + "C(=O)=O": 2, + "CC": 3, + "O": 6, + "[Ar]": 0.7, + "[C]=O": 1.5, + "[H][H]": 2, + } + Tmin = 300.0 + Tmax = 2000.0 Pmin = 0.01 - Pmax = 100. + Pmax = 100.0 comment = """H + CH3 -> CH4""" third_body = ThirdBody( arrheniusLow=arrhenius_low, @@ -1143,7 +1498,10 @@ def test_generate_reverse_rate_coefficient_third_body(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -1160,22 +1518,30 @@ def test_generate_reverse_rate_coefficient_lindemann(self): """ arrhenius_high = Arrhenius( - A=(1.39e+16, "cm^3/(mol*s)"), + A=(1.39e16, "cm^3/(mol*s)"), n=-0.534, Ea=(2.243, "kJ/mol"), T0=(1, "K"), ) arrhenius_low = Arrhenius( - A=(2.62e+33, "cm^6/(mol^2*s)"), + A=(2.62e33, "cm^6/(mol^2*s)"), n=-4.76, Ea=(10.21, "kJ/mol"), T0=(1, "K"), ) - efficiencies = {"C": 3, "C(=O)=O": 2, "CC": 3, "O": 6, "[Ar]": 0.7, "[C]=O": 1.5, "[H][H]": 2} - Tmin = 300. - Tmax = 2000. + efficiencies = { + "C": 3, + "C(=O)=O": 2, + "CC": 3, + "O": 6, + "[Ar]": 0.7, + "[C]=O": 1.5, + "[H][H]": 2, + } + Tmin = 300.0 + Tmax = 2000.0 Pmin = 0.01 - Pmax = 100. + Pmax = 100.0 comment = """H + CH3 -> CH4""" lindemann = Lindemann( arrheniusHigh=arrhenius_high, @@ -1196,7 +1562,10 @@ def test_generate_reverse_rate_coefficient_lindemann(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -1213,13 +1582,13 @@ def test_generate_reverse_rate_coefficient_troe(self): """ arrhenius_high = Arrhenius( - A=(1.39e+16, "cm^3/(mol*s)"), + A=(1.39e16, "cm^3/(mol*s)"), n=-0.534, Ea=(2.243, "kJ/mol"), T0=(1, "K"), ) arrhenius_low = Arrhenius( - A=(2.62e+33, "cm^6/(mol^2*s)"), + A=(2.62e33, "cm^6/(mol^2*s)"), n=-4.76, Ea=(10.21, "kJ/mol"), T0=(1, "K"), @@ -1228,11 +1597,19 @@ def test_generate_reverse_rate_coefficient_troe(self): T3 = 74 T1 = 2941 T2 = 6964 - efficiencies = {"C": 3, "C(=O)=O": 2, "CC": 3, "O": 6, "[Ar]": 0.7, "[C]=O": 1.5, "[H][H]": 2} - Tmin = 300. - Tmax = 2000. + efficiencies = { + "C": 3, + "C(=O)=O": 2, + "CC": 3, + "O": 6, + "[Ar]": 0.7, + "[C]=O": 1.5, + "[H][H]": 2, + } + Tmin = 300.0 + Tmax = 2000.0 Pmin = 0.01 - Pmax = 100. + Pmax = 100.0 comment = """H + CH3 -> CH4""" troe = Troe( arrheniusHigh=arrhenius_high, @@ -1257,7 +1634,10 @@ def test_generate_reverse_rate_coefficient_troe(self): self.reaction2.kinetics = reverse_kinetics # reverse reactants, products to ensure Keq is correctly computed - self.reaction2.reactants, self.reaction2.products = self.reaction2.products, self.reaction2.reactants + self.reaction2.reactants, self.reaction2.products = ( + self.reaction2.products, + self.reaction2.reactants, + ) reverse_reverse_kinetics = self.reaction2.generate_reverse_rate_coefficient() # check that reverting the reverse yields the original @@ -1274,8 +1654,10 @@ def test_tst_calculation(self): using the reaction H + C2H4 -> C2H5. """ Tlist = 1000.0 / numpy.arange(0.4, 3.35, 0.01) - klist = numpy.array([self.reaction.calculate_tst_rate_coefficient(T) for T in Tlist]) - arrhenius = Arrhenius().fit_to_data(Tlist, klist, kunits='m^3/(mol*s)') + klist = numpy.array( + [self.reaction.calculate_tst_rate_coefficient(T) for T in Tlist] + ) + arrhenius = Arrhenius().fit_to_data(Tlist, klist, kunits="m^3/(mol*s)") klist2 = numpy.array([arrhenius.get_rate_coefficient(T) for T in Tlist]) # Check that the correct Arrhenius parameters are returned @@ -1292,27 +1674,60 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + reaction = pickle.loads(pickle.dumps(self.reaction, -1)) self.assertEqual(len(self.reaction.reactants), len(reaction.reactants)) self.assertEqual(len(self.reaction.products), len(reaction.products)) for reactant0, reactant in zip(self.reaction.reactants, reaction.reactants): - self.assertAlmostEqual(reactant0.conformer.E0.value_si / 1e6, reactant.conformer.E0.value_si / 1e6, 2) + self.assertAlmostEqual( + reactant0.conformer.E0.value_si / 1e6, + reactant.conformer.E0.value_si / 1e6, + 2, + ) self.assertEqual(reactant0.conformer.E0.units, reactant.conformer.E0.units) for product0, product in zip(self.reaction.products, reaction.products): - self.assertAlmostEqual(product0.conformer.E0.value_si / 1e6, product.conformer.E0.value_si / 1e6, 2) + self.assertAlmostEqual( + product0.conformer.E0.value_si / 1e6, + product.conformer.E0.value_si / 1e6, + 2, + ) self.assertEqual(product0.conformer.E0.units, product.conformer.E0.units) - self.assertAlmostEqual(self.reaction.transition_state.conformer.E0.value_si / 1e6, - reaction.transition_state.conformer.E0.value_si / 1e6, 2) - self.assertEqual(self.reaction.transition_state.conformer.E0.units, reaction.transition_state.conformer.E0.units) - self.assertAlmostEqual(self.reaction.transition_state.frequency.value_si, - reaction.transition_state.frequency.value_si, 2) - self.assertEqual(self.reaction.transition_state.frequency.units, reaction.transition_state.frequency.units) - - self.assertAlmostEqual(self.reaction.kinetics.A.value_si, reaction.kinetics.A.value_si, delta=1e-6) - self.assertAlmostEqual(self.reaction.kinetics.n.value_si, reaction.kinetics.n.value_si, delta=1e-6) - self.assertAlmostEqual(self.reaction.kinetics.T0.value_si, reaction.kinetics.T0.value_si, delta=1e-6) - self.assertAlmostEqual(self.reaction.kinetics.Ea.value_si, reaction.kinetics.Ea.value_si, delta=1e-6) + self.assertAlmostEqual( + self.reaction.transition_state.conformer.E0.value_si / 1e6, + reaction.transition_state.conformer.E0.value_si / 1e6, + 2, + ) + self.assertEqual( + self.reaction.transition_state.conformer.E0.units, + reaction.transition_state.conformer.E0.units, + ) + self.assertAlmostEqual( + self.reaction.transition_state.frequency.value_si, + reaction.transition_state.frequency.value_si, + 2, + ) + self.assertEqual( + self.reaction.transition_state.frequency.units, + reaction.transition_state.frequency.units, + ) + + self.assertAlmostEqual( + self.reaction.kinetics.A.value_si, reaction.kinetics.A.value_si, delta=1e-6 + ) + self.assertAlmostEqual( + self.reaction.kinetics.n.value_si, reaction.kinetics.n.value_si, delta=1e-6 + ) + self.assertAlmostEqual( + self.reaction.kinetics.T0.value_si, + reaction.kinetics.T0.value_si, + delta=1e-6, + ) + self.assertAlmostEqual( + self.reaction.kinetics.Ea.value_si, + reaction.kinetics.Ea.value_si, + delta=1e-6, + ) self.assertEqual(self.reaction.kinetics.comment, reaction.kinetics.comment) self.assertEqual(self.reaction.duplicate, reaction.duplicate) @@ -1324,29 +1739,61 @@ def test_output(self): from its repr() output with no loss of information. """ namespace = {} - exec('reaction = {0!r}'.format(self.reaction), globals(), namespace) - self.assertIn('reaction', namespace) - reaction = namespace['reaction'] + exec("reaction = {0!r}".format(self.reaction), globals(), namespace) + self.assertIn("reaction", namespace) + reaction = namespace["reaction"] self.assertEqual(len(self.reaction.reactants), len(reaction.reactants)) self.assertEqual(len(self.reaction.products), len(reaction.products)) for reactant0, reactant in zip(self.reaction.reactants, reaction.reactants): - self.assertAlmostEqual(reactant0.conformer.E0.value_si / 1e6, reactant.conformer.E0.value_si / 1e6, 2) + self.assertAlmostEqual( + reactant0.conformer.E0.value_si / 1e6, + reactant.conformer.E0.value_si / 1e6, + 2, + ) self.assertEqual(reactant0.conformer.E0.units, reactant.conformer.E0.units) for product0, product in zip(self.reaction.products, reaction.products): - self.assertAlmostEqual(product0.conformer.E0.value_si / 1e6, product.conformer.E0.value_si / 1e6, 2) + self.assertAlmostEqual( + product0.conformer.E0.value_si / 1e6, + product.conformer.E0.value_si / 1e6, + 2, + ) self.assertEqual(product0.conformer.E0.units, product.conformer.E0.units) - self.assertAlmostEqual(self.reaction.transition_state.conformer.E0.value_si / 1e6, - reaction.transition_state.conformer.E0.value_si / 1e6, 2) - self.assertEqual(self.reaction.transition_state.conformer.E0.units, reaction.transition_state.conformer.E0.units) - self.assertAlmostEqual(self.reaction.transition_state.frequency.value_si, - reaction.transition_state.frequency.value_si, 2) - self.assertEqual(self.reaction.transition_state.frequency.units, reaction.transition_state.frequency.units) - - self.assertAlmostEqual(self.reaction.kinetics.A.value_si, reaction.kinetics.A.value_si, delta=1e-6) - self.assertAlmostEqual(self.reaction.kinetics.n.value_si, reaction.kinetics.n.value_si, delta=1e-6) - self.assertAlmostEqual(self.reaction.kinetics.T0.value_si, reaction.kinetics.T0.value_si, delta=1e-6) - self.assertAlmostEqual(self.reaction.kinetics.Ea.value_si, reaction.kinetics.Ea.value_si, delta=1e-6) + self.assertAlmostEqual( + self.reaction.transition_state.conformer.E0.value_si / 1e6, + reaction.transition_state.conformer.E0.value_si / 1e6, + 2, + ) + self.assertEqual( + self.reaction.transition_state.conformer.E0.units, + reaction.transition_state.conformer.E0.units, + ) + self.assertAlmostEqual( + self.reaction.transition_state.frequency.value_si, + reaction.transition_state.frequency.value_si, + 2, + ) + self.assertEqual( + self.reaction.transition_state.frequency.units, + reaction.transition_state.frequency.units, + ) + + self.assertAlmostEqual( + self.reaction.kinetics.A.value_si, reaction.kinetics.A.value_si, delta=1e-6 + ) + self.assertAlmostEqual( + self.reaction.kinetics.n.value_si, reaction.kinetics.n.value_si, delta=1e-6 + ) + self.assertAlmostEqual( + self.reaction.kinetics.T0.value_si, + reaction.kinetics.T0.value_si, + delta=1e-6, + ) + self.assertAlmostEqual( + self.reaction.kinetics.Ea.value_si, + reaction.kinetics.Ea.value_si, + delta=1e-6, + ) self.assertEqual(self.reaction.kinetics.comment, reaction.kinetics.comment) self.assertEqual(self.reaction.duplicate, reaction.duplicate) @@ -1360,7 +1807,9 @@ def test_degeneracy_updates_rate(self): prefactor = self.reaction.kinetics.A.value_si degeneracyFactor = 2 self.reaction.degeneracy *= degeneracyFactor - self.assertAlmostEqual(self.reaction.kinetics.A.value_si, degeneracyFactor * prefactor) + self.assertAlmostEqual( + self.reaction.kinetics.A.value_si, degeneracyFactor * prefactor + ) def test_degeneracy_updates_kinetics_comment(self): """ @@ -1369,7 +1818,9 @@ def test_degeneracy_updates_kinetics_comment(self): newDegeneracy = 8 self.reaction.degeneracy = newDegeneracy - self.assertIn('Multiplied by reaction path degeneracy 8.0', self.reaction.kinetics.comment) + self.assertIn( + "Multiplied by reaction path degeneracy 8.0", self.reaction.kinetics.comment + ) def test_sulfur_reaction_pairs(self): """ @@ -1401,113 +1852,538 @@ def setUp(self): A method that is called prior to each unit test in this class. """ # define some species: - ch3 = Species(index=13, label="CH3", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.91547, 0.00184154, 3.48744e-06, -3.3275e-09, 8.49964e-13, 16285.6, 0.351739], - Tmin=(100, 'K'), Tmax=(1337.62, 'K')), - NASAPolynomial(coeffs=[3.54145, 0.00476788, -1.82149e-06, 3.28878e-10, -2.22547e-14, 16224, 1.6604], - Tmin=(1337.62, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + ch3 = Species( + index=13, + label="CH3", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.91547, + 0.00184154, + 3.48744e-06, + -3.3275e-09, + 8.49964e-13, + 16285.6, + 0.351739, + ], + Tmin=(100, "K"), + Tmax=(1337.62, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.54145, + 0.00476788, + -1.82149e-06, + 3.28878e-10, + -2.22547e-14, + 16224, + 1.6604, + ], + Tmin=(1337.62, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary + radical(CH3) -"""), molecule=[Molecule(smiles="[CH3]")]) +""", + ), + molecule=[Molecule(smiles="[CH3]")], + ) - ethane = Species(label="ethane", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.78033, -0.00324263, 5.52381e-05, -6.38581e-08, 2.28637e-11, -11620.3, 5.21034], - Tmin=(100, 'K'), Tmax=(954.51, 'K')), - NASAPolynomial(coeffs=[4.58983, 0.0141508, -4.75962e-06, 8.60294e-10, -6.21717e-14, -12721.8, -3.61739], - Tmin=(954.51, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + ethane = Species( + label="ethane", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.78033, + -0.00324263, + 5.52381e-05, + -6.38581e-08, + 2.28637e-11, + -11620.3, + 5.21034, + ], + Tmin=(100, "K"), + Tmax=(954.51, "K"), + ), + NASAPolynomial( + coeffs=[ + 4.58983, + 0.0141508, + -4.75962e-06, + 8.60294e-10, + -6.21717e-14, + -12721.8, + -3.61739, + ], + Tmin=(954.51, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo group additivity estimation: group(Cs-CsHHH) + gauche(Cs(CsRRR)) + other(R) + group(Cs-CsHHH) + gauche(Cs(CsRRR)) + other(R) -"""), molecule=[Molecule(smiles="CC")]) +""", + ), + molecule=[Molecule(smiles="CC")], + ) - co2 = Species(index=16, label="CO2", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.27861, 0.00274152, 7.16074e-06, -1.08027e-08, 4.14282e-12, -48470.3, 5.97937], - Tmin=(100, 'K'), Tmax=(988.89, 'K')), - NASAPolynomial(coeffs=[4.5461, 0.00291913, -1.15484e-06, 2.27654e-10, -1.7091e-14, -48980.4, -1.43275], - Tmin=(988.89, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + co2 = Species( + index=16, + label="CO2", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.27861, + 0.00274152, + 7.16074e-06, + -1.08027e-08, + 4.14282e-12, + -48470.3, + 5.97937, + ], + Tmin=(100, "K"), + Tmax=(988.89, "K"), + ), + NASAPolynomial( + coeffs=[ + 4.5461, + 0.00291913, + -1.15484e-06, + 2.27654e-10, + -1.7091e-14, + -48980.4, + -1.43275, + ], + Tmin=(988.89, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo group additivity estimation: group(Cdd-OdOd) + other(R) + group(O2d-Cd) + other(R) + group(O2d-Cd) + other(R) -"""), molecule=[Molecule(smiles="O=C=O")]) +""", + ), + molecule=[Molecule(smiles="O=C=O")], + ) - ch4 = Species(index=15, label="CH4", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[4.20541, -0.00535556, 2.51123e-05, -2.13762e-08, 5.97522e-12, -10161.9, -0.921275], - Tmin=(100, 'K'), Tmax=(1084.12, 'K')), - NASAPolynomial(coeffs=[0.908272, 0.0114541, -4.57173e-06, 8.2919e-10, -5.66314e-14, -9719.98, 13.9931], - Tmin=(1084.12, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + ch4 = Species( + index=15, + label="CH4", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.20541, + -0.00535556, + 2.51123e-05, + -2.13762e-08, + 5.97522e-12, + -10161.9, + -0.921275, + ], + Tmin=(100, "K"), + Tmax=(1084.12, "K"), + ), + NASAPolynomial( + coeffs=[ + 0.908272, + 0.0114541, + -4.57173e-06, + 8.2919e-10, + -5.66314e-14, + -9719.98, + 13.9931, + ], + Tmin=(1084.12, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="C")]) +""", + ), + molecule=[Molecule(smiles="C")], + ) - h2o = Species(index=27, label="H2O", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[4.05764, -0.000787933, 2.90876e-06, -1.47518e-09, 2.12838e-13, -30281.6, -0.311363], - Tmin=(100, 'K'), Tmax=(1130.24, 'K')), - NASAPolynomial(coeffs=[2.84325, 0.00275108, -7.8103e-07, 1.07243e-10, -5.79389e-15, -29958.6, 5.91041], - Tmin=(1130.24, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + h2o = Species( + index=27, + label="H2O", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.05764, + -0.000787933, + 2.90876e-06, + -1.47518e-09, + 2.12838e-13, + -30281.6, + -0.311363, + ], + Tmin=(100, "K"), + Tmax=(1130.24, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.84325, + 0.00275108, + -7.8103e-07, + 1.07243e-10, + -5.79389e-15, + -29958.6, + 5.91041, + ], + Tmin=(1130.24, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="O")]) +""", + ), + molecule=[Molecule(smiles="O")], + ) - ar = Species(label="Ar", thermo=NASA( - polynomials=[NASAPolynomial(coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], Tmin=(200, 'K'), Tmax=(1000, 'K')), - NASAPolynomial(coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], Tmin=(1000, 'K'), - Tmax=(6000, 'K'))], Tmin=(200, 'K'), Tmax=(6000, 'K'), comment=""" + ar = Species( + label="Ar", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="[Ar]")]) +""", + ), + molecule=[Molecule(smiles="[Ar]")], + ) - h2 = Species(index=2, label="H2", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.43536, 0.00021271, -2.78625e-07, 3.40267e-10, -7.76031e-14, -1031.36, -3.90842], - Tmin=(100, 'K'), Tmax=(1959.08, 'K')), - NASAPolynomial(coeffs=[2.78816, 0.000587644, 1.59009e-07, -5.52736e-11, 4.34309e-15, -596.143, 0.112747], - Tmin=(1959.08, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + h2 = Species( + index=2, + label="H2", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.43536, + 0.00021271, + -2.78625e-07, + 3.40267e-10, + -7.76031e-14, + -1031.36, + -3.90842, + ], + Tmin=(100, "K"), + Tmax=(1959.08, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.78816, + 0.000587644, + 1.59009e-07, + -5.52736e-11, + 4.34309e-15, + -596.143, + 0.112747, + ], + Tmin=(1959.08, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="[H][H]")]) +""", + ), + molecule=[Molecule(smiles="[H][H]")], + ) - h = Species(index=3, label="H", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[2.5, -1.91243e-12, 2.45329e-15, -1.02377e-18, 1.31369e-22, 25474.2, -0.444973], - Tmin=(100, 'K'), Tmax=(4563.27, 'K')), - NASAPolynomial(coeffs=[2.50167, -1.43051e-06, 4.6025e-10, -6.57826e-14, 3.52412e-18, 25472.7, -0.455578], - Tmin=(4563.27, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + h = Species( + index=3, + label="H", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 2.5, + -1.91243e-12, + 2.45329e-15, + -1.02377e-18, + 1.31369e-22, + 25474.2, + -0.444973, + ], + Tmin=(100, "K"), + Tmax=(4563.27, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.50167, + -1.43051e-06, + 4.6025e-10, + -6.57826e-14, + 3.52412e-18, + 25472.7, + -0.455578, + ], + Tmin=(4563.27, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="[H]")]) +""", + ), + molecule=[Molecule(smiles="[H]")], + ) - oh = Species(index=4, label="OH", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.51457, 2.92773e-05, -5.32163e-07, 1.01949e-09, -3.85945e-13, 3414.25, 2.10435], - Tmin=(100, 'K'), Tmax=(1145.75, 'K')), - NASAPolynomial(coeffs=[3.07194, 0.000604016, -1.39783e-08, -2.13446e-11, 2.48066e-15, 3579.39, 4.578], - Tmin=(1145.75, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + oh = Species( + index=4, + label="OH", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.51457, + 2.92773e-05, + -5.32163e-07, + 1.01949e-09, + -3.85945e-13, + 3414.25, + 2.10435, + ], + Tmin=(100, "K"), + Tmax=(1145.75, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.07194, + 0.000604016, + -1.39783e-08, + -2.13446e-11, + 2.48066e-15, + 3579.39, + 4.578, + ], + Tmin=(1145.75, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="[OH]")]) +""", + ), + molecule=[Molecule(smiles="[OH]")], + ) - ho2 = Species(index=5, label="HO2", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[4.04594, -0.00173464, 1.03766e-05, -1.02202e-08, 3.34908e-12, -986.754, 4.63581], - Tmin=(100, 'K'), Tmax=(932.15, 'K')), - NASAPolynomial(coeffs=[3.21024, 0.00367942, -1.27701e-06, 2.18045e-10, -1.46338e-14, -910.369, 8.18291], - Tmin=(932.15, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + ho2 = Species( + index=5, + label="HO2", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.04594, + -0.00173464, + 1.03766e-05, + -1.02202e-08, + 3.34908e-12, + -986.754, + 4.63581, + ], + Tmin=(100, "K"), + Tmax=(932.15, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.21024, + 0.00367942, + -1.27701e-06, + 2.18045e-10, + -1.46338e-14, + -910.369, + 8.18291, + ], + Tmin=(932.15, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo group additivity estimation: group(O2s-OsH) + gauche(O2s(RR)) + other(R) + group(O2s-OsH) + gauche(O2s(RR)) + other(R) + radical(HOOJ) -"""), molecule=[Molecule(smiles="[O]O")]) +""", + ), + molecule=[Molecule(smiles="[O]O")], + ) - o2 = Species(index=6, label="O2", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.53732, -0.00121572, 5.3162e-06, -4.89446e-09, 1.45846e-12, -1038.59, 4.68368], - Tmin=(100, 'K'), Tmax=(1074.55, 'K')), - NASAPolynomial(coeffs=[3.15382, 0.00167804, -7.69974e-07, 1.51275e-10, -1.08782e-14, -1040.82, 6.16756], - Tmin=(1074.55, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + o2 = Species( + index=6, + label="O2", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.53732, + -0.00121572, + 5.3162e-06, + -4.89446e-09, + 1.45846e-12, + -1038.59, + 4.68368, + ], + Tmin=(100, "K"), + Tmax=(1074.55, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.15382, + 0.00167804, + -7.69974e-07, + 1.51275e-10, + -1.08782e-14, + -1040.82, + 6.16756, + ], + Tmin=(1074.55, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="[O][O]")]) +""", + ), + molecule=[Molecule(smiles="[O][O]")], + ) - co = Species(index=9, label="CO", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.66965, -0.00550953, 2.00538e-05, -2.08391e-08, 7.43738e-12, 1200.77, -12.4224], - Tmin=(100, 'K'), Tmax=(884.77, 'K')), - NASAPolynomial(coeffs=[2.8813, 0.00231665, -4.40151e-07, 4.75633e-11, -2.78282e-15, 1173.45, -9.65831], - Tmin=(884.77, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + co = Species( + index=9, + label="CO", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.66965, + -0.00550953, + 2.00538e-05, + -2.08391e-08, + 7.43738e-12, + 1200.77, + -12.4224, + ], + Tmin=(100, "K"), + Tmax=(884.77, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.8813, + 0.00231665, + -4.40151e-07, + 4.75633e-11, + -2.78282e-15, + 1173.45, + -9.65831, + ], + Tmin=(884.77, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo group additivity estimation: group(Ct-CtCs) + other(R) + group(O2s-CsCs) + other(R) -"""), molecule=[Molecule(smiles="[C-]#[O+]")]) +""", + ), + molecule=[Molecule(smiles="[C-]#[O+]")], + ) - h2o2 = Species(index=7, label="H2O2", thermo=NASA(polynomials=[ - NASAPolynomial(coeffs=[3.73136, 0.00335071, 9.35033e-06, -1.521e-08, 6.41585e-12, -17721.2, 5.45911], - Tmin=(100, 'K'), Tmax=(908.87, 'K')), - NASAPolynomial(coeffs=[5.41579, 0.00261008, -4.39892e-07, 4.91087e-11, -3.35188e-15, -18303, -4.02248], - Tmin=(908.87, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), comment=""" + h2o2 = Species( + index=7, + label="H2O2", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.73136, + 0.00335071, + 9.35033e-06, + -1.521e-08, + 6.41585e-12, + -17721.2, + 5.45911, + ], + Tmin=(100, "K"), + Tmax=(908.87, "K"), + ), + NASAPolynomial( + coeffs=[ + 5.41579, + 0.00261008, + -4.39892e-07, + 4.91087e-11, + -3.35188e-15, + -18303, + -4.02248, + ], + Tmin=(908.87, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment=""" Thermo group additivity estimation: group(O2s-OsH) + gauche(O2s(RR)) + other(R) + group(O2s-OsH) + gauche(O2s(RR)) + other(R) -"""), molecule=[Molecule(smiles="OO")]) - - self.species_list = [ch3, ethane, co2, ch4, h2o, ar, h2, h, oh, ho2, o2, co, h2o2] +""", + ), + molecule=[Molecule(smiles="OO")], + ) + self.species_list = [ + ch3, + ethane, + co2, + ch4, + h2o, + ar, + h2, + h, + oh, + ho2, + o2, + co, + h2o2, + ] - yaml_def = ''' + yaml_def = """ phases: - name: gas thermo: ideal-gas @@ -1657,150 +2533,265 @@ def setUp(self): H2O(27): 0.0 H2(2): 0.0 Ar: 0.63 - ''' + """ gas = ct.Solution(yaml=yaml_def) - self.troe = Reaction(index=1, reactants=[ch3, ch3], products=[ethane], - kinetics=Troe( - arrheniusHigh=Arrhenius(A=(6.77e+16, 'cm^3/(mol*s)'), n=-1.18, Ea=(0.654, 'kcal/mol'), - T0=(1, 'K')), - arrheniusLow=Arrhenius(A=(3.4e+41, 'cm^6/(mol^2*s)'), n=-7.03, Ea=(2.762, 'kcal/mol'), - T0=(1, 'K')), alpha=0.619, T3=(73.2, 'K'), T1=(1180, 'K'), - T2=(10000, 'K'), - efficiencies={Molecule(smiles="O=C=O"): 2.0, Molecule(smiles="[H][H]"): 2.0, - Molecule(smiles="O"): 6.0, Molecule(smiles="[Ar]"): 0.7, - Molecule(smiles="C"): 2.0, Molecule(smiles="CC"): 3.0})) - - self.ct_troe = ct.Reaction.from_yaml(''' + self.troe = Reaction( + index=1, + reactants=[ch3, ch3], + products=[ethane], + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(6.77e16, "cm^3/(mol*s)"), + n=-1.18, + Ea=(0.654, "kcal/mol"), + T0=(1, "K"), + ), + arrheniusLow=Arrhenius( + A=(3.4e41, "cm^6/(mol^2*s)"), + n=-7.03, + Ea=(2.762, "kcal/mol"), + T0=(1, "K"), + ), + alpha=0.619, + T3=(73.2, "K"), + T1=(1180, "K"), + T2=(10000, "K"), + efficiencies={ + Molecule(smiles="O=C=O"): 2.0, + Molecule(smiles="[H][H]"): 2.0, + Molecule(smiles="O"): 6.0, + Molecule(smiles="[Ar]"): 0.7, + Molecule(smiles="C"): 2.0, + Molecule(smiles="CC"): 3.0, + }, + ), + ) + + self.ct_troe = ct.Reaction.from_yaml( + """ equation: CH3(13) + CH3(13) (+M) <=> ethane (+M) # Reaction 1 type: falloff low-P-rate-constant: {A: 3.4e+41 cm^6/mol^2/s, b: -7.03, Ea: 2.762 kcal/mol} high-P-rate-constant: {A: 6.77e+16 cm^3/mol/s, b: -1.18, Ea: 0.654 kcal/mol} Troe: {A: 0.619, T3: 73.2, T1: 1180.0, T2: 1.0e+04} efficiencies: {CH4(15): 2.0, Ar: 0.7, ethane: 3.0, H2(2): 2.0, CO2(16): 2.0, - H2O(27): 6.0}''',gas) - - self.arrheniusBi = Reaction(index=2, reactants=[h, ch4], products=[h2, ch3], - kinetics=Arrhenius(A=(6.6e+08, 'cm^3/(mol*s)'), n=1.62, Ea=(10.84, 'kcal/mol'), - T0=(1, 'K'))) + H2O(27): 6.0}""", + gas, + ) + + self.arrheniusBi = Reaction( + index=2, + reactants=[h, ch4], + products=[h2, ch3], + kinetics=Arrhenius( + A=(6.6e08, "cm^3/(mol*s)"), n=1.62, Ea=(10.84, "kcal/mol"), T0=(1, "K") + ), + ) - self.ct_arrheniusBi = ct.Reaction.from_yaml(''' + self.ct_arrheniusBi = ct.Reaction.from_yaml( + """ equation: H(3) + CH4(15) <=> H2(2) + CH3(13) rate-constant: {A: 6.6e+08 cm^3/mol/s, b: 1.62, Ea: 10.84 kcal/mol} - ''',gas) - - self.arrheniusBi_irreversible = Reaction(index=10, reactants=[h, ch4], products=[h2, ch3], - kinetics=Arrhenius(A=(6.6e+08, 'cm^3/(mol*s)'), n=1.62, - Ea=(10.84, 'kcal/mol'), T0=(1, 'K')), - reversible=False) - - self.ct_arrheniusBi_irreversible = ct.Reaction.from_yaml(''' + """, + gas, + ) + + self.arrheniusBi_irreversible = Reaction( + index=10, + reactants=[h, ch4], + products=[h2, ch3], + kinetics=Arrhenius( + A=(6.6e08, "cm^3/(mol*s)"), n=1.62, Ea=(10.84, "kcal/mol"), T0=(1, "K") + ), + reversible=False, + ) + + self.ct_arrheniusBi_irreversible = ct.Reaction.from_yaml( + """ equation: H(3) + CH4(15) => H2(2) + CH3(13) # Reaction 3 rate-constant: {A: 6.6e+08 cm^3/mol/s, b: 1.62, Ea: 10.84 kcal/mol} - ''',gas) + """, + gas, + ) + + self.arrheniusMono = Reaction( + index=15, + reactants=[h2o2], + products=[h2, o2], + kinetics=Arrhenius( + A=(6.6e03, "1/s"), n=1.62, Ea=(10.84, "kcal/mol"), T0=(1, "K") + ), + ) - self.arrheniusMono = Reaction(index=15, reactants=[h2o2], products=[h2, o2], - kinetics=Arrhenius(A=(6.6e+03, '1/s'), n=1.62, Ea=(10.84, 'kcal/mol'), - T0=(1, 'K'))) - - self.ct_arrheniusMono = ct.Reaction.from_yaml(''' + self.ct_arrheniusMono = ct.Reaction.from_yaml( + """ equation: H2O2(7) <=> H2(2) + O2(6) # Reaction 4 rate-constant: {A: 6600.0 1/s, b: 1.62, Ea: 10.84 kcal/mol} - ''',gas) + """, + gas, + ) - self.arrheniusTri = Reaction(index=20, reactants=[h, h, o2], products=[h2o2], - kinetics=Arrhenius(A=(6.6e+08, 'cm^6/(mol^2*s)'), n=1.62, Ea=(10.84, 'kcal/mol'), - T0=(1, 'K'))) + self.arrheniusTri = Reaction( + index=20, + reactants=[h, h, o2], + products=[h2o2], + kinetics=Arrhenius( + A=(6.6e08, "cm^6/(mol^2*s)"), + n=1.62, + Ea=(10.84, "kcal/mol"), + T0=(1, "K"), + ), + ) - self.ct_arrheniusTri = ct.Reaction.from_yaml(''' + self.ct_arrheniusTri = ct.Reaction.from_yaml( + """ equation: H(3) + H(3) + O2(6) <=> H2O2(7) # Reaction 5 rate-constant: {A: 6.6e+08 cm^6/mol^2/s, b: 1.62, Ea: 10.84 kcal/mol} - ''',gas) - - self.multiArrhenius = Reaction(index=3, reactants=[oh, ho2], products=[h2o, o2], - kinetics=MultiArrhenius(arrhenius=[ - Arrhenius(A=(1.45e+13, 'cm^3/(mol*s)'), n=0, Ea=(-0.5, 'kcal/mol'), - T0=(1, 'K')), - Arrhenius(A=(5e+15, 'cm^3/(mol*s)'), n=0, Ea=(17.33, 'kcal/mol'), - T0=(1, 'K'))])) + """, + gas, + ) + + self.multiArrhenius = Reaction( + index=3, + reactants=[oh, ho2], + products=[h2o, o2], + kinetics=MultiArrhenius( + arrhenius=[ + Arrhenius( + A=(1.45e13, "cm^3/(mol*s)"), + n=0, + Ea=(-0.5, "kcal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(5e15, "cm^3/(mol*s)"), + n=0, + Ea=(17.33, "kcal/mol"), + T0=(1, "K"), + ), + ] + ), + ) self.ct_multiArrhenius = [ - ct.Reaction.from_yaml(''' + ct.Reaction.from_yaml( + """ equation: OH(4) + HO2(5) <=> H2O(27) + O2(6) # Reaction 6 duplicate: true rate-constant: {A: 1.45e+13 cm^3/mol/s, b: 0.0, Ea: -0.5 kcal/mol} - ''',gas), - ct.Reaction.from_yaml(''' + """, + gas, + ), + ct.Reaction.from_yaml( + """ equation: OH(4) + HO2(5) <=> H2O(27) + O2(6) # Reaction 7 duplicate: true rate-constant: {A: 5.0e+15 cm^3/mol/s, b: 0.0, Ea: 17.33 kcal/mol} - ''',gas)] - - self.pdepArrhenius = Reaction(index=4, reactants=[ho2, ho2], products=[o2, h2o2], - kinetics=PDepArrhenius( - pressures=([0.1, 1, 10], 'atm'), - arrhenius=[ - Arrhenius( - A=(8.8e+16, 'cm^3/(mol*s)'), - n=-1.05, - Ea=(6461, 'cal/mol'), - T0=(1, 'K'), - ), - Arrhenius( - A=(8e+21, 'cm^3/(mol*s)'), - n=-2.39, - Ea=(11180, 'cal/mol'), - T0=(1, 'K'), - ), - Arrhenius( - A=(3.3e+24, 'cm^3/(mol*s)'), - n=-3.04, - Ea=(15610, 'cal/mol'), - T0=(1, 'K'), - ), - ], - ), - ) - - self.ct_pdepArrhenius = ct.Reaction.from_yaml(''' + """, + gas, + ), + ] + + self.pdepArrhenius = Reaction( + index=4, + reactants=[ho2, ho2], + products=[o2, h2o2], + kinetics=PDepArrhenius( + pressures=([0.1, 1, 10], "atm"), + arrhenius=[ + Arrhenius( + A=(8.8e16, "cm^3/(mol*s)"), + n=-1.05, + Ea=(6461, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(8e21, "cm^3/(mol*s)"), + n=-2.39, + Ea=(11180, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(3.3e24, "cm^3/(mol*s)"), + n=-3.04, + Ea=(15610, "cal/mol"), + T0=(1, "K"), + ), + ], + ), + ) + + self.ct_pdepArrhenius = ct.Reaction.from_yaml( + """ equation: HO2(5) + HO2(5) <=> O2(6) + H2O2(7) # Reaction 8 type: pressure-dependent-Arrhenius rate-constants: - {P: 0.1 atm, A: 8.8e+16 cm^3/mol/s, b: -1.05, Ea: 6.461 kcal/mol} - {P: 1.0 atm, A: 8.0e+21 cm^3/mol/s, b: -2.39, Ea: 11.18 kcal/mol} - {P: 10.0 atm, A: 3.3e+24 cm^3/mol/s, b: -3.04, Ea: 15.61 kcal/mol} - ''',gas) - - self.multiPdepArrhenius = Reaction(index=5, reactants=[ho2, ch3], products=[o2, ch4], - kinetics=MultiPDepArrhenius( - arrhenius=[ - PDepArrhenius( - pressures=([0.001, 1, 3], 'atm'), - arrhenius=[ - Arrhenius(A=(9.3e+10, 'cm^3/(mol*s)'), n=0, - Ea=(0, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(8e+10, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), - T0=(1, 'K')), - Arrhenius(A=(7e+10, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), - T0=(1, 'K')), - ], - ), - PDepArrhenius( - pressures=([0.001, 1, 3], 'atm'), - arrhenius=[ - Arrhenius(A=(710000, 'cm^3/(mol*s)'), n=1.8, - Ea=(1133, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(880000, 'cm^3/(mol*s)'), n=1.77, - Ea=(954, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(290000, 'cm^3/(mol*s)'), n=1.9, - Ea=(397, 'cal/mol'), T0=(1, 'K')), - ], - ), - ], - ), - ) + """, + gas, + ) + + self.multiPdepArrhenius = Reaction( + index=5, + reactants=[ho2, ch3], + products=[o2, ch4], + kinetics=MultiPDepArrhenius( + arrhenius=[ + PDepArrhenius( + pressures=([0.001, 1, 3], "atm"), + arrhenius=[ + Arrhenius( + A=(9.3e10, "cm^3/(mol*s)"), + n=0, + Ea=(0, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(8e10, "cm^3/(mol*s)"), + n=0, + Ea=(0, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(7e10, "cm^3/(mol*s)"), + n=0, + Ea=(0, "cal/mol"), + T0=(1, "K"), + ), + ], + ), + PDepArrhenius( + pressures=([0.001, 1, 3], "atm"), + arrhenius=[ + Arrhenius( + A=(710000, "cm^3/(mol*s)"), + n=1.8, + Ea=(1133, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(880000, "cm^3/(mol*s)"), + n=1.77, + Ea=(954, "cal/mol"), + T0=(1, "K"), + ), + Arrhenius( + A=(290000, "cm^3/(mol*s)"), + n=1.9, + Ea=(397, "cal/mol"), + T0=(1, "K"), + ), + ], + ), + ], + ), + ) self.ct_multiPdepArrhenius = [ - ct.Reaction.from_yaml(''' + ct.Reaction.from_yaml( + """ equation: HO2(5) + CH3(13) <=> O2(6) + CH4(15) # Reaction 9 duplicate: true type: pressure-dependent-Arrhenius @@ -1808,8 +2799,11 @@ def setUp(self): - {P: 0.001 atm, A: 9.3e+10 cm^3/mol/s, b: 0.0, Ea: 0.0 kcal/mol} - {P: 1.0 atm, A: 8.0e+10 cm^3/mol/s, b: 0.0, Ea: 0.0 kcal/mol} - {P: 3.0 atm, A: 7.0e+10 cm^3/mol/s, b: 0.0, Ea: 0.0 kcal/mol} - ''',gas), - ct.Reaction.from_yaml(''' + """, + gas, + ), + ct.Reaction.from_yaml( + """ equation: HO2(5) + CH3(13) <=> O2(6) + CH4(15) # Reaction 10 duplicate: true type: pressure-dependent-Arrhenius @@ -1817,15 +2811,34 @@ def setUp(self): - {P: 0.001 atm, A: 7.1e+05 cm^3/mol/s, b: 1.8, Ea: 1.133 kcal/mol} - {P: 1.0 atm, A: 8.8e+05 cm^3/mol/s, b: 1.77, Ea: 0.954 kcal/mol} - {P: 3.0 atm, A: 2.9e+05 cm^3/mol/s, b: 1.9, Ea: 0.397 kcal/mol} - ''',gas)] + """, + gas, + ), + ] - self.chebyshev = Reaction(index=6, reactants=[h, ch3], products=[ch4], kinetics=Chebyshev( - coeffs=[[12.68, 0.3961, -0.05481, -0.003606], [-0.7128, 0.731, -0.0941, -0.008587], - [-0.5806, 0.57, -0.05539, -0.01115], [-0.4074, 0.3653, -0.0118, -0.01171], - [-0.2403, 0.1779, 0.01946, -0.008505], [-0.1133, 0.0485, 0.03121, -0.002955]], - kunits='cm^3/(mol*s)', Tmin=(300, 'K'), Tmax=(3000, 'K'), Pmin=(0.001, 'atm'), Pmax=(98.692, 'atm'))) + self.chebyshev = Reaction( + index=6, + reactants=[h, ch3], + products=[ch4], + kinetics=Chebyshev( + coeffs=[ + [12.68, 0.3961, -0.05481, -0.003606], + [-0.7128, 0.731, -0.0941, -0.008587], + [-0.5806, 0.57, -0.05539, -0.01115], + [-0.4074, 0.3653, -0.0118, -0.01171], + [-0.2403, 0.1779, 0.01946, -0.008505], + [-0.1133, 0.0485, 0.03121, -0.002955], + ], + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "atm"), + Pmax=(98.692, "atm"), + ), + ) - self.ct_chebyshev = ct.Reaction.from_yaml(''' + self.ct_chebyshev = ct.Reaction.from_yaml( + """ equation: H(3) + CH3(13) <=> CH4(15) # Reaction 11 type: Chebyshev temperature-range: [300.0, 3000.0] @@ -1837,54 +2850,97 @@ def setUp(self): - [-0.4074, 0.3653, -0.0118, -0.01171] - [-0.2403, 0.1779, 0.01946, -8.505e-03] - [-0.1133, 0.0485, 0.03121, -2.955e-03] - ''',gas) - - self.thirdBody = Reaction(index=7, reactants=[h, h], products=[h2], - kinetics=ThirdBody( - arrheniusLow=Arrhenius(A=(1e+18, 'cm^6/(mol^2*s)'), n=-1, Ea=(0, 'kcal/mol'), - T0=(1, 'K')), - efficiencies={Molecule(smiles="O=C=O"): 0.0, Molecule(smiles="[H][H]"): 0.0, - Molecule(smiles="O"): 0.0, - Molecule(smiles="[Ar]"): 0.63, Molecule(smiles="C"): 2.0, - Molecule(smiles="CC"): 3.0})) - - self.ct_thirdBody = ct.Reaction.from_yaml(''' + """, + gas, + ) + + self.thirdBody = Reaction( + index=7, + reactants=[h, h], + products=[h2], + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(1e18, "cm^6/(mol^2*s)"), n=-1, Ea=(0, "kcal/mol"), T0=(1, "K") + ), + efficiencies={ + Molecule(smiles="O=C=O"): 0.0, + Molecule(smiles="[H][H]"): 0.0, + Molecule(smiles="O"): 0.0, + Molecule(smiles="[Ar]"): 0.63, + Molecule(smiles="C"): 2.0, + Molecule(smiles="CC"): 3.0, + }, + ), + ) + + self.ct_thirdBody = ct.Reaction.from_yaml( + """ equation: H(3) + H(3) + M <=> H2(2) + M # Reaction 12 type: three-body rate-constant: {A: 1.0e+18 cm^6/mol^2/s, b: -1.0, Ea: 0.0 kcal/mol} efficiencies: {H2(2): 0.0, CH4(15): 2.0, CO2(16): 0.0, Ar: 0.63, H2O(27): 0.0, ethane: 3.0} - ''',gas) - - self.lindemann = Reaction(index=8, reactants=[h, o2], products=[ho2], - kinetics=Lindemann( - arrheniusHigh=Arrhenius(A=(1.8e+10, 'cm^3/(mol*s)'), n=0, Ea=(2.385, 'kcal/mol'), - T0=(1, 'K')), - arrheniusLow=Arrhenius(A=(6.02e+14, 'cm^6/(mol^2*s)'), n=0, Ea=(3, 'kcal/mol'), - T0=(1, 'K')), - efficiencies={Molecule(smiles="O=C=O"): 3.5, Molecule(smiles="[H][H]"): 2.0, - Molecule(smiles="O"): 6.0, Molecule(smiles="[Ar]"): 0.5, - Molecule(smiles="C"): 2.0, Molecule(smiles="CC"): 3.0, - Molecule(smiles="[O][O]"): 6.0})) - - self.ct_lindemann = ct.Reaction.from_yaml(''' + """, + gas, + ) + + self.lindemann = Reaction( + index=8, + reactants=[h, o2], + products=[ho2], + kinetics=Lindemann( + arrheniusHigh=Arrhenius( + A=(1.8e10, "cm^3/(mol*s)"), n=0, Ea=(2.385, "kcal/mol"), T0=(1, "K") + ), + arrheniusLow=Arrhenius( + A=(6.02e14, "cm^6/(mol^2*s)"), n=0, Ea=(3, "kcal/mol"), T0=(1, "K") + ), + efficiencies={ + Molecule(smiles="O=C=O"): 3.5, + Molecule(smiles="[H][H]"): 2.0, + Molecule(smiles="O"): 6.0, + Molecule(smiles="[Ar]"): 0.5, + Molecule(smiles="C"): 2.0, + Molecule(smiles="CC"): 3.0, + Molecule(smiles="[O][O]"): 6.0, + }, + ), + ) + + self.ct_lindemann = ct.Reaction.from_yaml( + """ equation: H(3) + O2(6) (+M) <=> HO2(5) (+M) # Reaction 13 type: falloff low-P-rate-constant: {A: 6.02e+14 cm^6/mol^2/s, b: 0.0, Ea: 3.0 kcal/mol} high-P-rate-constant: {A: 1.8e+10 cm^3/mol/s, b: 0.0, Ea: 2.385 kcal/mol} efficiencies: {H2O(27): 6.0, Ar: 0.5, CH4(15): 2.0, O2(6): 6.0, ethane: 3.0, H2(2): 2.0, CO2(16): 3.5} - ''',gas) + """, + gas, + ) def test_arrhenius(self): """ Tests formation of cantera reactions with Arrhenius or kinetics. """ - rmg_objects = [self.arrheniusBi, self.arrheniusBi_irreversible, self.arrheniusMono, self.arrheniusTri] + rmg_objects = [ + self.arrheniusBi, + self.arrheniusBi_irreversible, + self.arrheniusMono, + self.arrheniusTri, + ] - ct_objects = [self.ct_arrheniusBi, self.ct_arrheniusBi_irreversible, self.ct_arrheniusMono, self.ct_arrheniusTri] - converted_ct_objects = [obj.to_cantera(self.species_list, use_chemkin_identifier=True) for obj in rmg_objects] + ct_objects = [ + self.ct_arrheniusBi, + self.ct_arrheniusBi_irreversible, + self.ct_arrheniusMono, + self.ct_arrheniusTri, + ] + converted_ct_objects = [ + obj.to_cantera(self.species_list, use_chemkin_identifier=True) + for obj in rmg_objects + ] for converted_obj, ct_obj in zip(converted_ct_objects, ct_objects): # Check that the reaction class is the same @@ -1894,14 +2950,16 @@ def test_arrhenius(self): # Check that the rate is the same. arrhenius string is not going to be identical self.assertEqual(converted_obj.rate.input_data, ct_obj.rate.input_data) - def test_multi_arrhenius(self): """ Tests formation of cantera reactions with MultiArrhenius kinetics. """ rmg_objects = [self.multiArrhenius] ct_objects = [self.ct_multiArrhenius] - converted_ct_objects = [obj.to_cantera(self.species_list, use_chemkin_identifier=True) for obj in rmg_objects] + converted_ct_objects = [ + obj.to_cantera(self.species_list, use_chemkin_identifier=True) + for obj in rmg_objects + ] for converted_obj, ct_obj in zip(converted_ct_objects, ct_objects): # Check that the same number of reactions are produced @@ -1913,9 +2971,18 @@ def test_multi_arrhenius(self): # Check that the reaction string is the same self.assertEqual(repr(converted_rxn), repr(ct_rxn)) # Check that the Arrhenius rates are identical - self.assertAlmostEqual(converted_rxn.rate.pre_exponential_factor, ct_rxn.rate.pre_exponential_factor, places=3) - self.assertAlmostEqual(converted_rxn.rate.temperature_exponent, ct_rxn.rate.temperature_exponent) - self.assertAlmostEqual(converted_rxn.rate.activation_energy, ct_rxn.rate.activation_energy) + self.assertAlmostEqual( + converted_rxn.rate.pre_exponential_factor, + ct_rxn.rate.pre_exponential_factor, + places=3, + ) + self.assertAlmostEqual( + converted_rxn.rate.temperature_exponent, + ct_rxn.rate.temperature_exponent, + ) + self.assertAlmostEqual( + converted_rxn.rate.activation_energy, ct_rxn.rate.activation_energy + ) # self.assertEqual(converted_rxn.rate.input_data, ct_rxn.rate.input_data) def test_pdep_arrhenius(self): @@ -1924,7 +2991,10 @@ def test_pdep_arrhenius(self): """ rmg_objects = [self.pdepArrhenius] ct_objects = [self.ct_pdepArrhenius] - converted_ct_objects = [obj.to_cantera(self.species_list, use_chemkin_identifier=True) for obj in rmg_objects] + converted_ct_objects = [ + obj.to_cantera(self.species_list, use_chemkin_identifier=True) + for obj in rmg_objects + ] for converted_obj, ct_obj in zip(converted_ct_objects, ct_objects): # Check that the reaction class is the same @@ -1941,7 +3011,10 @@ def test_multi_pdep_arrhenius(self): rmg_objects = [self.multiPdepArrhenius] ct_objects = [self.ct_multiPdepArrhenius] - converted_ct_objects = [obj.to_cantera(self.species_list, use_chemkin_identifier=True) for obj in rmg_objects] + converted_ct_objects = [ + obj.to_cantera(self.species_list, use_chemkin_identifier=True) + for obj in rmg_objects + ] for converted_obj, ct_obj in zip(converted_ct_objects, ct_objects): # Check that the same number of reactions are produced @@ -1959,10 +3032,17 @@ def test_chebyshev(self): """ Tests formation of cantera reactions with Chebyshev kinetics. """ - ct_chebyshev = self.chebyshev.to_cantera(self.species_list, use_chemkin_identifier=True) + ct_chebyshev = self.chebyshev.to_cantera( + self.species_list, use_chemkin_identifier=True + ) self.assertEqual(type(ct_chebyshev.rate), type(self.ct_chebyshev.rate)) - self.assertEqual(ct_chebyshev.rate.temperature_range, self.ct_chebyshev.rate.temperature_range) - self.assertEqual(ct_chebyshev.rate.pressure_range, self.ct_chebyshev.rate.pressure_range) + self.assertEqual( + ct_chebyshev.rate.temperature_range, + self.ct_chebyshev.rate.temperature_range, + ) + self.assertEqual( + ct_chebyshev.rate.pressure_range, self.ct_chebyshev.rate.pressure_range + ) self.assertTrue((ct_chebyshev.rate.data == self.ct_chebyshev.rate.data).all()) def test_falloff(self): @@ -1971,26 +3051,54 @@ def test_falloff(self): """ ct_troe = self.troe.to_cantera(self.species_list, use_chemkin_identifier=True) self.assertEqual(type(ct_troe.rate), type(self.ct_troe.rate)) - self.assertAlmostEqual(ct_troe.rate.low_rate.pre_exponential_factor, self.ct_troe.rate.low_rate.pre_exponential_factor, places=3) - self.assertEqual(ct_troe.rate.low_rate.temperature_exponent, self.ct_troe.rate.low_rate.temperature_exponent) - self.assertEqual(ct_troe.rate.low_rate.activation_energy, self.ct_troe.rate.low_rate.activation_energy) + self.assertAlmostEqual( + ct_troe.rate.low_rate.pre_exponential_factor, + self.ct_troe.rate.low_rate.pre_exponential_factor, + places=3, + ) + self.assertEqual( + ct_troe.rate.low_rate.temperature_exponent, + self.ct_troe.rate.low_rate.temperature_exponent, + ) + self.assertEqual( + ct_troe.rate.low_rate.activation_energy, + self.ct_troe.rate.low_rate.activation_energy, + ) self.assertEqual(ct_troe.efficiencies, self.ct_troe.efficiencies) - ct_third_body = self.thirdBody.to_cantera(self.species_list, use_chemkin_identifier=True) + ct_third_body = self.thirdBody.to_cantera( + self.species_list, use_chemkin_identifier=True + ) self.assertEqual(type(ct_third_body.rate), type(self.ct_thirdBody.rate)) - self.assertAlmostEqual(ct_third_body.rate.pre_exponential_factor, self.ct_thirdBody.rate.pre_exponential_factor, places=3) - self.assertEqual(ct_third_body.rate.temperature_exponent, self.ct_thirdBody.rate.temperature_exponent) - self.assertEqual(ct_third_body.rate.activation_energy, self.ct_thirdBody.rate.activation_energy) + self.assertAlmostEqual( + ct_third_body.rate.pre_exponential_factor, + self.ct_thirdBody.rate.pre_exponential_factor, + places=3, + ) + self.assertEqual( + ct_third_body.rate.temperature_exponent, + self.ct_thirdBody.rate.temperature_exponent, + ) + self.assertEqual( + ct_third_body.rate.activation_energy, + self.ct_thirdBody.rate.activation_energy, + ) self.assertEqual(ct_third_body.efficiencies, self.ct_thirdBody.efficiencies) - ct_lindemann = self.lindemann.to_cantera(self.species_list, use_chemkin_identifier=True) + ct_lindemann = self.lindemann.to_cantera( + self.species_list, use_chemkin_identifier=True + ) self.assertEqual(type(ct_lindemann.rate), type(self.ct_lindemann.rate)) self.assertEqual(ct_lindemann.efficiencies, self.ct_lindemann.efficiencies) - self.assertEqual(str(ct_lindemann.rate.low_rate), str(self.ct_lindemann.rate.low_rate)) - self.assertEqual(str(ct_lindemann.rate.high_rate), str(self.ct_lindemann.rate.high_rate)) + self.assertEqual( + str(ct_lindemann.rate.low_rate), str(self.ct_lindemann.rate.low_rate) + ) + self.assertEqual( + str(ct_lindemann.rate.high_rate), str(self.ct_lindemann.rate.high_rate) + ) ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/rmg/inputTest.py b/test/rmgpy/rmg/inputTest.py index da1dc4d286..740f65faf0 100644 --- a/test/rmgpy/rmg/inputTest.py +++ b/test/rmgpy/rmg/inputTest.py @@ -36,6 +36,7 @@ ################################################### + def setUpModule(): """ A method that is run before the class. @@ -69,7 +70,7 @@ def test_importing_database_reaction_libraries_from_string(self): """ global rmg # add database properties to RMG - inp.database(reactionLibraries=['test']) + inp.database(reactionLibraries=["test"]) self.assertIsInstance(rmg.reaction_libraries[0], tuple) self.assertFalse(rmg.reaction_libraries[0][1]) @@ -79,7 +80,7 @@ def test_importing_database_reaction_libraries_from_false_tuple(self): """ global rmg # add database properties to RMG - inp.database(reactionLibraries=[('test', False)]) + inp.database(reactionLibraries=[("test", False)]) self.assertIsInstance(rmg.reaction_libraries[0], tuple) self.assertFalse(rmg.reaction_libraries[0][1]) @@ -89,7 +90,7 @@ def test_importing_database_reaction_libraries_from_true_tuple(self): """ global rmg # add database properties to RMG - inp.database(reactionLibraries=[('test', True)]) + inp.database(reactionLibraries=[("test", True)]) self.assertIsInstance(rmg.reaction_libraries[0], tuple) self.assertTrue(rmg.reaction_libraries[0][1]) @@ -109,6 +110,7 @@ def test_ml_estimator(self): Test that we can input. """ from rmgpy.ml.estimator import MLEstimator + global rmg # add database properties to RMG inp.ml_estimator(thermo=True) @@ -133,17 +135,17 @@ def test_themo_central_database(self): global rmg # add database properties to RMG inp.thermo_central_database( - host='some_host', + host="some_host", port=0, - username='some_usr', - password='some_pw', - application='some_app' + username="some_usr", + password="some_pw", + application="some_app", ) - self.assertEqual(rmg.thermo_central_database.host, 'some_host') + self.assertEqual(rmg.thermo_central_database.host, "some_host") self.assertEqual(rmg.thermo_central_database.port, 0) - self.assertEqual(rmg.thermo_central_database.username, 'some_usr') - self.assertEqual(rmg.thermo_central_database.password, 'some_pw') - self.assertEqual(rmg.thermo_central_database.application, 'some_app') + self.assertEqual(rmg.thermo_central_database.username, "some_usr") + self.assertEqual(rmg.thermo_central_database.password, "some_pw") + self.assertEqual(rmg.thermo_central_database.application, "some_app") self.assertEqual(rmg.thermo_central_database.client, None) @@ -157,10 +159,10 @@ def setUp(self): # Create a mock species dictionary # In reality, the values would be Species objects, but it doesn't matter for testing species_dict = { - 'A': 'A', - 'B': 'B', - 'C': 'C', - 'X': 'X', + "A": "A", + "B": "B", + "C": "C", + "X": "X", } # Assign to global variable in the input module @@ -182,203 +184,203 @@ def tearDown(self): def test_simple_reactor_mole_fractions(self): """Test that SimpleReactor mole fractions are set properly""" inp.simple_reactor( - temperature=(1000, 'K'), - pressure=(1, 'atm'), + temperature=(1000, "K"), + pressure=(1, "atm"), initialMoleFractions={ - 'A': 0.5, - 'B': 0.3, - 'C': 0.2, + "A": 0.5, + "B": 0.3, + "C": 0.2, }, - terminationTime=(1, 's'), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_mole_fractions["C"], 0.2) - @patch('rmgpy.rmg.input.logging') + @patch("rmgpy.rmg.input.logging") def test_simple_reactor_mole_fractions_normalize_1(self, mock_logging): """Test that SimpleReactor mole fractions are normalized properly""" inp.simple_reactor( - temperature=(1000, 'K'), - pressure=(1, 'atm'), + temperature=(1000, "K"), + pressure=(1, "atm"), initialMoleFractions={ - 'A': 5, - 'B': 3, - 'C': 2, + "A": 5, + "B": 3, + "C": 2, }, - terminationTime=(1, 's'), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_mole_fractions["C"], 0.2) mock_logging.warning.assert_called_with( - 'Initial mole fractions do not sum to one; normalizing.' + "Initial mole fractions do not sum to one; normalizing." ) - @patch('rmgpy.rmg.input.logging') + @patch("rmgpy.rmg.input.logging") def test_simple_reactor_mole_fractions_normalize_2(self, mock_logging): """Test that SimpleReactor mole fractions are normalized properly""" inp.simple_reactor( - temperature=[(1000, 'K'), (2000, 'K')], - pressure=[(1, 'atm'), (10, 'atm')], + temperature=[(1000, "K"), (2000, "K")], + pressure=[(1, "atm"), (10, "atm")], initialMoleFractions={ - 'A': 5, - 'B': 3, - 'C': 2, + "A": 5, + "B": 3, + "C": 2, }, - terminationTime=(1, 's'), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_mole_fractions["C"], 0.2) mock_logging.warning.assert_called_with( - 'Initial mole fractions do not sum to one; normalizing.' + "Initial mole fractions do not sum to one; normalizing." ) def test_simple_reactor_mole_fractions_ranged(self): """Test that SimpleReactor ranged mole fractions are not normalized""" inp.simple_reactor( - temperature=[(1000, 'K'), (2000, 'K')], - pressure=[(1, 'atm'), (10, 'atm')], + temperature=[(1000, "K"), (2000, "K")], + pressure=[(1, "atm"), (10, "atm")], initialMoleFractions={ - 'A': [5, 8], - 'B': 3, - 'C': 2, + "A": [5, 8], + "B": 3, + "C": 2, }, - terminationTime=(1, 's'), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_mole_fractions['A'], [5, 8]) - self.assertEqual(reactor.initial_mole_fractions['B'], 3) - self.assertEqual(reactor.initial_mole_fractions['C'], 2) + self.assertEqual(reactor.initial_mole_fractions["A"], [5, 8]) + self.assertEqual(reactor.initial_mole_fractions["B"], 3) + self.assertEqual(reactor.initial_mole_fractions["C"], 2) def test_liquid_reactor_concentrations(self): """Test that LiquidReactor concentrations are set properly""" inp.liquid_reactor( - temperature=(1000, 'K'), + temperature=(1000, "K"), initialConcentrations={ - 'A': (0.3, 'mol/L'), - 'B': (0.2, 'mol/L'), - 'C': (0.1, 'mol/L'), + "A": (0.3, "mol/L"), + "B": (0.2, "mol/L"), + "C": (0.1, "mol/L"), }, - terminationTime=(1, 's'), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] # Values get converted to default SI units, mol/m^3 - self.assertEqual(reactor.initial_concentrations['A'], 300) - self.assertEqual(reactor.initial_concentrations['B'], 200) - self.assertEqual(reactor.initial_concentrations['C'], 100) + self.assertEqual(reactor.initial_concentrations["A"], 300) + self.assertEqual(reactor.initial_concentrations["B"], 200) + self.assertEqual(reactor.initial_concentrations["C"], 100) def test_surface_reactor_mole_fractions(self): """Test that SurfaceReactor mole fractions are set properly""" inp.surface_reactor( - temperature=(1000, 'K'), - initialPressure=(1, 'atm'), + temperature=(1000, "K"), + initialPressure=(1, "atm"), initialGasMoleFractions={ - 'A': 0.5, - 'B': 0.3, - 'C': 0.2, + "A": 0.5, + "B": 0.3, + "C": 0.2, }, - initialSurfaceCoverages={'X': 1.0}, - surfaceVolumeRatio=(1e1, 'm^-1'), - terminationTime=(1, 's'), + initialSurfaceCoverages={"X": 1.0}, + surfaceVolumeRatio=(1e1, "m^-1"), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_gas_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_gas_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_gas_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_gas_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_gas_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_gas_mole_fractions["C"], 0.2) - @patch('rmgpy.rmg.input.logging') + @patch("rmgpy.rmg.input.logging") def test_surface_reactor_mole_fractions_normalize_1(self, mock_logging): """Test that SurfaceReactor mole fractions are normalized properly""" inp.surface_reactor( - temperature=(1000, 'K'), - initialPressure=(1, 'atm'), + temperature=(1000, "K"), + initialPressure=(1, "atm"), initialGasMoleFractions={ - 'A': 5, - 'B': 3, - 'C': 2, + "A": 5, + "B": 3, + "C": 2, }, - initialSurfaceCoverages={'X': 1.0}, - surfaceVolumeRatio=(1e1, 'm^-1'), - terminationTime=(1, 's'), + initialSurfaceCoverages={"X": 1.0}, + surfaceVolumeRatio=(1e1, "m^-1"), + terminationTime=(1, "s"), ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_gas_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_gas_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_gas_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_gas_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_gas_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_gas_mole_fractions["C"], 0.2) mock_logging.warning.assert_called_with( - 'Initial gas mole fractions do not sum to one; renormalizing.' + "Initial gas mole fractions do not sum to one; renormalizing." ) def test_mb_sampled_reactor_mole_fractions(self): """Test that MBSampledReactor mole fractions are set properly""" inp.mb_sampled_reactor( - temperature=(1000, 'K'), - pressure=(1, 'atm'), + temperature=(1000, "K"), + pressure=(1, "atm"), initialMoleFractions={ - 'A': 0.5, - 'B': 0.3, - 'C': 0.2, + "A": 0.5, + "B": 0.3, + "C": 0.2, }, mbsamplingRate=3500, - terminationTime=(1, 's'), - constantSpecies=['B', 'C'], + terminationTime=(1, "s"), + constantSpecies=["B", "C"], ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_mole_fractions["C"], 0.2) - @patch('rmgpy.rmg.input.logging') + @patch("rmgpy.rmg.input.logging") def test_mb_sampled_reactor_mole_fractions_normalize_1(self, mock_logging): """Test that MBSampledReactor mole fractions are normalized properly""" inp.mb_sampled_reactor( - temperature=(1000, 'K'), - pressure=(1, 'atm'), + temperature=(1000, "K"), + pressure=(1, "atm"), initialMoleFractions={ - 'A': 5, - 'B': 3, - 'C': 2, + "A": 5, + "B": 3, + "C": 2, }, mbsamplingRate=3500, - terminationTime=(1, 's'), - constantSpecies=['B', 'C'], + terminationTime=(1, "s"), + constantSpecies=["B", "C"], ) global rmg reactor = rmg.reaction_systems[0] - self.assertEqual(reactor.initial_mole_fractions['A'], 0.5) - self.assertEqual(reactor.initial_mole_fractions['B'], 0.3) - self.assertEqual(reactor.initial_mole_fractions['C'], 0.2) + self.assertEqual(reactor.initial_mole_fractions["A"], 0.5) + self.assertEqual(reactor.initial_mole_fractions["B"], 0.3) + self.assertEqual(reactor.initial_mole_fractions["C"], 0.2) mock_logging.warning.assert_called_with( - 'Initial mole fractions do not sum to one; normalizing.' + "Initial mole fractions do not sum to one; normalizing." ) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/test/rmgpy/rmg/mainTest.py b/test/rmgpy/rmg/mainTest.py index 7776c13ed2..86a7b5f52f 100644 --- a/test/rmgpy/rmg/mainTest.py +++ b/test/rmgpy/rmg/mainTest.py @@ -49,23 +49,28 @@ originalPath = get_path() -@attr('functional') +@attr("functional") class TestMain(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" - cls.testDir = os.path.join(originalPath, 'rmg', 'test_data', 'mainTest') - cls.outputDir = 'output' - cls.databaseDirectory = settings['database.directory'] + cls.testDir = os.path.join(originalPath, "rmg", "test_data", "mainTest") + cls.outputDir = "output" + cls.databaseDirectory = settings["database.directory"] - cls.seedKinetics = os.path.join(cls.databaseDirectory, 'kinetics', 'libraries', 'testSeed') - cls.seedKineticsEdge = os.path.join(cls.databaseDirectory, 'kinetics', 'libraries', 'testSeed_edge') + cls.seedKinetics = os.path.join( + cls.databaseDirectory, "kinetics", "libraries", "testSeed" + ) + cls.seedKineticsEdge = os.path.join( + cls.databaseDirectory, "kinetics", "libraries", "testSeed_edge" + ) os.mkdir(os.path.join(cls.testDir, cls.outputDir)) - cls.rmg = RMG(input_file=os.path.join(cls.testDir, 'input.py'), - output_directory=os.path.join(cls.testDir, cls.outputDir)) + cls.rmg = RMG( + input_file=os.path.join(cls.testDir, "input.py"), + output_directory=os.path.join(cls.testDir, cls.outputDir), + ) cls.rmg.execute() @@ -74,6 +79,7 @@ def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" # Reset module level database import rmgpy.data.rmg + rmgpy.data.rmg.database = None # Remove output directory @@ -97,23 +103,35 @@ def test_rmg_increases_reactions(self): def test_rmg_seed_mechanism_creation(self): """Test that the expected seed mechanisms are created in output directory.""" - seed_dir = os.path.join(self.testDir, self.outputDir, 'seed') + seed_dir = os.path.join(self.testDir, self.outputDir, "seed") self.assertTrue(os.path.exists) - self.assertTrue(os.path.exists(os.path.join(seed_dir, 'seed'))) # kinetics library folder made + self.assertTrue( + os.path.exists(os.path.join(seed_dir, "seed")) + ) # kinetics library folder made - self.assertTrue(os.path.exists(os.path.join(seed_dir, 'seed', 'dictionary.txt'))) # dictionary file made - self.assertTrue(os.path.exists(os.path.join(seed_dir, 'seed', 'reactions.py'))) # reactions file made + self.assertTrue( + os.path.exists(os.path.join(seed_dir, "seed", "dictionary.txt")) + ) # dictionary file made + self.assertTrue( + os.path.exists(os.path.join(seed_dir, "seed", "reactions.py")) + ) # reactions file made def test_rmg_seed_edge_mechanism_creation(self): """Test that the expected seed mechanisms are created in output directory.""" - seed_dir = os.path.join(self.testDir, self.outputDir, 'seed') + seed_dir = os.path.join(self.testDir, self.outputDir, "seed") self.assertTrue(os.path.exists) - self.assertTrue(os.path.exists(os.path.join(seed_dir, 'seed_edge'))) # kinetics library folder made + self.assertTrue( + os.path.exists(os.path.join(seed_dir, "seed_edge")) + ) # kinetics library folder made - self.assertTrue(os.path.exists(os.path.join(seed_dir, 'seed_edge', 'dictionary.txt'))) # dictionary file made - self.assertTrue(os.path.exists(os.path.join(seed_dir, 'seed_edge', 'reactions.py'))) # reactions file made + self.assertTrue( + os.path.exists(os.path.join(seed_dir, "seed_edge", "dictionary.txt")) + ) # dictionary file made + self.assertTrue( + os.path.exists(os.path.join(seed_dir, "seed_edge", "reactions.py")) + ) # reactions file made def test_rmg_seed_library_creation(self): """Test that seed mechanisms are created in the correct database locations.""" @@ -132,30 +150,38 @@ def test_rmg_seed_works(self): self.rmg.database.load( path=self.databaseDirectory, thermo_libraries=[], - reaction_libraries=['testSeed', 'testSeed_edge'], - seed_mechanisms=['testSeed', 'testSeed_edge'], - kinetics_families='default', + reaction_libraries=["testSeed", "testSeed_edge"], + seed_mechanisms=["testSeed", "testSeed_edge"], + kinetics_families="default", kinetics_depositories=[], - depository=False + depository=False, ) self.rmg.reaction_model = CoreEdgeReactionModel() - self.rmg.reaction_model.add_reaction_library_to_edge('testSeed') # try adding seed as library + self.rmg.reaction_model.add_reaction_library_to_edge( + "testSeed" + ) # try adding seed as library self.assertTrue(len(self.rmg.reaction_model.edge.species) > 0) self.assertTrue(len(self.rmg.reaction_model.edge.reactions) > 0) self.rmg.reaction_model = CoreEdgeReactionModel() - self.rmg.reaction_model.add_seed_mechanism_to_core('testSeed') # try adding seed as seed mech + self.rmg.reaction_model.add_seed_mechanism_to_core( + "testSeed" + ) # try adding seed as seed mech self.assertTrue(len(self.rmg.reaction_model.core.species) > 0) self.assertTrue(len(self.rmg.reaction_model.core.reactions) > 0) self.rmg.reaction_model = CoreEdgeReactionModel() - self.rmg.reaction_model.add_reaction_library_to_edge('testSeed_edge') # try adding seed as library + self.rmg.reaction_model.add_reaction_library_to_edge( + "testSeed_edge" + ) # try adding seed as library self.assertTrue(len(self.rmg.reaction_model.edge.species) > 0) self.assertTrue(len(self.rmg.reaction_model.edge.reactions) > 0) self.rmg.reaction_model = CoreEdgeReactionModel() - self.rmg.reaction_model.add_seed_mechanism_to_core('testSeed_edge') # try adding seed as seed mech + self.rmg.reaction_model.add_seed_mechanism_to_core( + "testSeed_edge" + ) # try adding seed as seed mech self.assertTrue(len(self.rmg.reaction_model.core.species) > 0) self.assertTrue(len(self.rmg.reaction_model.core.reactions) > 0) @@ -167,7 +193,7 @@ def test_rmg_memory(self): Rmem = RMG_Memory(rxnsys, None) Rmem.generate_cond() Rmem.get_cond() - Rmem.add_t_conv_N(1.0, .2, 2) + Rmem.add_t_conv_N(1.0, 0.2, 2) Rmem.generate_cond() Rmem.get_cond() @@ -177,102 +203,107 @@ def test_make_cantera_input_file(self): """ import cantera as ct - outName = os.path.join(self.rmg.output_directory, 'cantera') + outName = os.path.join(self.rmg.output_directory, "cantera") files = os.listdir(outName) for f in files: - if '.yaml' in f: + if ".yaml" in f: try: ct.Solution(os.path.join(outName, f)) except: - self.fail('The output Cantera file is not loadable in Cantera.') + self.fail("The output Cantera file is not loadable in Cantera.") -@attr('functional') +@attr("functional") class TestRestartWithFilters(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" - cls.testDir = os.path.join(originalPath, 'rmg', 'test_data', 'restartTest') - cls.outputDir = os.path.join(cls.testDir, 'output_w_filters') - cls.databaseDirectory = settings['database.directory'] + cls.testDir = os.path.join(originalPath, "rmg", "test_data", "restartTest") + cls.outputDir = os.path.join(cls.testDir, "output_w_filters") + cls.databaseDirectory = settings["database.directory"] os.mkdir(cls.outputDir) - initialize_log(logging.INFO, os.path.join(cls.outputDir, 'RMG.log')) + initialize_log(logging.INFO, os.path.join(cls.outputDir, "RMG.log")) - cls.rmg = RMG(input_file=os.path.join(cls.testDir, 'restart_w_filters.py'), - output_directory=os.path.join(cls.outputDir)) + cls.rmg = RMG( + input_file=os.path.join(cls.testDir, "restart_w_filters.py"), + output_directory=os.path.join(cls.outputDir), + ) def test_restart_with_filters(self): """ Test that the RMG restart job with filters included completed without problems """ self.rmg.execute() - with open(os.path.join(self.outputDir, 'RMG.log'), 'r') as f: - self.assertIn('MODEL GENERATION COMPLETED', f.read()) + with open(os.path.join(self.outputDir, "RMG.log"), "r") as f: + self.assertIn("MODEL GENERATION COMPLETED", f.read()) @classmethod def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" # Reset module level database import rmgpy.data.rmg + rmgpy.data.rmg.database = None # Remove output directory shutil.rmtree(cls.outputDir) -@attr('functional') +@attr("functional") class TestRestartNoFilters(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" - cls.testDir = os.path.join(originalPath, 'rmg', 'test_data', 'restartTest') - cls.outputDir = os.path.join(cls.testDir, 'output_no_filters') - cls.databaseDirectory = settings['database.directory'] + cls.testDir = os.path.join(originalPath, "rmg", "test_data", "restartTest") + cls.outputDir = os.path.join(cls.testDir, "output_no_filters") + cls.databaseDirectory = settings["database.directory"] os.mkdir(cls.outputDir) - initialize_log(logging.INFO, os.path.join(cls.outputDir, 'RMG.log')) + initialize_log(logging.INFO, os.path.join(cls.outputDir, "RMG.log")) - cls.rmg = RMG(input_file=os.path.join(cls.testDir, 'restart_no_filters.py'), - output_directory=os.path.join(cls.outputDir)) + cls.rmg = RMG( + input_file=os.path.join(cls.testDir, "restart_no_filters.py"), + output_directory=os.path.join(cls.outputDir), + ) def test_restart_no_filters(self): """ Test that the RMG restart job with no filters included completed without problems """ self.rmg.execute() - with open(os.path.join(self.outputDir, 'RMG.log'), 'r') as f: - self.assertIn('MODEL GENERATION COMPLETED', f.read()) + with open(os.path.join(self.outputDir, "RMG.log"), "r") as f: + self.assertIn("MODEL GENERATION COMPLETED", f.read()) @classmethod def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" # Reset module level database import rmgpy.data.rmg + rmgpy.data.rmg.database = None # Remove output directory shutil.rmtree(cls.outputDir) -@attr('functional') +@attr("functional") class TestMainFunctions(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" - cls.testDir = os.path.join(originalPath, 'rmg', 'test_data', 'mainTest') - cls.outputDir = os.path.join(cls.testDir, 'output') - cls.databaseDirectory = settings['database.directory'] + cls.testDir = os.path.join(originalPath, "rmg", "test_data", "mainTest") + cls.outputDir = os.path.join(cls.testDir, "output") + cls.databaseDirectory = settings["database.directory"] os.mkdir(os.path.join(cls.testDir, cls.outputDir)) cls.max_iter = 10 - cls.rmg = RMG(input_file=os.path.join(cls.testDir, 'superminimal_input.py'), - output_directory=cls.outputDir) + cls.rmg = RMG( + input_file=os.path.join(cls.testDir, "superminimal_input.py"), + output_directory=cls.outputDir, + ) cls.rmg.execute(max_iterations=cls.max_iter) @@ -280,16 +311,18 @@ def test_save_seed_modulus(self): """ Test that saveSeedModulus argument from superminimal_input.py saved the correct number of seeds """ - path = os.path.join(self.outputDir, 'previous_seeds') - num_dir_actual = sum(os.path.isdir(os.path.join(path, i)) for i in os.listdir(path)) - num_dir_expected = self.max_iter//2 + 1 # +1 is for saving iteration 0 + path = os.path.join(self.outputDir, "previous_seeds") + num_dir_actual = sum( + os.path.isdir(os.path.join(path, i)) for i in os.listdir(path) + ) + num_dir_expected = self.max_iter // 2 + 1 # +1 is for saving iteration 0 self.assertEqual(num_dir_actual, num_dir_expected) def test_max_iter(self): """ Test the command line argument of -i """ - df = pd.read_excel(os.path.join(self.outputDir, 'statistics.xls')) + df = pd.read_excel(os.path.join(self.outputDir, "statistics.xls")) num_rows = df.shape[0] num_iter_actual = num_rows @@ -301,6 +334,7 @@ def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" # Reset module level database import rmgpy.data.rmg + rmgpy.data.rmg.database = None # Remove output directory @@ -308,7 +342,6 @@ def tearDownClass(cls): class TestProfiling(unittest.TestCase): - @classmethod def setUpClass(cls): """A function that is run ONCE before all unit tests in this class.""" @@ -316,30 +349,32 @@ def setUpClass(cls): cls.display_found = False try: - cls.display_found = bool(os.environ['DISPLAY']) + cls.display_found = bool(os.environ["DISPLAY"]) except KeyError: # This means that no display was found pass - cls.test_dir = os.path.join(originalPath, 'rmg', 'test_data', 'mainTest') + cls.test_dir = os.path.join(originalPath, "rmg", "test_data", "mainTest") - @patch('rmgpy.rmg.main.logging') + @patch("rmgpy.rmg.main.logging") def test_make_profile_graph(self, mock_logging): """ Test that `make_profile_graph` function behaves properly given the current display state """ - profile_file = os.path.join(self.test_dir, 'RMG.profile') + profile_file = os.path.join(self.test_dir, "RMG.profile") make_profile_graph(profile_file) if self.display_found: # Check that the profile graph was made - self.assertTrue(os.path.exists(os.path.join(self.test_dir, 'RMG.profile.dot.pdf'))) + self.assertTrue( + os.path.exists(os.path.join(self.test_dir, "RMG.profile.dot.pdf")) + ) else: # We can't test making a profile graph on this system, but at least test that this was recognized mock_logging.warning.assert_called_with( - 'Could not find a display, which is required in order to generate ' - 'the profile graph. This ' - 'is likely due to this job being run on a remote server without performing X11 forwarding ' - 'or running the job through a job manager like SLURM.\n\n The graph can be generated later ' - 'by running with the postprocessing flag `rmg.py -P input.py` from any directory/computer ' - 'where both the input file and RMG.profile file are located and a display is available.\n\n' - 'Note that if the postprocessing flag is specified, this will force the graph generation ' - 'regardless of if a display was found, which could cause this program to crash or freeze.' + "Could not find a display, which is required in order to generate " + "the profile graph. This " + "is likely due to this job being run on a remote server without performing X11 forwarding " + "or running the job through a job manager like SLURM.\n\n The graph can be generated later " + "by running with the postprocessing flag `rmg.py -P input.py` from any directory/computer " + "where both the input file and RMG.profile file are located and a display is available.\n\n" + "Note that if the postprocessing flag is specified, this will force the graph generation " + "regardless of if a display was found, which could cause this program to crash or freeze." ) @classmethod @@ -347,15 +382,15 @@ def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" if cls.display_found: # Remove output PDF - os.remove(os.path.join(cls.test_dir, 'RMG.profile.dot.pdf')) - os.remove(os.path.join(cls.test_dir, 'RMG.profile.dot')) - os.remove(os.path.join(cls.test_dir, 'RMG.profile.dot.ps2')) + os.remove(os.path.join(cls.test_dir, "RMG.profile.dot.pdf")) + os.remove(os.path.join(cls.test_dir, "RMG.profile.dot")) + os.remove(os.path.join(cls.test_dir, "RMG.profile.dot.ps2")) class TestCanteraOutput(unittest.TestCase): - def setUp(self): - self.chemkin_files = {"""ELEMENTS + self.chemkin_files = { + """ELEMENTS H D /2.014/ T /3.016/ @@ -395,7 +430,7 @@ def setUp(self): END """: True, -"""ELEMENTS + """ELEMENTS CI /13.003/ O OI /18.000/ @@ -431,7 +466,7 @@ def setUp(self): END """: False, -"""ELEMENTS + """ELEMENTS H D /2.014/ T /3.016/ @@ -466,15 +501,15 @@ def setUp(self): """: False, } self.rmg = RMG() - self.dir_name = 'temp_dir_for_testing' + self.dir_name = "temp_dir_for_testing" self.rmg.output_directory = os.path.join(originalPath, self.dir_name) - self.tran_dat = ''' + self.tran_dat = """ ! Species Shape LJ-depth LJ-diam DiplMom Polzblty RotRelaxNum Data ! Name Index epsilon/k_B sigma mu alpha Zrot Source ethane(1) 2 252.301 4.302 0.000 0.000 1.500 ! GRI-Mech CH3(4) 2 144.001 3.800 0.000 0.000 0.000 ! GRI-Mech - ''' + """ def tearDown(self): os.chdir(originalPath) @@ -485,7 +520,7 @@ def tearDown(self): except OSError: pass # go back to the main RMG-Py directory - os.chdir('..') + os.chdir("..") def test_chemkin_to_cantera_conversion(self): """ @@ -499,19 +534,23 @@ def test_chemkin_to_cantera_conversion(self): os.mkdir(self.dir_name) os.chdir(self.dir_name) - f = open('chem001.inp', 'w') + f = open("chem001.inp", "w") f.write(ck_input) f.close() - f = open('tran.dat', 'w') + f = open("tran.dat", "w") f.write(self.tran_dat) f.close() if works: - self.rmg.generate_cantera_files(os.path.join(os.getcwd(), 'chem001.inp')) + self.rmg.generate_cantera_files( + os.path.join(os.getcwd(), "chem001.inp") + ) else: with self.assertRaises(InputError): - self.rmg.generate_cantera_files(os.path.join(os.getcwd(), 'chem001.inp')) + self.rmg.generate_cantera_files( + os.path.join(os.getcwd(), "chem001.inp") + ) # clean up os.chdir(originalPath) diff --git a/test/rmgpy/rmg/modelTest.py b/test/rmgpy/rmg/modelTest.py index 78d8b8c2eb..8264ede04c 100644 --- a/test/rmgpy/rmg/modelTest.py +++ b/test/rmgpy/rmg/modelTest.py @@ -48,6 +48,7 @@ ################################################### + class TestSpecies(unittest.TestCase): """ Contains unit tests of the Species class. @@ -63,16 +64,16 @@ def setUpClass(cls): # load kinetic database and forbidden structures cls.rmg.database = RMGDatabase() - path = os.path.join(settings['database.directory']) + path = os.path.join(settings["database.directory"]) # forbidden structure loading - cls.rmg.database.load_thermo(os.path.join(path, 'thermo')) + cls.rmg.database.load_thermo(os.path.join(path, "thermo")) def test_get_thermo_data(self): """ Test that get_thermo_data method of Species works. """ - spc = Species().from_smiles('CCC') + spc = Species().from_smiles("CCC") self.assertFalse(spc.thermo) spc.get_thermo_data() @@ -92,6 +93,7 @@ def tear_down_class(cls): Reset the loaded database """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None @@ -105,20 +107,21 @@ def setUpClass(cls): """ A method that is run before each unit test in this class. """ - test_family = 'H_Abstraction' + test_family = "H_Abstraction" # set-up RMG object rmg = RMG() # load kinetic database and forbidden structures rmg.database = RMGDatabase() - path = os.path.join(settings['test_data.directory'], 'testing_database') + path = os.path.join(settings["test_data.directory"], "testing_database") # kinetics family loading - rmg.database.load_kinetics(os.path.join(path, 'kinetics'), - kinetics_families=[test_family], - reaction_libraries=[] - ) + rmg.database.load_kinetics( + os.path.join(path, "kinetics"), + kinetics_families=[test_family], + reaction_libraries=[], + ) # load empty forbidden structures to avoid any dependence on forbidden structures # for these tests for family in rmg.database.kinetics.families.values(): @@ -147,12 +150,16 @@ class item: cerm = CoreEdgeReactionModel() - spcA = Species().from_smiles('[OH]') - spcs = [Species().from_smiles('CC'), Species().from_smiles('[CH3]')] - spc_tuples = [((spcA, spc), ['H_Abstraction']) for spc in spcs] + spcA = Species().from_smiles("[OH]") + spcs = [Species().from_smiles("CC"), Species().from_smiles("[CH3]")] + spc_tuples = [((spcA, spc), ["H_Abstraction"]) for spc in spcs] rxns = list(itertools.chain.from_iterable(react(spc_tuples, procnum))) - rxns += list(itertools.chain.from_iterable(react([((spcs[0], spcs[1]), ['H_Abstraction'])], procnum))) + rxns += list( + itertools.chain.from_iterable( + react([((spcs[0], spcs[1]), ["H_Abstraction"])], procnum) + ) + ) for rxn in rxns: cerm.make_new_reaction(rxn, generate_thermo=False, generate_kinetics=False) @@ -181,7 +188,9 @@ class item: new_surface_species = [] obj = new_surface_reactions - cerm.add_new_surface_objects(obj, new_surface_species, new_surface_reactions, rsys) + cerm.add_new_surface_objects( + obj, new_surface_species, new_surface_reactions, rsys + ) empty = set() @@ -198,9 +207,11 @@ def test_make_new_species(self): # adding 3 unique species: cerm = CoreEdgeReactionModel() - spcs = [Species().from_smiles('[OH]'), - Species().from_smiles('CC'), - Species().from_smiles('[CH3]')] + spcs = [ + Species().from_smiles("[OH]"), + Species().from_smiles("CC"), + Species().from_smiles("[CH3]"), + ] for spc in spcs: cerm.make_new_species(spc) @@ -211,10 +222,12 @@ def test_make_new_species(self): # adding 3 unique, and 1 already existing species: cerm = CoreEdgeReactionModel() - spcs = [Species().from_smiles('[OH]'), - Species().from_smiles('CC'), - Species().from_smiles('[CH3]'), - Species().from_smiles('CC')] # duplicate species + spcs = [ + Species().from_smiles("[OH]"), + Species().from_smiles("CC"), + Species().from_smiles("[CH3]"), + Species().from_smiles("CC"), + ] # duplicate species for spc in spcs: cerm.make_new_species(spc) @@ -229,11 +242,14 @@ def test_append_unreactive_structure(self): cerm = CoreEdgeReactionModel() - spcs = [Species().from_smiles('CCO'), # a control species - Species().from_smiles('[N]=O'), - Species().from_adjacency_list("""1 O u1 p2 c0 {2,S} - 2 N u0 p2 c0 {1,S}"""), # a non-representative structure of '[N]=O' - ] + spcs = [ + Species().from_smiles("CCO"), # a control species + Species().from_smiles("[N]=O"), + Species().from_adjacency_list( + """1 O u1 p2 c0 {2,S} + 2 N u0 p2 c0 {1,S}""" + ), # a non-representative structure of '[N]=O' + ] for spc in spcs: cerm.make_new_species(spc) @@ -251,9 +267,9 @@ def test_make_new_reaction(self): """ procnum = 2 - spcA = Species().from_smiles('[OH]') - spcs = [Species().from_smiles('CC'), Species().from_smiles('[CH3]')] - spc_tuples = [((spcA, spc), ['H_Abstraction']) for spc in spcs] + spcA = Species().from_smiles("[OH]") + spcs = [Species().from_smiles("CC"), Species().from_smiles("[CH3]")] + spc_tuples = [((spcA, spc), ["H_Abstraction"]) for spc in spcs] rxns = list(itertools.chain.from_iterable(react(spc_tuples, procnum))) @@ -286,52 +302,205 @@ def test_thermo_filter_species(self): cerm = CoreEdgeReactionModel() - spcs = [Species().from_smiles('[OH]'), - Species().from_smiles('C'), - Species().from_smiles('[CH3]'), - Species().from_smiles('[CH2]'), - Species().from_smiles('O')] + spcs = [ + Species().from_smiles("[OH]"), + Species().from_smiles("C"), + Species().from_smiles("[CH3]"), + Species().from_smiles("[CH2]"), + Species().from_smiles("O"), + ] for spc in spcs: cerm.make_new_species(spc, label=spc.molecule[0].to_smiles()) spc.label = spc.molecule[0].to_smiles() - thermo_dict = {'[OH]': NASA(polynomials=[NASAPolynomial( - coeffs=[3.51457, 2.92787e-05, -5.32168e-07, 1.0195e-09, -3.85947e-13, 3414.25, 2.10435], - Tmin=(100, 'K'), Tmax=(1145.75, 'K')), NASAPolynomial( - coeffs=[3.07194, 0.000604014, -1.39775e-08, -2.13448e-11, 2.48067e-15, 3579.39, 4.578], - Tmin=(1145.75, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(28.3945, 'kJ/mol'), Cp0=(29.1007, 'J/(mol*K)'), CpInf=(37.4151, 'J/(mol*K)'), - label="""OH(D)""", comment="""Thermo library: primaryThermoLibrary"""), - 'C': NASA(polynomials=[NASAPolynomial( - coeffs=[4.20541, -0.00535551, 2.51121e-05, -2.1376e-08, 5.97513e-12, -10161.9, -0.921259], - Tmin=(100, 'K'), Tmax=(1084.13, 'K')), NASAPolynomial( - coeffs=[0.908298, 0.011454, -4.57171e-06, 8.29185e-10, -5.66309e-14, -9719.99, 13.9929], - Tmin=(1084.13, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(-84.435, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(108.088, 'J/(mol*K)'), - label="""CH4""", comment="""Thermo library: primaryThermoLibrary"""), - '[CH3]': NASA(polynomials=[NASAPolynomial( - coeffs=[3.67359, 0.00201095, 5.73022e-06, -6.87117e-09, 2.54386e-12, 16445, 1.60456], - Tmin=(200, 'K'), Tmax=(1000, 'K')), NASAPolynomial( - coeffs=[2.28572, 0.0072399, -2.98714e-06, 5.95685e-10, -4.67154e-14, 16775.6, 8.48007], - Tmin=(1000, 'K'), Tmax=(3500, 'K'))], Tmin=(200, 'K'), Tmax=(3500, 'K'), - E0=(136.42, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(83.1447, 'J/(mol*K)'), - label="""CH3""", comment="""Thermo library: GRI-Mech3.0"""), - '[CH2]': NASA(polynomials=[NASAPolynomial( - coeffs=[4.01192, -0.000154978, 3.26298e-06, -2.40422e-09, 5.69497e-13, 45867.7, 0.533201], - Tmin=(100, 'K'), Tmax=(1104.62, 'K')), NASAPolynomial( - coeffs=[3.14983, 0.00296674, -9.76056e-07, 1.54115e-10, -9.50338e-15, 46058.1, 4.77808], - Tmin=(1104.62, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(381.37, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(58.2013, 'J/(mol*K)'), - label="""CH2(T)""", comment="""Thermo library: primaryThermoLibrary"""), - 'O': NASA(polynomials=[NASAPolynomial( - coeffs=[4.05764, -0.000787936, 2.90877e-06, -1.47519e-09, 2.12842e-13, -30281.6, -0.311364], - Tmin=(100, 'K'), Tmax=(1130.24, 'K')), NASAPolynomial( - coeffs=[2.84325, 0.00275109, -7.81031e-07, 1.07244e-10, -5.79392e-15, -29958.6, 5.91042], - Tmin=(1130.24, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(-251.755, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(58.2013, 'J/(mol*K)'), - label="""H2O""", comment="""Thermo library: primaryThermoLibrary"""), - } + thermo_dict = { + "[OH]": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.51457, + 2.92787e-05, + -5.32168e-07, + 1.0195e-09, + -3.85947e-13, + 3414.25, + 2.10435, + ], + Tmin=(100, "K"), + Tmax=(1145.75, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.07194, + 0.000604014, + -1.39775e-08, + -2.13448e-11, + 2.48067e-15, + 3579.39, + 4.578, + ], + Tmin=(1145.75, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(28.3945, "kJ/mol"), + Cp0=(29.1007, "J/(mol*K)"), + CpInf=(37.4151, "J/(mol*K)"), + label="""OH(D)""", + comment="""Thermo library: primaryThermoLibrary""", + ), + "C": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.20541, + -0.00535551, + 2.51121e-05, + -2.1376e-08, + 5.97513e-12, + -10161.9, + -0.921259, + ], + Tmin=(100, "K"), + Tmax=(1084.13, "K"), + ), + NASAPolynomial( + coeffs=[ + 0.908298, + 0.011454, + -4.57171e-06, + 8.29185e-10, + -5.66309e-14, + -9719.99, + 13.9929, + ], + Tmin=(1084.13, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(-84.435, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(108.088, "J/(mol*K)"), + label="""CH4""", + comment="""Thermo library: primaryThermoLibrary""", + ), + "[CH3]": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.67359, + 0.00201095, + 5.73022e-06, + -6.87117e-09, + 2.54386e-12, + 16445, + 1.60456, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.28572, + 0.0072399, + -2.98714e-06, + 5.95685e-10, + -4.67154e-14, + 16775.6, + 8.48007, + ], + Tmin=(1000, "K"), + Tmax=(3500, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(3500, "K"), + E0=(136.42, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(83.1447, "J/(mol*K)"), + label="""CH3""", + comment="""Thermo library: GRI-Mech3.0""", + ), + "[CH2]": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.01192, + -0.000154978, + 3.26298e-06, + -2.40422e-09, + 5.69497e-13, + 45867.7, + 0.533201, + ], + Tmin=(100, "K"), + Tmax=(1104.62, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.14983, + 0.00296674, + -9.76056e-07, + 1.54115e-10, + -9.50338e-15, + 46058.1, + 4.77808, + ], + Tmin=(1104.62, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(381.37, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(58.2013, "J/(mol*K)"), + label="""CH2(T)""", + comment="""Thermo library: primaryThermoLibrary""", + ), + "O": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.05764, + -0.000787936, + 2.90877e-06, + -1.47519e-09, + 2.12842e-13, + -30281.6, + -0.311364, + ], + Tmin=(100, "K"), + Tmax=(1130.24, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.84325, + 0.00275109, + -7.81031e-07, + 1.07244e-10, + -5.79392e-15, + -29958.6, + 5.91042, + ], + Tmin=(1130.24, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(-251.755, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(58.2013, "J/(mol*K)"), + label="""H2O""", + comment="""Thermo library: primaryThermoLibrary""", + ), + } for spc in spcs[:3]: cerm.add_species_to_core(spc) @@ -341,38 +510,52 @@ def test_thermo_filter_species(self): products=[spcs[-1], spcs[-2]], degeneracy=1, reversible=True, - family='H_Abstraction', + family="H_Abstraction", ) - cerm.process_new_reactions(new_reactions=[reaction], new_species=[], generate_kinetics=False, generate_thermo=False) # adds CH2 and O to edge + cerm.process_new_reactions( + new_reactions=[reaction], + new_species=[], + generate_kinetics=False, + generate_thermo=False, + ) # adds CH2 and O to edge for spc in cerm.core.species + cerm.edge.species: spc.thermo = thermo_dict[spc.molecule[0].to_smiles()] # assign thermo - cerm.set_thermodynamic_filtering_parameters(Tmax=300.0, - thermo_tol_keep_spc_in_edge=1000.0, - min_core_size_for_prune=0, - maximum_edge_species=1, - reaction_systems=[]) + cerm.set_thermodynamic_filtering_parameters( + Tmax=300.0, + thermo_tol_keep_spc_in_edge=1000.0, + min_core_size_for_prune=0, + maximum_edge_species=1, + reaction_systems=[], + ) cerm.thermo_filter_species( - cerm.edge.species) # should not do anythinb because toleranceThermoKeepSpeciesInEdge is high + cerm.edge.species + ) # should not do anythinb because toleranceThermoKeepSpeciesInEdge is high difset = set([x.molecule[0].to_smiles() for x in cerm.edge.species]) - set( - [x.molecule[0].to_smiles() for x in cerm.core.species]) + [x.molecule[0].to_smiles() for x in cerm.core.species] + ) self.assertEquals(len(difset), 2) # no change in edge - cerm.set_thermodynamic_filtering_parameters(Tmax=300.0, - thermo_tol_keep_spc_in_edge=0.0, - min_core_size_for_prune=0, - maximum_edge_species=1, - reaction_systems=[]) + cerm.set_thermodynamic_filtering_parameters( + Tmax=300.0, + thermo_tol_keep_spc_in_edge=0.0, + min_core_size_for_prune=0, + maximum_edge_species=1, + reaction_systems=[], + ) - cerm.thermo_filter_species(cerm.edge.species) # should remove stuff since CH2 and O have high thermo + cerm.thermo_filter_species( + cerm.edge.species + ) # should remove stuff since CH2 and O have high thermo difset = set([x.molecule[0].to_smiles() for x in cerm.edge.species]) - set( - [x.molecule[0].to_smiles() for x in cerm.core.species]) + [x.molecule[0].to_smiles() for x in cerm.core.species] + ) self.assertLess(len(difset), 2) # edge is smaller @@ -383,84 +566,252 @@ def test_thermo_filter_down(self): """ cerm = CoreEdgeReactionModel() - spcs = [Species().from_smiles('[OH]'), - Species().from_smiles('C'), - Species().from_smiles('[CH3]'), - Species().from_smiles('[CH2]'), - Species().from_smiles('O')] + spcs = [ + Species().from_smiles("[OH]"), + Species().from_smiles("C"), + Species().from_smiles("[CH3]"), + Species().from_smiles("[CH2]"), + Species().from_smiles("O"), + ] for spc in spcs: cerm.make_new_species(spc, label=spc.molecule[0].to_smiles()) spc.label = spc.molecule[0].to_smiles() - thermo_dict = {'[OH]': NASA(polynomials=[NASAPolynomial( - coeffs=[3.51457, 2.92787e-05, -5.32168e-07, 1.0195e-09, -3.85947e-13, 3414.25, 2.10435], - Tmin=(100, 'K'), Tmax=(1145.75, 'K')), NASAPolynomial( - coeffs=[3.07194, 0.000604014, -1.39775e-08, -2.13448e-11, 2.48067e-15, 3579.39, 4.578], - Tmin=(1145.75, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(28.3945, 'kJ/mol'), Cp0=(29.1007, 'J/(mol*K)'), CpInf=(37.4151, 'J/(mol*K)'), - label="""OH(D)""", comment="""Thermo library: primaryThermoLibrary"""), - 'C': NASA(polynomials=[NASAPolynomial( - coeffs=[4.20541, -0.00535551, 2.51121e-05, -2.1376e-08, 5.97513e-12, -10161.9, -0.921259], - Tmin=(100, 'K'), Tmax=(1084.13, 'K')), NASAPolynomial( - coeffs=[0.908298, 0.011454, -4.57171e-06, 8.29185e-10, -5.66309e-14, -9719.99, 13.9929], - Tmin=(1084.13, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(-84.435, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(108.088, 'J/(mol*K)'), - label="""CH4""", comment="""Thermo library: primaryThermoLibrary"""), - '[CH3]': NASA(polynomials=[NASAPolynomial( - coeffs=[3.67359, 0.00201095, 5.73022e-06, -6.87117e-09, 2.54386e-12, 16445, 1.60456], - Tmin=(200, 'K'), Tmax=(1000, 'K')), NASAPolynomial( - coeffs=[2.28572, 0.0072399, -2.98714e-06, 5.95685e-10, -4.67154e-14, 16775.6, 8.48007], - Tmin=(1000, 'K'), Tmax=(3500, 'K'))], Tmin=(200, 'K'), Tmax=(3500, 'K'), - E0=(136.42, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(83.1447, 'J/(mol*K)'), - label="""CH3""", comment="""Thermo library: GRI-Mech3.0"""), - '[CH2]': NASA(polynomials=[NASAPolynomial( - coeffs=[4.01192, -0.000154978, 3.26298e-06, -2.40422e-09, 5.69497e-13, 45867.7, 0.533201], - Tmin=(100, 'K'), Tmax=(1104.62, 'K')), NASAPolynomial( - coeffs=[3.14983, 0.00296674, -9.76056e-07, 1.54115e-10, -9.50338e-15, 46058.1, 4.77808], - Tmin=(1104.62, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(381.37, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(58.2013, 'J/(mol*K)'), - label="""CH2(T)""", comment="""Thermo library: primaryThermoLibrary"""), - 'O': NASA(polynomials=[NASAPolynomial( - coeffs=[4.05764, -0.000787936, 2.90877e-06, -1.47519e-09, 2.12842e-13, -30281.6, -0.311364], - Tmin=(100, 'K'), Tmax=(1130.24, 'K')), NASAPolynomial( - coeffs=[2.84325, 0.00275109, -7.81031e-07, 1.07244e-10, -5.79392e-15, -29958.6, 5.91042], - Tmin=(1130.24, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - E0=(-251.755, 'kJ/mol'), Cp0=(33.2579, 'J/(mol*K)'), CpInf=(58.2013, 'J/(mol*K)'), - label="""H2O""", comment="""Thermo library: primaryThermoLibrary"""), - } + thermo_dict = { + "[OH]": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.51457, + 2.92787e-05, + -5.32168e-07, + 1.0195e-09, + -3.85947e-13, + 3414.25, + 2.10435, + ], + Tmin=(100, "K"), + Tmax=(1145.75, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.07194, + 0.000604014, + -1.39775e-08, + -2.13448e-11, + 2.48067e-15, + 3579.39, + 4.578, + ], + Tmin=(1145.75, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(28.3945, "kJ/mol"), + Cp0=(29.1007, "J/(mol*K)"), + CpInf=(37.4151, "J/(mol*K)"), + label="""OH(D)""", + comment="""Thermo library: primaryThermoLibrary""", + ), + "C": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.20541, + -0.00535551, + 2.51121e-05, + -2.1376e-08, + 5.97513e-12, + -10161.9, + -0.921259, + ], + Tmin=(100, "K"), + Tmax=(1084.13, "K"), + ), + NASAPolynomial( + coeffs=[ + 0.908298, + 0.011454, + -4.57171e-06, + 8.29185e-10, + -5.66309e-14, + -9719.99, + 13.9929, + ], + Tmin=(1084.13, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(-84.435, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(108.088, "J/(mol*K)"), + label="""CH4""", + comment="""Thermo library: primaryThermoLibrary""", + ), + "[CH3]": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.67359, + 0.00201095, + 5.73022e-06, + -6.87117e-09, + 2.54386e-12, + 16445, + 1.60456, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.28572, + 0.0072399, + -2.98714e-06, + 5.95685e-10, + -4.67154e-14, + 16775.6, + 8.48007, + ], + Tmin=(1000, "K"), + Tmax=(3500, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(3500, "K"), + E0=(136.42, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(83.1447, "J/(mol*K)"), + label="""CH3""", + comment="""Thermo library: GRI-Mech3.0""", + ), + "[CH2]": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.01192, + -0.000154978, + 3.26298e-06, + -2.40422e-09, + 5.69497e-13, + 45867.7, + 0.533201, + ], + Tmin=(100, "K"), + Tmax=(1104.62, "K"), + ), + NASAPolynomial( + coeffs=[ + 3.14983, + 0.00296674, + -9.76056e-07, + 1.54115e-10, + -9.50338e-15, + 46058.1, + 4.77808, + ], + Tmin=(1104.62, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(381.37, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(58.2013, "J/(mol*K)"), + label="""CH2(T)""", + comment="""Thermo library: primaryThermoLibrary""", + ), + "O": NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 4.05764, + -0.000787936, + 2.90877e-06, + -1.47519e-09, + 2.12842e-13, + -30281.6, + -0.311364, + ], + Tmin=(100, "K"), + Tmax=(1130.24, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.84325, + 0.00275109, + -7.81031e-07, + 1.07244e-10, + -5.79392e-15, + -29958.6, + 5.91042, + ], + Tmin=(1130.24, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(-251.755, "kJ/mol"), + Cp0=(33.2579, "J/(mol*K)"), + CpInf=(58.2013, "J/(mol*K)"), + label="""H2O""", + comment="""Thermo library: primaryThermoLibrary""", + ), + } for spc in spcs[:3]: cerm.add_species_to_core(spc) - reaction = TemplateReaction(reactants=[spcs[0], spcs[2]], - products=[spcs[-1], spcs[-2]], - degeneracy=1, - reversible=True, - family='H_Abstraction') + reaction = TemplateReaction( + reactants=[spcs[0], spcs[2]], + products=[spcs[-1], spcs[-2]], + degeneracy=1, + reversible=True, + family="H_Abstraction", + ) - cerm.process_new_reactions(new_reactions=[reaction], new_species=[], generate_thermo=False, generate_kinetics=False) # add CH2 and O to edge + cerm.process_new_reactions( + new_reactions=[reaction], + new_species=[], + generate_thermo=False, + generate_kinetics=False, + ) # add CH2 and O to edge for spc in cerm.core.species + cerm.edge.species: spc.thermo = thermo_dict[spc.molecule[0].to_smiles()] # assign thermo - cerm.set_thermodynamic_filtering_parameters(Tmax=300.0, - thermo_tol_keep_spc_in_edge=1000.0, - min_core_size_for_prune=0, - maximum_edge_species=1, - reaction_systems=[]) + cerm.set_thermodynamic_filtering_parameters( + Tmax=300.0, + thermo_tol_keep_spc_in_edge=1000.0, + min_core_size_for_prune=0, + maximum_edge_species=1, + reaction_systems=[], + ) difset = set([x.molecule[0].to_smiles() for x in cerm.edge.species]) - set( - [x.molecule[0].to_smiles() for x in cerm.core.species]) + [x.molecule[0].to_smiles() for x in cerm.core.species] + ) - self.assertEquals(len(difset), 2) # no change because toleranceThermoKeepSpeciesInEdge is high + self.assertEquals( + len(difset), 2 + ) # no change because toleranceThermoKeepSpeciesInEdge is high cerm.thermo_filter_down(maximum_edge_species=1) difset = set([x.molecule[0].to_smiles() for x in cerm.edge.species]) - set( - [x.molecule[0].to_smiles() for x in cerm.core.species]) + [x.molecule[0].to_smiles() for x in cerm.core.species] + ) - self.assertEquals(len(difset), 1) # should be one because we thermo filtered down to one edge species + self.assertEquals( + len(difset), 1 + ) # should be one because we thermo filtered down to one edge species def test_check_for_existing_reaction_eliminates_identical_reactions(self): """ @@ -469,14 +820,14 @@ def test_check_for_existing_reaction_eliminates_identical_reactions(self): cerm = CoreEdgeReactionModel() # make species' objects - spcA = Species().from_smiles('[H]') - spcB = Species().from_smiles('C=C[CH2]C') - spcC = Species().from_smiles('C=C=CC') - spcD = Species().from_smiles('[H][H]') - spcA.label = '[H]' - spcB.label = 'C=C[CH2]C' - spcC.label = 'C=C=CC' - spcD.label = '[H][H]' + spcA = Species().from_smiles("[H]") + spcB = Species().from_smiles("C=C[CH2]C") + spcC = Species().from_smiles("C=C=CC") + spcD = Species().from_smiles("[H][H]") + spcA.label = "[H]" + spcB.label = "C=C[CH2]C" + spcC.label = "C=C=CC" + spcD.label = "[H][H]" spcB.generate_resonance_structures() cerm.add_species_to_core(spcA) @@ -484,39 +835,47 @@ def test_check_for_existing_reaction_eliminates_identical_reactions(self): cerm.add_species_to_core(spcC) cerm.add_species_to_core(spcD) - reaction_in_model = TemplateReaction(reactants=[spcA, spcB], - products=[spcC, spcD], - family='H_Abstraction', - template=['Csd', 'H']) + reaction_in_model = TemplateReaction( + reactants=[spcA, spcB], + products=[spcC, spcD], + family="H_Abstraction", + template=["Csd", "H"], + ) reaction_in_model.reactants.sort() reaction_in_model.products.sort() - reaction_to_add = TemplateReaction(reactants=[spcA, spcB], - products=[spcC, spcD], - family='H_Abstraction', - template=['Csd', 'H']) + reaction_to_add = TemplateReaction( + reactants=[spcA, spcB], + products=[spcC, spcD], + family="H_Abstraction", + template=["Csd", "H"], + ) cerm.add_reaction_to_core(reaction_in_model) cerm.register_reaction(reaction_in_model) found, rxn = cerm.check_for_existing_reaction(reaction_to_add) - self.assertTrue(found, 'check_for_existing_reaction failed to identify existing reaction') + self.assertTrue( + found, "check_for_existing_reaction failed to identify existing reaction" + ) - def test_check_for_existing_reaction_keeps_identical_reactions_with_duplicate_flag(self): + def test_check_for_existing_reaction_keeps_identical_reactions_with_duplicate_flag( + self, + ): """ Test that check_for_existing_reaction keeps reactions with different templates and duplicate=True. """ cerm = CoreEdgeReactionModel() # make species' objects - spcA = Species().from_smiles('[H]') - spcB = Species().from_smiles('C=C[CH2]C') - spcC = Species().from_smiles('C=C=CC') - spcD = Species().from_smiles('[H][H]') - spcA.label = '[H]' - spcB.label = 'C=C[CH2]C' - spcC.label = 'C=C=CC' - spcD.label = '[H][H]' + spcA = Species().from_smiles("[H]") + spcB = Species().from_smiles("C=C[CH2]C") + spcC = Species().from_smiles("C=C=CC") + spcD = Species().from_smiles("[H][H]") + spcA.label = "[H]" + spcB.label = "C=C[CH2]C" + spcC.label = "C=C=CC" + spcD.label = "[H][H]" spcB.generate_resonance_structures() cerm.add_species_to_core(spcA) @@ -524,41 +883,50 @@ def test_check_for_existing_reaction_keeps_identical_reactions_with_duplicate_fl cerm.add_species_to_core(spcC) cerm.add_species_to_core(spcD) - reaction_in_model = TemplateReaction(reactants=[spcA, spcB], - products=[spcC, spcD], - family='H_Abstraction', - template=['Csd', 'H'], - duplicate=True) + reaction_in_model = TemplateReaction( + reactants=[spcA, spcB], + products=[spcC, spcD], + family="H_Abstraction", + template=["Csd", "H"], + duplicate=True, + ) reaction_in_model.reactants.sort() reaction_in_model.products.sort() - reaction_to_add = TemplateReaction(reactants=[spcA, spcB], - products=[spcC, spcD], - family='H_Abstraction', - template=['Cs12345', 'H'], - duplicate=True) + reaction_to_add = TemplateReaction( + reactants=[spcA, spcB], + products=[spcC, spcD], + family="H_Abstraction", + template=["Cs12345", "H"], + duplicate=True, + ) cerm.add_reaction_to_core(reaction_in_model) cerm.register_reaction(reaction_in_model) found, rxn = cerm.check_for_existing_reaction(reaction_to_add) - self.assertFalse(found, 'check_for_existing_reaction failed to identify duplicate template reactions') + self.assertFalse( + found, + "check_for_existing_reaction failed to identify duplicate template reactions", + ) - def test_check_for_existing_reaction_eliminates_identical_reactions_without_duplicate_flag(self): + def test_check_for_existing_reaction_eliminates_identical_reactions_without_duplicate_flag( + self, + ): """ Test that check_for_existing_reaction eliminates reactions with different templates and duplicate=false """ cerm = CoreEdgeReactionModel() # make species' objects - spcA = Species().from_smiles('[H]') - spcB = Species().from_smiles('C=C[CH2]C') - spcC = Species().from_smiles('C=C=CC') - spcD = Species().from_smiles('[H][H]') - spcA.label = '[H]' - spcB.label = 'C=C[CH2]C' - spcC.label = 'C=C=CC' - spcD.label = '[H][H]' + spcA = Species().from_smiles("[H]") + spcB = Species().from_smiles("C=C[CH2]C") + spcC = Species().from_smiles("C=C=CC") + spcD = Species().from_smiles("[H][H]") + spcA.label = "[H]" + spcB.label = "C=C[CH2]C" + spcC.label = "C=C=CC" + spcD.label = "[H][H]" spcB.generate_resonance_structures() cerm.add_species_to_core(spcA) @@ -566,27 +934,36 @@ def test_check_for_existing_reaction_eliminates_identical_reactions_without_dupl cerm.add_species_to_core(spcC) cerm.add_species_to_core(spcD) - reaction_in_model = TemplateReaction(reactants=[spcA, spcB], - products=[spcC, spcD], - family='H_Abstraction', - template=['Csd', 'H'], - duplicate=False) + reaction_in_model = TemplateReaction( + reactants=[spcA, spcB], + products=[spcC, spcD], + family="H_Abstraction", + template=["Csd", "H"], + duplicate=False, + ) reaction_in_model.reactants.sort() reaction_in_model.products.sort() - reaction_to_add = TemplateReaction(reactants=[spcA, spcB], - products=[spcC, spcD], - family='H_Abstraction', - template=['Cs12345', 'H'], - duplicate=False) + reaction_to_add = TemplateReaction( + reactants=[spcA, spcB], + products=[spcC, spcD], + family="H_Abstraction", + template=["Cs12345", "H"], + duplicate=False, + ) cerm.add_reaction_to_core(reaction_in_model) cerm.register_reaction(reaction_in_model) found, rxn = cerm.check_for_existing_reaction(reaction_to_add) - self.assertTrue(found, 'check_for_existing_reaction failed to eliminate reactions without duplicate tag') + self.assertTrue( + found, + "check_for_existing_reaction failed to eliminate reactions without duplicate tag", + ) - def test_check_for_existing_reaction_removes_duplicates_in_opposite_directions(self): + def test_check_for_existing_reaction_removes_duplicates_in_opposite_directions( + self, + ): """ Test that check_for_existing_reaction removes duplicate reverse reactions """ @@ -597,34 +974,40 @@ def test_check_for_existing_reaction_removes_duplicates_in_opposite_directions(s s2 = Species().from_smiles("CC") s3 = Species().from_smiles("[H][H]") s4 = Species().from_smiles("C[CH2]") - s1.label = 'H' - s2.label = 'CC' - s3.label = 'HH' - s4.label = 'C[CH2]' - - rxn_f = TemplateReaction(reactants=[s1, s2], - products=[s3, s4], - template=['C/H3/Cs/H3', 'H_rad'], - degeneracy=6, - family='H_Abstraction', - reverse=TemplateReaction(reactants=[s3, s4], - products=[s1, s2], - template=['H2', 'C_rad/H2/Cs/H3'], - degeneracy=2, - family='H_Abstraction') - ) - - rxn_r = TemplateReaction(reactants=[s3, s4], - products=[s1, s2], - template=['H2', 'C_rad/H2/Cs/H3'], - degeneracy=2, - family='H_Abstraction', - reverse=TemplateReaction(reactants=[s1, s2], - products=[s3, s4], - template=['C/H3/Cs/H3', 'H_rad'], - degeneracy=6, - family='H_Abstraction') - ) + s1.label = "H" + s2.label = "CC" + s3.label = "HH" + s4.label = "C[CH2]" + + rxn_f = TemplateReaction( + reactants=[s1, s2], + products=[s3, s4], + template=["C/H3/Cs/H3", "H_rad"], + degeneracy=6, + family="H_Abstraction", + reverse=TemplateReaction( + reactants=[s3, s4], + products=[s1, s2], + template=["H2", "C_rad/H2/Cs/H3"], + degeneracy=2, + family="H_Abstraction", + ), + ) + + rxn_r = TemplateReaction( + reactants=[s3, s4], + products=[s1, s2], + template=["H2", "C_rad/H2/Cs/H3"], + degeneracy=2, + family="H_Abstraction", + reverse=TemplateReaction( + reactants=[s1, s2], + products=[s3, s4], + template=["C/H3/Cs/H3", "H_rad"], + degeneracy=6, + family="H_Abstraction", + ), + ) rxn_f.reactants.sort() rxn_f.products.sort() @@ -633,11 +1016,18 @@ def test_check_for_existing_reaction_removes_duplicates_in_opposite_directions(s cerm.register_reaction(rxn_f) reactions = cerm.search_retrieve_reactions(rxn_r) - self.assertEqual(1, len(reactions), 'cerm.search_retrieve_reactions could not identify reverse reaction') + self.assertEqual( + 1, + len(reactions), + "cerm.search_retrieve_reactions could not identify reverse reaction", + ) found, rxn = cerm.check_for_existing_reaction(rxn_r) - self.assertTrue(found, 'check_for_existing_reaction failed to identify existing reaction in the reverse direction') + self.assertTrue( + found, + "check_for_existing_reaction failed to identify existing reaction in the reverse direction", + ) self.assertEqual(rxn, rxn_f) @classmethod @@ -646,10 +1036,11 @@ def tearDownClass(cls): Reset the loaded database """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None -@attr('functional') +@attr("functional") class TestEnlarge(unittest.TestCase): """ Contains unit tests for CoreEdgeReactionModel.enlarge. @@ -660,23 +1051,24 @@ def setUpClass(cls): """ A method that is run ONCE before all unit tests in this class. """ - cls.dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), 'temp')) - os.makedirs(os.path.join(cls.dirname, 'pdep')) + cls.dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), "temp")) + os.makedirs(os.path.join(cls.dirname, "pdep")) - test_family = 'R_Recombination' + test_family = "R_Recombination" cls.rmg = RMG() from rmgpy.rmg.input import set_global_rmg, pressure_dependence + set_global_rmg(cls.rmg) pressure_dependence( - method='modified strong collision', - maximumGrainSize=(0.5, 'kcal/mol'), + method="modified strong collision", + maximumGrainSize=(0.5, "kcal/mol"), minimumNumberOfGrains=250, - temperatures=(300, 2100, 'K', 8), - pressures=(0.1, 100, 'bar', 5), - interpolation=('Chebyshev', 6, 4), + temperatures=(300, 2100, "K", 8), + pressures=(0.1, 100, "bar", 5), + interpolation=("Chebyshev", 6, 4), maximumAtoms=10, ) @@ -684,8 +1076,8 @@ def setUpClass(cls): cls.rmg.database = RMGDatabase() cls.rmg.database.load( - path=settings['database.directory'], - thermo_libraries=['primaryThermoLibrary'], + path=settings["database.directory"], + thermo_libraries=["primaryThermoLibrary"], kinetics_families=[test_family], reaction_libraries=[], ) @@ -695,8 +1087,10 @@ def setUpClass(cls): def test_enlarge_1_add_nonreactive_species(self): """Test that we can add a nonreactive species to CERM""" - m0 = Molecule(smiles='[He]') - spc0 = self.rmg.reaction_model.make_new_species(m0, label='He', reactive=False)[0] + m0 = Molecule(smiles="[He]") + spc0 = self.rmg.reaction_model.make_new_species(m0, label="He", reactive=False)[ + 0 + ] self.rmg.reaction_model.enlarge(spc0) self.assertEqual(len(self.rmg.reaction_model.core.species), 1) @@ -704,15 +1098,15 @@ def test_enlarge_1_add_nonreactive_species(self): def test_enlarge_2_add_reactive_species(self): """Test that we can add reactive species to CERM""" - m1 = Molecule(smiles='CC') - spc1 = self.rmg.reaction_model.make_new_species(m1, label='C2H4')[0] + m1 = Molecule(smiles="CC") + spc1 = self.rmg.reaction_model.make_new_species(m1, label="C2H4")[0] self.rmg.reaction_model.enlarge(spc1) self.assertEqual(len(self.rmg.reaction_model.core.species), 2) self.assertTrue(self.rmg.reaction_model.core.species[1].reactive) - m2 = Molecule(smiles='[CH3]') - spc2 = self.rmg.reaction_model.make_new_species(m2, label='CH3')[0] + m2 = Molecule(smiles="[CH3]") + spc2 = self.rmg.reaction_model.make_new_species(m2, label="CH3")[0] self.rmg.reaction_model.enlarge(spc2) self.assertEqual(len(self.rmg.reaction_model.core.species), 3) @@ -728,28 +1122,32 @@ def test_enlarge_3_react_edge(self): self.assertEqual(len(self.rmg.reaction_model.edge.species), 2) smiles = set([spc.smiles for spc in self.rmg.reaction_model.edge.species]) - self.assertEqual(smiles, {'[H]', 'C[CH2]'}) + self.assertEqual(smiles, {"[H]", "C[CH2]"}) # We expect either C-C bond scission to be in the core and C-H bond scission to be in the edge self.assertEqual(len(self.rmg.reaction_model.core.reactions), 1) rxn = self.rmg.reaction_model.core.reactions[0] smiles = set([spc.smiles for spc in rxn.reactants + rxn.products]) - self.assertEqual(smiles, {'CC', '[CH3]'}) + self.assertEqual(smiles, {"CC", "[CH3]"}) self.assertEqual(len(self.rmg.reaction_model.edge.reactions), 1) rxn = self.rmg.reaction_model.edge.reactions[0] smiles = set([spc.smiles for spc in rxn.reactants + rxn.products]) - self.assertEqual(smiles, {'CC', 'C[CH2]', '[H]'}) + self.assertEqual(smiles, {"CC", "C[CH2]", "[H]"}) def test_enlarge_4_create_pdep_network(self): """Test that enlarge properly creates a pdep network""" self.assertEqual(len(self.rmg.reaction_model.network_list), 1) self.assertEqual(len(self.rmg.reaction_model.network_list[0].source), 1) - self.assertEqual(self.rmg.reaction_model.network_list[0].source[0].label, 'C2H4') + self.assertEqual( + self.rmg.reaction_model.network_list[0].source[0].label, "C2H4" + ) self.assertEqual(len(self.rmg.reaction_model.network_dict), 1) self.assertEqual(len(list(self.rmg.reaction_model.network_dict.keys())[0]), 1) - self.assertEqual(list(self.rmg.reaction_model.network_dict.keys())[0][0].label, 'C2H4') + self.assertEqual( + list(self.rmg.reaction_model.network_dict.keys())[0][0].label, "C2H4" + ) @classmethod def tearDownClass(cls): @@ -759,12 +1157,15 @@ def tearDownClass(cls): Clear global variables and clean up files. """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None import rmgpy.rmg.input + rmgpy.rmg.input.rmg = None import shutil + shutil.rmtree(cls.dirname) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/test/rmgpy/rmg/outputTest.py b/test/rmgpy/rmg/outputTest.py index b130d42fee..8a34430911 100644 --- a/test/rmgpy/rmg/outputTest.py +++ b/test/rmgpy/rmg/outputTest.py @@ -38,17 +38,17 @@ ################################################### -class TestOutput(unittest.TestCase): +class TestOutput(unittest.TestCase): def test_save_output_html(self): """ This example is to test if an HTML file can be generated for the provided chemkin model. """ - folder = os.path.join(os.path.dirname(__file__), 'test_data/saveOutputHTML/') + folder = os.path.join(os.path.dirname(__file__), "test_data/saveOutputHTML/") - chemkin_path = os.path.join(folder, 'eg6', 'chem_annotated.inp') - dictionary_path = os.path.join(folder, 'eg6', 'species_dictionary.txt') + chemkin_path = os.path.join(folder, "eg6", "chem_annotated.inp") + dictionary_path = os.path.join(folder, "eg6", "species_dictionary.txt") # load_chemkin_file species, reactions = load_chemkin_file(chemkin_path, dictionary_path) @@ -57,9 +57,9 @@ def test_save_output_html(self): core = ReactionModel(species, reactions) cerm = CoreEdgeReactionModel(core) - out = os.path.join(folder, 'output.html') + out = os.path.join(folder, "output.html") save_output_html(out, cerm) self.assertTrue(os.path.isfile(out)) os.remove(out) - shutil.rmtree(os.path.join(folder, 'species')) + shutil.rmtree(os.path.join(folder, "species")) diff --git a/test/rmgpy/rmg/pdepTest.py b/test/rmgpy/rmg/pdepTest.py index 82f748969e..33c6e87212 100644 --- a/test/rmgpy/rmg/pdepTest.py +++ b/test/rmgpy/rmg/pdepTest.py @@ -48,130 +48,311 @@ ################################################### -class TestPdep(unittest.TestCase): +class TestPdep(unittest.TestCase): def setUp(self): """ A method that is run before each unit test in this class. """ self.nC4H10O = Species( - label='n-C4H10O', + label="n-C4H10O", conformer=Conformer( - E0=(-317.807, 'kJ/mol'), + E0=(-317.807, "kJ/mol"), modes=[ IdealGasTranslation(mass=(74.07, "g/mol")), - NonlinearRotor(inertia=([41.5091, 215.751, 233.258], "amu*angstrom^2"), symmetry=1), - HarmonicOscillator(frequencies=( - [240.915, 341.933, 500.066, 728.41, 809.987, 833.93, 926.308, 948.571, 1009.3, 1031.46, 1076, - 1118.4, 1184.66, 1251.36, 1314.36, 1321.42, 1381.17, 1396.5, 1400.54, 1448.08, 1480.18, 1485.34, - 1492.24, 1494.99, 1586.16, 2949.01, 2963.03, 2986.19, 2988.1, 2995.27, 3026.03, 3049.05, 3053.47, - 3054.83, 3778.88], "cm^-1")), - HinderedRotor(inertia=(0.854054, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.25183, -1.37378, -2.8379, 0.0305112, 0.0028088], - [0.458307, 0.542121, -0.599366, -0.00283925, 0.0398529]], "kJ/mol")), - HinderedRotor(inertia=(8.79408, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.26871, -0.59533, -8.15002, -0.294325, -0.145357], - [1.1884, 0.99479, -0.940416, -0.186538, 0.0309834]], "kJ/mol")), - HinderedRotor(inertia=(7.88153, "amu*angstrom^2"), symmetry=1, fourier=( - [[-4.67373, 2.03735, -6.25993, -0.27325, -0.048748], - [-0.982845, 1.76637, -1.57619, 0.474364, -0.000681718]], "kJ/mol")), - HinderedRotor(inertia=(2.81525, "amu*angstrom^2"), symmetry=3, barrier=(2.96807, "kcal/mol")), + NonlinearRotor( + inertia=([41.5091, 215.751, 233.258], "amu*angstrom^2"), + symmetry=1, + ), + HarmonicOscillator( + frequencies=( + [ + 240.915, + 341.933, + 500.066, + 728.41, + 809.987, + 833.93, + 926.308, + 948.571, + 1009.3, + 1031.46, + 1076, + 1118.4, + 1184.66, + 1251.36, + 1314.36, + 1321.42, + 1381.17, + 1396.5, + 1400.54, + 1448.08, + 1480.18, + 1485.34, + 1492.24, + 1494.99, + 1586.16, + 2949.01, + 2963.03, + 2986.19, + 2988.1, + 2995.27, + 3026.03, + 3049.05, + 3053.47, + 3054.83, + 3778.88, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(0.854054, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.25183, -1.37378, -2.8379, 0.0305112, 0.0028088], + [0.458307, 0.542121, -0.599366, -0.00283925, 0.0398529], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(8.79408, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.26871, -0.59533, -8.15002, -0.294325, -0.145357], + [1.1884, 0.99479, -0.940416, -0.186538, 0.0309834], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(7.88153, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-4.67373, 2.03735, -6.25993, -0.27325, -0.048748], + [-0.982845, 1.76637, -1.57619, 0.474364, -0.000681718], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.81525, "amu*angstrom^2"), + symmetry=3, + barrier=(2.96807, "kcal/mol"), + ), ], spin_multiplicity=1, optical_isomers=1, ), molecular_weight=(74.07, "g/mol"), - transport_data=TransportData(sigma=(5.94, 'angstrom'), epsilon=(559, 'K')), - energy_transfer_model=SingleExponentialDown(alpha0=(447.5 * 0.011962, "kJ/mol"), T0=(300, "K"), n=0.85), + transport_data=TransportData(sigma=(5.94, "angstrom"), epsilon=(559, "K")), + energy_transfer_model=SingleExponentialDown( + alpha0=(447.5 * 0.011962, "kJ/mol"), T0=(300, "K"), n=0.85 + ), ) - self.nC4H10O.from_smiles('CCCCO') + self.nC4H10O.from_smiles("CCCCO") self.nC4H8 = Species( - label='n-C4H8', + label="n-C4H8", conformer=Conformer( - E0=(-17.8832, 'kJ/mol'), + E0=(-17.8832, "kJ/mol"), modes=[ IdealGasTranslation(mass=(56.06, "g/mol")), - NonlinearRotor(inertia=([22.2748, 122.4, 125.198], "amu*angstrom^2"), symmetry=1), - HarmonicOscillator(frequencies=( - [308.537, 418.67, 636.246, 788.665, 848.906, 936.762, 979.97, 1009.48, 1024.22, 1082.96, 1186.38, - 1277.55, 1307.65, 1332.87, 1396.67, 1439.09, 1469.71, 1484.45, 1493.19, 1691.49, 2972.12, 2994.31, - 3018.48, 3056.87, 3062.76, 3079.38, 3093.54, 3174.52], "cm^-1")), - HinderedRotor(inertia=(5.28338, "amu*angstrom^2"), symmetry=1, fourier=( - [[-0.579364, -0.28241, -4.46469, 0.143368, 0.126756], - [1.01804, -0.494628, -0.00318651, -0.245289, 0.193728]], "kJ/mol")), - HinderedRotor(inertia=(2.60818, "amu*angstrom^2"), symmetry=3, fourier=( - [[0.0400372, 0.0301986, -6.4787, -0.0248675, -0.0324753], - [0.0312541, 0.0538, -0.493785, 0.0965968, 0.125292]], "kJ/mol")), + NonlinearRotor( + inertia=([22.2748, 122.4, 125.198], "amu*angstrom^2"), + symmetry=1, + ), + HarmonicOscillator( + frequencies=( + [ + 308.537, + 418.67, + 636.246, + 788.665, + 848.906, + 936.762, + 979.97, + 1009.48, + 1024.22, + 1082.96, + 1186.38, + 1277.55, + 1307.65, + 1332.87, + 1396.67, + 1439.09, + 1469.71, + 1484.45, + 1493.19, + 1691.49, + 2972.12, + 2994.31, + 3018.48, + 3056.87, + 3062.76, + 3079.38, + 3093.54, + 3174.52, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(5.28338, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-0.579364, -0.28241, -4.46469, 0.143368, 0.126756], + [1.01804, -0.494628, -0.00318651, -0.245289, 0.193728], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.60818, "amu*angstrom^2"), + symmetry=3, + fourier=( + [ + [0.0400372, 0.0301986, -6.4787, -0.0248675, -0.0324753], + [0.0312541, 0.0538, -0.493785, 0.0965968, 0.125292], + ], + "kJ/mol", + ), + ), ], spin_multiplicity=1, optical_isomers=1, ), ) - self.nC4H8.from_smiles('CCC=C') + self.nC4H8.from_smiles("CCC=C") self.H2O = Species( - label='H2O', + label="H2O", conformer=Conformer( - E0=(-269.598, 'kJ/mol'), + E0=(-269.598, "kJ/mol"), modes=[ IdealGasTranslation(mass=(18.01, "g/mol")), - NonlinearRotor(inertia=([0.630578, 1.15529, 1.78586], "amu*angstrom^2"), symmetry=2), - HarmonicOscillator(frequencies=([1622.09, 3771.85, 3867.85], "cm^-1")), + NonlinearRotor( + inertia=([0.630578, 1.15529, 1.78586], "amu*angstrom^2"), + symmetry=2, + ), + HarmonicOscillator( + frequencies=([1622.09, 3771.85, 3867.85], "cm^-1") + ), ], spin_multiplicity=1, optical_isomers=1, ), ) - self.H2O.from_smiles('O') + self.H2O.from_smiles("O") self.N2 = Species( - label='N2', + label="N2", molecular_weight=(28.04, "g/mol"), transport_data=TransportData(sigma=(3.41, "angstrom"), epsilon=(124, "K")), energy_transfer_model=None, ) - self.N2.from_smiles('N#N') + self.N2.from_smiles("N#N") - logging.error('to TS') + logging.error("to TS") self.TS = TransitionState( - label='TS', + label="TS", conformer=Conformer( E0=(-42.4373, "kJ/mol"), modes=[ IdealGasTranslation(mass=(74.07, "g/mol")), - NonlinearRotor(inertia=([40.518, 232.666, 246.092], "u*angstrom**2"), symmetry=1, quantum=False), - HarmonicOscillator(frequencies=( - [134.289, 302.326, 351.792, 407.986, 443.419, 583.988, 699.001, 766.1, 777.969, 829.671, 949.753, - 994.731, 1013.59, 1073.98, 1103.79, 1171.89, 1225.91, 1280.67, 1335.08, 1373.9, 1392.32, 1417.43, - 1469.51, 1481.61, 1490.16, 1503.73, 1573.16, 2972.85, 2984.3, 3003.67, 3045.78, 3051.77, 3082.37, - 3090.44, 3190.73, 3708.52], "kayser")), - HinderedRotor(inertia=(2.68206, "amu*angstrom^2"), symmetry=3, barrier=(3.35244, "kcal/mol")), - HinderedRotor(inertia=(9.77669, "amu*angstrom^2"), symmetry=1, fourier=( - [[0.208938, -1.55291, -4.05398, -0.105798, -0.104752], - [2.00518, -0.020767, -0.333595, 0.137791, -0.274578]], "kJ/mol")), + NonlinearRotor( + inertia=([40.518, 232.666, 246.092], "u*angstrom**2"), + symmetry=1, + quantum=False, + ), + HarmonicOscillator( + frequencies=( + [ + 134.289, + 302.326, + 351.792, + 407.986, + 443.419, + 583.988, + 699.001, + 766.1, + 777.969, + 829.671, + 949.753, + 994.731, + 1013.59, + 1073.98, + 1103.79, + 1171.89, + 1225.91, + 1280.67, + 1335.08, + 1373.9, + 1392.32, + 1417.43, + 1469.51, + 1481.61, + 1490.16, + 1503.73, + 1573.16, + 2972.85, + 2984.3, + 3003.67, + 3045.78, + 3051.77, + 3082.37, + 3090.44, + 3190.73, + 3708.52, + ], + "kayser", + ) + ), + HinderedRotor( + inertia=(2.68206, "amu*angstrom^2"), + symmetry=3, + barrier=(3.35244, "kcal/mol"), + ), + HinderedRotor( + inertia=(9.77669, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [0.208938, -1.55291, -4.05398, -0.105798, -0.104752], + [2.00518, -0.020767, -0.333595, 0.137791, -0.274578], + ], + "kJ/mol", + ), + ), ], spin_multiplicity=1, optical_isomers=1, ), - frequency=(-2038.34, 'cm^-1'), + frequency=(-2038.34, "cm^-1"), ) self.reaction = Reaction( - label='dehydration', + label="dehydration", reactants=[self.nC4H10O], products=[self.nC4H8, self.H2O], transition_state=self.TS, - kinetics=Arrhenius(A=(0.0387, 'm^3/(mol*s)'), n=2.7, Ea=(2.6192e4, 'J/mol'), T0=(1, 'K')) + kinetics=Arrhenius( + A=(0.0387, "m^3/(mol*s)"), n=2.7, Ea=(2.6192e4, "J/mol"), T0=(1, "K") + ), ) self.network = Network( - label='n-butanol', + label="n-butanol", isomers=[Configuration(self.nC4H10O)], reactants=[], products=[Configuration(self.nC4H8, self.H2O)], @@ -195,5 +376,5 @@ def test_flux_filter(self): self.assertEquals(len(prods), 0) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/test/rmgpy/rmg/reactTest.py b/test/rmgpy/rmg/reactTest.py index 1737550898..6dba13f515 100644 --- a/test/rmgpy/rmg/reactTest.py +++ b/test/rmgpy/rmg/reactTest.py @@ -42,11 +42,15 @@ ################################################### -TESTFAMILIES = ['H_Abstraction', 'R_Recombination', 'Disproportionation', 'R_Addition_MultipleBond'] +TESTFAMILIES = [ + "H_Abstraction", + "R_Recombination", + "Disproportionation", + "R_Addition_MultipleBond", +] class TestReact(unittest.TestCase): - def setUp(self): """ A method that is run before each unit test in this class. @@ -56,15 +60,18 @@ def setUp(self): # load kinetic database and forbidden structures self.rmg.database = RMGDatabase() - path = os.path.join(settings['database.directory']) + path = os.path.join(settings["database.directory"]) # forbidden structure loading - self.rmg.database.load_forbidden_structures(os.path.join(path, 'forbiddenStructures.py')) + self.rmg.database.load_forbidden_structures( + os.path.join(path, "forbiddenStructures.py") + ) # kinetics family loading - self.rmg.database.load_kinetics(os.path.join(path, 'kinetics'), - kinetics_families=TESTFAMILIES, - reaction_libraries=[] - ) + self.rmg.database.load_kinetics( + os.path.join(path, "kinetics"), + kinetics_families=TESTFAMILIES, + reaction_libraries=[], + ) def test_react(self): """ @@ -72,31 +79,36 @@ def test_react(self): """ procnum = 1 - spc_a = Species().from_smiles('[OH]') - spcs = [Species().from_smiles('CC'), Species().from_smiles('[CH3]')] - spc_tuples = [((spc_a, spc), ['H_Abstraction']) for spc in spcs] + spc_a = Species().from_smiles("[OH]") + spcs = [Species().from_smiles("CC"), Species().from_smiles("[CH3]")] + spc_tuples = [((spc_a, spc), ["H_Abstraction"]) for spc in spcs] reaction_list = list(itertools.chain.from_iterable(react(spc_tuples, procnum))) self.assertIsNotNone(reaction_list) self.assertEqual(len(reaction_list), 3) - self.assertTrue(all([isinstance(rxn, TemplateReaction) for rxn in reaction_list])) + self.assertTrue( + all([isinstance(rxn, TemplateReaction) for rxn in reaction_list]) + ) def test_react_parallel(self): """ Test that the ``react`` function works in parallel using Python multiprocessing """ import rmgpy.rmg.main + rmgpy.rmg.main.maxproc = 2 procnum = 2 - spc_a = Species().from_smiles('[OH]') - spcs = [Species().from_smiles('CC'), Species().from_smiles('[CH3]')] - spc_tuples = [((spc_a, spc), ['H_Abstraction']) for spc in spcs] + spc_a = Species().from_smiles("[OH]") + spcs = [Species().from_smiles("CC"), Species().from_smiles("[CH3]")] + spc_tuples = [((spc_a, spc), ["H_Abstraction"]) for spc in spcs] reaction_list = list(itertools.chain.from_iterable(react(spc_tuples, procnum))) self.assertIsNotNone(reaction_list) self.assertEqual(len(reaction_list), 3) - self.assertTrue(all([isinstance(rxn, TemplateReaction) for rxn in reaction_list])) + self.assertTrue( + all([isinstance(rxn, TemplateReaction) for rxn in reaction_list]) + ) # Reset module level maxproc back to default rmgpy.rmg.main.maxproc = 1 @@ -108,46 +120,55 @@ def test_react_all(self): procnum = 1 spcs = [ - Species().from_smiles('C=C'), - Species().from_smiles('[CH3]'), - Species().from_smiles('[OH]'), - Species().from_smiles('CCCCCCCCCCC') + Species().from_smiles("C=C"), + Species().from_smiles("[CH3]"), + Species().from_smiles("[OH]"), + Species().from_smiles("CCCCCCCCCCC"), ] n = len(spcs) - reaction_list, spc_tuples = react_all(spcs, n, np.ones(n), np.ones([n, n]), np.ones([n, n, n]), procnum) + reaction_list, spc_tuples = react_all( + spcs, n, np.ones(n), np.ones([n, n]), np.ones([n, n, n]), procnum + ) self.assertIsNotNone(reaction_list) self.assertEqual(len(reaction_list), 34) self.assertEqual(len(spc_tuples), 34) flat_rxn_list = list(itertools.chain.from_iterable(reaction_list)) self.assertEqual(len(flat_rxn_list), 44) - self.assertTrue(all([isinstance(rxn, TemplateReaction) for rxn in flat_rxn_list])) + self.assertTrue( + all([isinstance(rxn, TemplateReaction) for rxn in flat_rxn_list]) + ) def test_react_all_parallel(self): """ Test that the ``react_all`` function works in parallel using Python multiprocessing """ import rmgpy.rmg.main + rmgpy.rmg.main.maxproc = 2 procnum = 2 spcs = [ - Species().from_smiles('C=C'), - Species().from_smiles('[CH3]'), - Species().from_smiles('[OH]'), - Species().from_smiles('CCCCCCCCCCC') + Species().from_smiles("C=C"), + Species().from_smiles("[CH3]"), + Species().from_smiles("[OH]"), + Species().from_smiles("CCCCCCCCCCC"), ] n = len(spcs) - reaction_list, spc_tuples = react_all(spcs, n, np.ones(n), np.ones([n, n]), np.ones([n, n, n]), procnum) + reaction_list, spc_tuples = react_all( + spcs, n, np.ones(n), np.ones([n, n]), np.ones([n, n, n]), procnum + ) self.assertIsNotNone(reaction_list) self.assertEqual(len(reaction_list), 94) self.assertEqual(len(spc_tuples), 94) flat_rxn_list = list(itertools.chain.from_iterable(reaction_list)) self.assertEqual(len(flat_rxn_list), 44) - self.assertTrue(all([isinstance(rxn, TemplateReaction) for rxn in flat_rxn_list])) + self.assertTrue( + all([isinstance(rxn, TemplateReaction) for rxn in flat_rxn_list]) + ) # Reset module level maxproc back to default rmgpy.rmg.main.maxproc = 1 @@ -157,8 +178,9 @@ def tearDown(self): Reset the loaded database """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/test/rmgpy/rmg/rmgTest.py b/test/rmgpy/rmg/rmgTest.py index 8a07ea5dfc..90d5040353 100644 --- a/test/rmgpy/rmg/rmgTest.py +++ b/test/rmgpy/rmg/rmgTest.py @@ -44,8 +44,8 @@ ################################################### -class TestRMGWorkFlow(unittest.TestCase): +class TestRMGWorkFlow(unittest.TestCase): @classmethod def setUpClass(cls): """ @@ -57,12 +57,14 @@ def setUpClass(cls): # load kinetic database and forbidden structures cls.rmg.database = RMGDatabase() - path = os.path.join(settings['test_data.directory'], 'testing_database') + path = os.path.join(settings["test_data.directory"], "testing_database") # kinetics family Disproportionation loading - cls.rmg.database.load_kinetics(os.path.join(path, 'kinetics'), - kinetics_families=['H_Abstraction', 'R_Addition_MultipleBond'], - reaction_libraries=[]) + cls.rmg.database.load_kinetics( + os.path.join(path, "kinetics"), + kinetics_families=["H_Abstraction", "R_Addition_MultipleBond"], + reaction_libraries=[], + ) # load empty forbidden structures for family in cls.rmg.database.kinetics.families.values(): @@ -75,22 +77,23 @@ def tearDownClass(cls): Reset the loaded database """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None @work_in_progress def test_deterministic_reaction_template_matching(self): """ - Test RMG work flow can match reaction template for kinetics estimation - deterministically. + Test RMG work flow can match reaction template for kinetics estimation + deterministically. - In this test, a change of molecules order in a reacting species should + In this test, a change of molecules order in a reacting species should not change the reaction template matched. However, this is inherently impossible with the existing reaction generation algorithm. Currently, the first reaction will be the one that is kept if the reactions are identical. If different templates are a result of different transition states, all are kept. - + {O=C-[C]=C, [O]-C=C=C} -> H + C=C=C=O """ @@ -99,7 +102,7 @@ def test_deterministic_reaction_template_matching(self): spc.generate_resonance_structures() new_reactions = react_species((spc,)) - # try to pick out the target reaction + # try to pick out the target reaction mol_H = Molecule().from_smiles("[H]") mol_C3H2O = Molecule().from_smiles("C=C=C=O") @@ -113,8 +116,10 @@ def test_deterministic_reaction_template_matching(self): new_reactions_reverse = [] new_reactions_reverse.extend(react_species((spc,))) - # try to pick out the target reaction - target_rxns_reverse = find_target_rxns_containing(mol_H, mol_C3H2O, new_reactions_reverse) + # try to pick out the target reaction + target_rxns_reverse = find_target_rxns_containing( + mol_H, mol_C3H2O, new_reactions_reverse + ) self.assertEqual(len(target_rxns_reverse), 2) # whatever order of molecules in spc, the reaction template matched should be same @@ -130,7 +135,7 @@ def test_check_for_existing_species_for_bi_aromatics(self): rmg_test = RMG() rmg_test.reaction_model = CoreEdgeReactionModel() - DPP = Species().from_smiles('C1=CC=C(C=C1)CCCC1C=CC=CC=1') + DPP = Species().from_smiles("C1=CC=C(C=C1)CCCC1C=CC=CC=1") DPP.generate_resonance_structures() formula = DPP.molecule[0].get_formula() if formula in rmg_test.reaction_model.species_dict: @@ -139,7 +144,7 @@ def test_check_for_existing_species_for_bi_aromatics(self): rmg_test.reaction_model.species_dict[formula] = [DPP] mol_test = Molecule().from_adjacency_list( -""" + """ 1 C u0 p0 c0 {2,S} {3,S} {16,S} {17,S} 2 C u0 p0 c0 {1,S} {4,S} {18,S} {19,S} 3 C u0 p0 c0 {1,S} {5,S} {20,S} {21,S} @@ -171,7 +176,8 @@ def test_check_for_existing_species_for_bi_aromatics(self): 29 H u0 p0 c0 {13,S} 30 H u0 p0 c0 {14,S} 31 H u0 p0 c0 {15,S} -""") +""" + ) spec = rmg_test.reaction_model.check_for_existing_species(mol_test) self.assertIsNotNone(spec) @@ -201,19 +207,19 @@ def test_parse_command_line_arguments_defaults(self): """ # Acquire default arguments - args = parse_command_line_arguments(['input.py']) + args = parse_command_line_arguments(["input.py"]) # Test default values - self.assertEqual(args.walltime, '00:00:00:00') - self.assertEqual(args.output_directory, os.path.abspath(os.path.dirname('./'))) + self.assertEqual(args.walltime, "00:00:00:00") + self.assertEqual(args.output_directory, os.path.abspath(os.path.dirname("./"))) self.assertEqual(args.debug, False) - self.assertEqual(args.file, 'input.py') + self.assertEqual(args.file, "input.py") self.assertEqual(args.maxiter, None) self.assertEqual(args.kineticsdatastore, False) self.assertEqual(args.postprocess, False) self.assertEqual(args.profile, False) self.assertEqual(args.quiet, False) - self.assertEqual(args.restart, '') + self.assertEqual(args.restart, "") self.assertEqual(args.verbose, False) def test_parse_command_line_non_defaults(self): @@ -222,16 +228,30 @@ def test_parse_command_line_non_defaults(self): """ # Acquire arguments - args = parse_command_line_arguments(['other_name.py', '-d', '-o', '/test/output/dir/', '-r', 'test/seed/', '-P', - '-t', '01:20:33:45', '-k', '-i', '100']) + args = parse_command_line_arguments( + [ + "other_name.py", + "-d", + "-o", + "/test/output/dir/", + "-r", + "test/seed/", + "-P", + "-t", + "01:20:33:45", + "-k", + "-i", + "100", + ] + ) # Test expected values - self.assertEqual(args.walltime, '01:20:33:45') - self.assertEqual(args.output_directory, '/test/output/dir/') + self.assertEqual(args.walltime, "01:20:33:45") + self.assertEqual(args.output_directory, "/test/output/dir/") self.assertEqual(args.debug, True) - self.assertEqual(args.file, 'other_name.py') + self.assertEqual(args.file, "other_name.py") self.assertEqual(args.maxiter, 100) self.assertEqual(args.kineticsdatastore, True) self.assertEqual(args.postprocess, True) self.assertEqual(args.profile, True) - self.assertEqual(args.restart, 'test/seed/') + self.assertEqual(args.restart, "test/seed/") diff --git a/test/rmgpy/rmgobjectTest.py b/test/rmgpy/rmgobjectTest.py index 53929d1b13..46be83d93a 100644 --- a/test/rmgpy/rmgobjectTest.py +++ b/test/rmgpy/rmgobjectTest.py @@ -66,15 +66,15 @@ def test_save_int(self): obj = PseudoRMGObject(a=1, b=5) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': 1, 'b': 5} + expected = {"class": "PseudoRMGObject", "a": 1, "b": 5} self.assertEqual(result, expected) def test_read_int(self): """Test reading ints""" - data = {'a': 1, 'b': 5} + data = {"a": 1, "b": 5} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, int) self.assertEqual(obj.a, 1) @@ -86,15 +86,15 @@ def test_save_float(self): obj = PseudoRMGObject(a=1.0, b=5.0) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': 1.0, 'b': 5.0} + expected = {"class": "PseudoRMGObject", "a": 1.0, "b": 5.0} self.assertEqual(result, expected) def test_read_float(self): """Test reading floats""" - data = {'a': 1.0, 'b': 5.0} + data = {"a": 1.0, "b": 5.0} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, float) self.assertEqual(obj.a, 1.0) @@ -103,175 +103,213 @@ def test_read_float(self): def test_save_str(self): """Test saving strings""" - obj = PseudoRMGObject(a='foo', b='bar') + obj = PseudoRMGObject(a="foo", b="bar") result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': 'foo', 'b': 'bar'} + expected = {"class": "PseudoRMGObject", "a": "foo", "b": "bar"} self.assertEqual(result, expected) def test_read_str(self): """Test reading strings""" - data = {'a': 'foo', 'b': 'bar'} + data = {"a": "foo", "b": "bar"} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) - self.assertEqual(obj.a, 'foo') - self.assertEqual(obj.b, 'bar') + self.assertEqual(obj.a, "foo") + self.assertEqual(obj.b, "bar") def test_save_empty_str(self): """Test saving empty strings""" - obj = PseudoRMGObject(a='', b='bar') + obj = PseudoRMGObject(a="", b="bar") result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'b': 'bar'} + expected = {"class": "PseudoRMGObject", "b": "bar"} self.assertEqual(result, expected) def test_read_empty_str(self): """Test reading empty strings""" - data = {'a': '', 'b': 'bar'} + data = {"a": "", "b": "bar"} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) - self.assertEqual(obj.a, '') - self.assertEqual(obj.b, 'bar') + self.assertEqual(obj.a, "") + self.assertEqual(obj.b, "bar") def test_save_dict(self): """Test saving dictionaries""" - obj = PseudoRMGObject(a={'foo': 'bar'}) + obj = PseudoRMGObject(a={"foo": "bar"}) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': {'foo': 'bar'}} + expected = {"class": "PseudoRMGObject", "a": {"foo": "bar"}} self.assertEqual(result, expected) def test_read_dict(self): """Test reading dictionaries""" - data = {'a': {'foo': 'bar'}} + data = {"a": {"foo": "bar"}} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) - self.assertEqual(obj.a, {'foo': 'bar'}) + self.assertEqual(obj.a, {"foo": "bar"}) def test_save_mix(self): """Test saving mix of builtin types""" - obj = PseudoRMGObject(a=1, b=5.0, c='foobar', d={'foo': 'bar'}) + obj = PseudoRMGObject(a=1, b=5.0, c="foobar", d={"foo": "bar"}) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': 1, 'b': 5.0, 'c': 'foobar', 'd': {'foo': 'bar'}} + expected = { + "class": "PseudoRMGObject", + "a": 1, + "b": 5.0, + "c": "foobar", + "d": {"foo": "bar"}, + } self.assertEqual(result, expected) def test_read_mix(self): """Test reading mix of builtin types""" - data = {'a': 1, 'b': 5.0, 'c': 'foobar', 'd': {'foo': 'bar'}} + data = {"a": 1, "b": 5.0, "c": "foobar", "d": {"foo": "bar"}} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, int) self.assertEqual(obj.a, 1) self.assertIsInstance(obj.b, float) self.assertEqual(obj.b, 5.0) - self.assertEqual(obj.c, 'foobar') - self.assertEqual(obj.d, {'foo': 'bar'}) + self.assertEqual(obj.c, "foobar") + self.assertEqual(obj.d, {"foo": "bar"}) def test_save_numpy(self): """Test saving numpy array""" obj = PseudoRMGObject(a=np.array([1.0, 2.0, 3.0])) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': {'object': [1.0, 2.0, 3.0], 'class': 'np_array'}} + expected = { + "class": "PseudoRMGObject", + "a": {"object": [1.0, 2.0, 3.0], "class": "np_array"}, + } self.assertEqual(result, expected) def test_save_object(self): """Test saving another object""" - obj = PseudoRMGObject(a=PseudoRMGObject(b='foobar')) + obj = PseudoRMGObject(a=PseudoRMGObject(b="foobar")) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', 'a': {'class': 'PseudoRMGObject', 'b': 'foobar'}} + expected = { + "class": "PseudoRMGObject", + "a": {"class": "PseudoRMGObject", "b": "foobar"}, + } self.assertEqual(result, expected) def test_read_object(self): """Test reading an object""" - data = {'a': {'class': 'PseudoRMGObject', 'b': 'foobar'}} + data = {"a": {"class": "PseudoRMGObject", "b": "foobar"}} obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, PseudoRMGObject) - self.assertEqual(obj.a.b, 'foobar') + self.assertEqual(obj.a.b, "foobar") def test_save_object_list(self): """Test saving a list of objects""" - obj = PseudoRMGObject(a=[PseudoRMGObject(b='foobar'), PseudoRMGObject(c=5.0)]) + obj = PseudoRMGObject(a=[PseudoRMGObject(b="foobar"), PseudoRMGObject(c=5.0)]) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', - 'a': [{'class': 'PseudoRMGObject', 'b': 'foobar'}, - {'class': 'PseudoRMGObject', 'c': 5.0}]} + expected = { + "class": "PseudoRMGObject", + "a": [ + {"class": "PseudoRMGObject", "b": "foobar"}, + {"class": "PseudoRMGObject", "c": 5.0}, + ], + } self.assertEqual(result, expected) def test_read_object_list(self): """Test reading a list of objects""" - data = {'a': [{'class': 'PseudoRMGObject', 'b': 'foobar'}, - {'class': 'PseudoRMGObject', 'c': 5.0}]} + data = { + "a": [ + {"class": "PseudoRMGObject", "b": "foobar"}, + {"class": "PseudoRMGObject", "c": 5.0}, + ] + } obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, list) self.assertEqual(len(obj.a), 2) self.assertIsInstance(obj.a[0], PseudoRMGObject) - self.assertEqual(obj.a[0].b, 'foobar') + self.assertEqual(obj.a[0].b, "foobar") self.assertIsInstance(obj.a[1], PseudoRMGObject) self.assertEqual(obj.a[1].c, 5.0) def test_save_empty_list(self): """Test saving an empty list""" - obj = PseudoRMGObject(a=[PseudoRMGObject(b='foobar'), PseudoRMGObject(c=5.0)], b=[]) + obj = PseudoRMGObject( + a=[PseudoRMGObject(b="foobar"), PseudoRMGObject(c=5.0)], b=[] + ) result = obj.as_dict() - expected = {'class': 'PseudoRMGObject', - 'a': [{'class': 'PseudoRMGObject', 'b': 'foobar'}, - {'class': 'PseudoRMGObject', 'c': 5.0}], - 'b': []} + expected = { + "class": "PseudoRMGObject", + "a": [ + {"class": "PseudoRMGObject", "b": "foobar"}, + {"class": "PseudoRMGObject", "c": 5.0}, + ], + "b": [], + } self.assertEqual(result, expected) def test_read_empty_list(self): """Test reading an smpty list""" - data = {'a': [{'class': 'PseudoRMGObject', 'b': 'foobar'}, - {'class': 'PseudoRMGObject', 'c': 5.0}], - 'b': []} + data = { + "a": [ + {"class": "PseudoRMGObject", "b": "foobar"}, + {"class": "PseudoRMGObject", "c": 5.0}, + ], + "b": [], + } obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, list) self.assertEqual(len(obj.a), 2) self.assertIsInstance(obj.a[0], PseudoRMGObject) - self.assertEqual(obj.a[0].b, 'foobar') + self.assertEqual(obj.a[0].b, "foobar") self.assertIsInstance(obj.a[1], PseudoRMGObject) self.assertEqual(obj.a[1].c, 5.0) self.assertEqual(obj.b, []) def test_ignore_aux_and_mol(self): """Test ignoring specific keys""" - data = {'a': [{'class': 'PseudoRMGObject', 'b': 'foobar'}, - {'class': 'PseudoRMGObject', 'c': 5.0}], - 'mol': 7.0, - 'aux': 2.5} + data = { + "a": [ + {"class": "PseudoRMGObject", "b": "foobar"}, + {"class": "PseudoRMGObject", "c": 5.0}, + ], + "mol": 7.0, + "aux": 2.5, + } obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) self.assertIsInstance(obj.a, list) with self.assertRaises(TypeError): - data = {'a': [{'class': 'PseudoRMGObject', 'b': 'foobar'}, - {'class': 'PseudoRMGObject', 'c': 5.0}], - 'new_key': 2.5} + data = { + "a": [ + {"class": "PseudoRMGObject", "b": "foobar"}, + {"class": "PseudoRMGObject", "c": 5.0}, + ], + "new_key": 2.5, + } obj = PseudoRMGObject() - obj.make_object(data, class_dict={'PseudoRMGObject': PseudoRMGObject}) + obj.make_object(data, class_dict={"PseudoRMGObject": PseudoRMGObject}) class TestExpandAndMakeFromDictionaries(unittest.TestCase): @@ -281,66 +319,99 @@ class TestExpandAndMakeFromDictionaries(unittest.TestCase): def setUp(self): self.np_array = np.array([[1, 2], [3, 4]]) - self.np_dict = {'class': 'np_array', 'object': [[1, 2], [3, 4]]} - - self.array_quantity = ArrayQuantity(value=self.np_array, units='kJ/mol') - self.array_dict = {'class': 'ArrayQuantity', 'value': self.np_dict, 'units': 'kJ/mol'} - - self.scalar_quantity = ScalarQuantity(value=500.0, units='K') - self.scalar_dict = {'class': 'ScalarQuantity', 'value': 500.0, 'units': 'K'} - - self.highly_nested_object = PseudoRMGObject(a=PseudoRMGObject(a=PseudoRMGObject(b=self.np_array, - c=PseudoRMGObject( - c=self.array_quantity, - d=PseudoRMGObject( - a=self.scalar_quantity, - b=PseudoRMGObject() - ) - ) - ) - ), - b=6 - ) - self.highly_nest_dictionary = {'class': 'PseudoRMGObject', - 'a': {'class': 'PseudoRMGObject', - 'a': {'class': 'PseudoRMGObject', - 'b': self.np_dict, - 'c': {'class': 'PseudoRMGObject', - 'c': self.array_dict, - 'd': {'class': 'PseudoRMGObject', - 'a': self.scalar_dict, - 'b': {'class': 'PseudoRMGObject'} - } - } - } - }, - 'b': 6 - } - - self.list_of_objects = [1, 2.0, 'abc', self.np_array, self.array_quantity, self.scalar_quantity, - self.highly_nested_object] - self.list_dict = [1, 2.0, 'abc', self.np_dict, self.array_dict, self.scalar_dict, self.highly_nest_dictionary] - - self.dictionary_of_objects = {'test_int': 1, - 'test_float': 2.0, - 'test_np': self.np_array, - 'test_array': self.array_quantity, - 'test_scalar': self.scalar_quantity, - 'test_nested': self.highly_nested_object} - self.objects_dict = {'test_int': 1, - 'test_float': 2.0, - 'test_np': self.np_dict, - 'test_array': self.array_dict, - 'test_scalar': self.scalar_dict, - 'test_nested': self.highly_nest_dictionary} - - self.input_dict = {'class': 'PseudoRMGObject', 'a': {'class': 'PseudoRMGObject', 'b': self.np_dict}} - self.final_obj_dict = {'a': PseudoRMGObject(b=self.np_array)} - - self.class_dictionary = {'np_array': np.array, - 'ScalarQuantity': ScalarQuantity, - 'ArrayQuantity': ArrayQuantity, - 'PseudoRMGObject': PseudoRMGObject} + self.np_dict = {"class": "np_array", "object": [[1, 2], [3, 4]]} + + self.array_quantity = ArrayQuantity(value=self.np_array, units="kJ/mol") + self.array_dict = { + "class": "ArrayQuantity", + "value": self.np_dict, + "units": "kJ/mol", + } + + self.scalar_quantity = ScalarQuantity(value=500.0, units="K") + self.scalar_dict = {"class": "ScalarQuantity", "value": 500.0, "units": "K"} + + self.highly_nested_object = PseudoRMGObject( + a=PseudoRMGObject( + a=PseudoRMGObject( + b=self.np_array, + c=PseudoRMGObject( + c=self.array_quantity, + d=PseudoRMGObject(a=self.scalar_quantity, b=PseudoRMGObject()), + ), + ) + ), + b=6, + ) + self.highly_nest_dictionary = { + "class": "PseudoRMGObject", + "a": { + "class": "PseudoRMGObject", + "a": { + "class": "PseudoRMGObject", + "b": self.np_dict, + "c": { + "class": "PseudoRMGObject", + "c": self.array_dict, + "d": { + "class": "PseudoRMGObject", + "a": self.scalar_dict, + "b": {"class": "PseudoRMGObject"}, + }, + }, + }, + }, + "b": 6, + } + + self.list_of_objects = [ + 1, + 2.0, + "abc", + self.np_array, + self.array_quantity, + self.scalar_quantity, + self.highly_nested_object, + ] + self.list_dict = [ + 1, + 2.0, + "abc", + self.np_dict, + self.array_dict, + self.scalar_dict, + self.highly_nest_dictionary, + ] + + self.dictionary_of_objects = { + "test_int": 1, + "test_float": 2.0, + "test_np": self.np_array, + "test_array": self.array_quantity, + "test_scalar": self.scalar_quantity, + "test_nested": self.highly_nested_object, + } + self.objects_dict = { + "test_int": 1, + "test_float": 2.0, + "test_np": self.np_dict, + "test_array": self.array_dict, + "test_scalar": self.scalar_dict, + "test_nested": self.highly_nest_dictionary, + } + + self.input_dict = { + "class": "PseudoRMGObject", + "a": {"class": "PseudoRMGObject", "b": self.np_dict}, + } + self.final_obj_dict = {"a": PseudoRMGObject(b=self.np_array)} + + self.class_dictionary = { + "np_array": np.array, + "ScalarQuantity": ScalarQuantity, + "ArrayQuantity": ArrayQuantity, + "PseudoRMGObject": PseudoRMGObject, + } def test_expanding_list_to_dict(self): """ @@ -364,16 +435,24 @@ def test_expanding_rmg_objects(self): """ Test that RMGObjects (even when nested) can be expanded using the as_dict method """ - self.assertEqual(expand_to_dict(self.highly_nested_object), self.highly_nest_dictionary) - self.assertEqual(self.highly_nested_object.as_dict(), self.highly_nest_dictionary) + self.assertEqual( + expand_to_dict(self.highly_nested_object), self.highly_nest_dictionary + ) + self.assertEqual( + self.highly_nested_object.as_dict(), self.highly_nest_dictionary + ) def test_make_object_from_dict(self): """ Test that RMGObjects can be recreated from their dictionary representation """ - created_from_function = recursive_make_object(self.highly_nest_dictionary, self.class_dictionary) + created_from_function = recursive_make_object( + self.highly_nest_dictionary, self.class_dictionary + ) created_from_object = PseudoRMGObject.__new__(PseudoRMGObject) - created_from_object.make_object(self.highly_nest_dictionary, self.class_dictionary) + created_from_object.make_object( + self.highly_nest_dictionary, self.class_dictionary + ) orig_obj = self.highly_nested_object for obj in (created_from_function, created_from_object): @@ -393,14 +472,18 @@ def test_make_all_but_final_object_from_dict(self): """ Test the `make_final_object=False` option for the recursive_make_object function """ - final_obj_dict = recursive_make_object(self.input_dict, self.class_dictionary, make_final_object=False) - self.assertTrue(np.array_equal(final_obj_dict['a'].b, self.final_obj_dict['a'].b)) + final_obj_dict = recursive_make_object( + self.input_dict, self.class_dictionary, make_final_object=False + ) + self.assertTrue( + np.array_equal(final_obj_dict["a"].b, self.final_obj_dict["a"].b) + ) def test_float_creation(self): """ Test that strings of floats are recreated as floats """ - obj = recursive_make_object('5.0', self.class_dictionary) + obj = recursive_make_object("5.0", self.class_dictionary) self.assertEqual(obj, 5.0) self.assertEqual(type(obj), float) @@ -408,7 +491,7 @@ def test_int_creation(self): """ Test that strings of ints are recreated as ints """ - obj = recursive_make_object('5', self.class_dictionary) + obj = recursive_make_object("5", self.class_dictionary) self.assertEqual(obj, 5) self.assertEqual(type(obj), int) @@ -416,27 +499,33 @@ def test_np_array_creation(self): """ Test that numpy arrays can be recreated from their dictionary representation """ - self.assertTrue(np.array_equal(recursive_make_object(self.np_dict, self.class_dictionary), self.np_array)) + self.assertTrue( + np.array_equal( + recursive_make_object(self.np_dict, self.class_dictionary), + self.np_array, + ) + ) def test_hashable_class_key_creation(self): """ Test that dictionaries with hashable class instances as keys can be recreated """ + @dataclass(frozen=True) class Data: arg: str - input_dict = {"Data(arg='test')": 'test'} - class_dictionary = {'Data': Data} + input_dict = {"Data(arg='test')": "test"} + class_dictionary = {"Data": Data} key, val = list(recursive_make_object(input_dict, class_dictionary).items())[0] self.assertIsInstance(key, Data) - self.assertEqual(key, Data('test')) - self.assertEqual(val, 'test') + self.assertEqual(key, Data("test")) + self.assertEqual(val, "test") ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/solver/liquidTest.py b/test/rmgpy/solver/liquidTest.py index 62024c222c..5ba65c3596 100644 --- a/test/rmgpy/solver/liquidTest.py +++ b/test/rmgpy/solver/liquidTest.py @@ -45,8 +45,8 @@ ################################################################################ -class LiquidReactorCheck(unittest.TestCase): +class LiquidReactorCheck(unittest.TestCase): @classmethod def setUpClass(cls): """ @@ -57,6 +57,7 @@ def setUpClass(cls): """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None Tlist = [300, 400, 500, 600, 800, 1000, 1500] @@ -64,33 +65,49 @@ def setUpClass(cls): molecule=[Molecule().from_smiles("C")], thermo=ThermoData( Tdata=(Tlist, "K"), - Cpdata=([8.615, 9.687, 10.963, 12.301, 14.841, 16.976, 20.528], "cal/(mol*K)"), + Cpdata=( + [8.615, 9.687, 10.963, 12.301, 14.841, 16.976, 20.528], + "cal/(mol*K)", + ), H298=(-17.714, "kcal/mol"), - S298=(44.472, "cal/(mol*K)")) + S298=(44.472, "cal/(mol*K)"), + ), ) cls.CH3 = Species( molecule=[Molecule().from_smiles("[CH3]")], thermo=ThermoData( Tdata=(Tlist, "K"), - Cpdata=([9.397, 10.123, 10.856, 11.571, 12.899, 14.055, 16.195], "cal/(mol*K)"), + Cpdata=( + [9.397, 10.123, 10.856, 11.571, 12.899, 14.055, 16.195], + "cal/(mol*K)", + ), H298=(9.357, "kcal/mol"), - S298=(45.174, "cal/(mol*K)")) + S298=(45.174, "cal/(mol*K)"), + ), ) cls.C2H6 = Species( molecule=[Molecule().from_smiles("CC")], thermo=ThermoData( Tdata=(Tlist, "K"), - Cpdata=([12.684, 15.506, 18.326, 20.971, 25.500, 29.016, 34.595], "cal/(mol*K)"), + Cpdata=( + [12.684, 15.506, 18.326, 20.971, 25.500, 29.016, 34.595], + "cal/(mol*K)", + ), H298=(-19.521, "kcal/mol"), - S298=(54.799, "cal/(mol*K)")) + S298=(54.799, "cal/(mol*K)"), + ), ) cls.C2H5 = Species( molecule=[Molecule().from_smiles("C[CH2]")], thermo=ThermoData( Tdata=(Tlist, "K"), - Cpdata=([11.635, 13.744, 16.085, 18.246, 21.885, 24.676, 29.107], "cal/(mol*K)"), + Cpdata=( + [11.635, 13.744, 16.085, 18.246, 21.885, 24.676, 29.107], + "cal/(mol*K)", + ), H298=(29.496, "kcal/mol"), - S298=(56.687, "cal/(mol*K)")) + S298=(56.687, "cal/(mol*K)"), + ), ) cls.H2 = Species( @@ -99,22 +116,30 @@ def setUpClass(cls): Tdata=(Tlist, "K"), Cpdata=([6.89, 6.97, 6.99, 7.01, 7.08, 7.22, 7.72], "cal/(mol*K)"), H298=(0, "kcal/mol"), - S298=(31.23, "cal/(mol*K)")) + S298=(31.23, "cal/(mol*K)"), + ), ) cls.T = 1000 - cls.file_dir = os.path.join(os.path.dirname(rmgpy.__file__), 'solver', 'files', 'liquid_phase_constSPC') + cls.file_dir = os.path.join( + os.path.dirname(rmgpy.__file__), "solver", "files", "liquid_phase_constSPC" + ) def test_compute_flux(self): """ - Test the liquid batch reactor with a simple kinetic model. + Test the liquid batch reactor with a simple kinetic model. """ rxn1 = Reaction( reactants=[self.C2H6, self.CH3], products=[self.C2H5, self.CH4], - kinetics=Arrhenius(A=(686.375 * 6, 'm^3/(mol*s)'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K')) + kinetics=Arrhenius( + A=(686.375 * 6, "m^3/(mol*s)"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ) core_species = [self.CH4, self.CH3, self.C2H6, self.C2H5] @@ -126,7 +151,9 @@ def test_compute_flux(self): rxn_system = LiquidReactor(self.T, c0, 1, termination=[]) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.array([10 ** (i / 10.0) for i in range(-130, -49)], np.float64) @@ -148,12 +175,28 @@ def test_compute_flux(self): # Check that we're computing the species fluxes correctly for i in range(t.shape[0]): - self.assertAlmostEqual(reaction_rates[i, 0], species_rates[i, 0], delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 1], delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 2], delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], species_rates[i, 3], delta=1e-6 * reaction_rates[i, 0]) - - # Check that we've reached equilibrium + self.assertAlmostEqual( + reaction_rates[i, 0], + species_rates[i, 0], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 1], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 2], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + species_rates[i, 3], + delta=1e-6 * reaction_rates[i, 0], + ) + + # Check that we've reached equilibrium self.assertAlmostEqual(reaction_rates[-1, 0], 0.0, delta=1e-2) def test_jacobian(self): @@ -166,7 +209,13 @@ def test_jacobian(self): core_species = [self.CH4, self.CH3, self.C2H6, self.C2H5, self.H2] edge_species = [] num_core_species = len(core_species) - c0 = {self.CH4: 0.2, self.CH3: 0.1, self.C2H6: 0.35, self.C2H5: 0.15, self.H2: 0.2} + c0 = { + self.CH4: 0.2, + self.CH3: 0.1, + self.C2H6: 0.35, + self.C2H5: 0.15, + self.H2: 0.2, + } edge_reactions = [] rxn_list = [ @@ -174,61 +223,101 @@ def test_jacobian(self): reactants=[self.C2H6], products=[self.CH3, self.CH3], kinetics=Arrhenius( - A=(686.375 * 6, '1/s'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(686.375 * 6, "1/s"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.CH3, self.CH3], products=[self.C2H6], kinetics=Arrhenius( - A=(686.375 * 6, 'm^3/(mol*s)'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(686.375 * 6, "m^3/(mol*s)"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H6, self.CH3], products=[self.C2H5, self.CH4], kinetics=Arrhenius( - A=(46.375 * 6, 'm^3/(mol*s)'), n=3.40721, Ea=(6.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(46.375 * 6, "m^3/(mol*s)"), + n=3.40721, + Ea=(6.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H5, self.CH4], products=[self.C2H6, self.CH3], kinetics=Arrhenius( - A=(46.375 * 6, 'm^3/(mol*s)'), n=3.40721, Ea=(6.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(46.375 * 6, "m^3/(mol*s)"), + n=3.40721, + Ea=(6.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H5, self.CH4], products=[self.CH3, self.CH3, self.CH3], kinetics=Arrhenius( - A=(246.375 * 6, 'm^3/(mol*s)'), n=1.40721, Ea=(3.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(246.375 * 6, "m^3/(mol*s)"), + n=1.40721, + Ea=(3.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.CH3, self.CH3, self.CH3], products=[self.C2H5, self.CH4], kinetics=Arrhenius( - A=(246.375 * 6, 'm^6/(mol^2*s)'), n=1.40721, Ea=(3.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(246.375 * 6, "m^6/(mol^2*s)"), + n=1.40721, + Ea=(3.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H6, self.CH3, self.CH3], products=[self.C2H5, self.C2H5, self.H2], kinetics=Arrhenius( - A=(146.375 * 6, 'm^6/(mol^2*s)'), n=2.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(146.375 * 6, "m^6/(mol^2*s)"), + n=2.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H5, self.C2H5, self.H2], products=[self.C2H6, self.CH3, self.CH3], kinetics=Arrhenius( - A=(146.375 * 6, 'm^6/(mol^2*s)'), n=2.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(146.375 * 6, "m^6/(mol^2*s)"), + n=2.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H6, self.C2H6], products=[self.CH3, self.CH4, self.C2H5], kinetics=Arrhenius( - A=(1246.375 * 6, 'm^3/(mol*s)'), n=0.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(1246.375 * 6, "m^3/(mol*s)"), + n=0.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.CH3, self.CH4, self.C2H5], products=[self.C2H6, self.C2H6], kinetics=Arrhenius( - A=(46.375 * 6, 'm^6/(mol^2*s)'), n=0.10721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(46.375 * 6, "m^6/(mol^2*s)"), + n=0.10721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), ] @@ -264,10 +353,14 @@ def jacobian_rxn7(c, kf, kr, s): core_reactions = [rxn] rxn_system0 = LiquidReactor(self.T, c0, 1, termination=[]) - rxn_system0.initialize_model(core_species, core_reactions, edge_species, edge_reactions) - dydt0 = rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[0] + rxn_system0.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) + dydt0 = rxn_system0.residual( + 0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape) + )[0] - dN = .000001 * sum(rxn_system0.y) + dN = 0.000001 * sum(rxn_system0.y) # Let the solver compute the jacobian solver_jacobian = rxn_system0.jacobian(0.0, rxn_system0.y, dydt0, 0.0) @@ -276,7 +369,11 @@ def jacobian_rxn7(c, kf, kr, s): dydt = [] for i in range(num_core_species): rxn_system0.y[i] += dN - dydt.append(rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[0]) + dydt.append( + rxn_system0.residual( + 0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape) + )[0] + ) rxn_system0.y[i] -= dN # reset y # Compute the jacobian using finite differences @@ -284,7 +381,11 @@ def jacobian_rxn7(c, kf, kr, s): for i in range(num_core_species): for j in range(num_core_species): jacobian[i, j] = (dydt[j][i] - dydt0[i]) / dN - self.assertAlmostEqual(jacobian[i, j], solver_jacobian[i, j], delta=abs(1e-4 * jacobian[i, j])) + self.assertAlmostEqual( + jacobian[i, j], + solver_jacobian[i, j], + delta=abs(1e-4 * jacobian[i, j]), + ) # The forward finite difference is very unstable for reactions # 6 and 7. Use Jacobians calculated by hand instead. elif rxn_num == 6: @@ -293,14 +394,22 @@ def jacobian_rxn7(c, kf, kr, s): jacobian = jacobian_rxn6(c0, kforward, kreverse, core_species) for i in range(num_core_species): for j in range(num_core_species): - self.assertAlmostEqual(jacobian[i, j], solver_jacobian[i, j], delta=abs(1e-4 * jacobian[i, j])) + self.assertAlmostEqual( + jacobian[i, j], + solver_jacobian[i, j], + delta=abs(1e-4 * jacobian[i, j]), + ) elif rxn_num == 7: kforward = rxn.get_rate_coefficient(self.T) kreverse = kforward / rxn.get_equilibrium_constant(self.T) jacobian = jacobian_rxn7(c0, kforward, kreverse, core_species) for i in range(num_core_species): for j in range(num_core_species): - self.assertAlmostEqual(jacobian[i, j], solver_jacobian[i, j], delta=abs(1e-4 * jacobian[i, j])) + self.assertAlmostEqual( + jacobian[i, j], + solver_jacobian[i, j], + delta=abs(1e-4 * jacobian[i, j]), + ) def test_compute_derivative(self): rxn_list = [ @@ -308,19 +417,31 @@ def test_compute_derivative(self): reactants=[self.C2H6], products=[self.CH3, self.CH3], kinetics=Arrhenius( - A=(686.375e6, '1/s'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(686.375e6, "1/s"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H6, self.CH3], products=[self.C2H5, self.CH4], kinetics=Arrhenius( - A=(46.375 * 6, 'm^3/(mol*s)'), n=3.40721, Ea=(6.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(46.375 * 6, "m^3/(mol*s)"), + n=3.40721, + Ea=(6.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), Reaction( reactants=[self.C2H6, self.CH3, self.CH3], products=[self.C2H5, self.C2H5, self.H2], kinetics=Arrhenius( - A=(146.375 * 6, 'm^6/(mol^2*s)'), n=2.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K')) + A=(146.375 * 6, "m^6/(mol^2*s)"), + n=2.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ), ] @@ -330,53 +451,99 @@ def test_compute_derivative(self): edge_reactions = [] num_core_species = len(core_species) - c0 = {self.CH4: 0.2, self.CH3: 0.1, self.C2H6: 0.35, self.C2H5: 0.15, self.H2: 0.2} + c0 = { + self.CH4: 0.2, + self.CH3: 0.1, + self.C2H6: 0.35, + self.C2H5: 0.15, + self.H2: 0.2, + } rxn_system0 = LiquidReactor(self.T, c0, 1, termination=[]) - rxn_system0.initialize_model(core_species, core_reactions, edge_species, edge_reactions) - dfdt0 = rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[0] + rxn_system0.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) + dfdt0 = rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[ + 0 + ] solver_dfdk = rxn_system0.compute_rate_derivative() # print 'Solver d(dy/dt)/dk' # print solver_dfdk integration_time = 1e-8 - model_settings = ModelSettings(tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0) + model_settings = ModelSettings( + tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0 + ) simulator_settings = SimulatorSettings() - rxn_system0.termination.append(TerminationTime((integration_time, 's'))) - - rxn_system0.simulate(core_species, core_reactions, [], [], [], [], - model_settings=model_settings, simulator_settings=simulator_settings) + rxn_system0.termination.append(TerminationTime((integration_time, "s"))) + + rxn_system0.simulate( + core_species, + core_reactions, + [], + [], + [], + [], + model_settings=model_settings, + simulator_settings=simulator_settings, + ) y0 = rxn_system0.y dfdk = np.zeros((num_core_species, len(rxn_list))) # d(dy/dt)/dk - c0 = {self.CH4: 0.2, self.CH3: 0.1, self.C2H6: 0.35, self.C2H5: 0.15, self.H2: 0.2} + c0 = { + self.CH4: 0.2, + self.CH3: 0.1, + self.C2H6: 0.35, + self.C2H5: 0.15, + self.H2: 0.2, + } for i in range(len(rxn_list)): k0 = rxn_list[i].get_rate_coefficient(self.T) - rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si * (1 + 1e-3) + rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si * ( + 1 + 1e-3 + ) dk = rxn_list[i].get_rate_coefficient(self.T) - k0 rxn_system = LiquidReactor(self.T, c0, 1, termination=[]) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) - dfdt = rxn_system.residual(0.0, rxn_system.y, np.zeros(rxn_system.y.shape))[0] + dfdt = rxn_system.residual(0.0, rxn_system.y, np.zeros(rxn_system.y.shape))[ + 0 + ] dfdk[:, i] = (dfdt - dfdt0) / dk - rxn_system.termination.append(TerminationTime((integration_time, 's'))) - model_settings = ModelSettings(tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0) + rxn_system.termination.append(TerminationTime((integration_time, "s"))) + model_settings = ModelSettings( + tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0 + ) simulator_settings = SimulatorSettings() - rxn_system.simulate(core_species, core_reactions, [], [], [], [], - model_settings=model_settings, simulator_settings=simulator_settings) - - rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si / (1 + 1e-3) # reset A factor + rxn_system.simulate( + core_species, + core_reactions, + [], + [], + [], + [], + model_settings=model_settings, + simulator_settings=simulator_settings, + ) + + rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si / ( + 1 + 1e-3 + ) # reset A factor for i in range(num_core_species): for j in range(len(rxn_list)): - self.assertAlmostEqual(dfdk[i, j], solver_dfdk[i, j], delta=abs(1e-3 * dfdk[i, j])) + self.assertAlmostEqual( + dfdk[i, j], solver_dfdk[i, j], delta=abs(1e-3 * dfdk[i, j]) + ) def test_store_constant_species_names(self): """ @@ -394,39 +561,67 @@ def test_store_constant_species_names(self): sensitivity_threshold = 0.001 constant_species = ["CH4", "C2H6"] sens_conds = None - rxn_system1 = LiquidReactor(temp, c0, 4, termination_conversion, sensitivity, sensitivity_threshold, sens_conds, - constant_species) + rxn_system1 = LiquidReactor( + temp, + c0, + 4, + termination_conversion, + sensitivity, + sensitivity_threshold, + sens_conds, + constant_species, + ) # set up the liquid phase reactor 2 constant_species = ["O2", "H2O"] - rxn_system2 = LiquidReactor(temp, c0, 4, termination_conversion, sensitivity, sensitivity_threshold, sens_conds, - constant_species) + rxn_system2 = LiquidReactor( + temp, + c0, + 4, + termination_conversion, + sensitivity, + sensitivity_threshold, + sens_conds, + constant_species, + ) for reactor in [rxn_system1, rxn_system2]: self.assertIsNotNone(reactor.const_spc_names) # check if Constant species are different in each liquid system for spc in rxn_system1.const_spc_names: for spc2 in rxn_system2.const_spc_names: - self.assertIsNot(spc, spc2, 'Constant species declared in two different reactors seem mixed. ' - 'Species "{0}" appears in both systems and should be.'.format(spc)) + self.assertIsNot( + spc, + spc2, + "Constant species declared in two different reactors seem mixed. " + 'Species "{0}" appears in both systems and should be.'.format(spc), + ) def test_liquid_input_reading(self): """ - Check if constant concentration condition is well handled. + Check if constant concentration condition is well handled. From input file reading to information storage in liquid reactor object. """ rmg = RMG() - rmg.input_file = os.path.join(self.file_dir, 'input.py') + rmg.input_file = os.path.join(self.file_dir, "input.py") rmg.initialize() for index, reactionSystem in enumerate(rmg.reaction_systems): - self.assertIsNotNone(reactionSystem.const_spc_names, - 'Reactor should contain constant species name and indices after few steps') - self.assertIsNotNone(reactionSystem.const_spc_indices, - 'Reactor should contain constant species indices in the core species array') - self.assertIs(reactionSystem.const_spc_names[0], - rmg.reaction_model.core.species[reactionSystem.const_spc_indices[0]].label, - 'The constant species name from the reaction model and constantSPCnames should be equal') + self.assertIsNotNone( + reactionSystem.const_spc_names, + "Reactor should contain constant species name and indices after few steps", + ) + self.assertIsNotNone( + reactionSystem.const_spc_indices, + "Reactor should contain constant species indices in the core species array", + ) + self.assertIs( + reactionSystem.const_spc_names[0], + rmg.reaction_model.core.species[ + reactionSystem.const_spc_indices[0] + ].label, + "The constant species name from the reaction model and constantSPCnames should be equal", + ) def test_corespecies_rate(self): """ @@ -437,7 +632,12 @@ def test_corespecies_rate(self): rxn1 = Reaction( reactants=[self.C2H6, self.CH3], products=[self.C2H5, self.CH4], - kinetics=Arrhenius(A=(686.375 * 6, 'm^3/(mol*s)'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K')) + kinetics=Arrhenius( + A=(686.375 * 6, "m^3/(mol*s)"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), ) core_species = [self.CH4, self.CH3, self.C2H6, self.C2H5] @@ -448,14 +648,30 @@ def test_corespecies_rate(self): termination_conversion = [] sensitivity_threshold = 0.001 const_species = ["CH4"] - sens_conds = {self.C2H5: 0.1, self.CH3: 0.1, self.CH4: 0.4, self.C2H6: 0.4, 'T': self.T} - - rxn_system = LiquidReactor(self.T, c0, 1, termination_conversion, sensitivity, sensitivity_threshold, - const_spc_names=const_species, sens_conditions=sens_conds) + sens_conds = { + self.C2H5: 0.1, + self.CH3: 0.1, + self.CH4: 0.4, + self.C2H6: 0.4, + "T": self.T, + } + + rxn_system = LiquidReactor( + self.T, + c0, + 1, + termination_conversion, + sensitivity, + sensitivity_threshold, + const_spc_names=const_species, + sens_conditions=sens_conds, + ) # The test regarding the writing of constantSPCindices from input file is check with the previous test. rxn_system.const_spc_indices = [0] - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.array([10 ** (i / 10.0) for i in range(-130, -49)], np.float64) @@ -464,9 +680,12 @@ def test_corespecies_rate(self): for t1 in tlist: rxn_system.advance(t1) t.append(rxn_system.t) - self.assertEqual(rxn_system.core_species_rates[0], 0, - "Core species rate has to be equal to 0 for species hold constant. " - "Here it is equal to {0}".format(rxn_system.core_species_rates[0])) + self.assertEqual( + rxn_system.core_species_rates[0], + 0, + "Core species rate has to be equal to 0 for species hold constant. " + "Here it is equal to {0}".format(rxn_system.core_species_rates[0]), + ) @classmethod def tearDownClass(cls): @@ -475,9 +694,11 @@ def tearDownClass(cls): """ global diffusion_limiter from rmgpy.kinetics.diffusionLimited import diffusion_limiter + diffusion_limiter.enabled = False import rmgpy.data.rmg + rmgpy.data.rmg.database = None - os.remove(os.path.join(cls.file_dir, 'restart_from_seed.py')) + os.remove(os.path.join(cls.file_dir, "restart_from_seed.py")) diff --git a/test/rmgpy/solver/simpleTest.py b/test/rmgpy/solver/simpleTest.py index de0c477dea..691b92955b 100644 --- a/test/rmgpy/solver/simpleTest.py +++ b/test/rmgpy/solver/simpleTest.py @@ -46,8 +46,8 @@ ################################################################################ -class SimpleReactorCheck(unittest.TestCase): +class SimpleReactorCheck(unittest.TestCase): def test_solve(self): """ Test the simple batch reactor with a simple kinetic model. Here we @@ -56,32 +56,63 @@ def test_solve(self): """ ch4 = Species( molecule=[Molecule().from_smiles("C")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([8.615, 9.687, 10.963, 12.301, 14.841, 16.976, 20.528], "cal/(mol*K)"), - H298=(-17.714, "kcal/mol"), S298=(44.472, "cal/(mol*K)")) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [8.615, 9.687, 10.963, 12.301, 14.841, 16.976, 20.528], + "cal/(mol*K)", + ), + H298=(-17.714, "kcal/mol"), + S298=(44.472, "cal/(mol*K)"), + ), ) ch3 = Species( molecule=[Molecule().from_smiles("[CH3]")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([9.397, 10.123, 10.856, 11.571, 12.899, 14.055, 16.195], "cal/(mol*K)"), - H298=(9.357, "kcal/mol"), S298=(45.174, "cal/(mol*K)")) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [9.397, 10.123, 10.856, 11.571, 12.899, 14.055, 16.195], + "cal/(mol*K)", + ), + H298=(9.357, "kcal/mol"), + S298=(45.174, "cal/(mol*K)"), + ), ) c2h6 = Species( molecule=[Molecule().from_smiles("CC")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([12.684, 15.506, 18.326, 20.971, 25.500, 29.016, 34.595], "cal/(mol*K)"), - H298=(-19.521, "kcal/mol"), S298=(54.799, "cal/(mol*K)")) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.684, 15.506, 18.326, 20.971, 25.500, 29.016, 34.595], + "cal/(mol*K)", + ), + H298=(-19.521, "kcal/mol"), + S298=(54.799, "cal/(mol*K)"), + ), ) c2h5 = Species( molecule=[Molecule().from_smiles("C[CH2]")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([11.635, 13.744, 16.085, 18.246, 21.885, 24.676, 29.107], "cal/(mol*K)"), - H298=(29.496, "kcal/mol"), S298=(56.687, "cal/(mol*K)")) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.635, 13.744, 16.085, 18.246, 21.885, 24.676, 29.107], + "cal/(mol*K)", + ), + H298=(29.496, "kcal/mol"), + S298=(56.687, "cal/(mol*K)"), + ), ) - rxn1 = Reaction(reactants=[c2h6, ch3], products=[c2h5, ch4], - kinetics=Arrhenius(A=(686.375 * 6, 'm^3/(mol*s)'), n=4.40721, Ea=(7.82799, 'kcal/mol'), - T0=(298.15, 'K'))) + rxn1 = Reaction( + reactants=[c2h6, ch3], + products=[c2h5, ch4], + kinetics=Arrhenius( + A=(686.375 * 6, "m^3/(mol*s)"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ) core_species = [ch4, ch3, c2h6, c2h5] edge_species = [] @@ -90,10 +121,17 @@ def test_solve(self): T = 1000 P = 1.0e5 - rxn_system = SimpleReactor(T, P, initial_mole_fractions={c2h5: 0.1, ch3: 0.1, ch4: 0.4, c2h6: 0.4}, n_sims=1, - termination=[]) + rxn_system = SimpleReactor( + T, + P, + initial_mole_fractions={c2h5: 0.1, ch3: 0.1, ch4: 0.4, c2h6: 0.4}, + n_sims=1, + termination=[], + ) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.array([10 ** (i / 10.0) for i in range(-130, -49)], np.float64) @@ -120,12 +158,28 @@ def test_solve(self): # Check that we're computing the species fluxes correctly for i in range(t.shape[0]): - self.assertAlmostEqual(reaction_rates[i, 0], species_rates[i, 0], delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 1], delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 2], delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], species_rates[i, 3], delta=1e-6 * reaction_rates[i, 0]) - - # Check that we've reached equilibrium + self.assertAlmostEqual( + reaction_rates[i, 0], + species_rates[i, 0], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 1], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 2], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + species_rates[i, 3], + delta=1e-6 * reaction_rates[i, 0], + ) + + # Check that we've reached equilibrium self.assertAlmostEqual(reaction_rates[-1, 0], 0.0, delta=1e-2) # Unit test for the jacobian function: @@ -133,42 +187,115 @@ def test_solve(self): h2 = Species( molecule=[Molecule().from_smiles("[H][H]")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([6.89, 6.97, 6.99, 7.01, 7.08, 7.22, 7.72], "cal/(mol*K)"), H298=(0, "kcal/mol"), - S298=(31.23, "cal/(mol*K)")) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.89, 6.97, 6.99, 7.01, 7.08, 7.22, 7.72], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(31.23, "cal/(mol*K)"), + ), ) rxn_list = [ - Reaction(reactants=[c2h6], products=[ch3, ch3], - kinetics=Arrhenius( - A=(686.375 * 6, '1/s'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[ch3, ch3], products=[c2h6], - kinetics=Arrhenius( - A=(686.375 * 6, 'm^3/(mol*s)'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h6, ch3], products=[c2h5, ch4], - kinetics=Arrhenius( - A=(46.375 * 6, 'm^3/(mol*s)'), n=3.40721, Ea=(6.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h5, ch4], products=[c2h6, ch3], - kinetics=Arrhenius( - A=(46.375 * 6, 'm^3/(mol*s)'), n=3.40721, Ea=(6.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h5, ch4], products=[ch3, ch3, ch3], - kinetics=Arrhenius( - A=(246.375 * 6, 'm^3/(mol*s)'), n=1.40721, Ea=(3.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[ch3, ch3, ch3], products=[c2h5, ch4], - kinetics=Arrhenius( - A=(246.375 * 6, 'm^6/(mol^2*s)'), n=1.40721, Ea=(3.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h6, ch3, ch3], products=[c2h5, c2h5, h2], - kinetics=Arrhenius( - A=(146.375 * 6, 'm^6/(mol^2*s)'), n=2.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h5, c2h5, h2], products=[c2h6, ch3, ch3], - kinetics=Arrhenius( - A=(146.375 * 6, 'm^6/(mol^2*s)'), n=2.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h6, c2h6], products=[ch3, ch4, c2h5], - kinetics=Arrhenius( - A=(1246.375 * 6, 'm^3/(mol*s)'), n=0.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[ch3, ch4, c2h5], products=[c2h6, c2h6], - kinetics=Arrhenius( - A=(46.375 * 6, 'm^6/(mol^2*s)'), n=0.10721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K'))) + Reaction( + reactants=[c2h6], + products=[ch3, ch3], + kinetics=Arrhenius( + A=(686.375 * 6, "1/s"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[ch3, ch3], + products=[c2h6], + kinetics=Arrhenius( + A=(686.375 * 6, "m^3/(mol*s)"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h6, ch3], + products=[c2h5, ch4], + kinetics=Arrhenius( + A=(46.375 * 6, "m^3/(mol*s)"), + n=3.40721, + Ea=(6.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h5, ch4], + products=[c2h6, ch3], + kinetics=Arrhenius( + A=(46.375 * 6, "m^3/(mol*s)"), + n=3.40721, + Ea=(6.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h5, ch4], + products=[ch3, ch3, ch3], + kinetics=Arrhenius( + A=(246.375 * 6, "m^3/(mol*s)"), + n=1.40721, + Ea=(3.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[ch3, ch3, ch3], + products=[c2h5, ch4], + kinetics=Arrhenius( + A=(246.375 * 6, "m^6/(mol^2*s)"), + n=1.40721, + Ea=(3.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h6, ch3, ch3], + products=[c2h5, c2h5, h2], + kinetics=Arrhenius( + A=(146.375 * 6, "m^6/(mol^2*s)"), + n=2.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h5, c2h5, h2], + products=[c2h6, ch3, ch3], + kinetics=Arrhenius( + A=(146.375 * 6, "m^6/(mol^2*s)"), + n=2.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h6, c2h6], + products=[ch3, ch4, c2h5], + kinetics=Arrhenius( + A=(1246.375 * 6, "m^3/(mol*s)"), + n=0.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[ch3, ch4, c2h5], + products=[c2h6, c2h6], + kinetics=Arrhenius( + A=(46.375 * 6, "m^6/(mol^2*s)"), + n=0.10721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), ] for rxn in rxn_list: @@ -176,29 +303,51 @@ def test_solve(self): edge_species = [] core_reactions = [rxn] - rxn_system0 = SimpleReactor(T, P, - initial_mole_fractions={ch4: 0.2, ch3: 0.1, c2h6: 0.35, c2h5: 0.15, h2: 0.2}, - n_sims=1, termination=[]) - rxn_system0.initialize_model(core_species, core_reactions, edge_species, edge_reactions) - dydt0 = rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[0] + rxn_system0 = SimpleReactor( + T, + P, + initial_mole_fractions={ + ch4: 0.2, + ch3: 0.1, + c2h6: 0.35, + c2h5: 0.15, + h2: 0.2, + }, + n_sims=1, + termination=[], + ) + rxn_system0.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) + dydt0 = rxn_system0.residual( + 0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape) + )[0] num_core_species = len(core_species) - dN = .000001 * sum(rxn_system0.y) + dN = 0.000001 * sum(rxn_system0.y) dN_array = dN * np.eye(num_core_species) dydt = [] for i in range(num_core_species): rxn_system0.y[i] += dN - dydt.append(rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[0]) + dydt.append( + rxn_system0.residual( + 0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape) + )[0] + ) rxn_system0.y[i] -= dN # reset y to original y0 - # Let the solver compute the jacobian + # Let the solver compute the jacobian solver_jacobian = rxn_system0.jacobian(0.0, rxn_system0.y, dydt0, 0.0) # Compute the jacobian using finite differences jacobian = np.zeros((num_core_species, num_core_species)) for i in range(num_core_species): for j in range(num_core_species): jacobian[i, j] = (dydt[j][i] - dydt0[i]) / dN - self.assertAlmostEqual(jacobian[i, j], solver_jacobian[i, j], delta=abs(1e-4 * jacobian[i, j])) + self.assertAlmostEqual( + jacobian[i, j], + solver_jacobian[i, j], + delta=abs(1e-4 * jacobian[i, j]), + ) # print 'Solver jacobian' # print solver_jacobian @@ -207,35 +356,81 @@ def test_solve(self): # Unit test for the compute rate derivative rxn_list = [ - Reaction(reactants=[c2h6], products=[ch3, ch3], - kinetics=Arrhenius( - A=(686.375e6, '1/s'), n=4.40721, Ea=(7.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h6, ch3], products=[c2h5, ch4], - kinetics=Arrhenius( - A=(46.375 * 6, 'm^3/(mol*s)'), n=3.40721, Ea=(6.82799, 'kcal/mol'), T0=(298.15, 'K'))), - Reaction(reactants=[c2h6, ch3, ch3], products=[c2h5, c2h5, h2], - kinetics=Arrhenius( - A=(146.375 * 6, 'm^6/(mol^2*s)'), n=2.40721, Ea=(8.82799, 'kcal/mol'), T0=(298.15, 'K'))) + Reaction( + reactants=[c2h6], + products=[ch3, ch3], + kinetics=Arrhenius( + A=(686.375e6, "1/s"), + n=4.40721, + Ea=(7.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h6, ch3], + products=[c2h5, ch4], + kinetics=Arrhenius( + A=(46.375 * 6, "m^3/(mol*s)"), + n=3.40721, + Ea=(6.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), + Reaction( + reactants=[c2h6, ch3, ch3], + products=[c2h5, c2h5, h2], + kinetics=Arrhenius( + A=(146.375 * 6, "m^6/(mol^2*s)"), + n=2.40721, + Ea=(8.82799, "kcal/mol"), + T0=(298.15, "K"), + ), + ), ] core_species = [ch4, ch3, c2h6, c2h5, h2] edge_species = [] core_reactions = rxn_list - rxn_system0 = SimpleReactor(T, P, initial_mole_fractions={ch4: 0.2, ch3: 0.1, c2h6: 0.35, c2h5: 0.15, h2: 0.2}, - n_sims=1, termination=[]) - rxn_system0.initialize_model(core_species, core_reactions, edge_species, edge_reactions) - dfdt0 = rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[0] + rxn_system0 = SimpleReactor( + T, + P, + initial_mole_fractions={ + ch4: 0.2, + ch3: 0.1, + c2h6: 0.35, + c2h5: 0.15, + h2: 0.2, + }, + n_sims=1, + termination=[], + ) + rxn_system0.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) + dfdt0 = rxn_system0.residual(0.0, rxn_system0.y, np.zeros(rxn_system0.y.shape))[ + 0 + ] solver_dfdk = rxn_system0.compute_rate_derivative() # print 'Solver d(dy/dt)/dk' # print solver_dfdk integration_time = 1e-8 - rxn_system0.termination.append(TerminationTime((integration_time, 's'))) - model_settings = ModelSettings(tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0) + rxn_system0.termination.append(TerminationTime((integration_time, "s"))) + model_settings = ModelSettings( + tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0 + ) simulator_settings = SimulatorSettings() - rxn_system0.simulate(core_species, core_reactions, [], [], [], [], model_settings=model_settings, - simulator_settings=simulator_settings) + rxn_system0.simulate( + core_species, + core_reactions, + [], + [], + [], + [], + model_settings=model_settings, + simulator_settings=simulator_settings, + ) y0 = rxn_system0.y @@ -243,28 +438,59 @@ def test_solve(self): for i in range(len(rxn_list)): k0 = rxn_list[i].get_rate_coefficient(T, P) - rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si * (1 + 1e-3) + rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si * ( + 1 + 1e-3 + ) dk = rxn_list[i].get_rate_coefficient(T, P) - k0 - rxn_system = SimpleReactor(T, P, initial_mole_fractions={ch4: 0.2, ch3: 0.1, c2h6: 0.35, c2h5: 0.15, h2: 0.2}, - n_sims=1, termination=[]) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) - - dfdt = rxn_system.residual(0.0, rxn_system.y, np.zeros(rxn_system.y.shape))[0] + rxn_system = SimpleReactor( + T, + P, + initial_mole_fractions={ + ch4: 0.2, + ch3: 0.1, + c2h6: 0.35, + c2h5: 0.15, + h2: 0.2, + }, + n_sims=1, + termination=[], + ) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) + + dfdt = rxn_system.residual(0.0, rxn_system.y, np.zeros(rxn_system.y.shape))[ + 0 + ] dfdk[:, i] = (dfdt - dfdt0) / dk - rxn_system.termination.append(TerminationTime((integration_time, 's'))) - model_settings = ModelSettings(tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0) + rxn_system.termination.append(TerminationTime((integration_time, "s"))) + model_settings = ModelSettings( + tol_keep_in_edge=0, tol_move_to_core=1, tol_interrupt_simulation=0 + ) simulator_settings = SimulatorSettings() - rxn_system.simulate(core_species, core_reactions, [], [], [], [], model_settings=model_settings, - simulator_settings=simulator_settings) - - rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si / (1 + 1e-3) # reset A factor + rxn_system.simulate( + core_species, + core_reactions, + [], + [], + [], + [], + model_settings=model_settings, + simulator_settings=simulator_settings, + ) + + rxn_list[i].kinetics.A.value_si = rxn_list[i].kinetics.A.value_si / ( + 1 + 1e-3 + ) # reset A factor for i in range(num_core_species): for j in range(len(rxn_list)): - self.assertAlmostEqual(dfdk[i, j], solver_dfdk[i, j], delta=abs(1e-3 * dfdk[i, j])) + self.assertAlmostEqual( + dfdk[i, j], solver_dfdk[i, j], delta=abs(1e-3 * dfdk[i, j]) + ) # print 'Numerical d(dy/dt)/dk' # print dfdk @@ -288,12 +514,27 @@ def test_collider_model(self): """ Test the solver's ability to simulate a model with collision efficiencies. """ - chem_file = os.path.join(os.path.dirname(__file__), 'files', 'collider_model', 'chem.inp') - dictionary_file = os.path.join(os.path.dirname(__file__), 'files', 'collider_model', 'species_dictionary.txt') + chem_file = os.path.join( + os.path.dirname(__file__), "files", "collider_model", "chem.inp" + ) + dictionary_file = os.path.join( + os.path.dirname(__file__), + "files", + "collider_model", + "species_dictionary.txt", + ) species_list, reaction_list = load_chemkin_file(chem_file, dictionary_file) - smiles_dict = {'H': '[H]', 'HO2': '[O]O', 'O2': '[O][O]', 'Ar': '[Ar]', 'N2': 'N#N', 'CO2': 'O=C=O', - 'CH3': '[CH3]', 'CH4': 'C'} + smiles_dict = { + "H": "[H]", + "HO2": "[O]O", + "O2": "[O][O]", + "Ar": "[Ar]", + "N2": "N#N", + "CO2": "O=C=O", + "CH3": "[CH3]", + "CH4": "C", + } species_dict = {} for name, smiles in smiles_dict.items(): mol = Molecule(smiles=smiles) @@ -304,13 +545,21 @@ def test_collider_model(self): T = 1000 # K P = 10 # Pa - initial_mole_fractions = {species_dict['O2']: 0.5, - species_dict['H']: 0.5, - species_dict['CO2']: 1.0, - species_dict['Ar']: 4.0} + initial_mole_fractions = { + species_dict["O2"]: 0.5, + species_dict["H"]: 0.5, + species_dict["CO2"]: 1.0, + species_dict["Ar"]: 4.0, + } # Initialize the model - rxn_system = SimpleReactor(T, P, initial_mole_fractions=initial_mole_fractions, n_sims=1, termination=None) + rxn_system = SimpleReactor( + T, + P, + initial_mole_fractions=initial_mole_fractions, + n_sims=1, + termination=None, + ) rxn_system.initialize_model(species_list, reaction_list, [], []) # Advance to time = 0.1 s @@ -318,7 +567,23 @@ def test_collider_model(self): # Compare simulated mole fractions with expected mole fractions from CHEMKIN simulated_mole_fracs = rxn_system.y / np.sum(rxn_system.y) expected_mole_fracs = np.array( - [0.6666667, 0, 0, 0, 0.1666667, 0, 0.08333333, 0.08333333, 2.466066000000000E-10, 0, 0, 0, 0, 0]) + [ + 0.6666667, + 0, + 0, + 0, + 0.1666667, + 0, + 0.08333333, + 0.08333333, + 2.466066000000000e-10, + 0, + 0, + 0, + 0, + 0, + ] + ) for i in range(len(simulated_mole_fracs)): self.assertAlmostEqual(simulated_mole_fracs[i], expected_mole_fracs[i]) @@ -326,7 +591,23 @@ def test_collider_model(self): rxn_system.advance(5) # Compare simulated mole fractions with expected mole fractions from CHEMKIN expected_mole_fracs = np.array( - [0.6666667, 0, 0, 0, 0.1666667, 0, 0.08333332, 0.08333332, 1.233033000000000E-08, 0, 0, 0, 0, 0]) + [ + 0.6666667, + 0, + 0, + 0, + 0.1666667, + 0, + 0.08333332, + 0.08333332, + 1.233033000000000e-08, + 0, + 0, + 0, + 0, + 0, + ] + ) for i in range(len(simulated_mole_fracs)): self.assertAlmostEqual(simulated_mole_fracs[i], expected_mole_fracs[i]) @@ -334,14 +615,22 @@ def test_collider_model(self): T = 850 # K P = 200 # Pa - initial_mole_fractions = {species_dict['O2']: 0.5, - species_dict['H']: 1, - species_dict['CO2']: 1, - species_dict['N2']: 4, - species_dict['CH3']: 1} + initial_mole_fractions = { + species_dict["O2"]: 0.5, + species_dict["H"]: 1, + species_dict["CO2"]: 1, + species_dict["N2"]: 4, + species_dict["CH3"]: 1, + } # Initialize the model - rxn_system = SimpleReactor(T, P, initial_mole_fractions=initial_mole_fractions, n_sims=1, termination=None) + rxn_system = SimpleReactor( + T, + P, + initial_mole_fractions=initial_mole_fractions, + n_sims=1, + termination=None, + ) rxn_system.initialize_model(species_list, reaction_list, [], []) # Advance to time = 5 s @@ -349,8 +638,24 @@ def test_collider_model(self): # Compare simulated mole fractions with expected mole fractions from CHEMKIN simulated_mole_fracs = rxn_system.y / np.sum(rxn_system.y) - expected_mole_fracs = np.array([0, 0, 0, 0.5487241, 0.137181, 0, 0.1083234, 0.0685777, - 1.280687000000000E-05, 0, 0, 0, 0.1083362, 0.02884481]) + expected_mole_fracs = np.array( + [ + 0, + 0, + 0, + 0.5487241, + 0.137181, + 0, + 0.1083234, + 0.0685777, + 1.280687000000000e-05, + 0, + 0, + 0, + 0.1083362, + 0.02884481, + ] + ) for i in range(len(simulated_mole_fracs)): self.assertAlmostEqual(simulated_mole_fracs[i], expected_mole_fracs[i]) @@ -358,13 +663,26 @@ def test_specific_collider_model(self): """ Test the solver's ability to simulate a model with specific third body species collision efficiencies. """ - chem_file = os.path.join(os.path.dirname(__file__), 'files', 'specific_collider_model', 'chem.inp') - dictionary_file = os.path.join(os.path.dirname(__file__), 'files', 'specific_collider_model', - 'species_dictionary.txt') + chem_file = os.path.join( + os.path.dirname(__file__), "files", "specific_collider_model", "chem.inp" + ) + dictionary_file = os.path.join( + os.path.dirname(__file__), + "files", + "specific_collider_model", + "species_dictionary.txt", + ) species_list, reaction_list = load_chemkin_file(chem_file, dictionary_file) # Note that H2O is in the corresponding Chemkin file, but intentionally not defined here to check the solver. - smiles_dict = {'Ar': '[Ar]', 'N2(1)': 'N#N', 'O2': '[O][O]', 'H': '[H]', 'CH3': '[CH3]', 'CH4': 'C'} + smiles_dict = { + "Ar": "[Ar]", + "N2(1)": "N#N", + "O2": "[O][O]", + "H": "[H]", + "CH3": "[CH3]", + "CH4": "C", + } species_dict = {} for name, smiles in smiles_dict.items(): mol = Molecule(smiles=smiles) @@ -375,22 +693,40 @@ def test_specific_collider_model(self): T = 1000 # K P = 10 # Pa - initial_mole_fractions = {species_dict['Ar']: 2.0, - species_dict['N2(1)']: 1.0, - species_dict['O2']: 0.5, - species_dict['H']: 0.1, - species_dict['CH3']: 0.1, - species_dict['CH4']: 0.001} + initial_mole_fractions = { + species_dict["Ar"]: 2.0, + species_dict["N2(1)"]: 1.0, + species_dict["O2"]: 0.5, + species_dict["H"]: 0.1, + species_dict["CH3"]: 0.1, + species_dict["CH4"]: 0.001, + } # Initialize the model - rxn_system = SimpleReactor(T, P, initial_mole_fractions=initial_mole_fractions, n_sims=1, termination=None) + rxn_system = SimpleReactor( + T, + P, + initial_mole_fractions=initial_mole_fractions, + n_sims=1, + termination=None, + ) rxn_system.initialize_model(species_list, reaction_list, [], []) # Advance to time = 0.1 s rxn_system.advance(0.1) # Compare simulated mole fractions with expected mole fractions from CHEMKIN simulated_mole_fracs = rxn_system.y / np.sum(rxn_system.y) - expected_mole_fracs = np.array([0.540394532, 0.270197216, 0.135098608, 0.027019722, 0.027019722, 0.000270202, 0.0]) + expected_mole_fracs = np.array( + [ + 0.540394532, + 0.270197216, + 0.135098608, + 0.027019722, + 0.027019722, + 0.000270202, + 0.0, + ] + ) # order: Ar, N2, O2, H, CH3, CH4 for i in range(len(simulated_mole_fracs)): self.assertAlmostEqual(simulated_mole_fracs[i], expected_mole_fracs[i], 6) @@ -398,7 +734,17 @@ def test_specific_collider_model(self): # Advance to time = 5 s rxn_system.advance(5) # Compare simulated mole fractions with expected mole fractions from CHEMKIN - expected_mole_fracs = np.array([0.540394573, 0.270197287, 0.135098693, 0.027019519, 0.027019519, 0.00027041, 0.0]) + expected_mole_fracs = np.array( + [ + 0.540394573, + 0.270197287, + 0.135098693, + 0.027019519, + 0.027019519, + 0.00027041, + 0.0, + ] + ) # order: Ar, N2, O2, H, CH3, CH4 for i in range(len(simulated_mole_fracs)): self.assertAlmostEqual(simulated_mole_fracs[i], expected_mole_fracs[i], 6) @@ -406,22 +752,40 @@ def test_specific_collider_model(self): # Try a new set of conditions T = 850 # K P = 200 # Pa - initial_mole_fractions = {species_dict['Ar']: 1.0, - species_dict['N2(1)']: 0.5, - species_dict['O2']: 0.5, - species_dict['H']: 0.001, - species_dict['CH3']: 0.01, - species_dict['CH4']: 0.5} + initial_mole_fractions = { + species_dict["Ar"]: 1.0, + species_dict["N2(1)"]: 0.5, + species_dict["O2"]: 0.5, + species_dict["H"]: 0.001, + species_dict["CH3"]: 0.01, + species_dict["CH4"]: 0.5, + } # Initialize the model - rxn_system = SimpleReactor(T, P, initial_mole_fractions=initial_mole_fractions, n_sims=1, termination=None) + rxn_system = SimpleReactor( + T, + P, + initial_mole_fractions=initial_mole_fractions, + n_sims=1, + termination=None, + ) rxn_system.initialize_model(species_list, reaction_list, [], []) # Advance to time = 5 s rxn_system.advance(5) # Compare simulated mole fractions with expected mole fractions from CHEMKIN simulated_mole_fracs = rxn_system.y / np.sum(rxn_system.y) - expected_mole_fracs = np.array([0.398247713, 0.199123907, 0.199123907, 0.000398169, 0.003982398, 0.199123907, 0.0]) + expected_mole_fracs = np.array( + [ + 0.398247713, + 0.199123907, + 0.199123907, + 0.000398169, + 0.003982398, + 0.199123907, + 0.0, + ] + ) # order: Ar, N2, O2, H, CH3, CH4 for i in range(len(simulated_mole_fracs)): self.assertAlmostEqual(simulated_mole_fracs[i], expected_mole_fracs[i], 6) diff --git a/test/rmgpy/solver/solverBaseTest.py b/test/rmgpy/solver/solverBaseTest.py index 647657be4f..5d8b8c30fc 100644 --- a/test/rmgpy/solver/solverBaseTest.py +++ b/test/rmgpy/solver/solverBaseTest.py @@ -46,21 +46,26 @@ def update(self, subject): class ReactionSystemTest(unittest.TestCase): - def setUp(self): self.listener = ConcentrationPrinter() - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'solver/files/listener/') - input_file = os.path.join(folder, 'input.py') - chemkin_file = os.path.join(folder, 'chemkin/chem.inp') - spc_dict = os.path.join(folder, 'chemkin/species_dictionary.txt') - - self.rmg = load_rmg_py_job(input_file, chemkin_file, spc_dict, generate_images=False, check_duplicates=False) + folder = os.path.join(os.path.dirname(rmgpy.__file__), "solver/files/listener/") + input_file = os.path.join(folder, "input.py") + chemkin_file = os.path.join(folder, "chemkin/chem.inp") + spc_dict = os.path.join(folder, "chemkin/species_dictionary.txt") + + self.rmg = load_rmg_py_job( + input_file, + chemkin_file, + spc_dict, + generate_images=False, + check_duplicates=False, + ) def test_surface_initialization(self): """ test that initialize_surface is correctly removing species and reactions when - they are no longer consistent with the surface (due to other species/reactions moving to the + they are no longer consistent with the surface (due to other species/reactions moving to the bulk core) """ reaction_system = self.rmg.reaction_systems[0] @@ -72,12 +77,19 @@ def test_surface_initialization(self): surface_species = [core_species[7], core_species[6]] surface_reactions = [core_reactions[0], core_reactions[2], core_reactions[3]] - reaction_system.initialize_model(core_species, core_reactions, - reaction_model.edge.species, reaction_model.edge.reactions, surface_species, - surface_reactions) + reaction_system.initialize_model( + core_species, + core_reactions, + reaction_model.edge.species, + reaction_model.edge.reactions, + surface_species, + surface_reactions, + ) self.assertEquals(len(surface_species), 1) # only H should be left - self.assertEquals(len(surface_reactions), 2) # all the reactions with H should stay + self.assertEquals( + len(surface_reactions), 2 + ) # all the reactions with H should stay def test_surface_layering_constraint(self): """ @@ -99,11 +111,21 @@ def test_surface_layering_constraint(self): reaction_system.num_core_reactions = 1 reaction_system.num_core_species = 7 - reaction_system.initialize_model(core_species, core_reactions, - edge_species, edge_reactions, surface_species, surface_reactions) + reaction_system.initialize_model( + core_species, + core_reactions, + edge_species, + edge_reactions, + surface_species, + surface_reactions, + ) - self.assertEquals(len(reaction_system.surface_species_indices), 1) # surface_species_indices calculated correctly - self.assertEquals(reaction_system.surface_species_indices[0], 5) # surface_species_indices calculated correctly + self.assertEquals( + len(reaction_system.surface_species_indices), 1 + ) # surface_species_indices calculated correctly + self.assertEquals( + reaction_system.surface_species_indices[0], 5 + ) # surface_species_indices calculated correctly inds = reaction_system.get_layering_indices() @@ -127,17 +149,34 @@ def test_add_reactions_to_surface(self): edge_species = species[6:] edge_reactions = reactions[1:] - reaction_system.initialize_model(core_species, core_reactions, - edge_species, edge_reactions, surface_species, surface_reactions) + reaction_system.initialize_model( + core_species, + core_reactions, + edge_species, + edge_reactions, + surface_species, + surface_reactions, + ) new_surface_reactions = edge_reactions - new_surface_reaction_inds = [edge_reactions.index(i) for i in new_surface_reactions] + new_surface_reaction_inds = [ + edge_reactions.index(i) for i in new_surface_reactions + ] surface_species, surface_reactions = reaction_system.add_reactions_to_surface( - new_surface_reactions, new_surface_reaction_inds, surface_species, surface_reactions, edge_species) + new_surface_reactions, + new_surface_reaction_inds, + surface_species, + surface_reactions, + edge_species, + ) - self.assertEqual(set(surface_species), set(edge_species)) # all edge species should now be in the surface - self.assertEqual(set(surface_reactions), set(edge_reactions)) # all edge reactions should now be in the surface + self.assertEqual( + set(surface_species), set(edge_species) + ) # all edge species should now be in the surface + self.assertEqual( + set(surface_reactions), set(edge_reactions) + ) # all edge reactions should now be in the surface def test_attach_detach(self): """ @@ -164,7 +203,9 @@ def test_listen(self): self.assertEqual(self.listener.data, []) - model_settings = ModelSettings(tol_move_to_core=1, tol_keep_in_edge=0, tol_interrupt_simulation=1) + model_settings = ModelSettings( + tol_move_to_core=1, tol_keep_in_edge=0, tol_interrupt_simulation=1 + ) simulator_settings = SimulatorSettings() # run simulation: @@ -192,9 +233,13 @@ def test_pickle(self): self.assertTrue(isinstance(rxn_sys, rmgpy.solver.simple.SimpleReactor)) self.assertEqual(rxn_sys.T.value_si, rxn_sys1.T.value_si) self.assertEqual(rxn_sys.P.value_si, rxn_sys1.P.value_si) - self.assertEqual(rxn_sys.termination[0].conversion, rxn_sys1.termination[0].conversion) - self.assertEqual(rxn_sys.termination[1].time.value_si, rxn_sys1.termination[1].time.value_si) + self.assertEqual( + rxn_sys.termination[0].conversion, rxn_sys1.termination[0].conversion + ) + self.assertEqual( + rxn_sys.termination[1].time.value_si, rxn_sys1.termination[1].time.value_si + ) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/test/rmgpy/solver/solverSurfaceTest.py b/test/rmgpy/solver/solverSurfaceTest.py index 0cf40e9f08..61b2984630 100644 --- a/test/rmgpy/solver/solverSurfaceTest.py +++ b/test/rmgpy/solver/solverSurfaceTest.py @@ -55,29 +55,44 @@ def test_solve_h2(self): """ h2 = Species( molecule=[Molecule().from_smiles("[H][H]")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([6.955, 6.955, 6.956, 6.961, 7.003, 7.103, 7.502], "cal/(mol*K)"), - H298=(0, "kcal/mol"), - S298=(31.129, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.955, 6.955, 6.956, 6.961, 7.003, 7.103, 7.502], + "cal/(mol*K)", + ), + H298=(0, "kcal/mol"), + S298=(31.129, "cal/(mol*K)"), + ), + ) x = Species( molecule=[Molecule().from_adjacency_list("1 X u0 p0")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([0., 0., 0., 0., 0., 0., 0.], "cal/(mol*K)"), - H298=(0.0, "kcal/mol"), - S298=(0.0, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "cal/(mol*K)"), + H298=(0.0, "kcal/mol"), + S298=(0.0, "cal/(mol*K)"), + ), + ) hx = Species( - molecule=[Molecule().from_adjacency_list("1 H u0 p0 {2,S} \n 2 X u0 p0 {1,S}")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([1.50, 2.58, 3.40, 4.00, 4.73, 5.13, 5.57], "cal/(mol*K)"), - H298=(-11.26, "kcal/mol"), - S298=(0.44, "cal/(mol*K)"))) - - rxn1 = Reaction(reactants=[h2, x, x], - products=[hx, hx], - kinetics=SurfaceArrhenius(A=(9.05e18, 'cm^5/(mol^2*s)'), - n=0.5, - Ea=(5.0, 'kJ/mol'), - T0=(1.0, 'K'))) + molecule=[ + Molecule().from_adjacency_list("1 H u0 p0 {2,S} \n 2 X u0 p0 {1,S}") + ], + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.50, 2.58, 3.40, 4.00, 4.73, 5.13, 5.57], "cal/(mol*K)"), + H298=(-11.26, "kcal/mol"), + S298=(0.44, "cal/(mol*K)"), + ), + ) + + rxn1 = Reaction( + reactants=[h2, x, x], + products=[hx, hx], + kinetics=SurfaceArrhenius( + A=(9.05e18, "cm^5/(mol^2*s)"), n=0.5, Ea=(5.0, "kJ/mol"), T0=(1.0, "K") + ), + ) core_species = [h2, x, hx] edge_species = [] @@ -87,15 +102,19 @@ def test_solve_h2(self): T = 600 P_initial = 1.0e5 rxn_system = SurfaceReactor( - T, P_initial, + T, + P_initial, n_sims=1, initial_gas_mole_fractions={h2: 1.0}, initial_surface_coverages={x: 1.0}, - surface_volume_ratio=(1e1, 'm^-1'), - surface_site_density=(2.72e-9, 'mol/cm^2'), - termination=[]) + surface_volume_ratio=(1e1, "m^-1"), + surface_site_density=(2.72e-9, "mol/cm^2"), + termination=[], + ) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.logspace(-13, -5, 81, dtype=np.float64) @@ -118,16 +137,25 @@ def test_solve_h2(self): y = np.array(y, np.float64) reaction_rates = np.array(reaction_rates, np.float64) species_rates = np.array(species_rates, np.float64) - total_sites = y[0,1] + total_sites = y[0, 1] # Check that we're computing the species fluxes correctly for i in range(t.shape[0]): - self.assertAlmostEqual(reaction_rates[i, 0], -1.0 * species_rates[i, 0], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -0.5 * species_rates[i, 1], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], 0.5 * species_rates[i, 2], - delta=1e-6 * reaction_rates[i, 0]) + self.assertAlmostEqual( + reaction_rates[i, 0], + -1.0 * species_rates[i, 0], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -0.5 * species_rates[i, 1], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + 0.5 * species_rates[i, 2], + delta=1e-6 * reaction_rates[i, 0], + ) # Check that we've reached equilibrium self.assertAlmostEqual(reaction_rates[-1, 0], 0.0, delta=1e-2) @@ -164,79 +192,154 @@ def test_solve_ch3(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.91547, 0.00184155, 3.48741e-06, -3.32746e-09, 8.49953e-13, 16285.6, 0.351743], - Tmin=(100, 'K'), Tmax=(1337.63, 'K')), + coeffs=[ + 3.91547, + 0.00184155, + 3.48741e-06, + -3.32746e-09, + 8.49953e-13, + 16285.6, + 0.351743, + ], + Tmin=(100, "K"), + Tmax=(1337.63, "K"), + ), NASAPolynomial( - coeffs=[3.54146, 0.00476786, -1.82148e-06, 3.28876e-10, -2.22545e-14, 16224, 1.66032], - Tmin=(1337.63, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), E0=(135.382, 'kJ/mol'), - comment="""Thermo library: primaryThermoLibrary + radical(CH3)""" + coeffs=[ + 3.54146, + 0.00476786, + -1.82148e-06, + 3.28876e-10, + -2.22545e-14, + 16224, + 1.66032, + ], + Tmin=(1337.63, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(135.382, "kJ/mol"), + comment="""Thermo library: primaryThermoLibrary + radical(CH3)""", ), - molecular_weight=(15.0345, 'amu'), + molecular_weight=(15.0345, "amu"), ) x = Species( molecule=[Molecule().from_adjacency_list("1 X u0 p0")], - thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(298, 'K'), Tmax=(1000, 'K')), - NASAPolynomial(coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(1000, 'K'), Tmax=(2000, 'K'))], - Tmin=(298, 'K'), Tmax=(2000, 'K'), E0=(-6.19426, 'kJ/mol'), - comment="""Thermo library: surfaceThermo""") + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(298, "K"), Tmax=(1000, "K") + ), + NASAPolynomial( + coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(1000, "K"), Tmax=(2000, "K") + ), + ], + Tmin=(298, "K"), + Tmax=(2000, "K"), + E0=(-6.19426, "kJ/mol"), + comment="""Thermo library: surfaceThermo""", + ), ) ch3x = Species( - molecule=[Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} + molecule=[ + Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -5 X u0 p0 c0 {1,S}""")], +5 X u0 p0 c0 {1,S}""" + ) + ], thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.552219, 0.026442, -3.55617e-05, 2.60044e-08, -7.52707e-12, -4433.47, 0.692144], - Tmin=(298, 'K'), Tmax=(1000, 'K')), + coeffs=[ + -0.552219, + 0.026442, + -3.55617e-05, + 2.60044e-08, + -7.52707e-12, + -4433.47, + 0.692144, + ], + Tmin=(298, "K"), + Tmax=(1000, "K"), + ), NASAPolynomial( - coeffs=[3.62557, 0.00739512, -2.43797e-06, 1.86159e-10, 3.6485e-14, -5187.22, -18.9668], - Tmin=(1000, 'K'), Tmax=(2000, 'K'))], - Tmin=(298, 'K'), Tmax=(2000, 'K'), E0=(-39.1285, 'kJ/mol'), - comment="""Thermo library: surfaceThermoNi111""") + coeffs=[ + 3.62557, + 0.00739512, + -2.43797e-06, + 1.86159e-10, + 3.6485e-14, + -5187.22, + -18.9668, + ], + Tmin=(1000, "K"), + Tmax=(2000, "K"), + ), + ], + Tmin=(298, "K"), + Tmax=(2000, "K"), + E0=(-39.1285, "kJ/mol"), + comment="""Thermo library: surfaceThermoNi111""", + ), ) - rxn1 = Reaction(reactants=[ch3, x], - products=[ch3x], - kinetics=StickingCoefficient( - A=0.1, n=0, Ea=(0, 'kcal/mol'), T0=(1, 'K'), Tmin=(200, 'K'), Tmax=(3000, 'K'), - comment="""Exact match found for rate rule (Adsorbate;VacantSite)""" - ) - # kinetics=SurfaceArrhenius(A=(2.7e10, 'cm^3/(mol*s)'), - # n=0.5, - # Ea=(5.0, 'kJ/mol'), - # T0=(1.0, 'K')) - ) + rxn1 = Reaction( + reactants=[ch3, x], + products=[ch3x], + kinetics=StickingCoefficient( + A=0.1, + n=0, + Ea=(0, "kcal/mol"), + T0=(1, "K"), + Tmin=(200, "K"), + Tmax=(3000, "K"), + comment="""Exact match found for rate rule (Adsorbate;VacantSite)""", + ) + # kinetics=SurfaceArrhenius(A=(2.7e10, 'cm^3/(mol*s)'), + # n=0.5, + # Ea=(5.0, 'kJ/mol'), + # T0=(1.0, 'K')) + ) core_species = [ch3, x, ch3x] edge_species = [] core_reactions = [rxn1] edge_reactions = [] - T = 800. + T = 800.0 P_initial = 1.0e5 rxn_system = SurfaceReactor( - T, P_initial, + T, + P_initial, n_sims=1, initial_gas_mole_fractions={ch3: 1.0}, initial_surface_coverages={x: 1.0}, - surface_volume_ratio=(1., 'm^-1'), - surface_site_density=(2.72e-9, 'mol/cm^2'), - termination=[]) + surface_volume_ratio=(1.0, "m^-1"), + surface_site_density=(2.72e-9, "mol/cm^2"), + termination=[], + ) # in chemkin, the sites are mostly occupied in about 1e-8 seconds. - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.logspace(-13, -5, 81, dtype=np.float64) print("Surface site density:", rxn_system.surface_site_density.value_si) - print("rxn1 rate coefficient", - rxn1.get_surface_rate_coefficient(rxn_system.T.value_si, rxn_system.surface_site_density.value_si)) + print( + "rxn1 rate coefficient", + rxn1.get_surface_rate_coefficient( + rxn_system.T.value_si, rxn_system.surface_site_density.value_si + ), + ) # Integrate to get the solution at each time point t = [] @@ -267,16 +370,30 @@ def test_solve_ch3(self): y = np.array(y, np.float64) reaction_rates = np.array(reaction_rates, np.float64) species_rates = np.array(species_rates, np.float64) - V = constants.R * rxn_system.T.value_si * np.sum(y) / rxn_system.P_initial.value_si + V = ( + constants.R + * rxn_system.T.value_si + * np.sum(y) + / rxn_system.P_initial.value_si + ) # Check that we're computing the species fluxes correctly for i in range(t.shape[0]): - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 0], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 1], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], species_rates[i, 2], - delta=1e-6 * reaction_rates[i, 0]) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 0], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 1], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + species_rates[i, 2], + delta=1e-6 * reaction_rates[i, 0], + ) # Check that we've reached equilibrium by the end self.assertAlmostEqual(reaction_rates[-1, 0], 0.0, delta=1e-2) @@ -292,39 +409,60 @@ def test_solve_h2_coverage_dependence(self): """ h2 = Species( molecule=[Molecule().from_smiles("[H][H]")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([6.955, 6.955, 6.956, 6.961, 7.003, 7.103, 7.502], "cal/(mol*K)"), - H298=(0, "kcal/mol"), - S298=(31.129, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.955, 6.955, 6.956, 6.961, 7.003, 7.103, 7.502], + "cal/(mol*K)", + ), + H298=(0, "kcal/mol"), + S298=(31.129, "cal/(mol*K)"), + ), + ) x = Species( molecule=[Molecule().from_adjacency_list("1 X u0 p0")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([0., 0., 0., 0., 0., 0., 0.], "cal/(mol*K)"), - H298=(0.0, "kcal/mol"), - S298=(0.0, "cal/(mol*K)"))) + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "cal/(mol*K)"), + H298=(0.0, "kcal/mol"), + S298=(0.0, "cal/(mol*K)"), + ), + ) hx = Species( - molecule=[Molecule().from_adjacency_list("1 H u0 p0 {2,S} \n 2 X u0 p0 {1,S}")], - thermo=ThermoData(Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=([1.50, 2.58, 3.40, 4.00, 4.73, 5.13, 5.57], "cal/(mol*K)"), - H298=(-11.26, "kcal/mol"), - S298=(0.44, "cal/(mol*K)"))) - - rxn1 = Reaction(reactants=[h2, x, x], - products=[hx, hx], - kinetics=SurfaceArrhenius(A=(9.05e18, 'cm^5/(mol^2*s)'), - n=0.5, - Ea=(5.0, 'kJ/mol'), - T0=(1.0, 'K'), - coverage_dependence={x: {'a': 0.0, 'm': -1.0, 'E': (0.0, 'J/mol')}})) - - rxn2 = Reaction(reactants=[h2, x, x], - products=[hx, hx], - kinetics=SurfaceArrhenius(A=(9.05e-18, 'cm^5/(mol^2*s)'), # 1e36 times slower - n=0.5, - Ea=(5.0, 'kJ/mol'), - T0=(1.0, 'K'), - coverage_dependence={x: {'a': 0.0, 'm': -1.0, 'E': (10.0, 'J/mol')}} - )) + molecule=[ + Molecule().from_adjacency_list("1 H u0 p0 {2,S} \n 2 X u0 p0 {1,S}") + ], + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.50, 2.58, 3.40, 4.00, 4.73, 5.13, 5.57], "cal/(mol*K)"), + H298=(-11.26, "kcal/mol"), + S298=(0.44, "cal/(mol*K)"), + ), + ) + + rxn1 = Reaction( + reactants=[h2, x, x], + products=[hx, hx], + kinetics=SurfaceArrhenius( + A=(9.05e18, "cm^5/(mol^2*s)"), + n=0.5, + Ea=(5.0, "kJ/mol"), + T0=(1.0, "K"), + coverage_dependence={x: {"a": 0.0, "m": -1.0, "E": (0.0, "J/mol")}}, + ), + ) + + rxn2 = Reaction( + reactants=[h2, x, x], + products=[hx, hx], + kinetics=SurfaceArrhenius( + A=(9.05e-18, "cm^5/(mol^2*s)"), # 1e36 times slower + n=0.5, + Ea=(5.0, "kJ/mol"), + T0=(1.0, "K"), + coverage_dependence={x: {"a": 0.0, "m": -1.0, "E": (10.0, "J/mol")}}, + ), + ) core_species = [h2, x, hx] edge_species = [] @@ -340,26 +478,32 @@ def test_solve_h2_coverage_dependence(self): T = 600 P_initial = 1.0e5 rxn_system = SurfaceReactor( - T, P_initial, + T, + P_initial, n_sims=1, initial_gas_mole_fractions={h2: 1.0}, initial_surface_coverages={x: 1.0}, - surface_volume_ratio=(1e1, 'm^-1'), - surface_site_density=(2.72e-9, 'mol/cm^2'), + surface_volume_ratio=(1e1, "m^-1"), + surface_site_density=(2.72e-9, "mol/cm^2"), coverage_dependence=True, - termination=[]) + termination=[], + ) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.logspace(-13, -5, 81, dtype=np.float64) - self.assertIsInstance(rxn1.kinetics.coverage_dependence, dict) # check to make sure coverage_dependence is still the correct type + self.assertIsInstance( + rxn1.kinetics.coverage_dependence, dict + ) # check to make sure coverage_dependence is still the correct type for species, parameters in rxn1.kinetics.coverage_dependence.items(): self.assertIsInstance(species, Species) # species should be a Species self.assertIsInstance(parameters, dict) - self.assertIsNotNone(parameters['a']) - self.assertIsNotNone(parameters['m']) - self.assertIsNotNone(parameters['E']) + self.assertIsNotNone(parameters["a"]) + self.assertIsNotNone(parameters["m"]) + self.assertIsNotNone(parameters["E"]) # Integrate to get the solution at each time point t = [] @@ -383,16 +527,25 @@ def test_solve_h2_coverage_dependence(self): y = np.array(y, np.float64) reaction_rates = np.array(reaction_rates, np.float64) species_rates = np.array(species_rates, np.float64) - total_sites = y[0,1] + total_sites = y[0, 1] # Check that we're computing the species fluxes correctly for i in range(t.shape[0]): - self.assertAlmostEqual(reaction_rates[i, 0], -1.0 * species_rates[i, 0], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -0.5 * species_rates[i, 1], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], 0.5 * species_rates[i, 2], - delta=1e-6 * reaction_rates[i, 0]) + self.assertAlmostEqual( + reaction_rates[i, 0], + -1.0 * species_rates[i, 0], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -0.5 * species_rates[i, 1], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + 0.5 * species_rates[i, 2], + delta=1e-6 * reaction_rates[i, 0], + ) # Check that we've reached equilibrium self.assertAlmostEqual(reaction_rates[-1, 0], 0.0, delta=1e-2) @@ -412,85 +565,162 @@ def test_solve_ch3_coverage_dependence(self): thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[3.91547, 0.00184155, 3.48741e-06, -3.32746e-09, 8.49953e-13, 16285.6, 0.351743], - Tmin=(100, 'K'), Tmax=(1337.63, 'K')), + coeffs=[ + 3.91547, + 0.00184155, + 3.48741e-06, + -3.32746e-09, + 8.49953e-13, + 16285.6, + 0.351743, + ], + Tmin=(100, "K"), + Tmax=(1337.63, "K"), + ), NASAPolynomial( - coeffs=[3.54146, 0.00476786, -1.82148e-06, 3.28876e-10, -2.22545e-14, 16224, 1.66032], - Tmin=(1337.63, 'K'), Tmax=(5000, 'K'))], - Tmin=(100, 'K'), Tmax=(5000, 'K'), E0=(135.382, 'kJ/mol'), - comment="""Thermo library: primaryThermoLibrary + radical(CH3)""" + coeffs=[ + 3.54146, + 0.00476786, + -1.82148e-06, + 3.28876e-10, + -2.22545e-14, + 16224, + 1.66032, + ], + Tmin=(1337.63, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + E0=(135.382, "kJ/mol"), + comment="""Thermo library: primaryThermoLibrary + radical(CH3)""", ), - molecular_weight=(15.0345, 'amu'), + molecular_weight=(15.0345, "amu"), ) x = Species( molecule=[Molecule().from_adjacency_list("1 X u0 p0")], - thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(298, 'K'), Tmax=(1000, 'K')), - NASAPolynomial(coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(1000, 'K'), Tmax=(2000, 'K'))], - Tmin=(298, 'K'), Tmax=(2000, 'K'), E0=(-6.19426, 'kJ/mol'), - comment="""Thermo library: surfaceThermo""") + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(298, "K"), Tmax=(1000, "K") + ), + NASAPolynomial( + coeffs=[0, 0, 0, 0, 0, 0, 0], Tmin=(1000, "K"), Tmax=(2000, "K") + ), + ], + Tmin=(298, "K"), + Tmax=(2000, "K"), + E0=(-6.19426, "kJ/mol"), + comment="""Thermo library: surfaceThermo""", + ), ) ch3x = Species( - molecule=[Molecule().from_adjacency_list("""1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} + molecule=[ + Molecule().from_adjacency_list( + """1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -5 X u0 p0 c0 {1,S}""")], +5 X u0 p0 c0 {1,S}""" + ) + ], thermo=NASA( polynomials=[ NASAPolynomial( - coeffs=[-0.552219, 0.026442, -3.55617e-05, 2.60044e-08, -7.52707e-12, -4433.47, 0.692144], - Tmin=(298, 'K'), Tmax=(1000, 'K')), + coeffs=[ + -0.552219, + 0.026442, + -3.55617e-05, + 2.60044e-08, + -7.52707e-12, + -4433.47, + 0.692144, + ], + Tmin=(298, "K"), + Tmax=(1000, "K"), + ), NASAPolynomial( - coeffs=[3.62557, 0.00739512, -2.43797e-06, 1.86159e-10, 3.6485e-14, -5187.22, -18.9668], - Tmin=(1000, 'K'), Tmax=(2000, 'K'))], - Tmin=(298, 'K'), Tmax=(2000, 'K'), E0=(-39.1285, 'kJ/mol'), - comment="""Thermo library: surfaceThermoNi111""") + coeffs=[ + 3.62557, + 0.00739512, + -2.43797e-06, + 1.86159e-10, + 3.6485e-14, + -5187.22, + -18.9668, + ], + Tmin=(1000, "K"), + Tmax=(2000, "K"), + ), + ], + Tmin=(298, "K"), + Tmax=(2000, "K"), + E0=(-39.1285, "kJ/mol"), + comment="""Thermo library: surfaceThermoNi111""", + ), ) - rxn1 = Reaction(reactants=[ch3, x], - products=[ch3x], - kinetics=StickingCoefficient( - A=0.1, n=0, Ea=(0, 'kcal/mol'), T0=(1, 'K'), Tmin=(200, 'K'), Tmax=(3000, 'K'), - coverage_dependence={x: {'a': 0.0, 'm': -1.0, 'E': (0.0, 'J/mol')}}, - comment="""Exact match found for rate rule (Adsorbate;VacantSite)""" - ) - ) + rxn1 = Reaction( + reactants=[ch3, x], + products=[ch3x], + kinetics=StickingCoefficient( + A=0.1, + n=0, + Ea=(0, "kcal/mol"), + T0=(1, "K"), + Tmin=(200, "K"), + Tmax=(3000, "K"), + coverage_dependence={x: {"a": 0.0, "m": -1.0, "E": (0.0, "J/mol")}}, + comment="""Exact match found for rate rule (Adsorbate;VacantSite)""", + ), + ) core_species = [ch3, x, ch3x] edge_species = [] core_reactions = [rxn1] edge_reactions = [] - T = 800. + T = 800.0 P_initial = 1.0e5 rxn_system = SurfaceReactor( - T, P_initial, + T, + P_initial, n_sims=1, initial_gas_mole_fractions={ch3: 1.0}, initial_surface_coverages={x: 1.0}, - surface_volume_ratio=(1., 'm^-1'), - surface_site_density=(2.72e-9, 'mol/cm^2'), + surface_volume_ratio=(1.0, "m^-1"), + surface_site_density=(2.72e-9, "mol/cm^2"), coverage_dependence=True, - termination=[]) + termination=[], + ) # in chemkin, the sites are mostly occupied in about 1e-8 seconds. - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.logspace(-13, -5, 81, dtype=np.float64) print("Surface site density:", rxn_system.surface_site_density.value_si) - print("rxn1 rate coefficient", - rxn1.get_surface_rate_coefficient(rxn_system.T.value_si, rxn_system.surface_site_density.value_si)) + print( + "rxn1 rate coefficient", + rxn1.get_surface_rate_coefficient( + rxn_system.T.value_si, rxn_system.surface_site_density.value_si + ), + ) - self.assertIsInstance(rxn1.kinetics.coverage_dependence, dict) # check to make sure coverage_dependence is still the correct type + self.assertIsInstance( + rxn1.kinetics.coverage_dependence, dict + ) # check to make sure coverage_dependence is still the correct type for species, parameters in rxn1.kinetics.coverage_dependence.items(): self.assertIsInstance(species, Species) # species should be a Species self.assertIsInstance(parameters, dict) - self.assertIsNotNone(parameters['a']) - self.assertIsNotNone(parameters['m']) - self.assertIsNotNone(parameters['E']) + self.assertIsNotNone(parameters["a"]) + self.assertIsNotNone(parameters["m"]) + self.assertIsNotNone(parameters["E"]) # Integrate to get the solution at each time point t = [] @@ -524,31 +754,49 @@ def test_solve_ch3_coverage_dependence(self): y = np.array(y, np.float64) reaction_rates = np.array(reaction_rates, np.float64) species_rates = np.array(species_rates, np.float64) - V = constants.R * rxn_system.T.value_si * np.sum(y) / rxn_system.P_initial.value_si + V = ( + constants.R + * rxn_system.T.value_si + * np.sum(y) + / rxn_system.P_initial.value_si + ) # Check that we're computing the species fluxes correctly for i in range(t.shape[0]): - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 0], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], -species_rates[i, 1], - delta=1e-6 * reaction_rates[i, 0]) - self.assertAlmostEqual(reaction_rates[i, 0], species_rates[i, 2], - delta=1e-6 * reaction_rates[i, 0]) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 0], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + -species_rates[i, 1], + delta=1e-6 * reaction_rates[i, 0], + ) + self.assertAlmostEqual( + reaction_rates[i, 0], + species_rates[i, 2], + delta=1e-6 * reaction_rates[i, 0], + ) # Check that we've reached equilibrium by the end self.assertAlmostEqual(reaction_rates[-1, 0], 0.0, delta=1e-2) # Run model with Covdep off so we can test that it is actually being implemented rxn_system = SurfaceReactor( - T, P_initial, + T, + P_initial, n_sims=1, initial_gas_mole_fractions={ch3: 1.0}, initial_surface_coverages={x: 1.0}, - surface_volume_ratio=(1., 'm^-1'), - surface_site_density=(2.72e-9, 'mol/cm^2'), - termination=[]) + surface_volume_ratio=(1.0, "m^-1"), + surface_site_density=(2.72e-9, "mol/cm^2"), + termination=[], + ) - rxn_system.initialize_model(core_species, core_reactions, edge_species, edge_reactions) + rxn_system.initialize_model( + core_species, core_reactions, edge_species, edge_reactions + ) tlist = np.logspace(-13, -5, 81, dtype=np.float64) @@ -581,5 +829,5 @@ def test_solve_ch3_coverage_dependence(self): self.assertAlmostEqual(species_rates_off[-1, 0], 0.0, delta=1e-2) # Check that coverages are different - self.assertFalse(np.allclose(y,y_off)) + self.assertFalse(np.allclose(y, y_off)) self.assertFalse(np.allclose(species_rates, species_rates_off)) diff --git a/test/rmgpy/speciesTest.py b/test/rmgpy/speciesTest.py index 00d0a99afd..a00c8afdb8 100644 --- a/test/rmgpy/speciesTest.py +++ b/test/rmgpy/speciesTest.py @@ -37,11 +37,17 @@ from rmgpy.transport import TransportData from rmgpy.molecule import Molecule from rmgpy.thermo import ThermoData -from rmgpy.statmech import Conformer, IdealGasTranslation, NonlinearRotor, HarmonicOscillator +from rmgpy.statmech import ( + Conformer, + IdealGasTranslation, + NonlinearRotor, + HarmonicOscillator, +) ################################################################################ + class TestSpecies(unittest.TestCase): """ Contains unit tests for the Species class. @@ -53,30 +59,49 @@ def setUp(self): """ self.species = Species( index=1, - label='C2H4', + label="C2H4", thermo=ThermoData( - Tdata=([300.0, 400.0, 500.0, 600.0, 800.0, 1000.0, 1500.0], 'K'), - Cpdata=([3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15.0], 'cal/(mol*K)'), - H298=(-20.0, 'kcal/mol'), - S298=(50.0, 'cal/(mol*K)'), - Tmin=(300.0, 'K'), - Tmax=(2000.0, 'K'), + Tdata=([300.0, 400.0, 500.0, 600.0, 800.0, 1000.0, 1500.0], "K"), + Cpdata=([3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15.0], "cal/(mol*K)"), + H298=(-20.0, "kcal/mol"), + S298=(50.0, "cal/(mol*K)"), + Tmin=(300.0, "K"), + Tmax=(2000.0, "K"), ), conformer=Conformer( - E0=(0.0, 'kJ/mol'), + E0=(0.0, "kJ/mol"), modes=[ - IdealGasTranslation(mass=(28.03, 'amu')), - NonlinearRotor(inertia=([5.6952e-47, 2.7758e-46, 3.3454e-46], 'kg*m^2'), symmetry=1), - HarmonicOscillator(frequencies=( - [834.50, 973.31, 975.37, 1067.1, 1238.5, 1379.5, 1472.3, 1691.3, 3121.6, 3136.7, 3192.5, 3221.0], - 'cm^-1')), + IdealGasTranslation(mass=(28.03, "amu")), + NonlinearRotor( + inertia=([5.6952e-47, 2.7758e-46, 3.3454e-46], "kg*m^2"), + symmetry=1, + ), + HarmonicOscillator( + frequencies=( + [ + 834.50, + 973.31, + 975.37, + 1067.1, + 1238.5, + 1379.5, + 1472.3, + 1691.3, + 3121.6, + 3136.7, + 3192.5, + 3221.0, + ], + "cm^-1", + ) + ), ], spin_multiplicity=1, optical_isomers=1, ), - molecule=[Molecule().from_smiles('C=C')], - transport_data=TransportData(sigma=(1, 'angstrom'), epsilon=(100, 'K')), - molecular_weight=(28.03, 'amu'), + molecule=[Molecule().from_smiles("C=C")], + transport_data=TransportData(sigma=(1, "angstrom"), epsilon=(100, "K")), + molecular_weight=(28.03, "amu"), reactive=True, ) @@ -94,7 +119,8 @@ def setUp(self): 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {6,S} - """) + """ + ) self.species3 = Species().from_adjacency_list( """ @@ -102,7 +128,8 @@ def setUp(self): 1 O u1 p2 c0 {3,S} 2 O u0 p2 c0 {3,D} 3 N u0 p1 c0 {1,S} {2,D} - """) + """ + ) self.species4 = Species().from_adjacency_list( """ @@ -119,67 +146,124 @@ def setUp(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} - """) + """ + ) def test_pickle(self): """ Test that a Species object can be pickled and unpickled. - + ...with no loss of information. """ import pickle + species = pickle.loads(pickle.dumps(self.species, -1)) self.assertEqual(self.species.index, species.index) self.assertEqual(self.species.label, species.label) - self.assertEqual(self.species.molecule[0].multiplicity, species.molecule[0].multiplicity) - self.assertEqual(self.species.get_thermo_data().H298.value_si, species.get_thermo_data().H298.value_si) - self.assertEqual(self.species.get_thermo_data().H298.units, species.get_thermo_data().H298.units) - self.assertEqual(len(self.species.conformer.modes), len(species.conformer.modes)) + self.assertEqual( + self.species.molecule[0].multiplicity, species.molecule[0].multiplicity + ) + self.assertEqual( + self.species.get_thermo_data().H298.value_si, + species.get_thermo_data().H298.value_si, + ) + self.assertEqual( + self.species.get_thermo_data().H298.units, + species.get_thermo_data().H298.units, + ) + self.assertEqual( + len(self.species.conformer.modes), len(species.conformer.modes) + ) self.assertEqual(len(self.species.molecule), len(species.molecule)) self.assertTrue(self.species.molecule[0].is_isomorphic(species.molecule[0])) - self.assertEqual(self.species.conformer.E0.value_si, species.conformer.E0.value_si) + self.assertEqual( + self.species.conformer.E0.value_si, species.conformer.E0.value_si + ) self.assertEqual(self.species.conformer.E0.units, species.conformer.E0.units) - self.assertEqual(self.species.transport_data.sigma.value_si, species.transport_data.sigma.value_si) - self.assertEqual(self.species.transport_data.sigma.units, species.transport_data.sigma.units) - self.assertAlmostEqual(self.species.transport_data.epsilon.value_si / 1.381e-23, - species.transport_data.epsilon.value_si / 1.381e-23, 4) - self.assertEqual(self.species.transport_data.epsilon.units, species.transport_data.epsilon.units) - self.assertEqual(self.species.molecular_weight.value_si, species.molecular_weight.value_si) - self.assertEqual(self.species.molecular_weight.units, species.molecular_weight.units) + self.assertEqual( + self.species.transport_data.sigma.value_si, + species.transport_data.sigma.value_si, + ) + self.assertEqual( + self.species.transport_data.sigma.units, species.transport_data.sigma.units + ) + self.assertAlmostEqual( + self.species.transport_data.epsilon.value_si / 1.381e-23, + species.transport_data.epsilon.value_si / 1.381e-23, + 4, + ) + self.assertEqual( + self.species.transport_data.epsilon.units, + species.transport_data.epsilon.units, + ) + self.assertEqual( + self.species.molecular_weight.value_si, species.molecular_weight.value_si + ) + self.assertEqual( + self.species.molecular_weight.units, species.molecular_weight.units + ) self.assertEqual(self.species.reactive, species.reactive) def test_output(self): """ Test that a Species object can be reconstructed from its repr(). - + ...with no loss of information. """ namespace = {} - exec('species = {0!r}'.format(self.species), globals(), namespace) - self.assertIn('species', namespace) - species = namespace['species'] + exec("species = {0!r}".format(self.species), globals(), namespace) + self.assertIn("species", namespace) + species = namespace["species"] self.assertEqual(self.species.index, species.index) self.assertEqual(self.species.label, species.label) - self.assertEqual(self.species.molecule[0].multiplicity, species.molecule[0].multiplicity) - self.assertEqual(self.species.get_thermo_data().H298.value_si, species.get_thermo_data().H298.value_si) - self.assertEqual(self.species.get_thermo_data().H298.units, species.get_thermo_data().H298.units) - self.assertEqual(len(self.species.conformer.modes), len(species.conformer.modes)) + self.assertEqual( + self.species.molecule[0].multiplicity, species.molecule[0].multiplicity + ) + self.assertEqual( + self.species.get_thermo_data().H298.value_si, + species.get_thermo_data().H298.value_si, + ) + self.assertEqual( + self.species.get_thermo_data().H298.units, + species.get_thermo_data().H298.units, + ) + self.assertEqual( + len(self.species.conformer.modes), len(species.conformer.modes) + ) self.assertEqual(len(self.species.molecule), len(species.molecule)) self.assertTrue(self.species.molecule[0].is_isomorphic(species.molecule[0])) - self.assertEqual(self.species.conformer.E0.value_si, species.conformer.E0.value_si) + self.assertEqual( + self.species.conformer.E0.value_si, species.conformer.E0.value_si + ) self.assertEqual(self.species.conformer.E0.units, species.conformer.E0.units) - self.assertEqual(self.species.transport_data.sigma.value_si, species.transport_data.sigma.value_si) - self.assertEqual(self.species.transport_data.sigma.units, species.transport_data.sigma.units) - self.assertAlmostEqual(self.species.transport_data.epsilon.value_si, species.transport_data.epsilon.value_si, 3) - self.assertEqual(self.species.transport_data.epsilon.units, species.transport_data.epsilon.units) - self.assertEqual(self.species.molecular_weight.value_si, species.molecular_weight.value_si) - self.assertEqual(self.species.molecular_weight.units, species.molecular_weight.units) + self.assertEqual( + self.species.transport_data.sigma.value_si, + species.transport_data.sigma.value_si, + ) + self.assertEqual( + self.species.transport_data.sigma.units, species.transport_data.sigma.units + ) + self.assertAlmostEqual( + self.species.transport_data.epsilon.value_si, + species.transport_data.epsilon.value_si, + 3, + ) + self.assertEqual( + self.species.transport_data.epsilon.units, + species.transport_data.epsilon.units, + ) + self.assertEqual( + self.species.molecular_weight.value_si, species.molecular_weight.value_si + ) + self.assertEqual( + self.species.molecular_weight.units, species.molecular_weight.units + ) self.assertEqual(self.species.reactive, species.reactive) def test_equality(self): """Test that we can perform equality comparison with Species objects""" - spc1 = Species(smiles='C') - spc2 = Species(smiles='C') + spc1 = Species(smiles="C") + spc2 = Species(smiles="C") self.assertNotEqual(spc1, spc2) self.assertEqual(spc1, spc1) @@ -187,10 +271,10 @@ def test_equality(self): def test_less_than(self): """Test that we can perform less than comparison with Species objects""" - spc1 = Species(index=1, label='a', smiles='C') - spc2 = Species(index=2, label='a', smiles='C') - spc3 = Species(index=2, label='b', smiles='C') - spc4 = Species(index=1, label='a', smiles='CC') + spc1 = Species(index=1, label="a", smiles="C") + spc2 = Species(index=2, label="a", smiles="C") + spc3 = Species(index=2, label="b", smiles="C") + spc4 = Species(index=1, label="a", smiles="CC") self.assertLess(spc1, spc2) self.assertLess(spc1, spc3) @@ -201,10 +285,10 @@ def test_less_than(self): def test_greater_than(self): """Test that we can perform greater than comparison with Species objects""" - spc1 = Species(index=1, label='a', smiles='C') - spc2 = Species(index=2, label='a', smiles='C') - spc3 = Species(index=2, label='b', smiles='C') - spc4 = Species(index=1, label='a', smiles='CC') + spc1 = Species(index=1, label="a", smiles="C") + spc2 = Species(index=2, label="a", smiles="C") + spc3 = Species(index=2, label="b", smiles="C") + spc4 = Species(index=1, label="a", smiles="CC") self.assertGreater(spc2, spc1) self.assertGreater(spc3, spc1) @@ -215,10 +299,10 @@ def test_greater_than(self): def test_hash(self): """Test behavior of Species hashing using dictionaries and sets""" - spc1 = Species(index=1, label='a', smiles='C') - spc2 = Species(index=2, label='a', smiles='C') - spc3 = Species(index=2, label='b', smiles='C') - spc4 = Species(index=1, label='a', smiles='CC') + spc1 = Species(index=1, label="a", smiles="C") + spc2 = Species(index=2, label="a", smiles="C") + spc3 = Species(index=2, label="b", smiles="C") + spc4 = Species(index=1, label="a", smiles="CC") # Test dictionary behavior self.assertEqual(len(dict.fromkeys([spc1, spc2, spc3, spc4])), 4) @@ -232,52 +316,60 @@ def test_to_adjacency_list(self): """ string = self.species.to_adjacency_list() self.assertTrue( - string.startswith(self.species.molecule[0].to_adjacency_list(label=self.species.label, remove_h=False)), - string) + string.startswith( + self.species.molecule[0].to_adjacency_list( + label=self.species.label, remove_h=False + ) + ), + string, + ) def test_species_props(self): """ Test a key-value pair is added to the props attribute of Species. """ - self.species.props['foo'] = 'bar' + self.species.props["foo"] = "bar" self.assertIsInstance(self.species.props, dict) - self.assertEquals(self.species.props['foo'], 'bar') + self.assertEquals(self.species.props["foo"], "bar") def test_species_props_object_attribute(self): """ Test that Species's props dictionaries are independent of each other. - + Create a test in which is checked whether props is an object attribute rather than a class attribute """ spc2 = Species() - self.species.props['foo'] = 'bar' + self.species.props["foo"] = "bar" spc3 = Species() - spc3.props['foo'] = 'bla' - self.assertEquals(self.species.props['foo'], 'bar') + spc3.props["foo"] = "bla" + self.assertEquals(self.species.props["foo"], "bar") self.assertDictEqual(spc2.props, {}) - self.assertDictEqual(spc3.props, {'foo': 'bla'}) + self.assertDictEqual(spc3.props, {"foo": "bla"}) def test_resonance_isomers_generated(self): """Test that 1-penten-3-yl makes 2-penten-1-yl resonance isomer""" - spec = Species().from_smiles('C=C[CH]CC') + spec = Species().from_smiles("C=C[CH]CC") spec.generate_resonance_structures() self.assertEquals(len(spec.molecule), 2) self.assertEquals(spec.molecule[1].to_smiles(), "[CH2]C=CCC") def test_resonace_isomers_represented(self): """Test that both resonance forms of 1-penten-3-yl are printed by __repr__""" - spec = Species().from_smiles('C=C[CH]CC') + spec = Species().from_smiles("C=C[CH]CC") spec.generate_resonance_structures() namespace = {} - exec('spec2 = {0!r}'.format(spec), globals(), namespace) - self.assertIn('spec2', namespace) - spec2 = namespace['spec2'] + exec("spec2 = {0!r}".format(spec), globals(), namespace) + self.assertIn("spec2", namespace) + spec2 = namespace["spec2"] self.assertEqual(len(spec.molecule), len(spec2.molecule)) for i, j in zip(spec.molecule, spec2.molecule): - self.assertTrue(j.is_isomorphic(i), - msg='i is not isomorphic with j, where i is {} and j is {}'.format(i.to_smiles(), - j.to_smiles())) + self.assertTrue( + j.is_isomorphic(i), + msg="i is not isomorphic with j, where i is {} and j is {}".format( + i.to_smiles(), j.to_smiles() + ), + ) def test_is_isomorphic_to_filtered_resonance_structure(self): """ @@ -290,68 +382,100 @@ def test_is_isomorphic_to_filtered_resonance_structure(self): is generated, RMG finds the Species it belongs to, if the last exists. """ - spc1_correct = Species().from_smiles('[O]N=O') # check charge separation with higher octet deviation - spc1_nonrepresentative = Species().from_adjacency_list("""multiplicity 2 + spc1_correct = Species().from_smiles( + "[O]N=O" + ) # check charge separation with higher octet deviation + spc1_nonrepresentative = Species().from_adjacency_list( + """multiplicity 2 1 N u1 p1 c0 {2,S} {3,S} 2 O u0 p3 c-1 {1,S} - 3 O u0 p2 c+1 {1,S}""") - spc2_correct = Species().from_smiles('[N]=NON=O') # check atoms with val 6 - spc2_nonrepresentative = Species().from_adjacency_list("""multiplicity 2 + 3 O u0 p2 c+1 {1,S}""" + ) + spc2_correct = Species().from_smiles("[N]=NON=O") # check atoms with val 6 + spc2_nonrepresentative = Species().from_adjacency_list( + """multiplicity 2 1 O u0 p2 c0 {2,S} {3,S} 2 N u1 p1 c0 {1,S} {4,S} 3 N u0 p2 c-1 {1,S} {5,S} 4 N u0 p2 c0 {2,S} - 5 O u0 p2 c+1 {3,S}""") - spc3_correct = Species().from_smiles('[O]S(O)=O') # check O4tc penalty - spc3_nonrepresentative = Species().from_adjacency_list("""multiplicity 2 + 5 O u0 p2 c+1 {3,S}""" + ) + spc3_correct = Species().from_smiles("[O]S(O)=O") # check O4tc penalty + spc3_nonrepresentative = Species().from_adjacency_list( + """multiplicity 2 1 S u0 p1 c-1 {2,S} {3,S} {4,T} 2 O u0 p2 c0 {1,S} {5,S} 3 O u1 p2 c0 {1,S} 4 O u0 p1 c+1 {1,T} - 5 H u0 p0 c0 {2,S}""") - spc4_correct = Species().from_smiles('OS(=[N+]=[N-])O') # check O4dc penalty - spc4_nonrepresentative = Species().from_adjacency_list("""1 S u0 p0 c+1 {2,D} {3,D} {4,S} + 5 H u0 p0 c0 {2,S}""" + ) + spc4_correct = Species().from_smiles("OS(=[N+]=[N-])O") # check O4dc penalty + spc4_nonrepresentative = Species().from_adjacency_list( + """1 S u0 p0 c+1 {2,D} {3,D} {4,S} 2 N u0 p1 c0 {1,D} {5,S} 3 O u0 p1 c+1 {1,D} {6,S} 4 O u0 p2 c0 {1,S} {7,S} 5 N u0 p3 c-2 {2,S} 6 H u0 p0 c0 {3,S} - 7 H u0 p0 c0 {4,S}""") - spc5_correct = Species().from_smiles('[O][S]') # checks birad penalty - spc5_nonrepresentative = Species().from_adjacency_list("""multiplicity 3 + 7 H u0 p0 c0 {4,S}""" + ) + spc5_correct = Species().from_smiles("[O][S]") # checks birad penalty + spc5_nonrepresentative = Species().from_adjacency_list( + """multiplicity 3 1 O u0 p2 c0 {2,D} - 2 S u2 p1 c0 {1,D}""") - spc6_correct = Species().from_smiles('[N-]=[N+]=S=S=O') # checks the S#S case - spc6_nonrepresentative = Species().from_adjacency_list("""1 S u0 p1 c0 {2,S} {3,T} + 2 S u2 p1 c0 {1,D}""" + ) + spc6_correct = Species().from_smiles("[N-]=[N+]=S=S=O") # checks the S#S case + spc6_nonrepresentative = Species().from_adjacency_list( + """1 S u0 p1 c0 {2,S} {3,T} 2 N u0 p0 c+1 {1,S} {4,T} 3 S u0 p1 c0 {1,T} {5,S} 4 N u0 p1 c0 {2,T} - 5 O u0 p3 c-1 {3,S}""") + 5 O u0 p3 c-1 {3,S}""" + ) # check that the structures are not isomorphic if resonance structures are not generated: - self.assertFalse(spc1_correct.is_isomorphic(spc1_nonrepresentative, strict=True)) + self.assertFalse( + spc1_correct.is_isomorphic(spc1_nonrepresentative, strict=True) + ) # check that the nonrepresentative structure is isomorphic by generating resonance structures: - self.assertTrue(spc1_correct.is_isomorphic(spc1_nonrepresentative, strict=False)) - self.assertTrue(spc2_correct.is_isomorphic(spc2_nonrepresentative, strict=False)) - self.assertTrue(spc3_correct.is_isomorphic(spc3_nonrepresentative, strict=False)) - self.assertTrue(spc4_correct.is_isomorphic(spc4_nonrepresentative, strict=False)) - self.assertTrue(spc5_correct.is_isomorphic(spc5_nonrepresentative, strict=False)) - self.assertTrue(spc6_correct.is_isomorphic(spc6_nonrepresentative, strict=False)) + self.assertTrue( + spc1_correct.is_isomorphic(spc1_nonrepresentative, strict=False) + ) + self.assertTrue( + spc2_correct.is_isomorphic(spc2_nonrepresentative, strict=False) + ) + self.assertTrue( + spc3_correct.is_isomorphic(spc3_nonrepresentative, strict=False) + ) + self.assertTrue( + spc4_correct.is_isomorphic(spc4_nonrepresentative, strict=False) + ) + self.assertTrue( + spc5_correct.is_isomorphic(spc5_nonrepresentative, strict=False) + ) + self.assertTrue( + spc6_correct.is_isomorphic(spc6_nonrepresentative, strict=False) + ) def test_get_resonance_hybrid(self): """ Tests that get_resonance_hybrid returns an isomorphic structure which has intermediate bond orders. - + This check is for C=C[CH]CC which has another resonance structure, [CH2]C=CC. When these structures are merged, the bond structure should be, - C~C~CC, where '~' is a hybrid bond of order 1.5. + C~C~CC, where '~' is a hybrid bond of order 1.5. """ - spec = Species().from_smiles('C=C[CH]CC') + spec = Species().from_smiles("C=C[CH]CC") hybrid_mol = spec.get_resonance_hybrid() - self.assertTrue(hybrid_mol.to_single_bonds().is_isomorphic(spec.molecule[0].to_single_bonds())) + self.assertTrue( + hybrid_mol.to_single_bonds().is_isomorphic( + spec.molecule[0].to_single_bonds() + ) + ) # a rough check for intermediate bond orders expected_orders = [1, 1.5] @@ -360,14 +484,18 @@ def test_get_resonance_hybrid(self): for atom in hybrid_mol.atoms: for atom2 in atom.bonds: bond = hybrid_mol.get_bond(atom, atom2) - self.assertTrue(any([bond.is_order(otherOrder) for otherOrder in expected_orders]), - 'Unexpected bond order {}'.format(bond.get_order_num())) + self.assertTrue( + any([bond.is_order(otherOrder) for otherOrder in expected_orders]), + "Unexpected bond order {}".format(bond.get_order_num()), + ) bonds.append(bond) # ensure all expected orders are present for expected_order in expected_orders: - self.assertTrue(any([bond.is_order(expected_order) for bond in bonds]), - 'No bond of order {} found'.format(expected_order)) + self.assertTrue( + any([bond.is_order(expected_order) for bond in bonds]), + "No bond of order {} found".format(expected_order), + ) def test_copy(self): """Test that we can make a copy of a Species object.""" @@ -388,19 +516,44 @@ def test_cantera(self): """ from rmgpy.thermo import NASA, NASAPolynomial import cantera as ct - rmg_species = Species(label="Ar", thermo=NASA( - polynomials=[NASAPolynomial(coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], Tmin=(200, 'K'), Tmax=(1000, 'K')), - NASAPolynomial(coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], Tmin=(1000, 'K'), - Tmax=(6000, 'K'))], Tmin=(200, 'K'), Tmax=(6000, 'K'), comment=""" + + rmg_species = Species( + label="Ar", + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), + ], + Tmin=(200, "K"), + Tmax=(6000, "K"), + comment=""" Thermo library: primaryThermoLibrary -"""), molecule=[Molecule(smiles="[Ar]")], transport_data=TransportData(shapeIndex=0, epsilon=(1134.93, 'J/mol'), - sigma=(3.33, 'angstrom'), dipoleMoment=(2, 'De'), - polarizability=(1, 'angstrom^3'), - rotrelaxcollnum=15.0, comment="""GRI-Mech""")) +""", + ), + molecule=[Molecule(smiles="[Ar]")], + transport_data=TransportData( + shapeIndex=0, + epsilon=(1134.93, "J/mol"), + sigma=(3.33, "angstrom"), + dipoleMoment=(2, "De"), + polarizability=(1, "angstrom^3"), + rotrelaxcollnum=15.0, + comment="""GRI-Mech""", + ), + ) rmg_ct_species = rmg_species.to_cantera(use_chemkin_identifier=True) - ct_species = ct.Species.fromCti("""species(name=u'Ar', + ct_species = ct.Species.fromCti( + """species(name=u'Ar', atoms='Ar:1', thermo=(NASA([200.00, 1000.00], [ 2.50000000E+00, 0.00000000E+00, 0.00000000E+00, @@ -415,7 +568,8 @@ def test_cantera(self): well_depth=136.501, dipole=2.0, polar=1.0, - rot_relax=15.0))""") + rot_relax=15.0))""" + ) self.assertEqual(type(rmg_ct_species), type(ct_species)) self.assertEqual(rmg_ct_species.name, ct_species.name) self.assertEqual(rmg_ct_species.composition, ct_species.composition) @@ -428,20 +582,29 @@ def test_get_transport_data(self): Test that transport data can be retrieved correctly via the get_transport_data method. """ - spc = Species(label="Ar", molecule=[Molecule(smiles="[Ar]")], - transport_data=TransportData(shapeIndex=0, epsilon=(1134.93, 'J/mol'), sigma=(3.33, 'angstrom'), - dipoleMoment=(2, 'De'), polarizability=(1, 'angstrom^3'), - rotrelaxcollnum=15.0, comment="""GRI-Mech""")) + spc = Species( + label="Ar", + molecule=[Molecule(smiles="[Ar]")], + transport_data=TransportData( + shapeIndex=0, + epsilon=(1134.93, "J/mol"), + sigma=(3.33, "angstrom"), + dipoleMoment=(2, "De"), + polarizability=(1, "angstrom^3"), + rotrelaxcollnum=15.0, + comment="""GRI-Mech""", + ), + ) self.assertTrue(spc.get_transport_data() is spc.transport_data) def test_fingerprint_property(self): """Test that the fingerprint property works""" - self.assertEqual(self.species2.fingerprint, 'C06H06N00O00S00') + self.assertEqual(self.species2.fingerprint, "C06H06N00O00S00") def test_inchi_property(self): """Test that the InChI property works""" - self.assertEqual(self.species2.inchi, 'InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H') + self.assertEqual(self.species2.inchi, "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H") def test_multiplicity_property(self): """Test that the fingerprint property works""" @@ -449,25 +612,25 @@ def test_multiplicity_property(self): def test_smiles_property(self): """Test that the InChI property works""" - self.assertEqual(self.species2.smiles, 'C1=CC=CC=C1') + self.assertEqual(self.species2.smiles, "C1=CC=CC=C1") def test_inchi_instantiation(self): """Test that we can create a species using the InChI argument""" - test = Species(inchi='InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H') + test = Species(inchi="InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H") self.assertTrue(test.is_isomorphic(self.species2)) def test_smiles_instantiation(self): """Test that we can create a species using the SMILES argument""" - test = Species(smiles='C1=CC=CC=C1') + test = Species(smiles="C1=CC=CC=C1") self.assertTrue(test.is_isomorphic(self.species2)) - + def test_is_isomorphic_strict(self): """Test that the strict argument to Species.is_isomorphic works""" - spc1 = Species(smiles='[CH2]C1=CC=CC2=C1C=CC1=C2C=CC=C1') - spc2 = Species(smiles='C=C1C=CC=C2C1=C[CH]C1=C2C=CC=C1') - spc3 = Species(smiles='[CH2]C1=CC2=C(C=C1)C1=C(C=CC=C1)C=C2') + spc1 = Species(smiles="[CH2]C1=CC=CC2=C1C=CC1=C2C=CC=C1") + spc2 = Species(smiles="C=C1C=CC=C2C1=C[CH]C1=C2C=CC=C1") + spc3 = Species(smiles="[CH2]C1=CC2=C(C=C1)C1=C(C=CC=C1)C=C2") self.assertFalse(spc1.is_isomorphic(spc2, strict=True)) self.assertTrue(spc1.is_isomorphic(spc2, strict=False)) @@ -485,11 +648,11 @@ def test_is_isomorphic_strict(self): def test_species_label(self): """Test that the species label is not being assigned with the multiplicity string""" - self.assertEqual(self.species3.label, '') - self.assertEqual(self.species4.label, 'Propane') + self.assertEqual(self.species3.label, "") + self.assertEqual(self.species4.label, "Propane") ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/conformerTest.py b/test/rmgpy/statmech/conformerTest.py index f1271f344d..e5dde4feca 100644 --- a/test/rmgpy/statmech/conformerTest.py +++ b/test/rmgpy/statmech/conformerTest.py @@ -36,8 +36,14 @@ import numpy as np import rmgpy.constants as constants -from rmgpy.statmech import Conformer, HarmonicOscillator, HinderedRotor, \ - IdealGasTranslation, LinearRotor, NonlinearRotor +from rmgpy.statmech import ( + Conformer, + HarmonicOscillator, + HinderedRotor, + IdealGasTranslation, + LinearRotor, + NonlinearRotor, +) ################################################################################ @@ -55,9 +61,28 @@ def setUp(self): E0=(0.0, "kJ/mol"), modes=[ IdealGasTranslation(mass=(28.03, "amu")), - NonlinearRotor(inertia=([3.41526, 16.6498, 20.065], "amu*angstrom^2"), symmetry=4), - HarmonicOscillator(frequencies=([828.397, 970.652, 977.223, 1052.93, 1233.55, 1367.56, 1465.09, - 1672.25, 3098.46, 3111.7, 3165.79, 3193.54], "cm^-1")), + NonlinearRotor( + inertia=([3.41526, 16.6498, 20.065], "amu*angstrom^2"), symmetry=4 + ), + HarmonicOscillator( + frequencies=( + [ + 828.397, + 970.652, + 977.223, + 1052.93, + 1233.55, + 1367.56, + 1465.09, + 1672.25, + 3098.46, + 3111.7, + 3165.79, + 3193.54, + ], + "cm^-1", + ) + ), ], spin_multiplicity=1, optical_isomers=1, @@ -74,29 +99,61 @@ def setUp(self): ) # The following data is for ethane at the CBS-QB3 level - self.coordinates = np.array([ - [0.0000, 0.0000, 0.0000], - [-0.0000, -0.0000, 1.0936], - [1.0430, -0.0000, -0.3288], - [-0.4484, 0.9417, -0.3288], - [-0.7609, -1.2051, -0.5580], - [-0.7609, -1.2051, -1.6516], - [-0.3125, -2.1468, -0.2292], - [-1.8039, -1.2051, -0.2293], - ]) + self.coordinates = np.array( + [ + [0.0000, 0.0000, 0.0000], + [-0.0000, -0.0000, 1.0936], + [1.0430, -0.0000, -0.3288], + [-0.4484, 0.9417, -0.3288], + [-0.7609, -1.2051, -0.5580], + [-0.7609, -1.2051, -1.6516], + [-0.3125, -2.1468, -0.2292], + [-1.8039, -1.2051, -0.2293], + ] + ) self.number = np.array([6, 1, 1, 1, 6, 1, 1, 1]) - self.mass = np.array([12, 1.007825, 1.007825, 1.007825, 12, 1.007825, 1.007825, 1.007825]) + self.mass = np.array( + [12, 1.007825, 1.007825, 1.007825, 12, 1.007825, 1.007825, 1.007825] + ) self.E0 = -93.5097 self.conformer = Conformer( E0=(self.E0, "kJ/mol"), modes=[ IdealGasTranslation(mass=(30.0469, "amu")), - NonlinearRotor(inertia=([6.27071, 25.3832, 25.3833], "amu*angstrom^2"), symmetry=6), - HarmonicOscillator(frequencies=([818.917, 819.479, 987.099, 1206.76, 1207.05, 1396, 1411.35, 1489.73, - 1489.95, 1492.49, 1492.66, 2995.36, 2996.06, 3040.77, 3041, 3065.86, - 3066.02], "cm^-1")), - HinderedRotor(inertia=(1.56768, "amu*angstrom^2"), symmetry=3, - barrier=(2.69401, "kcal/mol"), quantum=False, semiclassical=False), + NonlinearRotor( + inertia=([6.27071, 25.3832, 25.3833], "amu*angstrom^2"), symmetry=6 + ), + HarmonicOscillator( + frequencies=( + [ + 818.917, + 819.479, + 987.099, + 1206.76, + 1207.05, + 1396, + 1411.35, + 1489.73, + 1489.95, + 1492.49, + 1492.66, + 2995.36, + 2996.06, + 3040.77, + 3041, + 3065.86, + 3066.02, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(1.56768, "amu*angstrom^2"), + symmetry=3, + barrier=(2.69401, "kcal/mol"), + quantum=False, + semiclassical=False, + ), ], spin_multiplicity=1, optical_isomers=1, @@ -110,7 +167,9 @@ def test_get_partition_function_ethylene(self): Test the StatMech.get_partition_function() method for ethylene. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - q_exp_list = np.array([4.05311e+09, 4.19728e+10, 2.82309e+12, 7.51135e+13, 1.16538e+15]) + q_exp_list = np.array( + [4.05311e09, 4.19728e10, 2.82309e12, 7.51135e13, 1.16538e15] + ) for temperature, q_exp in zip(t_list, q_exp_list): q_act = self.ethylene.get_partition_function(temperature) self.assertAlmostEqual(q_exp, q_act, delta=1e-4 * q_exp) @@ -120,7 +179,9 @@ def test_get_heat_capacity_ethylene(self): Test the StatMech.get_heat_capacity() method for ethylene. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([5.11186, 7.40447, 11.1659, 13.1221, 14.1617]) * constants.R + cv_exp_list = ( + np.array([5.11186, 7.40447, 11.1659, 13.1221, 14.1617]) * constants.R + ) for temperature, cv_exp in zip(t_list, cv_exp_list): cv_act = self.ethylene.get_heat_capacity(temperature) self.assertAlmostEqual(cv_exp, cv_act, 3) @@ -130,7 +191,11 @@ def test_get_enthalpy_ethylene(self): Test the StatMech.get_enthalpy() method for ethylene. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([4.23129, 5.04826, 7.27337, 8.93167, 10.1223]) * constants.R * t_list + h_exp_list = ( + np.array([4.23129, 5.04826, 7.27337, 8.93167, 10.1223]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.ethylene.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -140,7 +205,9 @@ def test_get_entropy_ethylene(self): Test the StatMech.get_entropy() method for ethylene. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([26.3540, 29.5085, 35.9422, 40.8817, 44.8142]) * constants.R + s_exp_list = ( + np.array([26.3540, 29.5085, 35.9422, 40.8817, 44.8142]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.ethylene.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, 3) @@ -153,8 +220,10 @@ def test_get_sum_of_states_ethylene(self): sum_states = self.ethylene.get_sum_of_states(e_list) dens_states = self.ethylene.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n + 1]) / sum_states[n] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n + 1]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0 : n + 1]) / sum_states[n] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0 : n + 1]), sum_states[n]), + ) def test_get_density_of_states_ethylene(self): """ @@ -172,7 +241,9 @@ def test_get_partition_function_oxygen(self): Test the StatMech.get_partition_function() method for oxygen. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - q_exp_list = np.array([1.55584e+09, 9.38339e+09, 1.16459e+11, 5.51016e+11, 1.72794e+12]) + q_exp_list = np.array( + [1.55584e09, 9.38339e09, 1.16459e11, 5.51016e11, 1.72794e12] + ) for temperature, q_exp in zip(t_list, q_exp_list): q_act = self.oxygen.get_partition_function(temperature) self.assertAlmostEqual(q_exp, q_act, delta=1e-4 * q_exp) @@ -182,7 +253,9 @@ def test_get_heat_capacity_oxygen(self): Test the StatMech.get_heat_capacity() method for oxygen. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([3.52538, 3.70877, 4.14751, 4.32063, 4.39392]) * constants.R + cv_exp_list = ( + np.array([3.52538, 3.70877, 4.14751, 4.32063, 4.39392]) * constants.R + ) for temperature, Cv_exp in zip(t_list, cv_exp_list): cv_act = self.oxygen.get_heat_capacity(temperature) self.assertAlmostEqual(Cv_exp, cv_act, 3) @@ -192,7 +265,11 @@ def test_get_enthalpy_oxygen(self): Test the StatMech.get_enthalpy() method for oxygen. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([3.50326, 3.54432, 3.75062, 3.91623, 4.02765]) * constants.R * t_list + h_exp_list = ( + np.array([3.50326, 3.54432, 3.75062, 3.91623, 4.02765]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.oxygen.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -202,7 +279,9 @@ def test_get_entropy_oxygen(self): Test the StatMech.get_entropy() method for oxygen. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([24.6685, 26.5065, 29.2314, 30.9513, 32.2056]) * constants.R + s_exp_list = ( + np.array([24.6685, 26.5065, 29.2314, 30.9513, 32.2056]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.oxygen.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, 3) @@ -215,8 +294,10 @@ def test_get_sum_of_states_oxygen(self): sum_states = self.oxygen.get_sum_of_states(e_list) dens_states = self.oxygen.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n + 1]) / sum_states[n] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n + 1]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0 : n + 1]) / sum_states[n] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0 : n + 1]), sum_states[n]), + ) def test_get_density_of_states_oxygen(self): """ @@ -233,8 +314,11 @@ def test_get_total_mass(self): """ Test the Conformer.get_total_mass() method. """ - self.assertAlmostEqual(self.conformer.get_total_mass() * constants.Na * 1000., - np.sum(self.mass), 6) + self.assertAlmostEqual( + self.conformer.get_total_mass() * constants.Na * 1000.0, + np.sum(self.mass), + 6, + ) def test_get_center_of_mass(self): """ @@ -265,20 +349,24 @@ def test_get_principal_moments_of_inertia(self): Test the Conformer.get_principal_moments_of_inertia() method. """ inertia, axes = self.conformer.get_principal_moments_of_inertia() - self.assertAlmostEqual(inertia[0] * constants.Na * 1e23, 6.27074, 4) + self.assertAlmostEqual(inertia[0] * constants.Na * 1e23, 6.27074, 4) self.assertAlmostEqual(inertia[1] * constants.Na * 1e23, 25.38321, 3) self.assertAlmostEqual(inertia[2] * constants.Na * 1e23, 25.38341, 3) # For some reason the axes seem to jump around (positioning and signs change) # but the absolute values should be the same as we expect - expected = sorted([0.497140, - 0.610114, - 0.616938, - 0.787360, - 0.018454, - 0.616218, - 0.364578, - 0.792099, - 0.489554]) + expected = sorted( + [ + 0.497140, + 0.610114, + 0.616938, + 0.787360, + 0.018454, + 0.616218, + 0.364578, + 0.792099, + 0.489554, + ] + ) result = sorted(abs(axes).flat) for i, j in zip(expected, result): self.assertAlmostEqual(i, j, 4) @@ -288,7 +376,9 @@ def test_get_internal_reduced_moment_of_inertia(self): """ Test the Conformer.get_internal_reduced_moment_of_inertia() method. """ - inertia = self.conformer.get_internal_reduced_moment_of_inertia(pivots=[1, 5], top1=[1, 2, 3, 4]) + inertia = self.conformer.get_internal_reduced_moment_of_inertia( + pivots=[1, 5], top1=[1, 2, 3, 4] + ) self.assertAlmostEqual(inertia * constants.Na * 1e23, 1.56768, 4) def test_get_number_degrees_of_freedom(self): diff --git a/test/rmgpy/statmech/ndTorsionsTest.py b/test/rmgpy/statmech/ndTorsionsTest.py index 0bd50700ef..5c96b9da3e 100644 --- a/test/rmgpy/statmech/ndTorsionsTest.py +++ b/test/rmgpy/statmech/ndTorsionsTest.py @@ -41,7 +41,7 @@ from arkane.ess.factory import ess_factory RMG_PATH = os.path.abspath(os.path.dirname(os.path.dirname(rmgpy.__file__))) -Q2DTOR_PATH = os.path.join(RMG_PATH, 'external', 'Q2DTor', 'src', 'Q2DTor.py') +Q2DTOR_PATH = os.path.join(RMG_PATH, "external", "Q2DTor", "src", "Q2DTor.py") class TestHinderedRotor2D(unittest.TestCase): @@ -52,20 +52,30 @@ class TestHinderedRotor2D(unittest.TestCase): @classmethod def setUp(cls): """A method that is run before each unit test in this class""" - cls.path = os.path.join(RMG_PATH, 'arkane', 'data', 'CH2CHOOH', 'CH2CHOOHscans') + cls.path = os.path.join(RMG_PATH, "arkane", "data", "CH2CHOOH", "CH2CHOOHscans") if not os.path.exists(cls.path): - zippath = os.path.join(RMG_PATH, 'arkane', 'data', 'CH2CHOOH', 'CH2CHOOHscans.zip') - with zipfile.ZipFile(zippath, 'r') as zip_ref: + zippath = os.path.join( + RMG_PATH, "arkane", "data", "CH2CHOOH", "CH2CHOOHscans.zip" + ) + with zipfile.ZipFile(zippath, "r") as zip_ref: zip_ref.extractall(os.path.dirname(cls.path)) - cls.hd2d = HinderedRotor2D(calc_path=cls.path, name="r0", torsigma1=1, - torsigma2=1, symmetry='b', pivots1=[6, 7], pivots2=[1, 6], top1=[7, 8], - top2=[6, 7, 8]) + cls.hd2d = HinderedRotor2D( + calc_path=cls.path, + name="r0", + torsigma1=1, + torsigma2=1, + symmetry="b", + pivots1=[6, 7], + pivots2=[1, 6], + top1=[7, 8], + top2=[6, 7, 8], + ) @unittest.skipIf(not os.path.isfile(Q2DTOR_PATH), "Q2DTor not installed") def test_q2dtor_setup(self): self.hd2d.read_scan() - self.assertAlmostEquals(self.hd2d.Es[0] / 10 ** 9, -594373977.268 / 10 ** 9, 3) + self.assertAlmostEquals(self.hd2d.Es[0] / 10**9, -594373977.268 / 10**9, 3) self.hd2d.get_torsions() self.assertEqual(self.hd2d.torsion1, [2, 1, 6, 7]) self.hd2d.write_inp() @@ -81,10 +91,14 @@ def tearDownClass(cls): """A function that is run ONCE after all unit tests in this class.""" if os.path.exists(cls.path): shutil.rmtree(cls.path) # delete unzipped and created files - if os.path.exists(os.path.join(os.path.dirname(cls.path), 'r0', 'IOfiles', 'r0.pes')): - os.remove(os.path.join(os.path.dirname(cls.path), 'r0', 'IOfiles', 'r0.pes')) - if os.path.exists(os.path.join(os.path.dirname(cls.path), 'r0', 'r0.out')): - os.remove(os.path.join(os.path.dirname(cls.path), 'r0', 'r0.out')) + if os.path.exists( + os.path.join(os.path.dirname(cls.path), "r0", "IOfiles", "r0.pes") + ): + os.remove( + os.path.join(os.path.dirname(cls.path), "r0", "IOfiles", "r0.pes") + ) + if os.path.exists(os.path.join(os.path.dirname(cls.path), "r0", "r0.out")): + os.remove(os.path.join(os.path.dirname(cls.path), "r0", "r0.out")) class TestHinderedRotorClassicalND(unittest.TestCase): @@ -95,11 +109,13 @@ class TestHinderedRotorClassicalND(unittest.TestCase): @classmethod def setUp(cls): """A method that is run before each unit test in this class""" - freqpath = os.path.join(RMG_PATH, 'arkane', 'data', 'TolueneFreq.log') - rotpath = os.path.join(RMG_PATH, 'arkane', 'data', 'TolueneRot1.log') + freqpath = os.path.join(RMG_PATH, "arkane", "data", "TolueneFreq.log") + rotpath = os.path.join(RMG_PATH, "arkane", "data", "TolueneRot1.log") log = ess_factory(freqpath) - conf, unscaled_freqs = log.load_conformer(symmetry=1, spin_multiplicity=1, optical_isomers=1, label='Toulene') + conf, unscaled_freqs = log.load_conformer( + symmetry=1, spin_multiplicity=1, optical_isomers=1, label="Toulene" + ) coordinates, number, mass = log.load_geometry() conf.coordinates = (coordinates, "angstroms") conf.number = number @@ -107,15 +123,24 @@ def setUp(cls): hessian = log.load_force_constant_matrix() - cls.hdnd = HinderedRotorClassicalND(pivots=[[3, 12]], tops=[[12, 13, 14, 15]], sigmas=[6.0], - calc_path=rotpath, conformer=conf, F=hessian, semiclassical=True) + cls.hdnd = HinderedRotorClassicalND( + pivots=[[3, 12]], + tops=[[12, 13, 14, 15]], + sigmas=[6.0], + calc_path=rotpath, + conformer=conf, + F=hessian, + semiclassical=True, + ) def test_hindered_rotor_nd(self): self.hdnd.read_scan() self.assertAlmostEqual(self.hdnd.Es[0], 8.58538448, 4) self.hdnd.fit() - self.assertAlmostEqual(self.hdnd.calc_partition_function(300.0), 2.899287634962152, 5) + self.assertAlmostEqual( + self.hdnd.calc_partition_function(300.0), 2.899287634962152, 5 + ) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/rotationTest.py b/test/rmgpy/statmech/rotationTest.py index 422b50ffe0..a2286a16d2 100644 --- a/test/rmgpy/statmech/rotationTest.py +++ b/test/rmgpy/statmech/rotationTest.py @@ -36,7 +36,12 @@ import numpy as np import rmgpy.constants as constants -from rmgpy.statmech.rotation import KRotor, LinearRotor, NonlinearRotor, SphericalTopRotor +from rmgpy.statmech.rotation import ( + KRotor, + LinearRotor, + NonlinearRotor, + SphericalTopRotor, +) ################################################################################ @@ -82,7 +87,9 @@ def test_get_level_energy(self): """ Test the LinearRotor.get_level_energy() method. """ - rotational_constant = self.mode.rotationalConstant.value_si * constants.h * constants.c * 100. + rotational_constant = ( + self.mode.rotationalConstant.value_si * constants.h * constants.c * 100.0 + ) rotational_constant *= constants.Na for j in range(0, 100): e_exp = rotational_constant * j * (j + 1) @@ -164,8 +171,11 @@ def test_get_enthalpy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array( - [0.997705, 0.998624, 0.999312, 0.999541, 0.999656]) * constants.R * t_list + h_exp_list = ( + np.array([0.997705, 0.998624, 0.999312, 0.999541, 0.999656]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -176,7 +186,9 @@ def test_get_entropy_classical(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([5.28592, 5.79674, 6.48989, 6.89535, 7.18304]) * constants.R + s_exp_list = ( + np.array([5.28592, 5.79674, 6.48989, 6.89535, 7.18304]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -187,7 +199,9 @@ def test_get_entropy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([5.28592, 5.79674, 6.48989, 6.89535, 7.18304]) * constants.R + s_exp_list = ( + np.array([5.28592, 5.79674, 6.48989, 6.89535, 7.18304]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -208,11 +222,13 @@ def test_get_sum_of_states_quantum(self): Test the LinearRotor.get_sum_of_states() method using a quantum rotor. """ self.mode.quantum = True - e_list = np.arange(0, 4000. * 11.96, 2.0 * 11.96) + e_list = np.arange(0, 4000.0 * 11.96, 2.0 * 11.96) dens_states = self.mode.get_density_of_states(e_list) sum_states = self.mode.get_sum_of_states(e_list) for n in range(1, len(e_list)): - self.assertAlmostEqual(np.sum(dens_states[0:n + 1]) / sum_states[n], 1.0, 3) + self.assertAlmostEqual( + np.sum(dens_states[0 : n + 1]) / sum_states[n], 1.0, 3 + ) def test_get_dsensity_of_states_classical(self): """ @@ -220,7 +236,7 @@ def test_get_dsensity_of_states_classical(self): """ self.mode.quantum = False t_list = np.array([300, 400, 500]) - e_list = np.arange(0, 4000. * 11.96, 1.0 * 11.96) + e_list = np.arange(0, 4000.0 * 11.96, 1.0 * 11.96) for temperature in t_list: dens_states = self.mode.get_density_of_states(e_list) q_act = np.sum(dens_states * np.exp(-e_list / constants.R / temperature)) @@ -233,7 +249,7 @@ def test_get_dsensity_of_states_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 400, 500]) - e_list = np.arange(0, 4000. * 11.96, 2.0 * 11.96) + e_list = np.arange(0, 4000.0 * 11.96, 2.0 * 11.96) for temperature in t_list: dens_states = self.mode.get_density_of_states(e_list) q_act = np.sum(dens_states * np.exp(-e_list / constants.R / temperature)) @@ -246,9 +262,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units) self.assertEqual(self.mode.symmetry, mode.symmetry) @@ -260,12 +276,14 @@ def test_pickle(self): loss of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units) self.assertEqual(self.mode.symmetry, mode.symmetry) self.assertEqual(self.mode.quantum, mode.quantum) + ################################################################################ @@ -349,7 +367,9 @@ def test_get_entropy_classical(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([7.97876, 8.74500, 9.78472, 10.3929, 10.8244]) * constants.R + s_exp_list = ( + np.array([7.97876, 8.74500, 9.78472, 10.3929, 10.8244]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -363,8 +383,10 @@ def test_get_sum_of_states_classical(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_sensity_of_states_classical(self): """ @@ -385,9 +407,9 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] self.assertEqual(self.mode.inertia.value.shape, mode.inertia.value.shape) for inertia_0, inertia in zip(self.mode.inertia.value, mode.inertia.value): self.assertAlmostEqual(inertia_0, inertia, 6) @@ -401,6 +423,7 @@ def test_pickle(self): no loss of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) self.assertEqual(self.mode.inertia.value.shape, mode.inertia.value.shape) for inertia_0, inertia in zip(self.mode.inertia.value, mode.inertia.value): @@ -409,6 +432,7 @@ def test_pickle(self): self.assertEqual(self.mode.symmetry, mode.symmetry) self.assertEqual(self.mode.quantum, mode.quantum) + ################################################################################ @@ -453,7 +477,9 @@ def test_get_level_energy(self): """ Test the KRotor.get_level_energy() method. """ - rotational_constant = self.mode.rotationalConstant.value_si * constants.h * constants.c * 100. + rotational_constant = ( + self.mode.rotationalConstant.value_si * constants.h * constants.c * 100.0 + ) rotational_constant *= constants.Na for j in range(0, 100): e_exp = float(rotational_constant * j * j) @@ -470,7 +496,7 @@ def test_get_level_degeneracy(self): for j in range(0, 100): g_exp = 1 if j == 0 else 2 g_act = self.mode.get_level_degeneracy(j) - self.assertEqual(g_exp, g_act, '{0} != {1}'.format(g_act, g_exp)) + self.assertEqual(g_exp, g_act, "{0} != {1}".format(g_act, g_exp)) def test_get_partition_function_classical(self): """ @@ -546,7 +572,9 @@ def test_get_entropy_classical(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([2.86874, 3.12415, 3.47072, 3.67346, 3.81730]) * constants.R + s_exp_list = ( + np.array([2.86874, 3.12415, 3.47072, 3.67346, 3.81730]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -557,7 +585,9 @@ def test_get_entropy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([2.86874, 3.12415, 3.47072, 3.67346, 3.81730]) * constants.R + s_exp_list = ( + np.array([2.86874, 3.12415, 3.47072, 3.67346, 3.81730]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -571,8 +601,10 @@ def test_get_sum_of_states_classical(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.75 < np.sum(dens_states[0:n + 1]) / sum_states[n] < 1.3333, - '{0} != {1}'.format(np.sum(dens_states[0:n + 1]), sum_states[n])) + self.assertTrue( + 0.75 < np.sum(dens_states[0 : n + 1]) / sum_states[n] < 1.3333, + "{0} != {1}".format(np.sum(dens_states[0 : n + 1]), sum_states[n]), + ) def test_get_sum_of_states_quantum(self): """ @@ -583,8 +615,10 @@ def test_get_sum_of_states_quantum(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n + 1]) / sum_states[n] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n + 1]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0 : n + 1]) / sum_states[n] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0 : n + 1]), sum_states[n]), + ) def test_get_density_of_states_classical(self): """ @@ -617,9 +651,9 @@ def test_repr(self): with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units) self.assertEqual(self.mode.symmetry, mode.symmetry) @@ -631,12 +665,14 @@ def test_pickle(self): of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units) self.assertEqual(self.mode.symmetry, mode.symmetry) self.assertEqual(self.mode.quantum, mode.quantum) + ################################################################################ @@ -681,7 +717,9 @@ def test_get_level_energy(self): """ Test the SphericalTopRotor.get_level_energy() method. """ - rotational_constant = self.mode.rotationalConstant.value_si * constants.h * constants.c * 100. + rotational_constant = ( + self.mode.rotationalConstant.value_si * constants.h * constants.c * 100.0 + ) rotational_constant *= constants.Na for j in range(0, 100): e_exp = rotational_constant * j * (j + 1) @@ -696,7 +734,7 @@ def test_get_level_degeneracy(self): Test the SphericalTopRotor.get_level_degeneracy() method. """ for j in range(0, 100): - g_exp = (2 * j + 1)**2 + g_exp = (2 * j + 1) ** 2 g_act = self.mode.get_level_degeneracy(j) self.assertEqual(g_exp, g_act) @@ -763,7 +801,11 @@ def test_get_enthalpy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([1.49828, 1.49897, 1.49948, 1.49966, 1.49974]) * constants.R * t_list + h_exp_list = ( + np.array([1.49828, 1.49897, 1.49948, 1.49966, 1.49974]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -774,7 +816,9 @@ def test_get_entropy_classical(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([8.84778, 9.61402, 10.6537, 11.2619, 11.6935]) * constants.R + s_exp_list = ( + np.array([8.84778, 9.61402, 10.6537, 11.2619, 11.6935]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -785,7 +829,9 @@ def test_get_entropy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([8.84778, 9.61402, 10.6537, 11.2619, 11.6935]) * constants.R + s_exp_list = ( + np.array([8.84778, 9.61402, 10.6537, 11.2619, 11.6935]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -799,7 +845,9 @@ def test_get_sum_of_states_classical(self): dens_states = self.mode.get_density_of_states(e_list) sum_states = self.mode.get_sum_of_states(e_list) for n in range(20, len(e_list)): - self.assertAlmostEqual(np.sum(dens_states[0:n + 1]) / sum_states[n], 1.0, 1) + self.assertAlmostEqual( + np.sum(dens_states[0 : n + 1]) / sum_states[n], 1.0, 1 + ) def test_get_sum_of_states_quantum(self): """ @@ -810,7 +858,9 @@ def test_get_sum_of_states_quantum(self): dens_states = self.mode.get_density_of_states(e_list) sum_states = self.mode.get_sum_of_states(e_list) for n in range(1, len(e_list)): - self.assertAlmostEqual(np.sum(dens_states[0:n + 1]) / sum_states[n], 1.0, 3) + self.assertAlmostEqual( + np.sum(dens_states[0 : n + 1]) / sum_states[n], 1.0, 3 + ) def test_get_density_of_states_classical(self): """ @@ -845,9 +895,9 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units) self.assertEqual(self.mode.symmetry, mode.symmetry) @@ -859,6 +909,7 @@ def test_pickle(self): with no loss of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units) diff --git a/test/rmgpy/statmech/schrodingerTest.py b/test/rmgpy/statmech/schrodingerTest.py index e72e713c31..2f43d288b0 100644 --- a/test/rmgpy/statmech/schrodingerTest.py +++ b/test/rmgpy/statmech/schrodingerTest.py @@ -37,8 +37,13 @@ import numpy as np import rmgpy.constants as constants -from rmgpy.statmech.schrodinger import get_density_of_states, get_enthalpy, get_entropy, \ - get_heat_capacity, get_partition_function +from rmgpy.statmech.schrodinger import ( + get_density_of_states, + get_enthalpy, + get_entropy, + get_heat_capacity, + get_partition_function, +) ################################################################################ @@ -66,7 +71,9 @@ def test_get_partition_function(self): t_list = np.array([300, 500, 1000, 1500, 2000]) q_exp_list = np.array([208.8907, 347.9285, 695.5234, 1043.118, 1390.713]) for temperature, q_exp in zip(t_list, q_exp_list): - q_act = get_partition_function(temperature, self.energy, self.degeneracy, self.n0) + q_act = get_partition_function( + temperature, self.energy, self.degeneracy, self.n0 + ) self.assertAlmostEqual(q_exp / q_act, 1.0, 4) def test_get_heat_capacity(self): @@ -76,7 +83,9 @@ def test_get_heat_capacity(self): t_list = np.array([300, 500, 1000, 1500, 2000]) cv_exp_list = np.array([1, 1, 1, 1, 1]) for temperature, cv_exp in zip(t_list, cv_exp_list): - cv_act = get_heat_capacity(temperature, self.energy, self.degeneracy, self.n0) + cv_act = get_heat_capacity( + temperature, self.energy, self.degeneracy, self.n0 + ) self.assertAlmostEqual(cv_exp / cv_act, 1.0, 4) def test_get_enthalpy(self): @@ -99,30 +108,35 @@ def test_get_entropy(self): s_act = get_entropy(temperature, self.energy, self.degeneracy, self.n0) self.assertAlmostEqual(s_exp / s_act, 1.0, 4) -# def test_get_sum_of_states(self): -# """ -# Test the get_sum_of_states() method. -# """ -# e_list = np.arange(0, 10., 0.01) -# dens_states = get_density_of_states(e_list, self.energy, self.degeneracy, self.n0) -# sum_states = get_sum_of_states(e_list, self.energy, self.degeneracy, self.n0) -# for n in range(1, len(e_list)): -# self.assertAlmostEqual(np.sum(dens_states[0:n + 1]) / sum_states[n], 1.0, 3) + # def test_get_sum_of_states(self): + # """ + # Test the get_sum_of_states() method. + # """ + # e_list = np.arange(0, 10., 0.01) + # dens_states = get_density_of_states(e_list, self.energy, self.degeneracy, self.n0) + # sum_states = get_sum_of_states(e_list, self.energy, self.degeneracy, self.n0) + # for n in range(1, len(e_list)): + # self.assertAlmostEqual(np.sum(dens_states[0:n + 1]) / sum_states[n], 1.0, 3) def test_get_density_of_states(self): """ Test the get_density_of_states() method. """ t_list = np.array([300, 400, 500, 600]) - e_list = np.arange(0, 40000., 20.) + e_list = np.arange(0, 40000.0, 20.0) for temperature in t_list: - dens_states = get_density_of_states(e_list, self.energy, self.degeneracy, self.n0) + dens_states = get_density_of_states( + e_list, self.energy, self.degeneracy, self.n0 + ) q_act = np.sum(dens_states * np.exp(-e_list / constants.R / temperature)) - q_exp = get_partition_function(temperature, self.energy, self.degeneracy, self.n0) + q_exp = get_partition_function( + temperature, self.energy, self.degeneracy, self.n0 + ) self.assertAlmostEqual(q_exp / q_act, 1.0, 2) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/torsionTest.py b/test/rmgpy/statmech/torsionTest.py index 8857a8b0d6..376e6576cc 100644 --- a/test/rmgpy/statmech/torsionTest.py +++ b/test/rmgpy/statmech/torsionTest.py @@ -57,8 +57,13 @@ def setUp(self): inertia=(self.inertia, "amu*angstrom^2"), symmetry=self.symmetry, barrier=(self.barrier, "kJ/mol"), - fourier=([[4.58375, 0.841648, -5702.71, 6.02657, 4.7446], - [0.726951, -0.677255, 0.207032, 0.553307, -0.503303]], "J/mol"), + fourier=( + [ + [4.58375, 0.841648, -5702.71, 6.02657, 4.7446], + [0.726951, -0.677255, 0.207032, 0.553307, -0.503303], + ], + "J/mol", + ), quantum=self.quantum, ) self.freemode = FreeRotor( @@ -95,7 +100,7 @@ def test_get_potential_cosine(self): Test the HinderedRotor.get_potential() method for a cosine potential. """ self.mode.fourier = None - phi = np.arange(0.0, 2 * constants.pi + 0.0001, constants.pi / 24.) + phi = np.arange(0.0, 2 * constants.pi + 0.0001, constants.pi / 24.0) potential = np.zeros_like(phi) for i in range(phi.shape[0]): potential[i] = self.mode.get_potential(phi[i]) @@ -105,7 +110,7 @@ def test_get_potential_fourier(self): Test the HinderedRotor.get_potential() method for a Fourier series potential. """ - phi = np.arange(0.0, 2 * constants.pi + 0.0001, constants.pi / 24.) + phi = np.arange(0.0, 2 * constants.pi + 0.0001, constants.pi / 24.0) potential = np.zeros_like(phi) for i in range(phi.shape[0]): potential[i] = self.mode.get_potential(phi[i]) @@ -115,8 +120,9 @@ def test_get_partition_function_free(self): Test the FreeRotor.get_partition_function() method """ t_list = np.array([300, 500, 1000, 1500, 2000]) - q_exp_list = np.sqrt(8 * np.pi**3 * constants.kB * t_list - * self.freemode.inertia.value_si) / (self.symmetry * constants.h) + q_exp_list = np.sqrt( + 8 * np.pi**3 * constants.kB * t_list * self.freemode.inertia.value_si + ) / (self.symmetry * constants.h) for temperature, q_exp in zip(t_list, q_exp_list): q_act = self.freemode.get_partition_function(temperature) self.assertAlmostEqual(q_exp, q_act, delta=1e-4 * q_exp) @@ -175,7 +181,7 @@ def test_get_heat_capacity_free(self): """ Test the FreeRotor.get_heat_capacity() method """ - cv_exp = constants.R/2.0 + cv_exp = constants.R / 2.0 t_list = np.array([300, 500, 1000, 1500, 2000]) for temperature in t_list: cv_act = self.freemode.get_heat_capacity(temperature) @@ -189,7 +195,9 @@ def test_get_heat_capacity_classical_cosine(self): self.mode.quantum = False self.mode.fourier = None t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([1.01741, 0.951141, 0.681919, 0.589263, 0.552028]) * constants.R + cv_exp_list = ( + np.array([1.01741, 0.951141, 0.681919, 0.589263, 0.552028]) * constants.R + ) for temperature, cv_exp in zip(t_list, cv_exp_list): cv_act = self.mode.get_heat_capacity(temperature) self.assertAlmostEqual(cv_exp, cv_act, delta=1e-4 * cv_exp) @@ -201,7 +209,9 @@ def test_get_heat_capacity_classical_fourier(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([1.17682, 1.01369, 0.698588, 0.596797, 0.556293]) * constants.R + cv_exp_list = ( + np.array([1.17682, 1.01369, 0.698588, 0.596797, 0.556293]) * constants.R + ) for temperature, cv_exp in zip(t_list, cv_exp_list): cv_act = self.mode.get_heat_capacity(temperature) self.assertAlmostEqual(cv_exp, cv_act, delta=1e-4 * cv_exp) @@ -214,7 +224,9 @@ def test_get_heat_capacity_quantum_cosine(self): self.mode.quantum = True self.mode.fourier = None t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([1.01271, 0.945341, 0.684451, 0.591949, 0.554087]) * constants.R + cv_exp_list = ( + np.array([1.01271, 0.945341, 0.684451, 0.591949, 0.554087]) * constants.R + ) for temperature, cv_exp in zip(t_list, cv_exp_list): cv_act = self.mode.get_heat_capacity(temperature) self.assertAlmostEqual(cv_exp, cv_act, delta=1e-4 * cv_exp) @@ -226,7 +238,9 @@ def test_get_heat_capacity_quantum_fourier(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([1.01263, 0.946618, 0.685345, 0.592427, 0.554374]) * constants.R + cv_exp_list = ( + np.array([1.01263, 0.946618, 0.685345, 0.592427, 0.554374]) * constants.R + ) for temperature, cv_exp in zip(t_list, cv_exp_list): cv_act = self.mode.get_heat_capacity(temperature) self.assertAlmostEqual(cv_exp, cv_act, delta=1e-3 * cv_exp) @@ -249,7 +263,11 @@ def test_get_enthalpy_classical_cosine(self): self.mode.quantum = False self.mode.fourier = None t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([1.09556, 1.09949, 0.962738, 0.854617, 0.784333]) * constants.R * t_list + h_exp_list = ( + np.array([1.09556, 1.09949, 0.962738, 0.854617, 0.784333]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -261,7 +279,11 @@ def test_get_enthalpy_classical_fourier(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([1.08882, 1.09584, 0.961543, 0.854054, 0.784009]) * constants.R * t_list + h_exp_list = ( + np.array([1.08882, 1.09584, 0.961543, 0.854054, 0.784009]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -274,7 +296,11 @@ def test_get_enthalpy_quantum_cosine(self): self.mode.quantum = True self.mode.fourier = None t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([0.545814, 0.727200, 0.760918, 0.717496, 0.680767]) * constants.R * t_list + h_exp_list = ( + np.array([0.545814, 0.727200, 0.760918, 0.717496, 0.680767]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -286,15 +312,24 @@ def test_get_enthalpy_quantum_fourier(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([0.548251, 0.728974, 0.762396, 0.718702, 0.681764]) * constants.R * t_list + h_exp_list = ( + np.array([0.548251, 0.728974, 0.762396, 0.718702, 0.681764]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=2e-3 * h_exp) def test_get_entropy_free(self): t_list = np.array([300, 500, 1000, 1500, 2000]) - pf = np.array([self.freemode.get_partition_function(temperature) for temperature in t_list]) - s_exp_list = constants.R * (np.log(pf) + .5) + pf = np.array( + [ + self.freemode.get_partition_function(temperature) + for temperature in t_list + ] + ) + s_exp_list = constants.R * (np.log(pf) + 0.5) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.freemode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -307,7 +342,9 @@ def test_get_entropy_classical_cosine(self): self.mode.quantum = False self.mode.fourier = None t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([0.797089, 1.36543, 1.95062, 2.21083, 2.37608]) * constants.R + s_exp_list = ( + np.array([0.797089, 1.36543, 1.95062, 2.21083, 2.37608]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -319,7 +356,9 @@ def test_get_entropy_classical_fourier(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([0.795154, 1.36396, 1.95005, 2.21055, 2.37592]) * constants.R + s_exp_list = ( + np.array([0.795154, 1.36396, 1.95005, 2.21055, 2.37592]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -332,7 +371,9 @@ def test_get_entropy_quantum_cosine(self): self.mode.quantum = True self.mode.fourier = None t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([0.881906, 1.39397, 1.95536, 2.21232, 2.37673]) * constants.R + s_exp_list = ( + np.array([0.881906, 1.39397, 1.95536, 2.21232, 2.37673]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -344,7 +385,9 @@ def test_get_entropy_quantum_fourier(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([0.880170, 1.39260, 1.95483, 2.21207, 2.37658]) * constants.R + s_exp_list = ( + np.array([0.880170, 1.39260, 1.95483, 2.21207, 2.37658]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-3 * s_exp) @@ -360,8 +403,10 @@ def test_get_sum_of_states_classical_cosine(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_sum_of_states_classical_fourier(self): """ @@ -372,7 +417,9 @@ def test_get_sum_of_states_classical_fourier(self): e_list = np.arange(0, 10000 * 11.96, 1 * 11.96) try: sum_states = self.mode.get_sum_of_states(e_list) - self.fail('NotImplementedError not raised by HinderedRotor.get_sum_of_states()') + self.fail( + "NotImplementedError not raised by HinderedRotor.get_sum_of_states()" + ) except NotImplementedError: pass @@ -387,8 +434,10 @@ def test_get_sum_of_states_quantum_cosine(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_sum_of_states_quantum_fourier(self): """ @@ -400,8 +449,10 @@ def test_get_sum_of_states_quantum_fourier(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_density_of_states_classical_cosine(self): """ @@ -426,7 +477,9 @@ def test_get_density_of_states_classical_fourier(self): e_list = np.arange(0, 10000 * 11.96, 1 * 11.96) try: dens_states = self.mode.get_density_of_states(e_list) - self.fail('NotImplementedError not raised by HinderedRotor.get_density_of_states()') + self.fail( + "NotImplementedError not raised by HinderedRotor.get_density_of_states()" + ) except NotImplementedError: pass @@ -463,9 +516,9 @@ def test_repr(self): output with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units, 6) self.assertEqual(self.mode.fourier.value.shape, mode.fourier.value.shape) @@ -483,6 +536,7 @@ def test_pickle(self): loss of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) self.assertAlmostEqual(self.mode.inertia.value, mode.inertia.value, 6) self.assertEqual(self.mode.inertia.units, mode.inertia.units, 6) @@ -495,8 +549,9 @@ def test_pickle(self): self.assertEqual(self.mode.symmetry, mode.symmetry) self.assertEqual(self.mode.quantum, mode.quantum) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/translationTest.py b/test/rmgpy/statmech/translationTest.py index 763c0bd5d9..0fa68d8468 100644 --- a/test/rmgpy/statmech/translationTest.py +++ b/test/rmgpy/statmech/translationTest.py @@ -63,7 +63,9 @@ def test_get_partition_function_classical(self): classical translator. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - q_exp_list = np.array([7.22597e+06, 2.59130e+07, 1.46586e+08, 4.03944e+08, 8.29217e+08]) + q_exp_list = np.array( + [7.22597e06, 2.59130e07, 1.46586e08, 4.03944e08, 8.29217e08] + ) for temperature, q_exp in zip(t_list, q_exp_list): q_act = self.mode.get_partition_function(temperature) self.assertAlmostEqual(q_exp, q_act, delta=1e-4 * q_exp) @@ -96,7 +98,9 @@ def test_get_entropy_classical(self): translator. """ t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([18.2932, 19.5703, 21.3031, 22.3168, 23.0360]) * constants.R + s_exp_list = ( + np.array([18.2932, 19.5703, 21.3031, 22.3168, 23.0360]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -110,8 +114,10 @@ def test_get_sum_of_states_classical(self): sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_density_of_states_classical(self): """ @@ -131,9 +137,9 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] self.assertAlmostEqual(self.mode.mass.value, mode.mass.value, 6) self.assertEqual(self.mode.mass.units, mode.mass.units) self.assertEqual(self.mode.quantum, mode.quantum) @@ -144,6 +150,7 @@ def test_pickle(self): with no loss of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) self.assertAlmostEqual(self.mode.mass.value, mode.mass.value, 6) self.assertEqual(self.mode.mass.units, mode.mass.units) diff --git a/test/rmgpy/statmech/vibrationTest.py b/test/rmgpy/statmech/vibrationTest.py index da0abe6778..388d712b5d 100644 --- a/test/rmgpy/statmech/vibrationTest.py +++ b/test/rmgpy/statmech/vibrationTest.py @@ -53,7 +53,7 @@ def setUp(self): self.frequencies = np.array([500, 1000, 2000]) self.quantum = True self.mode = HarmonicOscillator( - frequencies=(self.frequencies, 'cm^-1'), + frequencies=(self.frequencies, "cm^-1"), quantum=self.quantum, ) @@ -100,7 +100,9 @@ def test_get_heat_capacity_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - cv_exp_list = np.array([0.832004, 1.47271, 2.32513, 2.65024, 2.79124]) * constants.R + cv_exp_list = ( + np.array([0.832004, 1.47271, 2.32513, 2.65024, 2.79124]) * constants.R + ) for temperature, cv_exp in zip(t_list, cv_exp_list): cv_act = self.mode.get_heat_capacity(temperature) self.assertAlmostEqual(cv_exp, cv_act, delta=1e-4 * cv_exp) @@ -124,7 +126,11 @@ def test_get_enthalpy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - h_exp_list = np.array([0.280395, 0.637310, 1.30209, 1.70542, 1.96142]) * constants.R * t_list + h_exp_list = ( + np.array([0.280395, 0.637310, 1.30209, 1.70542, 1.96142]) + * constants.R + * t_list + ) for temperature, h_exp in zip(t_list, h_exp_list): h_act = self.mode.get_enthalpy(temperature) self.assertAlmostEqual(h_exp, h_act, delta=1e-4 * h_exp) @@ -136,7 +142,9 @@ def test_get_entropy_classical(self): """ self.mode.quantum = False t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([-1.70329, -0.170818, 1.90862, 3.12502, 3.98807]) * constants.R + s_exp_list = ( + np.array([-1.70329, -0.170818, 1.90862, 3.12502, 3.98807]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * abs(s_exp)) @@ -148,7 +156,9 @@ def test_get_entropy_quantum(self): """ self.mode.quantum = True t_list = np.array([300, 500, 1000, 1500, 2000]) - s_exp_list = np.array([0.384065, 0.969182, 2.29837, 3.31251, 4.09675]) * constants.R + s_exp_list = ( + np.array([0.384065, 0.969182, 2.29837, 3.31251, 4.09675]) * constants.R + ) for temperature, s_exp in zip(t_list, s_exp_list): s_act = self.mode.get_entropy(temperature) self.assertAlmostEqual(s_exp, s_act, delta=1e-4 * s_exp) @@ -159,13 +169,15 @@ def test_get_sum_of_states_classical(self): classical oscillators. """ self.mode.quantum = False - self.mode.frequencies = ([500, 1000], 'cm^-1') + self.mode.frequencies = ([500, 1000], "cm^-1") e_list = np.arange(0, 10000 * 11.96, 1 * 11.96) sum_states = self.mode.get_sum_of_states(e_list) dens_states = self.mode.get_density_of_states(e_list) for n in range(10, len(e_list)): - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_sum_of_states_quantum(self): """ @@ -180,8 +192,10 @@ def test_get_sum_of_states_quantum(self): if sum_states[n - 1] == 0: self.assertEqual(np.sum(dens_states[0:n]), 0) else: - self.assertTrue(0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, - '{0} != {1}'.format(np.sum(dens_states[0:n]), sum_states[n])) + self.assertTrue( + 0.8 < np.sum(dens_states[0:n]) / sum_states[n - 1] < 1.25, + "{0} != {1}".format(np.sum(dens_states[0:n]), sum_states[n]), + ) def test_get_density_of_states_classical(self): """ @@ -189,7 +203,7 @@ def test_get_density_of_states_classical(self): classical oscillators. """ self.mode.quantum = False - factor = constants.h * constants.c * 100. * constants.Na # cm^-1 to J/mol + factor = constants.h * constants.c * 100.0 * constants.Na # cm^-1 to J/mol e_list = np.arange(0, 10000 * factor, 1 * factor) dens_states = self.mode.get_density_of_states(e_list) temperature = 100 @@ -203,7 +217,7 @@ def test_get_density_of_states_quantum(self): quantum oscillators. """ self.mode.quantum = True - factor = constants.h * constants.c * 100. * constants.Na # cm^-1 to J/mol + factor = constants.h * constants.c * 100.0 * constants.Na # cm^-1 to J/mol e_list = np.arange(0, 10000 * factor, 1 * factor) dens_states = self.mode.get_density_of_states(e_list) for n in range(len(e_list)): @@ -218,10 +232,12 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('mode = {0!r}'.format(self.mode), globals(), namespace) - self.assertIn('mode', namespace) - mode = namespace['mode'] - self.assertEqual(self.mode.frequencies.value.shape, mode.frequencies.value.shape) + exec("mode = {0!r}".format(self.mode), globals(), namespace) + self.assertIn("mode", namespace) + mode = namespace["mode"] + self.assertEqual( + self.mode.frequencies.value.shape, mode.frequencies.value.shape + ) for freq0, freq in zip(self.mode.frequencies.value, mode.frequencies.value): self.assertAlmostEqual(freq0, freq, 6) self.assertEqual(self.mode.frequencies.units, mode.frequencies.units) @@ -233,15 +249,19 @@ def test_pickle(self): with no loss of information. """ import pickle + mode = pickle.loads(pickle.dumps(self.mode, -1)) - self.assertEqual(self.mode.frequencies.value.shape, mode.frequencies.value.shape) + self.assertEqual( + self.mode.frequencies.value.shape, mode.frequencies.value.shape + ) for freq0, freq in zip(self.mode.frequencies.value, mode.frequencies.value): self.assertAlmostEqual(freq0, freq, 6) self.assertEqual(self.mode.frequencies.units, mode.frequencies.units) self.assertEqual(self.mode.quantum, mode.quantum) + ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statsTest.py b/test/rmgpy/statsTest.py index cf9cbf0bf4..5984fba9ce 100644 --- a/test/rmgpy/statsTest.py +++ b/test/rmgpy/statsTest.py @@ -42,6 +42,7 @@ ################################################################################ + class TestExecutionStatsWriter(unittest.TestCase): """ Contains unit tests of the ExecutionStatsWriter. @@ -52,7 +53,7 @@ def setUp(self): Set up an RMG object """ - folder = os.path.join(os.getcwd(), 'rmgpy/output') + folder = os.path.join(os.getcwd(), "rmgpy/output") if not os.path.isdir(folder): os.mkdir(folder) @@ -71,7 +72,7 @@ def test_save(self): writer = ExecutionStatsWriter(folder) writer.update(self.rmg) - statsfile = os.path.join(folder, 'statistics.xls') + statsfile = os.path.join(folder, "statistics.xls") self.assertTrue(os.path.isfile(statsfile)) diff --git a/test/rmgpy/test_data/arkane/tst1/pdep_sa.py b/test/rmgpy/test_data/arkane/tst1/pdep_sa.py index e5018bf0fa..ad2bb3fcf3 100644 --- a/test/rmgpy/test_data/arkane/tst1/pdep_sa.py +++ b/test/rmgpy/test_data/arkane/tst1/pdep_sa.py @@ -1,99 +1,228 @@ -title = 'acetyl + oxygen PDep sensitivity analysis test' +title = "acetyl + oxygen PDep sensitivity analysis test" modelChemistry = "CCSD(T)-F12/cc-pVTZ-F12" species( - label = 'acetylperoxy', - structure = SMILES('CC(=O)O[O]'), - E0 = (-34.6,'kcal/mol'), - modes = [ - IdealGasTranslation(mass=(75.04,"g/mol")), - NonlinearRotor(inertia=([54.2977,104.836,156.05],"amu*angstrom^2"), symmetry=1), - HarmonicOscillator(frequencies=([319.695,500.474,536.674,543.894,727.156,973.365,1037.77,1119.72,1181.55,1391.11,1449.53,1454.72,1870.51,3037.12,3096.93,3136.39],"cm^-1")), - HinderedRotor(inertia=(7.38359,"amu*angstrom^2"), symmetry=1, fourier=([[-1.95191,-11.8215,0.740041,-0.049118,-0.464522],[0.000227764,0.00410782,-0.000805364,-0.000548218,-0.000266277]],"kJ/mol")), - HinderedRotor(inertia=(2.94723,"amu*angstrom^2"), symmetry=3, fourier=([[0.130647,0.0401507,-2.54582,-0.0436065,-0.120982],[-0.000701659,-0.000989654,0.00783349,-0.00140978,-0.00145843]],"kJ/mol")), + label="acetylperoxy", + structure=SMILES("CC(=O)O[O]"), + E0=(-34.6, "kcal/mol"), + modes=[ + IdealGasTranslation(mass=(75.04, "g/mol")), + NonlinearRotor( + inertia=([54.2977, 104.836, 156.05], "amu*angstrom^2"), symmetry=1 + ), + HarmonicOscillator( + frequencies=( + [ + 319.695, + 500.474, + 536.674, + 543.894, + 727.156, + 973.365, + 1037.77, + 1119.72, + 1181.55, + 1391.11, + 1449.53, + 1454.72, + 1870.51, + 3037.12, + 3096.93, + 3136.39, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(7.38359, "amu*angstrom^2"), + symmetry=1, + fourier=( + [ + [-1.95191, -11.8215, 0.740041, -0.049118, -0.464522], + [0.000227764, 0.00410782, -0.000805364, -0.000548218, -0.000266277], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(2.94723, "amu*angstrom^2"), + symmetry=3, + fourier=( + [ + [0.130647, 0.0401507, -2.54582, -0.0436065, -0.120982], + [-0.000701659, -0.000989654, 0.00783349, -0.00140978, -0.00145843], + ], + "kJ/mol", + ), + ), ], - spinMultiplicity = 2, - opticalIsomers = 1, - molecularWeight = (75.04,"g/mol"), - collisionModel = TransportData(sigma=(5.09,'angstrom'), epsilon=(473,'K')), - energyTransferModel = SingleExponentialDown( - alpha0 = (0.5718,'kcal/mol'), - T0 = (300,'K'), - n = 0.85, + spinMultiplicity=2, + opticalIsomers=1, + molecularWeight=(75.04, "g/mol"), + collisionModel=TransportData(sigma=(5.09, "angstrom"), epsilon=(473, "K")), + energyTransferModel=SingleExponentialDown( + alpha0=(0.5718, "kcal/mol"), + T0=(300, "K"), + n=0.85, ), ) species( - label = 'hydroperoxylvinoxy', - structure = SMILES('[CH2]C(=O)OO'), - E0 = (-32.4,'kcal/mol'), - modes = [ - IdealGasTranslation(mass=(75.04,"g/mol")), - NonlinearRotor(inertia=([44.8034,110.225,155.029],"u*angstrom**2"), symmetry=1), - HarmonicOscillator(frequencies=([318.758,420.907,666.223,675.962,752.824,864.66,998.471,1019.54,1236.21,1437.91,1485.74,1687.9,3145.44,3262.88,3434.34],"cm^-1")), - HinderedRotor(inertia=(1.68464,"u*angstrom**2"), symmetry=2, fourier=([[0.359649,-16.1155,-0.593311,1.72918,0.256314],[-7.42981e-06,-0.000238057,3.29276e-05,-6.62608e-05,8.8443e-05]],"kJ/mol")), - HinderedRotor(inertia=(8.50433,"u*angstrom**2"), symmetry=1, fourier=([[-7.53504,-23.4471,-3.3974,-0.940593,-0.313674],[-4.58248,-2.47177,0.550012,1.03771,0.844226]],"kJ/mol")), - HinderedRotor(inertia=(0.803309,"u*angstrom**2"), symmetry=1, fourier=([[-8.65946,-3.97888,-1.13469,-0.402197,-0.145101],[4.41884e-05,4.83249e-05,1.30275e-05,-1.31353e-05,-6.66878e-06]],"kJ/mol")), + label="hydroperoxylvinoxy", + structure=SMILES("[CH2]C(=O)OO"), + E0=(-32.4, "kcal/mol"), + modes=[ + IdealGasTranslation(mass=(75.04, "g/mol")), + NonlinearRotor( + inertia=([44.8034, 110.225, 155.029], "u*angstrom**2"), symmetry=1 + ), + HarmonicOscillator( + frequencies=( + [ + 318.758, + 420.907, + 666.223, + 675.962, + 752.824, + 864.66, + 998.471, + 1019.54, + 1236.21, + 1437.91, + 1485.74, + 1687.9, + 3145.44, + 3262.88, + 3434.34, + ], + "cm^-1", + ) + ), + HinderedRotor( + inertia=(1.68464, "u*angstrom**2"), + symmetry=2, + fourier=( + [ + [0.359649, -16.1155, -0.593311, 1.72918, 0.256314], + [-7.42981e-06, -0.000238057, 3.29276e-05, -6.62608e-05, 8.8443e-05], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(8.50433, "u*angstrom**2"), + symmetry=1, + fourier=( + [ + [-7.53504, -23.4471, -3.3974, -0.940593, -0.313674], + [-4.58248, -2.47177, 0.550012, 1.03771, 0.844226], + ], + "kJ/mol", + ), + ), + HinderedRotor( + inertia=(0.803309, "u*angstrom**2"), + symmetry=1, + fourier=( + [ + [-8.65946, -3.97888, -1.13469, -0.402197, -0.145101], + [4.41884e-05, 4.83249e-05, 1.30275e-05, -1.31353e-05, -6.66878e-06], + ], + "kJ/mol", + ), + ), ], - spinMultiplicity = 2, - opticalIsomers = 1, - molecularWeight = (75.04,"g/mol"), - collisionModel = TransportData(sigma=(5.09,'angstrom'), epsilon=(473,'K')), - energyTransferModel = SingleExponentialDown( - alpha0 = (0.5718,'kcal/mol'), - T0 = (300,'K'), - n = 0.85, + spinMultiplicity=2, + opticalIsomers=1, + molecularWeight=(75.04, "g/mol"), + collisionModel=TransportData(sigma=(5.09, "angstrom"), epsilon=(473, "K")), + energyTransferModel=SingleExponentialDown( + alpha0=(0.5718, "kcal/mol"), + T0=(300, "K"), + n=0.85, ), ) species( - label='nitrogen', - structure=SMILES('N#N'), + label="nitrogen", + structure=SMILES("N#N"), molecularWeight=(28.04, "g/mol"), - collisionModel=TransportData(sigma=(3.70, 'angstrom'), epsilon=(94.9, 'K')), + collisionModel=TransportData(sigma=(3.70, "angstrom"), epsilon=(94.9, "K")), ) transitionState( - label = 'ts1', - E0 = (-5.8,'kcal/mol'), - modes = [ - IdealGasTranslation(mass=(75.04,"g/mol")), - NonlinearRotor(inertia=([49.3418,103.697,149.682],"u*angstrom**2"), symmetry=1, quantum=False), - HarmonicOscillator(frequencies=([148.551,306.791,484.573,536.709,599.366,675.538,832.594,918.413,1022.28,1031.45,1101.01,1130.05,1401.51,1701.26,1844.17,3078.6,3163.07],"cm^-1"), quantum=True), + label="ts1", + E0=(-5.8, "kcal/mol"), + modes=[ + IdealGasTranslation(mass=(75.04, "g/mol")), + NonlinearRotor( + inertia=([49.3418, 103.697, 149.682], "u*angstrom**2"), + symmetry=1, + quantum=False, + ), + HarmonicOscillator( + frequencies=( + [ + 148.551, + 306.791, + 484.573, + 536.709, + 599.366, + 675.538, + 832.594, + 918.413, + 1022.28, + 1031.45, + 1101.01, + 1130.05, + 1401.51, + 1701.26, + 1844.17, + 3078.6, + 3163.07, + ], + "cm^-1", + ), + quantum=True, + ), ], - spinMultiplicity = 2, - opticalIsomers = 1, - frequency = (-1679.04,'cm^-1'), + spinMultiplicity=2, + opticalIsomers=1, + frequency=(-1679.04, "cm^-1"), ) reaction( - label = 'acetylperoxy <=> hydroperoxylvinoxy', - reactants = ['acetylperoxy'], - products = ['hydroperoxylvinoxy'], - transitionState = 'ts1', - tunneling = 'Eckart', + label="acetylperoxy <=> hydroperoxylvinoxy", + reactants=["acetylperoxy"], + products=["hydroperoxylvinoxy"], + transitionState="ts1", + tunneling="Eckart", ) network( - label = 'network1', - isomers = [ - 'acetylperoxy', - 'hydroperoxylvinoxy', + label="network1", + isomers=[ + "acetylperoxy", + "hydroperoxylvinoxy", ], - bathGas = { - 'nitrogen': 1.0, - } + bathGas={ + "nitrogen": 1.0, + }, ) pressureDependence( - 'network1', - Tmin=(300.0,'K'), Tmax=(2000.0,'K'), Tcount=8, - Pmin=(0.1,'bar'), Pmax=(10,'bar'), Pcount=5, - maximumGrainSize = (5.0,'kcal/mol'), - minimumGrainCount = 100, - method = 'modified strong collision', - interpolationModel = ('chebyshev', 6, 4), - activeJRotor = True, - sensitivity_conditions = [(1000, 'K'), (1, 'bar')] + "network1", + Tmin=(300.0, "K"), + Tmax=(2000.0, "K"), + Tcount=8, + Pmin=(0.1, "bar"), + Pmax=(10, "bar"), + Pcount=5, + maximumGrainSize=(5.0, "kcal/mol"), + minimumGrainCount=100, + method="modified strong collision", + interpolationModel=("chebyshev", 6, 4), + activeJRotor=True, + sensitivity_conditions=[(1000, "K"), (1, "bar")], ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py index 52aca0aa54..c53499c901 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/groups.py @@ -11,20 +11,21 @@ template(reactants=["CH3CCJ"], products=["CH3CCJ"], ownReverse=True) -recipe(actions=[ - ['BREAK_BOND', '*1', 1, '*2'], - ['FORM_BOND', '*1', 1, '*3'], - ['GAIN_RADICAL', '*2', '1'], - ['LOSE_RADICAL', '*3', '1'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*1", 1, "*2"], + ["FORM_BOND", "*1", 1, "*3"], + ["GAIN_RADICAL", "*2", "1"], + ["LOSE_RADICAL", "*3", "1"], + ] +) boundaryAtoms = ["*1", "*3"] entry( - index = 1, - label = "CH3CCJ", - group = -""" + index=1, + label="CH3CCJ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 *2 C u0 {1,S} {3,S} 3 *3 C u1 {2,S} @@ -32,24 +33,22 @@ 5 H u0 {1,S} 6 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "CJ", - group = -""" + index=2, + label="CJ", + group=""" 1 *3 C u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "CH3CsCJ", - group = -""" + index=22, + label="CH3CsCJ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 *2 Cs u0 {1,S} {3,S} 3 *3 C u1 {2,S} @@ -57,14 +56,13 @@ 5 H u0 {1,S} 6 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "CH3Cs(-HH)CJ", - group = -""" + index=23, + label="CH3Cs(-HH)CJ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 *2 Cs u0 {1,S} {3,S} {7,S} {8,S} 3 *3 C u1 {2,S} @@ -74,14 +72,13 @@ 7 H u0 {2,S} 8 H u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 24, - label = "CH3Cs(-HR!H)CJ", - group = -""" + index=24, + label="CH3Cs(-HR!H)CJ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 *2 Cs u0 {1,S} {3,S} {7,S} {8,S} 3 *3 C u1 {2,S} @@ -91,14 +88,13 @@ 7 H u0 {2,S} 8 R!H u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 25, - label = "CH3Cs(-R!HR!H)CJ", - group = -""" + index=25, + label="CH3Cs(-R!HR!H)CJ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 *2 Cs u0 {1,S} {3,S} {7,S} {8,S} 3 *3 C u1 {2,S} @@ -108,14 +104,13 @@ 7 R!H u0 {2,S} 8 R!H u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 26, - label = "CH3CdCJ", - group = -""" + index=26, + label="CH3CdCJ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 *2 Cd u0 {1,S} {3,S} 3 *3 C u1 {2,S} @@ -123,228 +118,210 @@ 5 H u0 {1,S} 6 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "CdsJ", - group = -""" + index=5, + label="CdsJ", + group=""" 1 *3 Cd u1 {2,D} 2 C u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "CsJ", - group = -""" + index=6, + label="CsJ", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 R u0 {1,S} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "CsJ-HH", - group = -""" + index=7, + label="CsJ-HH", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "CsJ-CsH", - group = -""" + index=8, + label="CsJ-CsH", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "CsJ-CsCs", - group = -""" + index=9, + label="CsJ-CsCs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "CsJ-SsH", - group = -""" + index=10, + label="CsJ-SsH", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 S2s u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "CsJ-SsSs", - group = -""" + index=11, + label="CsJ-SsSs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "CsJ-CsSs", - group = -""" + index=12, + label="CsJ-CsSs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 Cs u0 {1,S} 3 S2s u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "CsJ-OneDe", - group = -""" + index=13, + label="CsJ-OneDe", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 R u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "CsJ-OneDeH", - group = -""" + index=14, + label="CsJ-OneDeH", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "CsJ-CdH", - group = -""" + index=15, + label="CsJ-CdH", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 H u0 {1,S} 3 Cd u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "CsJ-OneDeCs", - group = -""" + index=16, + label="CsJ-OneDeCs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 Cs u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "CsJ-CdCs", - group = -""" + index=17, + label="CsJ-CdCs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cd u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "CsJ-OneDeSs", - group = -""" + index=18, + label="CsJ-OneDeSs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 S2s u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "CsJ-CdSs", - group = -""" + index=19, + label="CsJ-CdSs", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 S2s u0 {1,S} 3 Cd u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "CsJ-TwoDe", - group = -""" + index=20, + label="CsJ-TwoDe", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "CsJ-CdCd", - group = -""" + index=21, + label="CsJ-CdCd", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "CsJ-(CdCdCd)H", - group = -""" + index=22, + label="CsJ-(CdCdCd)H", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 H u0 {1,S} 3 Cd u0 {1,S} {4,D} 4 Cd u0 {5,S} {3,D} 5 Cd u0 {4,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: CH3CCJ L2: CH3CsCJ L3: CH3Cs(-HH)CJ @@ -372,4 +349,3 @@ L5: CsJ-CdSs """ ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py index cb254c3b6a..871947f34c 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/rules.py @@ -6,4 +6,3 @@ longDesc = """ """ - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py index 5597bedc85..19ecd68544 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/1,2_shiftC/training/reactions.py @@ -7,5 +7,3 @@ Put kinetic parameters for reactions to use as a training set for fitting group additivity values in this file. """ - - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py index 4496d9a2da..92ef7f820a 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/groups.py @@ -10,24 +10,29 @@ J. Phys. Chem. A 2003, 107, 7783-7799. """ -template(reactants=["1_5_unsaturated_hexane"], products=["1_5_unsaturated_hexane"], ownReverse=True) +template( + reactants=["1_5_unsaturated_hexane"], + products=["1_5_unsaturated_hexane"], + ownReverse=True, +) -recipe(actions=[ - ['BREAK_BOND', '*3', 1, '*4'], - ['CHANGE_BOND', '*1', -1, '*2'], - ['CHANGE_BOND', '*5', -1, '*6'], - ['CHANGE_BOND', '*2', 1, '*3'], - ['CHANGE_BOND', '*4', 1, '*5'], - ['FORM_BOND', '*1', 1, '*6'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*3", 1, "*4"], + ["CHANGE_BOND", "*1", -1, "*2"], + ["CHANGE_BOND", "*5", -1, "*6"], + ["CHANGE_BOND", "*2", 1, "*3"], + ["CHANGE_BOND", "*4", 1, "*5"], + ["FORM_BOND", "*1", 1, "*6"], + ] +) boundaryAtoms = ["*1", "*6"] entry( - index = 1, - label = "1_5_unsaturated_hexane", - group= - """ + index=1, + label="1_5_unsaturated_hexane", + group=""" 1 *3 C u0 {2,S} {3,[S,D]} 2 *4 C u0 {1,S} {4,[S,D]} 3 *2 C u0 {1,[S,D]} {5,[D,T]} @@ -35,14 +40,13 @@ 5 *1 C u0 {3,[D,T]} 6 *6 C u0 {4,[D,T]} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "1_5_hexadiyne", - group= -""" + index=2, + label="1_5_hexadiyne", + group=""" 1 *3 C u0 {2,S} {3,S} 2 *4 C u0 {1,S} {4,S} 3 *2 Ct u0 {1,S} {5,T} @@ -50,14 +54,13 @@ 5 *1 Ct u0 {3,T} 6 *6 Ct u0 {4,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "1_2_4_5_hexatetraene", - group= -""" + index=2, + label="1_2_4_5_hexatetraene", + group=""" 1 *3 Cd u0 {2,S} {3,D} 2 *4 Cd u0 {1,S} {4,D} 3 *2 Cdd u0 {1,D} {5,D} @@ -65,14 +68,13 @@ 5 *1 C u0 {3,D} 6 *6 C u0 {4,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "1_5_hexadiene", - group= -""" + index=2, + label="1_5_hexadiene", + group=""" 1 *3 C u0 {2,S} {3,S} 2 *4 C u0 {1,S} {4,S} 3 *2 Cd u0 {1,S} {5,D} @@ -80,15 +82,14 @@ 5 *1 C u0 {3,D} 6 *6 C u0 {4,D} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: 1_5_unsaturated_hexane L2: 1_5_hexadiyne L2: 1_2_4_5_hexatetraene L2: 1_5_hexadiene """ ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py index d50c3dd765..3d47c228fa 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/rules.py @@ -9,4 +9,3 @@ Miller, J. A.; Klippenstein, S. J., The Recombination of Propargyl Radicals and Other Reactions on a C6H6 Potential. J. Phys. Chem. A 2003, 107, 7783-7799. """ - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py index 16f6674112..d8609018e6 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/6_membered_central_C-C_shift/training/reactions.py @@ -7,4 +7,3 @@ Put kinetic parameters for reactions to use as a training set for fitting group additivity values in this file. """ - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py index ac67e27766..2a532ab0b6 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/groups.py @@ -7,66 +7,68 @@ """ -template(reactants=["ketone", "hydroperoxide", "acid"], products=["criegee", "acid2"], ownReverse=False) +template( + reactants=["ketone", "hydroperoxide", "acid"], + products=["criegee", "acid2"], + ownReverse=False, +) reverse = "none" -recipe(actions=[ - ['BREAK_BOND', '*3', 1, '*4'], - ['BREAK_BOND', '*7', 1, '*8'], - ['CHANGE_BOND', '*1', -1, '*2'], - ['CHANGE_BOND', '*5', -1, '*6'], - ['CHANGE_BOND', '*5', 1, '*7'], - ['FORM_BOND', '*1', 1, '*3'], - ['FORM_BOND', '*2', 1, '*8'], - ['FORM_BOND', '*4', 1, '*6'] -]) +recipe( + actions=[ + ["BREAK_BOND", "*3", 1, "*4"], + ["BREAK_BOND", "*7", 1, "*8"], + ["CHANGE_BOND", "*1", -1, "*2"], + ["CHANGE_BOND", "*5", -1, "*6"], + ["CHANGE_BOND", "*5", 1, "*7"], + ["FORM_BOND", "*1", 1, "*3"], + ["FORM_BOND", "*2", 1, "*8"], + ["FORM_BOND", "*4", 1, "*6"], + ] +) entry( - index = 1, - label = "ketone", - group = -""" + index=1, + label="ketone", + group=""" 1 *1 C u0 {2,D} {3,S} {4,S} 2 *2 O u0 {1,D} 3 [C,H] u0 {1,S} 4 [C,H] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "hydroperoxide", - group = -""" + index=2, + label="hydroperoxide", + group=""" 1 R u0 {2,S} 2 O u0 {1,S} {3,S} 3 *3 O u0 {2,S} {4,S} 4 *4 H u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "acid", - group = -""" + index=3, + label="acid", + group=""" 1 R u0 {2,S} 2 *5 C u0 {1,S} {3,D} {4,S} 3 *6 O u0 {2,D} 4 *7 O u0 {2,S} {5,S} 5 *8 H u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "6_membered_ring", - group = -""" + index=4, + label="6_membered_ring", + group=""" 1 *1 C u0 {2,D} {4,S} {8,S} 2 *2 O u0 {1,D} 4 C u0 {1,S} {5,[S,D,T,B]} @@ -75,14 +77,13 @@ 7 R!H u0 {6,[S,D,T,B]} {8,[S,D,T,B]} 8 C u0 {1,S} {7,[S,D,T,B]} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "peracid", - group = -""" + index=5, + label="peracid", + group=""" 1 R u0 {2,S} 2 C u0 {1,S} {3,D} {4,S} 3 O u0 {2,D} @@ -90,11 +91,11 @@ 5 *3 O u0 {4,S} {6,S} 6 *4 H u0 {5,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: ketone L2: 6_membered_ring L1: hydroperoxide @@ -102,4 +103,3 @@ L1: acid """ ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py index 3a1e84aa00..2376771c42 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Baeyer-Villiger_step1_cat/training/reactions.py @@ -9,53 +9,69 @@ """ entry( - index = 1, - label = "acetone + peracetic_acid + acetic_acid1 <=> acetone_peracetic_criegee + acetic_acid2", - degeneracy = 1.0, - kinetics = Arrhenius(A=(1.07543e-11, 'cm^6/(mol^2*s)'), n=5.47295, Ea=(-38.5379, 'kJ/mol'), T0=(1, 'K')), - rank = 6, - shortDesc = """CBS-QB3 calculation without HR""", - longDesc = -""" + index=1, + label="acetone + peracetic_acid + acetic_acid1 <=> acetone_peracetic_criegee + acetic_acid2", + degeneracy=1.0, + kinetics=Arrhenius( + A=(1.07543e-11, "cm^6/(mol^2*s)"), + n=5.47295, + Ea=(-38.5379, "kJ/mol"), + T0=(1, "K"), + ), + rank=6, + shortDesc="""CBS-QB3 calculation without HR""", + longDesc=""" CBS-QB3 calculation without HR fitted over range from 300-600 K """, ) entry( - index = 2, - label = "cyclohexanone + peracetic_acid + acetic_acid1 <=> cyclohexanone_peracetic_criegee + acetic_acid2", - degeneracy = 1.0, - kinetics = Arrhenius(A=(1.32822e-11, 'cm^6/(mol^2*s)'), n=5.49341, Ea=(-44.5298, 'kJ/mol'), T0=(1, 'K')), - rank = 6, - shortDesc = """CBS-QB3 calculation without HR""", - longDesc = -""" + index=2, + label="cyclohexanone + peracetic_acid + acetic_acid1 <=> cyclohexanone_peracetic_criegee + acetic_acid2", + degeneracy=1.0, + kinetics=Arrhenius( + A=(1.32822e-11, "cm^6/(mol^2*s)"), + n=5.49341, + Ea=(-44.5298, "kJ/mol"), + T0=(1, "K"), + ), + rank=6, + shortDesc="""CBS-QB3 calculation without HR""", + longDesc=""" CBS-QB3 calculation without HR fitted over range from 300-600 K """, ) entry( - index = 3, - label = "acetone + methylhydroperoxide + acetic_acid1 <=> acetone_methyl_criegee + acetic_acid2", - degeneracy = 1.0, - kinetics = Arrhenius(A=(2.6104e-09, 'cm^6/(mol^2*s)'), n=4.30497, Ea=(-30.1492, 'kJ/mol'), T0=(1, 'K')), - rank = 6, - shortDesc = """CBS-QB3 calculation without HR""", - longDesc = -""" + index=3, + label="acetone + methylhydroperoxide + acetic_acid1 <=> acetone_methyl_criegee + acetic_acid2", + degeneracy=1.0, + kinetics=Arrhenius( + A=(2.6104e-09, "cm^6/(mol^2*s)"), + n=4.30497, + Ea=(-30.1492, "kJ/mol"), + T0=(1, "K"), + ), + rank=6, + shortDesc="""CBS-QB3 calculation without HR""", + longDesc=""" CBS-QB3 calculation without HR fitted over range from 300-600 K """, ) entry( - index = 4, - label = "cyclohexanone + methylhydroperoxide + acetic_acid1 <=> cyclohexanone_methyl_criegee + acetic_acid2", - degeneracy = 1.0, - kinetics = Arrhenius(A=(5.58493e-09, 'cm^6/(mol^2*s)'), n=4.34471, Ea=(-35.857, 'kJ/mol'), T0=(1, 'K')), - rank = 6, - shortDesc = """CBS-QB3 calculation without HR""", - longDesc = -""" + index=4, + label="cyclohexanone + methylhydroperoxide + acetic_acid1 <=> cyclohexanone_methyl_criegee + acetic_acid2", + degeneracy=1.0, + kinetics=Arrhenius( + A=(5.58493e-09, "cm^6/(mol^2*s)"), + n=4.34471, + Ea=(-35.857, "kJ/mol"), + T0=(1, "K"), + ), + rank=6, + shortDesc="""CBS-QB3 calculation without HR""", + longDesc=""" CBS-QB3 calculation without HR fitted over range from 300-600 K """, ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py index b779ee1852..5f9216593b 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/groups.py @@ -9,1545 +9,1425 @@ If a tri-rad or quad-rad, reaction site *1 and *3 can be anything but singlet. """ -template(reactants=["Y_rad_birad_trirad_quadrad", "XH_Rrad_birad"], products=["Y_H", "X_R"], ownReverse=False) +template( + reactants=["Y_rad_birad_trirad_quadrad", "XH_Rrad_birad"], + products=["Y_H", "X_R"], + ownReverse=False, +) reverse = "Molecular_Addition" -recipe(actions=[ - ['FORM_BOND', '*1', 1, '*4'], - ['BREAK_BOND', '*2', 1, '*4'], - ['CHANGE_BOND', '*2', 1, '*3'], - ['LOSE_RADICAL', '*1', '1'], - ['LOSE_RADICAL', '*3', '1'], -]) +recipe( + actions=[ + ["FORM_BOND", "*1", 1, "*4"], + ["BREAK_BOND", "*2", 1, "*4"], + ["CHANGE_BOND", "*2", 1, "*3"], + ["LOSE_RADICAL", "*1", "1"], + ["LOSE_RADICAL", "*3", "1"], + ] +) entry( - index = 0, - label = "Y_rad_birad_trirad_quadrad", - group = "OR{Y_1centerquadrad, Y_1centertrirad, Y_2centerbirad, Y_1centerbirad, Y_rad}", - kinetics = None, + index=0, + label="Y_rad_birad_trirad_quadrad", + group="OR{Y_1centerquadrad, Y_1centertrirad, Y_2centerbirad, Y_1centerbirad, Y_rad}", + kinetics=None, ) entry( - index = 1, - label = "XH_Rrad_birad", - group = "OR{XH_Rrad, XH_Rbirad}", - kinetics = None, + index=1, + label="XH_Rrad_birad", + group="OR{XH_Rrad, XH_Rbirad}", + kinetics=None, ) entry( - index = 2, - label = "Y_1centerquadrad", - group = "OR{C_quintet, C_triplet}", - kinetics = None, + index=2, + label="Y_1centerquadrad", + group="OR{C_quintet, C_triplet}", + kinetics=None, ) entry( - index = 3, - label = "C_quintet", - group = -""" + index=3, + label="C_quintet", + group=""" 1 *1 C u4 p0 """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "C_triplet", - group = -""" + index=4, + label="C_triplet", + group=""" 1 *1 C u2 p1 """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "Y_1centertrirad", - group = "OR{N_atom_quartet, N_atom_doublet, CH_quartet, CH_doublet}", - kinetics = None, + index=5, + label="Y_1centertrirad", + group="OR{N_atom_quartet, N_atom_doublet, CH_quartet, CH_doublet}", + kinetics=None, ) entry( - index = 6, - label = "N_atom_quartet", - group = -""" + index=6, + label="N_atom_quartet", + group=""" 1 *1 N u3 p1 """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "N_atom_doublet", - group = -""" + index=7, + label="N_atom_doublet", + group=""" 1 *1 N u1 p2 """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "CH_quartet", - group = -""" + index=8, + label="CH_quartet", + group=""" 1 *1 C u3 p0 {2,S} 2 H u0 p0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "CH_doublet", - group = -""" + index=9, + label="CH_doublet", + group=""" 1 *1 C u1 p1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "Y_2centerbirad", - group = "OR{O2b, C2b, S2b}", - kinetics = None, + index=10, + label="Y_2centerbirad", + group="OR{O2b, C2b, S2b}", + kinetics=None, ) entry( - index = 11, - label = "O2b", - group = -""" + index=11, + label="O2b", + group=""" 1 *1 O u1 {2,S} 2 O u1 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "C2b", - group = -""" + index=12, + label="C2b", + group=""" 1 *1 C u1 {2,T} 2 C u1 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "S2b", - group = -""" + index=13, + label="S2b", + group=""" 1 *1 S u1 {2,S} 2 S u1 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "Y_1centerbirad", - group = -""" + index=14, + label="Y_1centerbirad", + group=""" 1 *1 R!H u2 """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "CO_birad_triplet", - group = -""" + index=15, + label="CO_birad_triplet", + group=""" 1 *1 C u2 {2,D} 2 O2d u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "O_atom_triplet", - group = -""" + index=16, + label="O_atom_triplet", + group=""" 1 *1 O u2 """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "CH2_triplet", - group = -""" + index=17, + label="CH2_triplet", + group=""" 1 *1 C u2 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "NH_triplet", - group = -""" + index=18, + label="NH_triplet", + group=""" 1 *1 N3s u2 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "Y_rad", - group = -""" + index=19, + label="Y_rad", + group=""" 1 *1 R u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "H_rad", - group = -""" + index=20, + label="H_rad", + group=""" 1 *1 H u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "Ct_rad", - group = -""" + index=21, + label="Ct_rad", + group=""" 1 *1 Ct u1 {2,T} 2 R!H u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "Ct_rad/Ct", - group = -""" + index=22, + label="Ct_rad/Ct", + group=""" 1 *1 Ct u1 {2,T} 2 Ct u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "Ct_rad/Nt", - group = -""" + index=23, + label="Ct_rad/Nt", + group=""" 1 *1 Ct u1 {2,T} 2 [N3t,N5tc] u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 24, - label = "O_rad", - group = -""" + index=24, + label="O_rad", + group=""" 1 *1 O u1 {2,S} 2 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 25, - label = "O_pri_rad", - group = -""" + index=25, + label="O_pri_rad", + group=""" 1 *1 O u1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 26, - label = "O_sec_rad", - group = -""" + index=26, + label="O_sec_rad", + group=""" 1 *1 O u1 {2,S} 2 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 27, - label = "O_rad/NonDeC", - group = -""" + index=27, + label="O_rad/NonDeC", + group=""" 1 *1 O u1 {2,S} 2 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 28, - label = "O_rad/NonDeO", - group = -""" + index=28, + label="O_rad/NonDeO", + group=""" 1 *1 O u1 {2,S} 2 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 29, - label = "O_rad/NonDeN", - group = -""" + index=29, + label="O_rad/NonDeN", + group=""" 1 *1 O u1 {2,S} 2 N3s u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 30, - label = "O_rad/OneDe", - group = -""" + index=30, + label="O_rad/OneDe", + group=""" 1 *1 O u1 {2,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 31, - label = "S_rad", - group = -""" + index=31, + label="S_rad", + group=""" 1 *1 S u1 {2,S} 2 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 32, - label = "S_pri_rad", - group = -""" + index=32, + label="S_pri_rad", + group=""" 1 *1 S u1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 33, - label = "S_sec_rad", - group = -""" + index=33, + label="S_sec_rad", + group=""" 1 *1 S u1 {2,S} 2 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 34, - label = "S_rad/NonDeC", - group = -""" + index=34, + label="S_rad/NonDeC", + group=""" 1 *1 S u1 {2,S} 2 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 35, - label = "S_rad/NonDeS", - group = -""" + index=35, + label="S_rad/NonDeS", + group=""" 1 *1 S u1 {2,S} 2 S u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 36, - label = "S_rad/OneDe", - group = -""" + index=36, + label="S_rad/OneDe", + group=""" 1 *1 S u1 {2,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 37, - label = "Cd_rad", - group = -""" + index=37, + label="Cd_rad", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 38, - label = "Cd_pri_rad", - group = -""" + index=38, + label="Cd_pri_rad", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 39, - label = "Cd_sec_rad", - group = -""" + index=39, + label="Cd_sec_rad", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 40, - label = "Cd_rad/NonDeC", - group = -""" + index=40, + label="Cd_rad/NonDeC", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 41, - label = "Cd_rad/NonDeN", - group = -""" + index=41, + label="Cd_rad/NonDeN", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 N3s u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 42, - label = "Cd_rad/NonDeO", - group = -""" + index=42, + label="Cd_rad/NonDeO", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 43, - label = "Cd_rad/OneDe", - group = -""" + index=43, + label="Cd_rad/OneDe", + group=""" 1 *1 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 44, - label = "Cb_rad", - group = -""" + index=44, + label="Cb_rad", + group=""" 1 *1 Cb u1 {2,B} {3,B} 2 [Cb,Cbf] u0 {1,B} 3 [Cb,Cbf] u0 {1,B} """, - kinetics = None, + kinetics=None, ) entry( - index = 45, - label = "CO_rad", - group = -""" + index=45, + label="CO_rad", + group=""" 1 *1 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 46, - label = "CO_pri_rad", - group = -""" + index=46, + label="CO_pri_rad", + group=""" 1 *1 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 47, - label = "CO_sec_rad", - group = -""" + index=47, + label="CO_sec_rad", + group=""" 1 *1 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 48, - label = "CO_rad/NonDe", - group = -""" + index=48, + label="CO_rad/NonDe", + group=""" 1 *1 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 49, - label = "CO_rad/OneDe", - group = -""" + index=49, + label="CO_rad/OneDe", + group=""" 1 *1 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 50, - label = "Cs_rad", - group = -""" + index=50, + label="Cs_rad", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 R u0 {1,S} 3 R u0 {1,S} 4 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 51, - label = "C_methyl", - group = -""" + index=51, + label="C_methyl", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 52, - label = "C_pri_rad", - group = -""" + index=52, + label="C_pri_rad", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 53, - label = "C_rad/H2/Cs", - group = -""" + index=53, + label="C_rad/H2/Cs", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 54, - label = "C_rad/H2/Cd", - group = -""" + index=54, + label="C_rad/H2/Cd", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Cd u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 55, - label = "C_rad/H2/Ct", - group = -""" + index=55, + label="C_rad/H2/Ct", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Ct u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 56, - label = "C_rad/H2/Cb", - group = -""" + index=56, + label="C_rad/H2/Cb", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Cb u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 57, - label = "C_rad/H2/CO", - group = -""" + index=57, + label="C_rad/H2/CO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 CO u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 58, - label = "C_rad/H2/O", - group = -""" + index=58, + label="C_rad/H2/O", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 59, - label = "C_rad/H2/N", - group = -""" + index=59, + label="C_rad/H2/N", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 N u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 60, - label = "C_sec_rad", - group = -""" + index=60, + label="C_sec_rad", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 R!H u0 {1,S} 4 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 61, - label = "C_rad/H/NonDeC", - group = -""" + index=61, + label="C_rad/H/NonDeC", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 62, - label = "C_rad/H/NonDeO", - group = -""" + index=62, + label="C_rad/H/NonDeO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 O u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 63, - label = "C_rad/H/CsO", - group = -""" + index=63, + label="C_rad/H/CsO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 Cs u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 64, - label = "C_rad/H/O2", - group = -""" + index=64, + label="C_rad/H/O2", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 O u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 65, - label = "C_rad/H/NonDeN", - group = -""" + index=65, + label="C_rad/H/NonDeN", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 N u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 66, - label = "C_rad/H/NonDeS", - group = -""" + index=66, + label="C_rad/H/NonDeS", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 S u0 {1,S} 4 [Cs,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 67, - label = "C_rad/H/CsS", - group = -""" + index=67, + label="C_rad/H/CsS", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 S u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 68, - label = "C_rad/H/S2", - group = -""" + index=68, + label="C_rad/H/S2", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 S u0 {1,S} 4 S u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 69, - label = "C_rad/H/OneDe", - group = -""" + index=69, + label="C_rad/H/OneDe", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 [Cs,O,S,N] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 70, - label = "C_rad/H/OneDeC", - group = -""" + index=70, + label="C_rad/H/OneDeC", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 71, - label = "C_rad/H/OneDeO", - group = -""" + index=71, + label="C_rad/H/OneDeO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 72, - label = "C_rad/H/OneDeN", - group = -""" + index=72, + label="C_rad/H/OneDeN", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 N u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 73, - label = "C_rad/H/TwoDe", - group = -""" + index=73, + label="C_rad/H/TwoDe", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 74, - label = "C_ter_rad", - group = -""" + index=74, + label="C_ter_rad", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 R!H u0 {1,S} 3 R!H u0 {1,S} 4 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 75, - label = "C_rad/NonDeC", - group = -""" + index=75, + label="C_rad/NonDeC", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cs,O,S] u0 {1,S} 3 [Cs,O,S] u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 76, - label = "C_rad/Cs3", - group = -""" + index=76, + label="C_rad/Cs3", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 77, - label = "C_rad/NDMustO", - group = -""" + index=77, + label="C_rad/NDMustO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 O u0 {1,S} 3 [Cs,O,S] u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 78, - label = "C_rad/OneDe", - group = -""" + index=78, + label="C_rad/OneDe", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 [Cs,O,S] u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 79, - label = "C_rad/Cs2", - group = -""" + index=79, + label="C_rad/Cs2", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 80, - label = "C_rad/ODMustO", - group = -""" + index=80, + label="C_rad/ODMustO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 O u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 81, - label = "C_rad/TwoDe", - group = -""" + index=81, + label="C_rad/TwoDe", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 82, - label = "C_rad/Cs", - group = -""" + index=82, + label="C_rad/Cs", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 83, - label = "C_rad/TDMustO", - group = -""" + index=83, + label="C_rad/TDMustO", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 84, - label = "C_rad/ThreeDe", - group = -""" + index=84, + label="C_rad/ThreeDe", + group=""" 1 *1 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO] u0 {1,S} 3 [Cd,Ct,Cb,CO] u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 85, - label = "N3_rad", - group = -""" + index=85, + label="N3_rad", + group=""" 1 *1 [N3s,N3d] u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 86, - label = "N3s_rad", - group = -""" + index=86, + label="N3s_rad", + group=""" 1 *1 N3s u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 87, - label = "NH2_rad", - group = -""" + index=87, + label="NH2_rad", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 88, - label = "N3s_rad_pri", - group = -""" + index=88, + label="N3s_rad_pri", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 R!H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 89, - label = "N3s_rad/H/NonDe", - group = -""" + index=89, + label="N3s_rad/H/NonDe", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 [Cs,N3s,O2s] u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 90, - label = "N3s_rad/H/NonDeC", - group = -""" + index=90, + label="N3s_rad/H/NonDeC", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 91, - label = "N3s_rad/H/NonDeO", - group = -""" + index=91, + label="N3s_rad/H/NonDeO", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 O2s u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 92, - label = "N3s_rad/H/NonDeN", - group = -""" + index=92, + label="N3s_rad/H/NonDeN", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 N3s u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 93, - label = "N3s_rad/H/OneDe", - group = -""" + index=93, + label="N3s_rad/H/OneDe", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 [Cd,Ct,Cb,CO,CS,N3d,N5dc] u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 94, - label = "N3s_rad_sec", - group = -""" + index=94, + label="N3s_rad_sec", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 R!H u0 {1,S} 3 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 95, - label = "N3s_rad/NonDe2", - group = -""" + index=95, + label="N3s_rad/NonDe2", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 [Cs,N3s,O2s] u0 {1,S} 3 [Cs,N3s,O2s] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 96, - label = "N3s_rad/OneDe", - group = -""" + index=96, + label="N3s_rad/OneDe", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 [Cd,Ct,Cb,CO,CS,N3d,N5dc] u0 {1,S} 3 [Cs,N3s,O2s] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 97, - label = "N3s_rad/TwoDe", - group = -""" + index=97, + label="N3s_rad/TwoDe", + group=""" 1 *1 N3s u1 {2,S} {3,S} 2 [Cd,Ct,Cb,CO,CS,N3d,N5dc] u0 {1,S} 3 [Cd,Ct,Cb,CO,CS,N3d,N5dc] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 98, - label = "N3d_rad", - group = -""" + index=98, + label="N3d_rad", + group=""" 1 *1 N3d u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 99, - label = "N3d_rad/C", - group = -""" + index=99, + label="N3d_rad/C", + group=""" 1 *1 N3d u1 {2,D} 2 C u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 100, - label = "N3d_rad/O", - group = -""" + index=100, + label="N3d_rad/O", + group=""" 1 *1 N3d u1 {2,D} 2 O2d u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 101, - label = "N3d_rad/N", - group = -""" + index=101, + label="N3d_rad/N", + group=""" 1 *1 N3d u1 {2,D} 2 N u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 102, - label = "N5_rad", - group = -""" + index=102, + label="N5_rad", + group=""" 1 *1 [N5dc,N5ddc,N5tc] u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 103, - label = "N5d_rad", - group = -""" + index=103, + label="N5d_rad", + group=""" 1 *1 N5dc u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 104, - label = "XH_Rrad", - group = -""" + index=104, + label="XH_Rrad", + group=""" 1 *2 R!H u0 {2,[S,D]} {3,S} 2 *3 R!H u1 {1,[S,D]} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 105, - label = "XH_s_Rrad", - group = -""" + index=105, + label="XH_s_Rrad", + group=""" 1 *2 R!H u0 {2,S} {3,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 106, - label = "Cdpri_Rrad", - group = -""" + index=106, + label="Cdpri_Rrad", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 107, - label = "Cdpri_Csrad", - group = -""" + index=107, + label="Cdpri_Csrad", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 108, - label = "Cdpri_Cdrad", - group = -""" + index=108, + label="Cdpri_Cdrad", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 109, - label = "Cdpri_COrad", - group = -""" + index=109, + label="Cdpri_COrad", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 110, - label = "Cdpri_Orad", - group = -""" + index=110, + label="Cdpri_Orad", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 111, - label = "Cdpri_Nrad", - group = -""" + index=111, + label="Cdpri_Nrad", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 112, - label = "COpri_Rrad", - group = -""" + index=112, + label="COpri_Rrad", + group=""" 1 *2 CO u0 {2,S} {3,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 113, - label = "COpri_Csrad", - group = -""" + index=113, + label="COpri_Csrad", + group=""" 1 *2 CO u0 {2,S} {3,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 114, - label = "COpri_Cdrad", - group = -""" + index=114, + label="COpri_Cdrad", + group=""" 1 *2 CO u0 {2,S} {3,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 115, - label = "COpri_COrad", - group = -""" + index=115, + label="COpri_COrad", + group=""" 1 *2 CO u0 {2,S} {3,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 116, - label = "COpri_Orad", - group = -""" + index=116, + label="COpri_Orad", + group=""" 1 *2 CO u0 {2,S} {3,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 117, - label = "COpri_Nrad", - group = -""" + index=117, + label="COpri_Nrad", + group=""" 1 *2 CO u0 {2,S} {3,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 118, - label = "O_Rrad", - group = -""" + index=118, + label="O_Rrad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 119, - label = "O_Csrad", - group = -""" + index=119, + label="O_Csrad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 120, - label = "O_Cdrad", - group = -""" + index=120, + label="O_Cdrad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 121, - label = "O_COrad", - group = -""" + index=121, + label="O_COrad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 122, - label = "O_Orad", - group = -""" + index=122, + label="O_Orad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 123, - label = "O_Nrad", - group = -""" + index=123, + label="O_Nrad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 124, - label = "S_Rrad", - group = -""" + index=124, + label="S_Rrad", + group=""" 1 *2 S u0 {2,S} {3,S} 2 *3 [Cs,Cd,S] u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 125, - label = "S_Csrad", - group = -""" + index=125, + label="S_Csrad", + group=""" 1 *2 S u0 {2,S} {3,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 126, - label = "S_Cdrad", - group = -""" + index=126, + label="S_Cdrad", + group=""" 1 *2 S u0 {2,S} {3,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 127, - label = "S_Srad", - group = -""" + index=127, + label="S_Srad", + group=""" 1 *2 S u0 {2,S} {3,S} 2 *3 S u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 128, - label = "Cmethyl_Rrad", - group = -""" + index=128, + label="Cmethyl_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 129, - label = "Cmethyl_Csrad", - group = -""" + index=129, + label="Cmethyl_Csrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 130, - label = "Cmethyl_Csrad/H/Cd", - group = -""" + index=130, + label="Cmethyl_Csrad/H/Cd", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} {6,S} {7,S} 3 *4 H u0 {1,S} @@ -1556,126 +1436,117 @@ 6 H u0 {2,S} 7 Cd u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 131, - label = "Cmethyl_Cdrad", - group = -""" + index=131, + label="Cmethyl_Cdrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 132, - label = "Cmethyl_COrad", - group = -""" + index=132, + label="Cmethyl_COrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 133, - label = "Cmethyl_Orad", - group = -""" + index=133, + label="Cmethyl_Orad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 134, - label = "Cmethyl_Srad", - group = -""" + index=134, + label="Cmethyl_Srad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 S u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 135, - label = "Cmethyl_Nrad", - group = -""" + index=135, + label="Cmethyl_Nrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 136, - label = "Cpri_Rrad", - group = -""" + index=136, + label="Cpri_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 137, - label = "C/H2/Nd_Rrad", - group = -""" + index=137, + label="C/H2/Nd_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 138, - label = "C/H2/Nd_Csrad", - group = -""" + index=138, + label="C/H2/Nd_Csrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 139, - label = "C/H2/Nd_Csrad/H/Cd", - group = -""" + index=139, + label="C/H2/Nd_Csrad/H/Cd", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} {6,S} {7,S} 3 *4 H u0 {1,S} @@ -1684,112 +1555,104 @@ 6 H u0 {2,S} 7 Cd u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 140, - label = "C/H2/Nd_Cdrad", - group = -""" + index=140, + label="C/H2/Nd_Cdrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 141, - label = "C/H2/Nd_COrad", - group = -""" + index=141, + label="C/H2/Nd_COrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 142, - label = "C/H2/Nd_Orad", - group = -""" + index=142, + label="C/H2/Nd_Orad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 143, - label = "C/H2/Nd_Nrad", - group = -""" + index=143, + label="C/H2/Nd_Nrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 N3s u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 144, - label = "C/H2/Nd_Srad", - group = -""" + index=144, + label="C/H2/Nd_Srad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 S u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 145, - label = "C/H2/De_Rrad", - group = -""" + index=145, + label="C/H2/De_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 146, - label = "C/H2/De_Csrad", - group = -""" + index=146, + label="C/H2/De_Csrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 147, - label = "C/H2/De_Csrad/H/Cd", - group = -""" + index=147, + label="C/H2/De_Csrad/H/Cd", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} {6,S} {7,S} 3 *4 H u0 {1,S} @@ -1798,112 +1661,104 @@ 6 H u0 {2,S} 7 Cd u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 148, - label = "C/H2/De_Cdrad", - group = -""" + index=148, + label="C/H2/De_Cdrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 149, - label = "C/H2/De_COrad", - group = -""" + index=149, + label="C/H2/De_COrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 150, - label = "C/H2/De_Orad", - group = -""" + index=150, + label="C/H2/De_Orad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 151, - label = "C/H2/De_Nrad", - group = -""" + index=151, + label="C/H2/De_Nrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 152, - label = "Csec_Rrad", - group = -""" + index=152, + label="Csec_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 R!H u0 {1,S} 5 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 153, - label = "C/H/NdNd_Rrad", - group = -""" + index=153, + label="C/H/NdNd_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 154, - label = "C/H/NdNd_Csrad", - group = -""" + index=154, + label="C/H/NdNd_Csrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 155, - label = "C/H/NdMd_Csrad/H/Cd", - group = -""" + index=155, + label="C/H/NdMd_Csrad/H/Cd", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} {6,S} {7,S} 3 *4 H u0 {1,S} @@ -1912,98 +1767,91 @@ 6 H u0 {2,S} 7 Cd u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 156, - label = "C/H/NdNd_Cdrad", - group = -""" + index=156, + label="C/H/NdNd_Cdrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 157, - label = "C/H/NdNd_COrad", - group = -""" + index=157, + label="C/H/NdNd_COrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 158, - label = "C/H/NdNd_Orad", - group = -""" + index=158, + label="C/H/NdNd_Orad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 159, - label = "C/H/NdNd_Nrad", - group = -""" + index=159, + label="C/H/NdNd_Nrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cs,O,S] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 160, - label = "C/H/NdDe_Rrad", - group = -""" + index=160, + label="C/H/NdDe_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 161, - label = "C/H/NdDe_Csrad", - group = -""" + index=161, + label="C/H/NdDe_Csrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 162, - label = "C/H/NdDe_Csrad/H/Cd", - group = -""" + index=162, + label="C/H/NdDe_Csrad/H/Cd", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} {6,S} {7,S} 3 *4 H u0 {1,S} @@ -2012,98 +1860,91 @@ 6 H u0 {2,S} 7 Cd u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 163, - label = "C/H/NdDe_Cdrad", - group = -""" + index=163, + label="C/H/NdDe_Cdrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 164, - label = "C/H/NdDe_COrad", - group = -""" + index=164, + label="C/H/NdDe_COrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 165, - label = "C/H/NdDe_Orad", - group = -""" + index=165, + label="C/H/NdDe_Orad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 166, - label = "C/H/NdDe_Nrad", - group = -""" + index=166, + label="C/H/NdDe_Nrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,O,S] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 167, - label = "C/H/DeDe_Rrad", - group = -""" + index=167, + label="C/H/DeDe_Rrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 [Cs,Cd,CO,O,S,N] u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 168, - label = "C/H/DeDe_Csrad", - group = -""" + index=168, + label="C/H/DeDe_Csrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 169, - label = "C/H/DeDe_Csrad/H/Cd", - group = -""" + index=169, + label="C/H/DeDe_Csrad/H/Cd", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cs u1 {1,S} {6,S} {7,S} 3 *4 H u0 {1,S} @@ -2112,558 +1953,515 @@ 6 H u0 {2,S} 7 Cd u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 170, - label = "C/H/DeDe_Cdrad", - group = -""" + index=170, + label="C/H/DeDe_Cdrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 171, - label = "C/H/DeDe_COrad", - group = -""" + index=171, + label="C/H/DeDe_COrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 CO u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 172, - label = "C/H/DeDe_Orad", - group = -""" + index=172, + label="C/H/DeDe_Orad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 173, - label = "C/H/DeDe_Nrad", - group = -""" + index=173, + label="C/H/DeDe_Nrad", + group=""" 1 *2 C u0 {2,S} {3,S} {4,S} {5,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} 5 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 174, - label = "NH_s_Rrad", - group = -""" + index=174, + label="NH_s_Rrad", + group=""" 1 *2 N u0 {2,S} {3,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 175, - label = "N3H_s_Rrad", - group = -""" + index=175, + label="N3H_s_Rrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 176, - label = "N3s/H2_s_Rrad", - group = -""" + index=176, + label="N3s/H2_s_Rrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 177, - label = "N3s/H2_s_Crad", - group = -""" + index=177, + label="N3s/H2_s_Crad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 C u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 178, - label = "N3s/H2_s_Cssrad", - group = -""" + index=178, + label="N3s/H2_s_Cssrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 Cs u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 179, - label = "N3s/H2_s_Cdsrad", - group = -""" + index=179, + label="N3s/H2_s_Cdsrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 Cd u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 180, - label = "N3s/H2_s_Orad", - group = -""" + index=180, + label="N3s/H2_s_Orad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 181, - label = "N3s/H2_s_Nrad", - group = -""" + index=181, + label="N3s/H2_s_Nrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 N u1 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 182, - label = "N3s/H/NonDe_s_Rrad", - group = -""" + index=182, + label="N3s/H/NonDe_s_Rrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} 4 [Cs,N3s,O2s] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 183, - label = "N3s/H/Deloc_s_Rrad", - group = -""" + index=183, + label="N3s/H/Deloc_s_Rrad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 184, - label = "N5H_s_Rrad", - group = -""" + index=184, + label="N5H_s_Rrad", + group=""" 1 *2 [N5sc,N5dc] u0 {2,S} {3,S} 2 *3 R!H u1 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 185, - label = "XH_d_Rrad", - group = -""" + index=185, + label="XH_d_Rrad", + group=""" 1 *2 R!H u0 {2,D} {3,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 186, - label = "CH_d_Rrad", - group = -""" + index=186, + label="CH_d_Rrad", + group=""" 1 *2 C u0 {2,D} {3,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 187, - label = "Cd_Cdrad", - group = -""" + index=187, + label="Cd_Cdrad", + group=""" 1 *2 Cd u0 {2,D} {3,S} 2 *3 Cd u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 188, - label = "Cds/H2_d_Rrad", - group = -""" + index=188, + label="Cds/H2_d_Rrad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 189, - label = "Cds/H2_d_Crad", - group = -""" + index=189, + label="Cds/H2_d_Crad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 C u1 {1,D} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 190, - label = "Cds/H2_d_N3rad", - group = -""" + index=190, + label="Cds/H2_d_N3rad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 N3d u1 {1,D} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 191, - label = "Cds/H2_d_N5rad", - group = -""" + index=191, + label="Cds/H2_d_N5rad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 [N5dc,N5ddc,N5tc] u1 {1,D} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 192, - label = "Cds/H2_d_N5dcrad", - group = -""" + index=192, + label="Cds/H2_d_N5dcrad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 N5dc u1 {1,D} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 1050, - label = "Cds/H2_d_N5dcrad/O", - group = -""" + index=1050, + label="Cds/H2_d_N5dcrad/O", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 N5dc u1 p0 c+1 {1,D} {5,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} 5 O u0 p3 c-1 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 197, - label = "Cds/H/NonDe_d_Rrad", - group = -""" + index=197, + label="Cds/H/NonDe_d_Rrad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} 4 [Cs,N3s,O2s] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 198, - label = "Cds/H/Deloc_d_Rrad", - group = -""" + index=198, + label="Cds/H/Deloc_d_Rrad", + group=""" 1 *2 C u0 {2,D} {3,S} {4,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 199, - label = "NH_d_Rrad", - group = -""" + index=199, + label="NH_d_Rrad", + group=""" 1 *2 N u0 {2,D} {3,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 200, - label = "N3d/H_d_Rrad", - group = -""" + index=200, + label="N3d/H_d_Rrad", + group=""" 1 *2 N3d u0 {2,D} {3,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 201, - label = "N3d/H_d_Crad", - group = -""" + index=201, + label="N3d/H_d_Crad", + group=""" 1 *2 N3d u0 {2,D} {3,S} 2 *3 C u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 202, - label = "N3d/H_d_Nrad", - group = -""" + index=202, + label="N3d/H_d_Nrad", + group=""" 1 *2 N3d u0 {2,D} {3,S} 2 *3 N u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 203, - label = "N5dc/H_d_Rrad", - group = -""" + index=203, + label="N5dc/H_d_Rrad", + group=""" 1 *2 N5dc u0 {2,D} {3,S} 2 *3 R!H u1 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 204, - label = "XH_Rbirad", - group = -""" + index=204, + label="XH_Rbirad", + group=""" 1 *2 R!H u0 {2,[S,D]} {3,S} 2 *3 R!H u2 {1,[S,D]} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 205, - label = "XH_s_Rbirad", - group = -""" + index=205, + label="XH_s_Rbirad", + group=""" 1 *2 R!H u0 {2,S} {3,S} 2 *3 R!H u2 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 206, - label = "CH_s_Rbirad", - group = -""" + index=206, + label="CH_s_Rbirad", + group=""" 1 *2 C u0 {2,S} {3,S} 2 *3 R!H u2 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 207, - label = "NH_s_Rbirad", - group = -""" + index=207, + label="NH_s_Rbirad", + group=""" 1 *2 N u0 {2,S} {3,S} 2 *3 R!H u2 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 208, - label = "N3H_s_Rbirad", - group = -""" + index=208, + label="N3H_s_Rbirad", + group=""" 1 *2 N3s u0 {2,S} {3,S} 2 *3 R!H u2 {1,S} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 209, - label = "N3s/H2_s_Rbirad", - group = -""" + index=209, + label="N3s/H2_s_Rbirad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 R!H u2 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 210, - label = "N3s/H2_s_Cbirad", - group = -""" + index=210, + label="N3s/H2_s_Cbirad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 C u2 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 211, - label = "N3s/H2_s_Nbirad", - group = -""" + index=211, + label="N3s/H2_s_Nbirad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 N u2 {1,S} 3 *4 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 212, - label = "N3s/H/NonDe_s_Rbirad", - group = -""" + index=212, + label="N3s/H/NonDe_s_Rbirad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 N u2 {1,S} 3 *4 H u0 {1,S} 4 [Cs,N3s,O2s] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 213, - label = "N3s/H/Deloc_s_Rbirad", - group = -""" + index=213, + label="N3s/H/Deloc_s_Rbirad", + group=""" 1 *2 N3s u0 {2,S} {3,S} {4,S} 2 *3 N u2 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 214, - label = "N5H_s_Rbirad", - group = -""" + index=214, + label="N5H_s_Rbirad", + group=""" 1 *2 [N5sc,N5dc] u0 {2,S} {3,S} {4,S} 2 *3 N u2 {1,S} 3 *4 H u0 {1,S} 4 [Cd,Ct,Cb,CO] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 215, - label = "XH_d_Rbirad", - group = -""" + index=215, + label="XH_d_Rbirad", + group=""" 1 *2 R!H u0 {2,D} {3,S} 2 *3 R!H u2 {1,D} 3 *4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: Y_rad_birad_trirad_quadrad L2: Y_1centerquadrad L3: C_quintet @@ -2881,91 +2679,78 @@ ) forbidden( - label = "O2d", - group = -""" + label="O2d", + group=""" 1 *2 O u0 {2,D} 2 *3 O u0 {1,D} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "OS_XH_birad_singlet", - group = -""" + label="OS_XH_birad_singlet", + group=""" 1 *3 [O,S] u0 p3 {2,[S,D,T]} 2 *2 R!H ux {1,[S,D,T]} {3,S} 3 *4 H u0 {2,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "O_Orad", - group = -""" + label="O_Orad", + group=""" 1 *2 O u0 {2,S} {3,S} 2 *3 O u1 {1,S} 3 *4 H u0 {1,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "XH_N_birad_singlet", - group = -""" + label="XH_N_birad_singlet", + group=""" 1 *3 N u0 p2 {2,[S,D]} 2 *2 R!H ux {1,[S,D]} {3,S} 3 *4 H u0 {2,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "XH_birad_singlet", - group = -""" + label="XH_birad_singlet", + group=""" 1 *3 [C,Si] u0 p1 {2,[S,D,T]} 2 *2 R!H ux {1,[S,D,T]} {3,S} 3 *4 H u0 {2,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "XH_quadrad_singlet", - group = -""" + label="XH_quadrad_singlet", + group=""" 1 *3 [C,Si] u0 p2 {2,[S,D,T]} 2 *2 R!H ux {1,[S,D,T]} {3,S} 3 *4 H u0 {2,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py index d399841bac..2bfee6f223 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/rules.py @@ -7,35 +7,34 @@ """ entry( - index = 485, - label = "Y_rad_birad_trirad_quadrad;XH_Rrad_birad", - kinetics = ArrheniusEP( - A = (3e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), - ), - rank = 0, - shortDesc = """Default""", -) - -entry( - index = 487, - label = "O2b;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (7.23e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (15.99, 'kcal/mol'), - Tmin = (700, 'K'), - Tmax = (2500, 'K'), - ), - rank = 4, - shortDesc = """[AJ] Miyoshi 2011 (Table 4, Node 'sp') dx.doi.org/10.1021/jp112152n""", - longDesc = -""" + index=485, + label="Y_rad_birad_trirad_quadrad;XH_Rrad_birad", + kinetics=ArrheniusEP( + A=(3e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), + ), + rank=0, + shortDesc="""Default""", +) + +entry( + index=487, + label="O2b;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(7.23e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(15.99, "kcal/mol"), + Tmin=(700, "K"), + Tmax=(2500, "K"), + ), + rank=4, + shortDesc="""[AJ] Miyoshi 2011 (Table 4, Node 'sp') dx.doi.org/10.1021/jp112152n""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review: i-C3H7 + O2 = HO2 + C3H6 @@ -56,20 +55,19 @@ ) entry( - index = 488, - label = "CH2_triplet;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (3.01e+13, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=488, + label="CH2_triplet;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(3.01e13, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH2(triplet) + i-C3H7 --> C3H6 + CH3 @@ -84,20 +82,19 @@ ) entry( - index = 489, - label = "H_rad;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (3.61e+12, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=489, + label="H_rad;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(3.61e12, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. H + i-C3H7 --> C3H6 + H2 @@ -111,20 +108,19 @@ ) entry( - index = 490, - label = "H_rad;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (1.81e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=490, + label="H_rad;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(1.81e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [89] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [89] Literature review.""", + longDesc=""" [89] Tsang, W.; Hampson, R.F.; Journal of Physical and Chemical Reference Data (1986) 15(3), 1087-1279. Literature review. H + C2H5 --> C2H4 + H2 @@ -138,20 +134,19 @@ ) entry( - index = 491, - label = "C_methyl;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.19e+14, 'cm^3/(mol*s)', '*|/', 1.1), - n = -0.68, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=491, + label="C_methyl;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.19e14, "cm^3/(mol*s)", "*|/", 1.1), + n=-0.68, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH3 + i-C3H7 --> C3H6 + CH4 @@ -181,20 +176,19 @@ ) entry( - index = 492, - label = "C_rad/H2/Cs;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.3e+13, 'cm^3/(mol*s)', '*|/', 1.1), - n = -0.35, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=492, + label="C_rad/H2/Cs;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.3e13, "cm^3/(mol*s)", "*|/", 1.1), + n=-0.35, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H5 + i-C3H7 --> C3H6 + C2H6 @@ -210,20 +204,19 @@ ) entry( - index = 493, - label = "C_rad/H2/Cd;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.29e+13, 'cm^3/(mol*s)', '*|/', 3), - n = -0.35, - alpha = 0, - E0 = (-0.13, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=493, + label="C_rad/H2/Cd;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.29e13, "cm^3/(mol*s)", "*|/", 3), + n=-0.35, + alpha=0, + E0=(-0.13, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [93] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [93] Literature review.""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C3H5 + iC3H7 --> C3H6 + C3H6 @@ -240,20 +233,19 @@ ) entry( - index = 494, - label = "C_rad/H2/O;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.89e+12, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=494, + label="C_rad/H2/O;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.89e12, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH2OH + i-C3H7 --> C3H6 + CH3OH @@ -267,20 +259,19 @@ ) entry( - index = 495, - label = "C_rad/H/NonDeC;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.11e+14, 'cm^3/(mol*s)', '*|/', 2), - n = -0.7, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=495, + label="C_rad/H/NonDeC;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.11e14, "cm^3/(mol*s)", "*|/", 2), + n=-0.7, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. i-C3H7 + i-C3H7 --> C3H6 + C3H8 @@ -295,20 +286,19 @@ ) entry( - index = 496, - label = "C_rad/Cs3;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.86e+15, 'cm^3/(mol*s)', '*|/', 1.7), - n = -1.1, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=496, + label="C_rad/Cs3;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.86e15, "cm^3/(mol*s)", "*|/", 1.7), + n=-1.1, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: t-C4H9 + i-C3H7 --> C3H6 + i-C4H10 @@ -324,20 +314,19 @@ ) entry( - index = 497, - label = "Cd_pri_rad;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (1.52e+14, 'cm^3/(mol*s)', '*|/', 1.5), - n = -0.7, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=497, + label="Cd_pri_rad;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(1.52e14, "cm^3/(mol*s)", "*|/", 1.5), + n=-0.7, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H3 + i-C3H7 --> C3H6 + C2H4 @@ -353,20 +342,19 @@ ) entry( - index = 498, - label = "Ct_rad/Ct;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (3.61e+12, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=498, + label="Ct_rad/Ct;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(3.61e12, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H + i-C3H7 --> C3H6 + C2H2 @@ -380,20 +368,19 @@ ) entry( - index = 499, - label = "O_pri_rad;Cmethyl_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+13, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=499, + label="O_pri_rad;Cmethyl_Csrad", + kinetics=ArrheniusEP( + A=(2.41e13, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. OH + i-C3H7 --> C3H6 + H2O @@ -407,20 +394,19 @@ ) entry( - index = 500, - label = "H_rad;Cmethyl_Orad", - kinetics = ArrheniusEP( - A = (1.81e+13, 'cm^3/(mol*s)', '*|/', 3.16), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1000, 'K'), + index=500, + label="H_rad;Cmethyl_Orad", + kinetics=ArrheniusEP( + A=(1.81e13, "cm^3/(mol*s)", "*|/", 3.16), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1000, "K"), ), - rank = 4, - shortDesc = """Baulch et al [95] literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Baulch et al [95] literature review.""", + longDesc=""" [95] Baulch, D.L.; Cobos, C.J.; Cox, R.A.; Esser, C.; Frank, P.; Just, T.; Kerr, J.A.; Pilling, M.J.; Troe, J.; Walker, R.W.; Warnatz, J.; Journal of Physical and Chemical Reference Data (1992), 21(3), 411-734. pg.523: Discussion of evaluated data @@ -433,20 +419,19 @@ ) entry( - index = 501, - label = "O2b;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (4.5825e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (14.85, 'kcal/mol'), - Tmin = (500, 'K'), - Tmax = (900, 'K'), + index=501, + label="O2b;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(4.5825e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(14.85, "kcal/mol"), + Tmin=(500, "K"), + Tmax=(900, "K"), ), - rank = 4, - shortDesc = """[AJ] Miyoshi 2011 (Table 4, Node 'ss') dx.doi.org/10.1021/jp112152n""", - longDesc = -""" + rank=4, + shortDesc="""[AJ] Miyoshi 2011 (Table 4, Node 'ss') dx.doi.org/10.1021/jp112152n""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review: n-C3H7 + O2 = HO2 + C3H6 @@ -466,20 +451,19 @@ ) entry( - index = 502, - label = "CH2_triplet;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (1.81e+12, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=502, + label="CH2_triplet;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(1.81e12, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH2_triplet + n-C3H7 --> C3H6 + CH3 @@ -495,35 +479,34 @@ ) entry( - index = 502, - label = "S_rad/OneDe;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (0.719, 'cm^3/(mol*s)'), - n = 3.13, - alpha = 0, - E0 = (-3.65, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2000, 'K'), + index=502, + label="S_rad/OneDe;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(0.719, "cm^3/(mol*s)"), + n=3.13, + alpha=0, + E0=(-3.65, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ), - rank = 3, - shortDesc = """CAC calc CBS-QB3, 1dhr""", + rank=3, + shortDesc="""CAC calc CBS-QB3, 1dhr""", ) entry( - index = 503, - label = "H_rad;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (1.81e+12, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=503, + label="H_rad;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(1.81e12, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. H + n-C3H7 --> C3H6 + H2 @@ -537,20 +520,19 @@ ) entry( - index = 504, - label = "C_rad/H/OneDeC;C/H2/Nd_Srad", - kinetics = ArrheniusEP( - A = (7.63e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (-0.55, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=504, + label="C_rad/H/OneDeC;C/H2/Nd_Srad", + kinetics=ArrheniusEP( + A=(7.63e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(-0.55, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """Rough estimate based on 1/10 of #3026 in R_Recombination""", - longDesc = -""" + rank=5, + shortDesc="""Rough estimate based on 1/10 of #3026 in R_Recombination""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH3 + n-C3H7 --> C3H6 + CH4 @@ -568,20 +550,19 @@ ) entry( - index = 504, - label = "C_methyl;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (1.15e+13, 'cm^3/(mol*s)', '*|/', 1.7), - n = -0.32, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=504, + label="C_methyl;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(1.15e13, "cm^3/(mol*s)", "*|/", 1.7), + n=-0.32, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH3 + n-C3H7 --> C3H6 + CH4 @@ -599,20 +580,19 @@ ) entry( - index = 505, - label = "C_rad/H2/Cs;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (1.45e+12, 'cm^3/(mol*s)', '*|/', 1.4), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=505, + label="C_rad/H2/Cs;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(1.45e12, "cm^3/(mol*s)", "*|/", 1.4), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H5 + n-C3H7 --> C3H6 + C2H6 @@ -630,20 +610,19 @@ ) entry( - index = 505, - label = "C_rad/H/TwoDe;C/H2/Nd_Srad", - kinetics = ArrheniusEP( - A = (1.94e+12, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0.36, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=505, + label="C_rad/H/TwoDe;C/H2/Nd_Srad", + kinetics=ArrheniusEP( + A=(1.94e12, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0.36, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """Rough estimate based on 1/10 of #3027 in R_Recombination""", - longDesc = -""" + rank=5, + shortDesc="""Rough estimate based on 1/10 of #3027 in R_Recombination""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H5 + n-C3H7 --> C3H6 + C2H6 @@ -661,20 +640,19 @@ ) entry( - index = 506, - label = "C_rad/H2/Cd;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (1.45e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (-0.13, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=506, + label="C_rad/H2/Cd;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(1.45e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(-0.13, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [93] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [93] Literature review.""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C3H5 + nC3H7 --> C3H6 + C3H6 @@ -691,35 +669,34 @@ ) entry( - index = 506, - label = "S_rad/OneDe;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (7.63e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (-0.55, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=506, + label="S_rad/OneDe;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(7.63e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(-0.55, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """VERY Rough estimate based on 1/10 of #3026 in R_Recombination""", + rank=5, + shortDesc="""VERY Rough estimate based on 1/10 of #3026 in R_Recombination""", ) entry( - index = 507, - label = "C_rad/H2/O;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (4.82e+11, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=507, + label="C_rad/H2/O;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(4.82e11, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH2OH + n-C3H7 --> C3H6 + CH3OH @@ -734,20 +711,19 @@ ) entry( - index = 507, - label = "S_rad/NonDeC;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (7.63e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (-0.55, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=507, + label="S_rad/NonDeC;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(7.63e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(-0.55, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """Rough estimate based on 1/10 of #3026 in R_Recombination""", - longDesc = -""" + rank=5, + shortDesc="""Rough estimate based on 1/10 of #3026 in R_Recombination""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. CH2OH + n-C3H7 --> C3H6 + CH3OH @@ -762,20 +738,19 @@ ) entry( - index = 508, - label = "C_rad/H/NonDeC;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (5.13e+13, 'cm^3/(mol*s)', '*|/', 2), - n = -0.35, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=508, + label="C_rad/H/NonDeC;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(5.13e13, "cm^3/(mol*s)", "*|/", 2), + n=-0.35, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. i-C3H7 + n-C3H7 --> C3H6 + C3H8 @@ -792,20 +767,19 @@ ) entry( - index = 509, - label = "C_rad/Cs3;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (2.16e+14, 'cm^3/(mol*s)', '*|/', 2), - n = -0.75, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=509, + label="C_rad/Cs3;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(2.16e14, "cm^3/(mol*s)", "*|/", 2), + n=-0.75, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: t-C4H9 + n-C3H7 --> C3H6 + i-C4H10 @@ -822,20 +796,19 @@ ) entry( - index = 510, - label = "Cd_pri_rad;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (1.21e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=510, + label="Cd_pri_rad;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(1.21e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H3 + n-C3H7 --> C3H6 + C2H4 @@ -849,35 +822,34 @@ ) entry( - index = 510, - label = "S_rad/NonDeS;C/H2/Nd_Csrad/H/Cd", - kinetics = ArrheniusEP( - A = (6.44e+08, 'cm^3/(mol*s)'), - n = 1.19, - alpha = 0, - E0 = (0.51, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=510, + label="S_rad/NonDeS;C/H2/Nd_Csrad/H/Cd", + kinetics=ArrheniusEP( + A=(6.44e08, "cm^3/(mol*s)"), + n=1.19, + alpha=0, + E0=(0.51, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """Very rough based on R_Recomb #491""", + rank=5, + shortDesc="""Very rough based on R_Recomb #491""", ) entry( - index = 511, - label = "Ct_rad/Ct;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (6.03e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=511, + label="Ct_rad/Ct;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(6.03e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. C2H + n-C3H7 --> C3H6 + C2H2 @@ -892,35 +864,34 @@ ) entry( - index = 511, - label = "S_rad/NonDeS;S_Csrad", - kinetics = ArrheniusEP( - A = (6.44e+08, 'cm^3/(mol*s)'), - n = 1.19, - alpha = 0, - E0 = (0.51, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=511, + label="S_rad/NonDeS;S_Csrad", + kinetics=ArrheniusEP( + A=(6.44e08, "cm^3/(mol*s)"), + n=1.19, + alpha=0, + E0=(0.51, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """Very rough based on R_Recomb #491""", + rank=5, + shortDesc="""Very rough based on R_Recomb #491""", ) entry( - index = 512, - label = "O_pri_rad;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+13, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=512, + label="O_pri_rad;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(2.41e13, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review. OH + n-C3H7 --> C3H6 + H2O @@ -934,20 +905,19 @@ ) entry( - index = 513, - label = "O2b;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (1.2044e+10, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (600, 'K'), - Tmax = (1000, 'K'), + index=513, + label="O2b;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(1.2044e10, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(600, "K"), + Tmax=(1000, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: O2 + iC4H9 --> iC4H8 + HO2 @@ -965,20 +935,19 @@ ) entry( - index = 514, - label = "Ct_rad/Ct;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (6.03e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=514, + label="Ct_rad/Ct;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(6.03e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: C2H + i-C4H9 --> i-C4H8 + C2H2 @@ -994,20 +963,19 @@ ) entry( - index = 515, - label = "H_rad;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (9.04e+11, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=515, + label="H_rad;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(9.04e11, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: H + i-C4H9 --> i-C4H8 + H2 @@ -1024,20 +992,19 @@ ) entry( - index = 516, - label = "C_methyl;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (6.02e+12, 'cm^3/(mol*s)', '*|/', 2), - n = -0.32, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=516, + label="C_methyl;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(6.02e12, "cm^3/(mol*s)", "*|/", 2), + n=-0.32, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: CH3 + i-C4H9 --> i-C4H8 + CH4 @@ -1052,20 +1019,19 @@ ) entry( - index = 517, - label = "C_rad/H2/Cs;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (8.43e+11, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=517, + label="C_rad/H2/Cs;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(8.43e11, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: C2H5 + i-C4H9 --> i-C4H8 + C2H6 @@ -1082,20 +1048,19 @@ ) entry( - index = 518, - label = "C_rad/H2/O;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+11, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=518, + label="C_rad/H2/O;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(2.41e11, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: CH2OH + i-C4H9 --> i-C4H8 + CH3OH @@ -1115,20 +1080,19 @@ ) entry( - index = 519, - label = "C_rad/H2/Cd;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (7.83e+11, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (-0.13, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=519, + label="C_rad/H2/Cd;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(7.83e11, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(-0.13, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [93] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [93] Literature review.""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C3H5 + iC4H9 --> iC4H8 + C3H6 @@ -1144,20 +1108,19 @@ ) entry( - index = 520, - label = "C_rad/H/NonDeC;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (2.56e+13, 'cm^3/(mol*s)', '*|/', 2), - n = -0.35, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=520, + label="C_rad/H/NonDeC;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(2.56e13, "cm^3/(mol*s)", "*|/", 2), + n=-0.35, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: i-C3H7 + i-C4H9 --> i-C4H8 + C3H8 @@ -1176,20 +1139,19 @@ ) entry( - index = 521, - label = "C_rad/Cs3;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (1.08e+14, 'cm^3/(mol*s)', '*|/', 2), - n = -0.75, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=521, + label="C_rad/Cs3;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(1.08e14, "cm^3/(mol*s)", "*|/", 2), + n=-0.75, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: t-C4H9 + i-C4H9 --> i-C4H8 + i-C4H10 @@ -1209,20 +1171,19 @@ ) entry( - index = 522, - label = "Cd_pri_rad;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (8.43e+11, 'cm^3/(mol*s)', '*|/', 4), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=522, + label="Cd_pri_rad;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(8.43e11, "cm^3/(mol*s)", "*|/", 4), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: C2H3 + i-C4H9 --> i-C4H8 + C2H4 @@ -1236,20 +1197,19 @@ ) entry( - index = 523, - label = "O_pri_rad;C/H/NdNd_Csrad", - kinetics = ArrheniusEP( - A = (1.21e+13, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=523, + label="O_pri_rad;C/H/NdNd_Csrad", + kinetics=ArrheniusEP( + A=(1.21e13, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: OH + i-C4H9 --> i-C4H8 + H2O @@ -1264,20 +1224,19 @@ ) entry( - index = 524, - label = "O2b;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (6.022e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (13.55, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=524, + label="O2b;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(6.022e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(13.55, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [93] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [93] Literature review.""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: O2 + C3H5 --> H2C=C=CH2 + HO2 @@ -1301,20 +1260,19 @@ ) entry( - index = 526, - label = "C_methyl;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (3.01e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=526, + label="C_methyl;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(3.01e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: CH3 + C3H5 --> H2C=C=CH2 + CH4 @@ -1337,20 +1295,19 @@ ) entry( - index = 527, - label = "C_rad/H2/Cs;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (9.64e+11, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=527, + label="C_rad/H2/Cs;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(9.64e11, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C2H5 + C3H5 --> H2C=C=CH2 + C2H6 @@ -1366,20 +1323,19 @@ ) entry( - index = 528, - label = "C_rad/H2/Cd;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (8.43e+10, 'cm^3/(mol*s)', '*|/', 2.5), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=528, + label="C_rad/H2/Cd;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(8.43e10, "cm^3/(mol*s)", "*|/", 2.5), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C3H5 + C3H5 --> H2C=C=CH2 + C3H6 @@ -1395,20 +1351,19 @@ ) entry( - index = 529, - label = "C_rad/H/NonDeC;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (4.58e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=529, + label="C_rad/H/NonDeC;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(4.58e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: iC3H7 + C3H5 --> H2C=C=CH2 + C3H8 @@ -1425,20 +1380,19 @@ ) entry( - index = 530, - label = "C_rad/Cs3;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (2.89e+13, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=530, + label="C_rad/Cs3;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(2.89e13, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: tC4H9 + C3H5 --> H2C=C=CH2 + iC4H10 @@ -1455,20 +1409,19 @@ ) entry( - index = 531, - label = "Cd_pri_rad;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=531, + label="Cd_pri_rad;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(2.41e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C2H3 + C3H5 --> H2C=C=CH2 + C2H4 @@ -1482,20 +1435,19 @@ ) entry( - index = 532, - label = "O_pri_rad;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (6.03e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=532, + label="O_pri_rad;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(6.03e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """SSM estimate. Original value with 6 kcal barrier""", - longDesc = -""" + rank=5, + shortDesc="""SSM estimate. Original value with 6 kcal barrier""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: OH + C3H5 --> H2C=C=CH2 + H2O @@ -1509,19 +1461,18 @@ ) entry( - index = 533, - label = "O2b;O_Csrad", - kinetics = ArrheniusEP( - A = (5.7209e+12, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (298, 'K'), + index=533, + label="O2b;O_Csrad", + kinetics=ArrheniusEP( + A=(5.7209e12, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(298, "K"), ), - rank = 4, - shortDesc = """Atkinson et al [98] literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Atkinson et al [98] literature review.""", + longDesc=""" [98] Atkinson, R.; Baulch, D.L.; Cox, R.A.; Crowley, J.N.; Hampson, R.F., Jr.; Kerr, J.A.; Rossi, M.J.; Troe, J. "Summary of Evaluated Kinetic and Photochemical Data for Atmospheric Chemistry,", 2001. Literature review: CH3CHOH + O2 --> CH3CHO + HO2 @@ -1536,19 +1487,18 @@ ) entry( - index = 534, - label = "O2b;O_Csrad", - kinetics = ArrheniusEP( - A = (2.92067e+12, 'cm^3/(mol*s)', '*|/', 1.3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (298, 'K'), + index=534, + label="O2b;O_Csrad", + kinetics=ArrheniusEP( + A=(2.92067e12, "cm^3/(mol*s)", "*|/", 1.3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(298, "K"), ), - rank = 4, - shortDesc = """Atkinson et al [98] literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Atkinson et al [98] literature review.""", + longDesc=""" [98] Atkinson, R.; Baulch, D.L.; Cox, R.A.; Crowley, J.N.; Hampson, R.F., Jr.; Kerr, J.A.; Rossi, M.J.; Troe, J. "Summary of Evaluated Kinetic and Photochemical Data for Atmospheric Chemistry,", 2001. Literature review: CH2OH + O2 --> CH2O + HO2 @@ -1563,20 +1513,19 @@ ) entry( - index = 535, - label = "O2b;O_Csrad", - kinetics = ArrheniusEP( - A = (2.74001e+12, 'cm^3/(mol*s)', '*|/', 1.3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol', '+|-', 0.4), - Tmin = (200, 'K'), - Tmax = (300, 'K'), + index=535, + label="O2b;O_Csrad", + kinetics=ArrheniusEP( + A=(2.74001e12, "cm^3/(mol*s)", "*|/", 1.3), + n=0, + alpha=0, + E0=(0, "kcal/mol", "+|-", 0.4), + Tmin=(200, "K"), + Tmax=(300, "K"), ), - rank = 4, - shortDesc = """DeMore et al [183] literature review.""", - longDesc = -""" + rank=4, + shortDesc="""DeMore et al [183] literature review.""", + longDesc=""" [183] DeMore, W.B.; Sander, S.P.; Golden, D.M.; Hampson, R.F.; Kurylo, M.J.; Howard, C.J.; Ravishankara, A.R.; Kolb, C.E.; Molina, M.J.; JPL Publication 97-4 Literature review: CH2OH + O2 --> CH2O + HO2 @@ -1592,19 +1541,18 @@ ) entry( - index = 536, - label = "O_atom_triplet;O_Csrad", - kinetics = ArrheniusEP( - A = (9.04e+13, 'cm^3/(mol*s)', '+|-', 3.01e+13), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (298, 'K'), + index=536, + label="O_atom_triplet;O_Csrad", + kinetics=ArrheniusEP( + A=(9.04e13, "cm^3/(mol*s)", "+|-", 3.01e13), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(298, "K"), ), - rank = 3, - shortDesc = """Grotheer et al [189].""", - longDesc = -""" + rank=3, + shortDesc="""Grotheer et al [189].""", + longDesc=""" [189] Grotheer, H.; Riekert, G.; Walter, D.; Just, T. Symp. Int. Combust. Proc. 1989, 22, 963. Absolute value measured directly. Excitation: discharge, analysis: mass spectroscopy. Original uncertainty 3.0E+13 @@ -1621,20 +1569,19 @@ ) entry( - index = 537, - label = "CH2_triplet;O_Csrad", - kinetics = ArrheniusEP( - A = (1.21e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=537, + label="CH2_triplet;O_Csrad", + kinetics=ArrheniusEP( + A=(1.21e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: CH2 + CH2OH --> CH3 + CH2O @@ -1649,19 +1596,18 @@ ) entry( - index = 538, - label = "H_rad;O_Csrad", - kinetics = ArrheniusEP( - A = (2e+13, 'cm^3/(mol*s)', '+|-', 1e+13), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (295, 'K'), + index=538, + label="H_rad;O_Csrad", + kinetics=ArrheniusEP( + A=(2e13, "cm^3/(mol*s)", "+|-", 1e13), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(295, "K"), ), - rank = 4, - shortDesc = """Edelbuttel-Einhaus et al [190].""", - longDesc = -""" + rank=4, + shortDesc="""Edelbuttel-Einhaus et al [190].""", + longDesc=""" [190] Edelbuttel-Einhaus, J.; Hoyermann, K.; Rohde, G.; Seeba, J. Symp. Int. Combust. Proc. 1992, 22, 661. Data derived from fitting to a complex mechanism. Excitation: discharge, analysis: mass spectroscopy. Original uncertainty 1.0E+13 @@ -1681,20 +1627,19 @@ ) entry( - index = 539, - label = "H_rad;O_Csrad", - kinetics = ArrheniusEP( - A = (6.03e+12, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=539, + label="H_rad;O_Csrad", + kinetics=ArrheniusEP( + A=(6.03e12, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: H + CH2OH --> H2 + CH2O @@ -1710,19 +1655,18 @@ ) entry( - index = 540, - label = "C_methyl;O_Csrad", - kinetics = ArrheniusEP( - A = (8.49e+13, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (298, 'K'), + index=540, + label="C_methyl;O_Csrad", + kinetics=ArrheniusEP( + A=(8.49e13, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(298, "K"), ), - rank = 3, - shortDesc = """Pagsberg et al [191].""", - longDesc = -""" + rank=3, + shortDesc="""Pagsberg et al [191].""", + longDesc=""" [191] Pagsberg, P.; Munk, J.; Sillesen, A.; Anastasi, C. Chem. Phys. Lett. 1988, 146, 375. Absolute value measured directly. Excitatio: electron beam, analysis: Vis-UV absorption. @@ -1743,20 +1687,19 @@ ) entry( - index = 541, - label = "C_methyl;O_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+12, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=541, + label="C_methyl;O_Csrad", + kinetics=ArrheniusEP( + A=(2.41e12, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: CH3 + CH2OH --> CH4 + CH2O @@ -1772,20 +1715,19 @@ ) entry( - index = 542, - label = "C_rad/H2/Cs;O_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+12, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=542, + label="C_rad/H2/Cs;O_Csrad", + kinetics=ArrheniusEP( + A=(2.41e12, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: C2H5 + CH2OH --> C2H6 + CH2O @@ -1801,20 +1743,19 @@ ) entry( - index = 543, - label = "C_rad/H2/Cd;O_Csrad", - kinetics = ArrheniusEP( - A = (1.81e+13, 'cm^3/(mol*s)', '*|/', 2.5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=543, + label="C_rad/H2/Cd;O_Csrad", + kinetics=ArrheniusEP( + A=(1.81e13, "cm^3/(mol*s)", "*|/", 2.5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [93] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [93] Literature review.""", + longDesc=""" [93] Tsang, W.; Journal of Physical and Chemical Reference Data (1991), 20(2), 221-273. Literature review: C3H5 + CH2OH --> CH2O + C3H6 @@ -1830,20 +1771,19 @@ ) entry( - index = 544, - label = "C_rad/H2/O;O_Csrad", - kinetics = ArrheniusEP( - A = (4.82e+12, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=544, + label="C_rad/H2/O;O_Csrad", + kinetics=ArrheniusEP( + A=(4.82e12, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: CH2OH + CH2OH --> CH3OH + CH2O @@ -1866,20 +1806,19 @@ ) entry( - index = 545, - label = "C_rad/H/NonDeC;O_Csrad", - kinetics = ArrheniusEP( - A = (2.35e+12, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=545, + label="C_rad/H/NonDeC;O_Csrad", + kinetics=ArrheniusEP( + A=(2.35e12, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [91] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [91] Literature review.""", + longDesc=""" [91] Tsang, W.; Journal of Physical and Chemical Reference Data (1988), 17(2), 887-951. Literature review: CH2OH + i-C3H7 = C3H8 + CH2O @@ -1893,20 +1832,19 @@ ) entry( - index = 546, - label = "C_rad/Cs3;O_Csrad", - kinetics = ArrheniusEP( - A = (3.47e+14, 'cm^3/(mol*s)', '*|/', 3), - n = -0.75, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=546, + label="C_rad/Cs3;O_Csrad", + kinetics=ArrheniusEP( + A=(3.47e14, "cm^3/(mol*s)", "*|/", 3), + n=-0.75, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [92] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [92] Literature review.""", + longDesc=""" [92] Tsang, W.; Journal of Physical and Chemical Reference Data (1990), 19(1), 1-68. Literature review: t-C4H9 + CH2OH = CH2O + i-C4H10 @@ -1925,20 +1863,19 @@ ) entry( - index = 547, - label = "Cd_pri_rad;O_Csrad", - kinetics = ArrheniusEP( - A = (3.01e+13, 'cm^3/(mol*s)', '*|/', 2.5), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=547, + label="Cd_pri_rad;O_Csrad", + kinetics=ArrheniusEP( + A=(3.01e13, "cm^3/(mol*s)", "*|/", 2.5), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: CH2OH + C2H3 --> C2H4 + CH2O @@ -1954,20 +1891,19 @@ ) entry( - index = 549, - label = "CO_pri_rad;O_Csrad", - kinetics = ArrheniusEP( - A = (1.81e+14, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=549, + label="CO_pri_rad;O_Csrad", + kinetics=ArrheniusEP( + A=(1.81e14, "cm^3/(mol*s)", "*|/", 3), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: HCO + CH2OH --> CH2O + CH2O @@ -1983,20 +1919,19 @@ ) entry( - index = 550, - label = "O_pri_rad;O_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+13, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=550, + label="O_pri_rad;O_Csrad", + kinetics=ArrheniusEP( + A=(2.41e13, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: OH + CH2OH --> H2O + CH2O @@ -2012,20 +1947,19 @@ ) entry( - index = 551, - label = "O_rad/NonDeC;O_Csrad", - kinetics = ArrheniusEP( - A = (2.41e+13, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=551, + label="O_rad/NonDeC;O_Csrad", + kinetics=ArrheniusEP( + A=(2.41e13, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: CH3O + CH2OH --> CH3OH + CH2O @@ -2041,20 +1975,19 @@ ) entry( - index = 552, - label = "O_rad/NonDeO;O_Csrad", - kinetics = ArrheniusEP( - A = (1.21e+13, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=552, + label="O_rad/NonDeO;O_Csrad", + kinetics=ArrheniusEP( + A=(1.21e13, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: HO2 + CH2OH --> CH3OH + H2O2 @@ -2070,69 +2003,67 @@ ) entry( - index = 553, - label = "S_rad/NonDeC;Cmethyl_Srad", - kinetics = ArrheniusEP( - A = (9.79e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (298, 'K'), + index=553, + label="S_rad/NonDeC;Cmethyl_Srad", + kinetics=ArrheniusEP( + A=(9.79e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(298, "K"), ), - rank = 4, - shortDesc = """Tycholiz et al [A].""", + rank=4, + shortDesc="""Tycholiz et al [A].""", ) entry( - index = 554, - label = "C_rad/H/CsS;C/H2/Nd_Csrad", - kinetics = ArrheniusEP( - A = (3.37e-06, 'cm^3/(mol*s)'), - n = 4.35, - alpha = 0, - E0 = (1.14, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=554, + label="C_rad/H/CsS;C/H2/Nd_Csrad", + kinetics=ArrheniusEP( + A=(3.37e-06, "cm^3/(mol*s)"), + n=4.35, + alpha=0, + E0=(1.14, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 3, - shortDesc = """CAC calc CBS-QB3 1dhr""", + rank=3, + shortDesc="""CAC calc CBS-QB3 1dhr""", ) entry( - index = 555, - label = "O2b;O_Csrad", - kinetics = ArrheniusEP( - A = (3.7e+16, 'cm^3/(mol*s)'), - n = -1.63, - alpha = 0, - E0 = (3.4, 'kcal/mol'), - Tmin = (250, 'K'), - Tmax = (1000, 'K'), + index=555, + label="O2b;O_Csrad", + kinetics=ArrheniusEP( + A=(3.7e16, "cm^3/(mol*s)"), + n=-1.63, + alpha=0, + E0=(3.4, "kcal/mol"), + Tmin=(250, "K"), + Tmax=(1000, "K"), ), - rank = 4, - shortDesc = """S.S. Merchant estimate""", - longDesc = -""" + rank=4, + shortDesc="""S.S. Merchant estimate""", + longDesc=""" Estimate on basis of C3H7 + O2 rate from NIST kinetic datbase, Measurements, Theory, and Modeling of OH Formation in Ethyl + O2 and Propyl + O2 Reactions ref: DOI: 10.1021/jp0221946 """, ) entry( - index = 555, - label = "O2b;Cd_Cdrad", - kinetics = ArrheniusEP( - A = (1.3e+15, 'cm^3/(mol*s)', '*|/', 5), - n = -1.26, - alpha = 0, - E0 = (3.31, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2000, 'K'), + index=555, + label="O2b;Cd_Cdrad", + kinetics=ArrheniusEP( + A=(1.3e15, "cm^3/(mol*s)", "*|/", 5), + n=-1.26, + alpha=0, + E0=(3.31, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ), - rank = 5, - shortDesc = """S.S. Merchant estimate""", - longDesc = -""" + rank=5, + shortDesc="""S.S. Merchant estimate""", + longDesc=""" This rate rule is a estimate taken from NIST, ref: Aromatic and Polycyclic Aromatic Hydrocarbon Formation in a Laminar Premixed n-butane Flame Derived from fitting to a complex mechanism for C2H3 + O2 = C2H2 + HO2 @@ -2140,1186 +2071,1130 @@ ) entry( - index = 555, - label = "O2b;Cmethyl_Csrad/H/Cd", - kinetics = ArrheniusEP( - A = (7.23e+12, 'cm^3/(mol*s)', '*|/', 10), - n = 0, - alpha = 0, - E0 = (22, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2000, 'K'), + index=555, + label="O2b;Cmethyl_Csrad/H/Cd", + kinetics=ArrheniusEP( + A=(7.23e12, "cm^3/(mol*s)", "*|/", 10), + n=0, + alpha=0, + E0=(22, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ), - rank = 5, - shortDesc = """S.S. Merchant estimate""", - longDesc = -""" + rank=5, + shortDesc="""S.S. Merchant estimate""", + longDesc=""" SSM estimate based on Miyoshi rate rule for secondary carbon in dx.doi.org/10.1021/jp112152n, modified to account for allylic stability (+7 kcal) """, ) entry( - index = 556, - label = "O2b;XH_Rrad_birad", - kinetics = ArrheniusEP( - A = (5e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=556, + label="O2b;XH_Rrad_birad", + kinetics=ArrheniusEP( + A=(5e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 5, - shortDesc = """A.G. Vandeputte estimated value""", + rank=5, + shortDesc="""A.G. Vandeputte estimated value""", ) entry( - index = 556, - label = "Y_rad_birad_trirad_quadrad;Cdpri_Csrad", - kinetics = ArrheniusEP( - A = (1e+09, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=556, + label="Y_rad_birad_trirad_quadrad;Cdpri_Csrad", + kinetics=ArrheniusEP( + A=(1e09, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 557, - label = "O2b;C/H2/De_Csrad", - kinetics = ArrheniusEP( - A = (1e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=557, + label="O2b;C/H2/De_Csrad", + kinetics=ArrheniusEP( + A=(1e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 558, - label = "O2b;C/H2/Nd_Rrad", - kinetics = ArrheniusEP( - A = (1e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=558, + label="O2b;C/H2/Nd_Rrad", + kinetics=ArrheniusEP( + A=(1e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 559, - label = "O2b;C/H2/De_Rrad", - kinetics = ArrheniusEP( - A = (1e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=559, + label="O2b;C/H2/De_Rrad", + kinetics=ArrheniusEP( + A=(1e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 560, - label = "O2b;C/H/NdNd_Rrad", - kinetics = ArrheniusEP( - A = (1e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=560, + label="O2b;C/H/NdNd_Rrad", + kinetics=ArrheniusEP( + A=(1e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 561, - label = "O2b;C/H/NdDe_Rrad", - kinetics = ArrheniusEP( - A = (1e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=561, + label="O2b;C/H/NdDe_Rrad", + kinetics=ArrheniusEP( + A=(1e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 562, - label = "O2b;C/H/DeDe_Rrad", - kinetics = ArrheniusEP( - A = (1e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=562, + label="O2b;C/H/DeDe_Rrad", + kinetics=ArrheniusEP( + A=(1e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Estimated value, AG Vandeputte""", + rank=4, + shortDesc="""Estimated value, AG Vandeputte""", ) entry( - index = 600, - label = "NH2_rad;O_Orad", - kinetics = ArrheniusEP( - A = (920000, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=600, + label="NH2_rad;O_Orad", + kinetics=ArrheniusEP( + A=(920000, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2 + HO2 = NH3 + O2 (B&D #14d) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 601, - label = "O2b;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (1.2e+12, 'cm^3/(mol*s)'), - n = -0.34, - alpha = 0, - E0 = (0.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=601, + label="O2b;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(1.2e12, "cm^3/(mol*s)"), + n=-0.34, + alpha=0, + E0=(0.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + O2 = N2 + HO2 (B&D #28b1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 602, - label = "H_rad;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (2.4e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=602, + label="H_rad;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(2.4e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + H = N2 + H2 (B&D #28c) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 603, - label = "O_pri_rad;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (1.2e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=603, + label="O_pri_rad;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(1.2e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + OH = N2 + H2O (B&D #28d2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 604, - label = "O_atom_triplet;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (1.7e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=604, + label="O_atom_triplet;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(1.7e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + O = N2 + OH (B&D #28e2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 605, - label = "NH2_rad;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (920000, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=605, + label="NH2_rad;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(920000, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + NH2 = N2 + NH3 (B&D #28f) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 606, - label = "O_rad/NonDeO;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (14000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=606, + label="O_rad/NonDeO;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(14000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + HO2 = N2 + H2O2 (B&D #28g1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 607, - label = "N3d_rad/O;N3d/H_d_Nrad", - kinetics = ArrheniusEP( - A = (1.2e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=607, + label="N3d_rad/O;N3d/H_d_Nrad", + kinetics=ArrheniusEP( + A=(1.2e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NNH + NO = N2 + HNO (B&D #28h) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 608, - label = "H_rad;N3s/H2_s_Nbirad", - kinetics = ArrheniusEP( - A = (4.8e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=608, + label="H_rad;N3s/H2_s_Nbirad", + kinetics=ArrheniusEP( + A=(4.8e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2NN + H = NNH + H2 (B&D #30c2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 609, - label = "O_atom_triplet;N3s/H2_s_Nbirad", - kinetics = ArrheniusEP( - A = (3.3e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=609, + label="O_atom_triplet;N3s/H2_s_Nbirad", + kinetics=ArrheniusEP( + A=(3.3e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2NN + O = NNH + OH (B&D #30d2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 610, - label = "O_pri_rad;N3s/H2_s_Nbirad", - kinetics = ArrheniusEP( - A = (2.4e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=610, + label="O_pri_rad;N3s/H2_s_Nbirad", + kinetics=ArrheniusEP( + A=(2.4e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2NN + OH = NNH + H2O (B&D #30e2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 611, - label = "C_methyl;N3s/H2_s_Nbirad", - kinetics = ArrheniusEP( - A = (1.6e+06, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (0.13, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=611, + label="C_methyl;N3s/H2_s_Nbirad", + kinetics=ArrheniusEP( + A=(1.6e06, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(0.13, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2NN + CH3 = NNH + CH4 (B&D #30f3) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 612, - label = "NH2_rad;N3s/H2_s_Nbirad", - kinetics = ArrheniusEP( - A = (1.8e+06, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=612, + label="NH2_rad;N3s/H2_s_Nbirad", + kinetics=ArrheniusEP( + A=(1.8e06, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2NN + NH2 = NNH + NH3 (B&D #30g2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 613, - label = "O_rad/NonDeO;N3s/H2_s_Nbirad", - kinetics = ArrheniusEP( - A = (29000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=613, + label="O_rad/NonDeO;N3s/H2_s_Nbirad", + kinetics=ArrheniusEP( + A=(29000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2NN + HO2 = NNH + H2O2 (B&D #30h2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 614, - label = "H_rad;N3s/H2_s_Nrad", - kinetics = ArrheniusEP( - A = (2.4e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=614, + label="H_rad;N3s/H2_s_Nrad", + kinetics=ArrheniusEP( + A=(2.4e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + H = N2H2 + H2 (B&D #31b) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 615, - label = "O_atom_triplet;N3s/H2_s_Nrad", - kinetics = ArrheniusEP( - A = (1.7e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.65, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=615, + label="O_atom_triplet;N3s/H2_s_Nrad", + kinetics=ArrheniusEP( + A=(1.7e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.65, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + O = N2H2 + OH (B&D #31c3) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 616, - label = "O_pri_rad;N3s/H2_s_Nrad", - kinetics = ArrheniusEP( - A = (1.2e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=616, + label="O_pri_rad;N3s/H2_s_Nrad", + kinetics=ArrheniusEP( + A=(1.2e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + OH = N2H2 + H2O (B&D #31d1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 617, - label = "C_methyl;N3s/H2_s_Nrad", - kinetics = ArrheniusEP( - A = (820000, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (1.82, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=617, + label="C_methyl;N3s/H2_s_Nrad", + kinetics=ArrheniusEP( + A=(820000, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(1.82, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + CH3 = N2H2 + CH4 (B&D #31e1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 618, - label = "NH2_rad;N3s/H2_s_Nrad", - kinetics = ArrheniusEP( - A = (920000, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=618, + label="NH2_rad;N3s/H2_s_Nrad", + kinetics=ArrheniusEP( + A=(920000, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + NH2 = N2H2 + NH3 (B&D #31f1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 619, - label = "O_rad/NonDeO;N3s/H2_s_Nrad", - kinetics = ArrheniusEP( - A = (29000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=619, + label="O_rad/NonDeO;N3s/H2_s_Nrad", + kinetics=ArrheniusEP( + A=(29000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + HO2 = N2H2 + H2O2 (B&D #31g2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 620, - label = "N3s_rad/H/NonDeN;O_Orad", - kinetics = ArrheniusEP( - A = (920000, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (2.13, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=620, + label="N3s_rad/H/NonDeN;O_Orad", + kinetics=ArrheniusEP( + A=(920000, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(2.13, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: N2H3 + HO2 = N2H4 + O2 (B&D #31g3) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 621, - label = "H_rad;N3s/H2_s_Orad", - kinetics = ArrheniusEP( - A = (4.8e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (1.56, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=621, + label="H_rad;N3s/H2_s_Orad", + kinetics=ArrheniusEP( + A=(4.8e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(1.56, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + H = HNO + H2 (B&D #37c2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 622, - label = "O_atom_triplet;N3s/H2_s_Orad", - kinetics = ArrheniusEP( - A = (3.3e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (0.49, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=622, + label="O_atom_triplet;N3s/H2_s_Orad", + kinetics=ArrheniusEP( + A=(3.3e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(0.49, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + O = HNO + OH (B&D #37d) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 623, - label = "O_pri_rad;N3s/H2_s_Orad", - kinetics = ArrheniusEP( - A = (2.4e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=623, + label="O_pri_rad;N3s/H2_s_Orad", + kinetics=ArrheniusEP( + A=(2.4e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + OH = HNO + H2O (B&D #37e) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 624, - label = "C_methyl;N3s/H2_s_Orad", - kinetics = ArrheniusEP( - A = (1.6e+06, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (2.96, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=624, + label="C_methyl;N3s/H2_s_Orad", + kinetics=ArrheniusEP( + A=(1.6e06, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(2.96, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + CH3 = CH4 + HNO (B&D #37f2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 625, - label = "NH2_rad;N3s/H2_s_Orad", - kinetics = ArrheniusEP( - A = (1.8e+06, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=625, + label="NH2_rad;N3s/H2_s_Orad", + kinetics=ArrheniusEP( + A=(1.8e06, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + NH2 = HNO + NH3 (B&D #37g) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 626, - label = "O_rad/NonDeO;N3s/H2_s_Orad", - kinetics = ArrheniusEP( - A = (29000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=626, + label="O_rad/NonDeO;N3s/H2_s_Orad", + kinetics=ArrheniusEP( + A=(29000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + HO2 = HNO + H2O2 (B&D #37h1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 627, - label = "O_rad/NonDeN;O_Orad", - kinetics = ArrheniusEP( - A = (29000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=627, + label="O_rad/NonDeN;O_Orad", + kinetics=ArrheniusEP( + A=(29000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: NH2O + HO2 = NH2OH + O2 (B&D #37h2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 628, - label = "H_rad;O_Nrad", - kinetics = ArrheniusEP( - A = (4.8e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (0.38, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=628, + label="H_rad;O_Nrad", + kinetics=ArrheniusEP( + A=(4.8e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(0.38, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + H = HNO + H2 (B&D #38b2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 629, - label = "O_atom_triplet;O_Nrad", - kinetics = ArrheniusEP( - A = (3.3e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.36, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=629, + label="O_atom_triplet;O_Nrad", + kinetics=ArrheniusEP( + A=(3.3e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.36, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + O = HNO + OH (B&D #38c2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 630, - label = "O_pri_rad;O_Nrad", - kinetics = ArrheniusEP( - A = (2.4e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=630, + label="O_pri_rad;O_Nrad", + kinetics=ArrheniusEP( + A=(2.4e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + OH = HNO + H2O (B&D #38d) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 631, - label = "C_methyl;O_Nrad", - kinetics = ArrheniusEP( - A = (1.6e+06, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (2.1, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=631, + label="C_methyl;O_Nrad", + kinetics=ArrheniusEP( + A=(1.6e06, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(2.1, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + CH3 = CH4 + HNO (B&D #38e2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 632, - label = "NH2_rad;O_Nrad", - kinetics = ArrheniusEP( - A = (1.8e+06, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=632, + label="NH2_rad;O_Nrad", + kinetics=ArrheniusEP( + A=(1.8e06, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + NH2 = HNO + NH3 (B&D #38f3) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 633, - label = "O_rad/NonDeO;O_Nrad", - kinetics = ArrheniusEP( - A = (29400, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=633, + label="O_rad/NonDeO;O_Nrad", + kinetics=ArrheniusEP( + A=(29400, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + HO2 = HNO + H2O2 (B&D #38g2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 634, - label = "N3s_rad/H/NonDeO;O_Orad", - kinetics = ArrheniusEP( - A = (29000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.6, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=634, + label="N3s_rad/H/NonDeO;O_Orad", + kinetics=ArrheniusEP( + A=(29000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.6, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HNOH + HO2 = NH2OH + O2 (B&D #38g3) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 635, - label = "O_rad/NonDeO;Cds/H2_d_N3rad", - kinetics = ArrheniusEP( - A = (14000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.61, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=635, + label="O_rad/NonDeO;Cds/H2_d_N3rad", + kinetics=ArrheniusEP( + A=(14000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.61, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + HO2 = HCN + H2O2 (B&D #45b1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 636, - label = "N3d_rad/C;O_Orad", - kinetics = ArrheniusEP( - A = (14000, 'cm^3/(mol*s)'), - n = 2.69, - alpha = 0, - E0 = (-1.61, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=636, + label="N3d_rad/C;O_Orad", + kinetics=ArrheniusEP( + A=(14000, "cm^3/(mol*s)"), + n=2.69, + alpha=0, + E0=(-1.61, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + HO2 = H2CNH + O2 (B&D #45b2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 637, - label = "C_methyl;Cds/H2_d_N3rad", - kinetics = ArrheniusEP( - A = (810000, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (-1.11, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=637, + label="C_methyl;Cds/H2_d_N3rad", + kinetics=ArrheniusEP( + A=(810000, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(-1.11, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + CH3 = HCN + CH4 (B&D #45d) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 638, - label = "O_pri_rad;Cds/H2_d_N3rad", - kinetics = ArrheniusEP( - A = (1.2e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=638, + label="O_pri_rad;Cds/H2_d_N3rad", + kinetics=ArrheniusEP( + A=(1.2e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + OH = HCN + H2O (B&D #45e2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 639, - label = "H_rad;Cds/H2_d_N3rad", - kinetics = ArrheniusEP( - A = (2.4e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=639, + label="H_rad;Cds/H2_d_N3rad", + kinetics=ArrheniusEP( + A=(2.4e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + H = HCN + H2 (B&D #45g) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 640, - label = "NH2_rad;Cds/H2_d_N3rad", - kinetics = ArrheniusEP( - A = (920000, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=640, + label="NH2_rad;Cds/H2_d_N3rad", + kinetics=ArrheniusEP( + A=(920000, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + NH2 = HCN + NH3 (B&D #45h) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 641, - label = "O_atom_triplet;Cds/H2_d_N3rad", - kinetics = ArrheniusEP( - A = (1.7e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=641, + label="O_atom_triplet;Cds/H2_d_N3rad", + kinetics=ArrheniusEP( + A=(1.7e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: H2CN + O = HCN + OH (B&D #45i1) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 642, - label = "H_rad;N3d/H_d_Crad", - kinetics = ArrheniusEP( - A = (2.4e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=642, + label="H_rad;N3d/H_d_Crad", + kinetics=ArrheniusEP( + A=(2.4e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HCNH + H = HCN + H2 (B&D #46a2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 643, - label = "O_atom_triplet;N3d/H_d_Crad", - kinetics = ArrheniusEP( - A = (1.7e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=643, + label="O_atom_triplet;N3d/H_d_Crad", + kinetics=ArrheniusEP( + A=(1.7e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HCNH + O = HCN + OH (B&D #46b2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 644, - label = "O_pri_rad;N3d/H_d_Crad", - kinetics = ArrheniusEP( - A = (1.2e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=644, + label="O_pri_rad;N3d/H_d_Crad", + kinetics=ArrheniusEP( + A=(1.2e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HCNH + OH = HCN + H2O (B&D #46c) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 645, - label = "C_methyl;N3d/H_d_Crad", - kinetics = ArrheniusEP( - A = (820000, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (-1.11, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=645, + label="C_methyl;N3d/H_d_Crad", + kinetics=ArrheniusEP( + A=(820000, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(-1.11, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: HCNH + CH3 = HCN + CH4 (B&D #46d) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 646, - label = "H_rad;Cmethyl_Nrad", - kinetics = ArrheniusEP( - A = (7.2e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=646, + label="H_rad;Cmethyl_Nrad", + kinetics=ArrheniusEP( + A=(7.2e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH3NH + H = H2CNH + H2 (B&D #49b) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 647, - label = "O_atom_triplet;Cmethyl_Nrad", - kinetics = ArrheniusEP( - A = (5e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=647, + label="O_atom_triplet;Cmethyl_Nrad", + kinetics=ArrheniusEP( + A=(5e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH3NH + O = H2CNH + OH (B&D #49c) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 648, - label = "O_pri_rad;Cmethyl_Nrad", - kinetics = ArrheniusEP( - A = (3.6e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=648, + label="O_pri_rad;Cmethyl_Nrad", + kinetics=ArrheniusEP( + A=(3.6e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH3NH + OH = H2CNH + H2O (B&D #49d) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 649, - label = "C_methyl;Cmethyl_Nrad", - kinetics = ArrheniusEP( - A = (2.4e+06, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (-1.11, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=649, + label="C_methyl;Cmethyl_Nrad", + kinetics=ArrheniusEP( + A=(2.4e06, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(-1.11, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH3NH + CH3 = H2CNH + CH4 (B&D #49e) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 650, - label = "H_rad;N3s/H2_s_Cssrad", - kinetics = ArrheniusEP( - A = (4e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=650, + label="H_rad;N3s/H2_s_Cssrad", + kinetics=ArrheniusEP( + A=(4e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NH2 + H = H2CNH + H2 (B&D #50b) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 651, - label = "O_atom_triplet;N3s/H2_s_Cssrad", - kinetics = ArrheniusEP( - A = (3.3e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=651, + label="O_atom_triplet;N3s/H2_s_Cssrad", + kinetics=ArrheniusEP( + A=(3.3e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NH2 + O = H2CNH + OH (B&D #50c2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 652, - label = "O_pri_rad;N3s/H2_s_Cssrad", - kinetics = ArrheniusEP( - A = (2.4e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=652, + label="O_pri_rad;N3s/H2_s_Cssrad", + kinetics=ArrheniusEP( + A=(2.4e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NH2 + OH = H2CNH + H2O (B&D #50d2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 653, - label = "C_methyl;N3s/H2_s_Cssrad", - kinetics = ArrheniusEP( - A = (1.6e+06, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (-0.63, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=653, + label="C_methyl;N3s/H2_s_Cssrad", + kinetics=ArrheniusEP( + A=(1.6e06, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(-0.63, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NH2 + CH3 = H2CNH + CH4 (B&D #50e2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 654, - label = "H_rad;Cds/H2_d_N5dcrad/O", - kinetics = ArrheniusEP( - A = (4.8e+08, 'cm^3/(mol*s)'), - n = 1.5, - alpha = 0, - E0 = (-0.89, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=654, + label="H_rad;Cds/H2_d_N5dcrad/O", + kinetics=ArrheniusEP( + A=(4.8e08, "cm^3/(mol*s)"), + n=1.5, + alpha=0, + E0=(-0.89, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NO + H = HCNO + H2 The reacting structures are CH2=[N.+][O-] + R = [CH]#[N+][O-] + RH (D&B #57c2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", @@ -3327,83 +3202,78 @@ ) entry( - index = 655, - label = "O_pri_rad;Cds/H2_d_N5dcrad/O", - kinetics = ArrheniusEP( - A = (2.4e+06, 'cm^3/(mol*s)'), - n = 2, - alpha = 0, - E0 = (-1.19, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=655, + label="O_pri_rad;Cds/H2_d_N5dcrad/O", + kinetics=ArrheniusEP( + A=(2.4e06, "cm^3/(mol*s)"), + n=2, + alpha=0, + E0=(-1.19, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NO + OH = HCNO + H2O (D&B #57e2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 656, - label = "C_methyl;Cds/H2_d_N5dcrad/O", - kinetics = ArrheniusEP( - A = (1.6e+06, 'cm^3/(mol*s)'), - n = 1.87, - alpha = 0, - E0 = (-1.11, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=656, + label="C_methyl;Cds/H2_d_N5dcrad/O", + kinetics=ArrheniusEP( + A=(1.6e06, "cm^3/(mol*s)"), + n=1.87, + alpha=0, + E0=(-1.11, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NO + CH3 = HCNO + CH4 (D&B #57f2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 657, - label = "NH2_rad;Cds/H2_d_N5dcrad/O", - kinetics = ArrheniusEP( - A = (1.8e+06, 'cm^3/(mol*s)'), - n = 1.94, - alpha = 0, - E0 = (-1.15, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=657, + label="NH2_rad;Cds/H2_d_N5dcrad/O", + kinetics=ArrheniusEP( + A=(1.8e06, "cm^3/(mol*s)"), + n=1.94, + alpha=0, + E0=(-1.15, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 1, - shortDesc = """Added by Beat Buesser""", - longDesc = -""" + rank=1, + shortDesc="""Added by Beat Buesser""", + longDesc=""" Added by Beat Buesser, value for reaction: CH2NO + NH2 = HCNO + NH3 (D&B #57g2) in 'Gas-Phase Combustion Chemistry' (ISBN: 978-1-4612-7088-1), chapter 2, 'Combustion Chemistry of Nitrogen', Anthony M. Dean, Joseph W. Bozzelli", """, ) entry( - index = 658, - label = "C_rad/H/TwoDe;Cmethyl_Csrad/H/Cd", - kinetics = ArrheniusEP( - A = (5e+10, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=658, + label="C_rad/H/TwoDe;Cmethyl_Csrad/H/Cd", + kinetics=ArrheniusEP( + A=(5e10, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """Estimated by S.S. Merchant""", - longDesc = -""" + rank=5, + shortDesc="""Estimated by S.S. Merchant""", + longDesc=""" Estimating rate coefficient for cyclopentadienyl radical + butadieneyl radical NIST estimate for allyl + iso-butyl is 8E+11 at 1000 K, however in our system the butadieneyl radical is also resonance stabilized and it will be harder to break the bond to give butadiene + cyclopentadiene. Currently estimate it to be a factor of 5 slower. """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py index 770ccdb8fd..1a73f90e99 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Disproportionation/training/reactions.py @@ -8,21 +8,20 @@ group additivity values in this file. """ entry( - index = 0, - label = "C2H + CH3O <=> C2H2 + CH2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (3.61e+13, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - Ea = (0, 'kcal/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=0, + label="C2H + CH3O <=> C2H2 + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.61e13, "cm^3/(mol*s)", "*|/", 5), + n=0, + Ea=(0, "kcal/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang [90] Literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang [90] Literature review.""", + longDesc=""" [90] Tsang, W.; Journal of Physical and Chemical Reference Data (1987), 16(3), 471-508. Literature review: C2H + CH2OH --> C2H2 + CH2O @@ -36,4 +35,3 @@ MRH 30-Aug-2009 """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py index 7a74276340..2c21799cda 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/groups.py @@ -7,302 +7,286 @@ The reaction site *3 needs a lone pair in order to react. It cannot be 2S or 4S. """ -template(reactants=["X_H_or_Xrad_H_Xbirad_H_Xtrirad_H", "Y_rad_birad_trirad_quadrad"], products=["X_H_or_Xrad_H_Xbirad_H_Xtrirad_H", "Y_rad_birad_trirad_quadrad"], ownReverse=True) +template( + reactants=["X_H_or_Xrad_H_Xbirad_H_Xtrirad_H", "Y_rad_birad_trirad_quadrad"], + products=["X_H_or_Xrad_H_Xbirad_H_Xtrirad_H", "Y_rad_birad_trirad_quadrad"], + ownReverse=True, +) -recipe(actions=[ - ['BREAK_BOND', '*1', 1, '*2'], - ['FORM_BOND', '*2', 1, '*3'], - ['GAIN_RADICAL', '*1', '1'], - ['LOSE_RADICAL', '*3', '1'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*1", 1, "*2"], + ["FORM_BOND", "*2", 1, "*3"], + ["GAIN_RADICAL", "*1", "1"], + ["LOSE_RADICAL", "*3", "1"], + ] +) entry( - index = 0, - label = "X_H_or_Xrad_H_Xbirad_H_Xtrirad_H", - group = "OR{Xtrirad_H, Xbirad_H, Xrad_H, X_H}", - kinetics = None, + index=0, + label="X_H_or_Xrad_H_Xbirad_H_Xtrirad_H", + group="OR{Xtrirad_H, Xbirad_H, Xrad_H, X_H}", + kinetics=None, ) entry( - index = 1, - label = "Y_rad_birad_trirad_quadrad", - group = "OR{Y_rad, Y_1centerbirad, Y_1centertrirad, Y_1centerquadrad}", - kinetics = None, + index=1, + label="Y_rad_birad_trirad_quadrad", + group="OR{Y_rad, Y_1centerbirad, Y_1centertrirad, Y_1centerquadrad}", + kinetics=None, ) entry( - index = 2, - label = "Xtrirad_H", - group = "OR{C_quartet_H, C_doublet_H}", - kinetics = None, + index=2, + label="Xtrirad_H", + group="OR{C_quartet_H, C_doublet_H}", + kinetics=None, ) entry( - index = 3, - label = "C_quartet_H", - group = -""" + index=3, + label="C_quartet_H", + group=""" 1 *1 C u3 p0 {2,S} 2 *2 H u0 p0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "C_doublet_H", - group = -""" + index=4, + label="C_doublet_H", + group=""" 1 *1 C u1 p1 {2,S} 2 *2 H u0 p0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "Xbirad_H", - group = "OR{CH2_triplet_H, CH2_singlet_H, NH_triplet_H, NH_singlet_H}", - kinetics = None, + index=5, + label="Xbirad_H", + group="OR{CH2_triplet_H, CH2_singlet_H, NH_triplet_H, NH_singlet_H}", + kinetics=None, ) entry( - index = 6, - label = "CH2_triplet_H", - group = -""" + index=6, + label="CH2_triplet_H", + group=""" 1 *1 Cs u2 {2,S} {3,S} 2 *2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "CH2_singlet_H", - group = -""" + index=7, + label="CH2_singlet_H", + group=""" 1 *1 C u0 p1 {2,S} {3,S} 2 *2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "NH_triplet_H", - group = -""" + index=8, + label="NH_triplet_H", + group=""" 1 *1 N u2 p1 {2,S} 2 *2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "NH_singlet_H", - group = -""" + index=9, + label="NH_singlet_H", + group=""" 1 *1 N u0 p2 {2,S} 2 *2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "Xrad_H", - group = -""" + index=10, + label="Xrad_H", + group=""" 1 *1 R!H u1 {2,S} 2 *2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "X_H", - group = -""" + index=11, + label="X_H", + group=""" 1 *1 R u0 {2,S} 2 *2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "Y_1centerquadrad", - group = "OR{C_quintet, C_triplet}", - kinetics = None, + index=12, + label="Y_1centerquadrad", + group="OR{C_quintet, C_triplet}", + kinetics=None, ) entry( - index = 13, - label = "C_quintet", - group = -""" + index=13, + label="C_quintet", + group=""" 1 *3 C u4 p0 """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "C_triplet", - group = -""" + index=14, + label="C_triplet", + group=""" 1 *3 C u2 p1 """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "Y_1centertrirad", - group = "OR{N_atom_quartet, N_atom_doublet, CH_quartet, CH_doublet}", - kinetics = None, + index=15, + label="Y_1centertrirad", + group="OR{N_atom_quartet, N_atom_doublet, CH_quartet, CH_doublet}", + kinetics=None, ) entry( - index = 16, - label = "N_atom_quartet", - group = -""" + index=16, + label="N_atom_quartet", + group=""" 1 *3 N u3 p1 """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "N_atom_doublet", - group = -""" + index=17, + label="N_atom_doublet", + group=""" 1 *3 N u1 p2 """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "CH_quartet", - group = -""" + index=18, + label="CH_quartet", + group=""" 1 *3 C u3 p0 {2,S} 2 H u0 p0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "CH_doublet", - group = -""" + index=19, + label="CH_doublet", + group=""" 1 *3 C u1 p1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "Y_1centerbirad", - group = -""" + index=20, + label="Y_1centerbirad", + group=""" 1 *3 [Cs,Cd,CO,CS,O,S,N] u2 """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "Y_rad", - group = -""" + index=21, + label="Y_rad", + group=""" 1 *3 R u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 28, - label = "Cd_H", - group = -""" + index=28, + label="Cd_H", + group=""" 1 *1 C u0 {2,D} {3,S} {4,S} 2 [C,N] u0 {1,D} 3 *2 H u0 {1,S} 4 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 40, - label = "Cb_H", - group = -""" + index=40, + label="Cb_H", + group=""" 1 *1 Cb u0 {2,B} {3,B} {4,S} 2 [Cb,Cbf] u0 {1,B} 3 [Cb,Cbf] u0 {1,B} 4 *2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 60, - label = "Cs_H", - group = -""" + index=60, + label="Cs_H", + group=""" 1 *1 C u0 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 {1,S} 3 R u0 {1,S} 4 R u0 {1,S} 5 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 62, - label = "C/H4", - group = -""" + index=62, + label="C/H4", + group=""" 1 *1 C u0 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 63, - label = "C/H3/Cs", - group = -""" + index=63, + label="C/H3/Cs", + group=""" 1 *1 C u0 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 78, - label = "C/H3/Cd", - group = -""" + index=78, + label="C/H3/Cd", + group=""" 1 *1 C u0 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 {1,S} 3 H u0 {1,S} @@ -310,25 +294,24 @@ 5 Cd u0 {1,S} {6,D} 6 C u0 {5,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 65, - label = "C/H3/Cdot", - group = -""" + index=65, + label="C/H3/Cdot", + group=""" 1 *1 C u0 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 C u1 {1,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: X_H_or_Xrad_H_Xbirad_H_Xtrirad_H L2: Xtrirad_H L3: C_quartet_H @@ -362,58 +345,51 @@ ) forbidden( - label = "disprop1", - group = -""" + label="disprop1", + group=""" 1 *1 R u0 {2,S} {3,S} 2 C u1 {1,S} 3 *2 H u0 {1,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "disprop2", - group = -""" + label="disprop2", + group=""" 1 *1 R u0 {2,S} {3,S} 2 R u0 {1,S} {4,D} 3 *2 H u0 {1,S} 4 R u0 {2,D} {5,S} 5 R u1 {4,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "disprop3", - group = -""" + label="disprop3", + group=""" 1 *1 R u0 {2,S} {3,S} 2 R u0 {1,S} {4,T} 3 *2 H u0 {1,S} 4 R u0 {2,T} {5,S} 5 R u1 {4,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "disprop4", - group = -""" + label="disprop4", + group=""" 1 *1 R u0 {2,S} {3,S} 2 R u0 {1,S} {4,D} 3 *2 H u0 {1,S} @@ -422,17 +398,15 @@ 6 R u0 {5,D} {7,S} 7 R u1 {6,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "disprop5", - group = -""" + label="disprop5", + group=""" 1 *1 R u0 {2,S} {3,S} 2 R u0 {1,S} {4,D} 3 *2 H u0 {1,S} @@ -441,10 +415,8 @@ 6 R u0 {5,D} {7,S} 7 R u1 {6,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py index f079a62292..5032bd3254 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/H_Abstraction/rules.py @@ -22,20 +22,19 @@ .. [Tsang1991] W. Tsang; "Chemical kinetic database for combustion chemistry. Part V. Propene" J. Phys. Chem. Ref. Data 20 (1991) 221-273 """ entry( - index = 0, - label = "X_H_or_Xrad_H_Xbirad_H_Xtrirad_H;Y_rad_birad_trirad_quadrad", - kinetics = ArrheniusEP( - A = (100000, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (10, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=0, + label="X_H_or_Xrad_H_Xbirad_H_Xtrirad_H;Y_rad_birad_trirad_quadrad", + kinetics=ArrheniusEP( + A=(100000, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(10, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 0, - shortDesc = """Default""", - longDesc = -""" + rank=0, + shortDesc="""Default""", + longDesc=""" If a biradical CH2JJ can abstract from RCH4 to make RCH3J and CH3J then a Y_rad CH3J should be able to abstract from RCH3J which means X_H needs to include Xrad_H. I.e. you can abstract from a radical. To make this possible @@ -46,4 +45,3 @@ Do better kinetics for this exist? Do we in fact use the reverse kinetics anyway? """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py index ba2925ec9c..54a40a823e 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/groups.py @@ -9,62 +9,60 @@ template(reactants=["R4-Cs-Cb"], products=["R4-Cs-Cb"], ownReverse=True) -recipe(actions=[ - ['BREAK_BOND', '*2', 1, '*3'], - ['FORM_BOND', '*1', 1, '*2'], - ['LOSE_RADICAL', '*1', '1'], - ['GAIN_RADICAL', '*3', '1'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*2", 1, "*3"], + ["FORM_BOND", "*1", 1, "*2"], + ["LOSE_RADICAL", "*1", "1"], + ["GAIN_RADICAL", "*3", "1"], + ] +) boundaryAtoms = ["*1", "*2"] entry( - index = 1, - label = "R4-Cs-Cb", - group = -""" + index=1, + label="R4-Cs-Cb", + group=""" 1 *1 C u1 {2,S} 2 *3 C u0 {1,S} {3,S} 3 *2 Cb u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "rad", - group = -""" + index=2, + label="rad", + group=""" 1 *1 C u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "rad-Ct", - group = -""" + index=3, + label="rad-Ct", + group=""" 1 *1 C u1 {2,S} 2 Ct u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "rad-HH", - group = -""" + index=4, + label="rad-HH", + group=""" 1 *1 C u1 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: R4-Cs-Cb L1: rad @@ -75,9 +73,8 @@ ) forbidden( - label = "Benzofulvenyl_1", - group = -""" + label="Benzofulvenyl_1", + group=""" 1 *1 C u1 {4,S} 4 *3 Cs u0 {1,S} {5,S} {12,S} 5 Cd u0 {4,S} {6,D} @@ -89,18 +86,16 @@ 11 Cb u0 {10,B} {12,B} 12 *2 Cb u0 {4,S} {7,B} {11,B} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid a benzofulvenyl radical from isomerizing to 1H_naphthalene in one step using this family. No transition state was found for such a reaction. """, ) forbidden( - label = "Benzofulvenyl_2", - group = -""" + label="Benzofulvenyl_2", + group=""" 1 *1 C u1 {4,S} 4 *3 Cs u0 {1,S} {5,S} {12,S} 5 Cd u0 {4,S} {6,D} @@ -112,18 +107,16 @@ 11 Cb u0 {10,B} {12,B} 12 *2 Cb u0 {4,S} {7,B} {11,B} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid a benzofulvenyl radical from isomerizing to 1H_naphthalene in one step using this family. No transition state was found for such a reaction. """, ) forbidden( - label = "1H_naphthalene_1", - group = -""" + label="1H_naphthalene_1", + group=""" 1 *1 Cs u1 {3,S} {11,S} 3 Cd u0 {1,S} {4,D} 4 Cd u0 {3,D} {5,S} @@ -135,18 +128,16 @@ 10 *2 Cb u0 {5,B} {9,B} {11,S} 11 *3 C u0 {1,S} {10,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid a 1H_naphthalene radical from isomerizing to benzofulvenyl radical in one step using this family. No transition state was found for such a reaction. """, ) forbidden( - label = "1H_naphthalene_2", - group = -""" + label="1H_naphthalene_2", + group=""" 1 *1 Cs u1 {3,S} {11,S} 3 Cd u0 {1,S} {4,D} 4 Cd u0 {3,D} {5,S} @@ -158,10 +149,9 @@ 10 *2 Cb u0 {5,B} {9,B} {11,S} 11 *3 C u0 {1,S} {10,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid a 1H_naphthalene radical from isomerizing to benzofulvenyl radical in one step using this family. No transition state was found for such a reaction. """, -) \ No newline at end of file +) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py index d001758373..a2b110584f 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_R_Add_Exo_scission/training/reactions.py @@ -7,4 +7,3 @@ Put kinetic parameters for reactions to use as a training set for fitting group additivity values in this file. """ - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py index 3e49532128..b83194faec 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/groups.py @@ -7,24 +7,29 @@ """ -template(reactants=["1_3_unsaturated_pentane_backbone"], products=["1_3_unsaturated_pentane_backbone"], ownReverse=True) +template( + reactants=["1_3_unsaturated_pentane_backbone"], + products=["1_3_unsaturated_pentane_backbone"], + ownReverse=True, +) -recipe(actions=[ - ['BREAK_BOND', '*1', 1, '*6'], - ['FORM_BOND', '*2', 1, '*6'], - ['CHANGE_BOND', '*2', -1, '*3'], - ['CHANGE_BOND', '*4', -1, '*5'], - ['CHANGE_BOND', '*1', 1, '*5'], - ['CHANGE_BOND', '*4', 1, '*3'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*1", 1, "*6"], + ["FORM_BOND", "*2", 1, "*6"], + ["CHANGE_BOND", "*2", -1, "*3"], + ["CHANGE_BOND", "*4", -1, "*5"], + ["CHANGE_BOND", "*1", 1, "*5"], + ["CHANGE_BOND", "*4", 1, "*3"], + ] +) boundaryAtoms = ["*1", "*2"] entry( - index = 1, - label = "1_3_unsaturated_pentane_backbone", - group= - """ + index=1, + label="1_3_unsaturated_pentane_backbone", + group=""" 1 *1 C u0 {5,[S,D]} {6,S} 2 *2 C u0 {3,[D,T]} 3 *3 C u0 {2,[D,T]} {4,[S,D]} @@ -32,45 +37,40 @@ 5 *5 C u0 {1,[S,D]} {4,[D,T]} 6 *6 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "CH_end", - group = -""" + index=2, + label="CH_end", + group=""" 1 *1 C u0 {2,S} 2 *6 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 3, - label = "unsaturated_end", - group = -""" + index=3, + label="unsaturated_end", + group=""" 1 *2 C u0 """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 4, - label = "cyclopentadiene", - group = -""" + index=4, + label="cyclopentadiene", + group=""" 1 *1 C u0 {2,S} {5,S} {6,S} 2 *2 C u0 {1,S} {3,D} 3 *3 Cd u0 {2,D} {4,S} @@ -78,14 +78,13 @@ 5 *5 Cd u0 {1,S} {4,D} 6 *6 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "1_3_4_pentatriene", - group = -""" + index=5, + label="1_3_4_pentatriene", + group=""" 1 *1 C u0 {5,D} {6,S} 2 *2 C u0 {3,D} 3 *3 Cd u0 {2,D} {4,S} {7,S} @@ -95,14 +94,13 @@ 7 R u0 {3,S} 8 R u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "1_3_pentadiene", - group = -""" + index=6, + label="1_3_pentadiene", + group=""" 1 *1 C u0 {5,S} {6,S} 2 *2 C u0 {3,D} 3 *3 Cd u0 {2,D} {4,S} {7,S} @@ -113,14 +111,13 @@ 8 R u0 {4,S} 9 R u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "1_pentyn_3_ene", - group = -""" + index=7, + label="1_pentyn_3_ene", + group=""" 1 *1 C u0 {5,S} {6,S} 2 *2 C u0 {3,T} 3 *3 Ct u0 {2,T} {4,S} @@ -130,216 +127,194 @@ 8 R u0 {4,S} 9 R u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "CdH2_1", - group = -""" + index=8, + label="CdH2_1", + group=""" 1 *1 Cd u0 {2,S} {3,S} 2 *6 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 9, - label = "CdHC_1", - group = -""" + index=9, + label="CdHC_1", + group=""" 1 *1 Cd u0 {2,S} {3,S} 2 *6 H u0 {1,S} 3 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 10, - label = "CH3_1", - group = -""" + index=10, + label="CH3_1", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} 2 *6 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 11, - label = "CH2(C)_1", - group = -""" + index=11, + label="CH2(C)_1", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} 2 *6 H u0 {1,S} 3 H u0 {1,S} 4 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 12, - label = "CH(C)C_1", - group = -""" + index=12, + label="CH(C)C_1", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} 2 *6 H u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 13, - label = "CH=C_1", - group = -""" + index=13, + label="CH=C_1", + group=""" 1 *1 Cd u0 {2,S} {3,D} 2 *6 H u0 {1,S} 3 C u0 {1,D} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 14, - label = "CdH2_2", - group = -""" + index=14, + label="CdH2_2", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "CdHC_2", - group = -""" + index=15, + label="CdHC_2", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 H u0 {1,S} 3 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "Cd(C)C_2", - group = -""" + index=16, + label="Cd(C)C_2", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 C u0 {1,S} 3 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "CddC_2", - group = -""" + index=17, + label="CddC_2", + group=""" 1 *2 Cdd u0 {2,D} 2 C u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "CtH_2", - group = -""" + index=18, + label="CtH_2", + group=""" 1 *2 Ct u0 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "CtC_2", - group = -""" + index=19, + label="CtC_2", + group=""" 1 *2 Ct u0 {2,S} 2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "CdCJ_2", - group = -""" + index=20, + label="CdCJ_2", + group=""" 1 *2 Cd u0 {2,S} 2 C u1 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "CH(CJ)_1", - group = -""" + index=21, + label="CH(CJ)_1", + group=""" 1 *1 Cs u0 {2,S} {3,S} 2 *6 H u0 {1,S} 3 C u1 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 22, - label = "indene", - group = -""" + index=22, + label="indene", + group=""" 1 *1 C u0 {2,S} {5,S} {6,S} {7,S} 2 *2 C u0 {1,S} {3,D} 3 *3 Cd u0 {2,D} {4,S} @@ -351,14 +326,13 @@ 9 Cd u0 {8,S} {10,D} 10 Cd u0 {9,D} {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "cyclopentadiene_cyc6", - group = -""" + index=23, + label="cyclopentadiene_cyc6", + group=""" 1 *1 C u0 {2,S} {5,S} {6,S} 2 *2 C u0 {1,S} {3,D} 3 *3 Cd u0 {2,D} {4,S} {7,S} @@ -370,11 +344,11 @@ 9 Cd u0 {8,S} {10,D} 10 Cd u0 {9,D} {4,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: 1_3_unsaturated_pentane_backbone L2: cyclopentadiene L3: indene @@ -402,9 +376,8 @@ ) forbidden( - label = "fulvene_H_shift_ring_edge_to_tail", - group = -""" + label="fulvene_H_shift_ring_edge_to_tail", + group=""" 1 *2 C u0 {2,D} 2 *3 C u0 {1,D} {3,S} {4,S} 3 C ux {2,S} {5,S} @@ -413,17 +386,15 @@ 6 *5 C u0 {4,D} {5,S} 7 *6 H u0 {5,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Prevents an H on the far edge of a fulvene-like ring molecule from shifting to the tail """, ) forbidden( - label = "fulvene_H_shift_tail_to_ring_edge", - group = -""" + label="fulvene_H_shift_tail_to_ring_edge", + group=""" 1 *1 C u0 {2,S} {7,S} 2 *5 C u0 {1,S} {3,S} {4,D} 3 C ux {2,S} {5,S} @@ -432,17 +403,15 @@ 6 *3 C u0 {4,S} {5,D} 7 *6 H u0 {1,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Prevents an H on the tail of a fulvene-like molecule from shifting to the far edge of the ring """, ) forbidden( - label = "H_shift_to_single_resonant_radical_CPD", - group = -""" + label="H_shift_to_single_resonant_radical_CPD", + group=""" 1 *1 C u0 {5,[S,D]} {6,S} {2,S} 2 *2 C u0 {3,[D,T]} {1,S} 3 *3 C u0 {2,[D,T]} {4,[S,D]} {7,S} @@ -451,18 +420,16 @@ 6 *6 H u0 {1,S} 7 R!H u1 {3,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid an H from shifting to a resonant radical site on a CPD ring, in order to avoid redundancy with Intra_H_migration family, the radical atom can be anything element """, ) forbidden( - label = "H_shift_to_double_resonant_radical_CPD", - group = -""" + label="H_shift_to_double_resonant_radical_CPD", + group=""" 1 *1 C u0 {5,[S,D]} {6,S} {2,S} 2 *2 C u0 {3,[D,T]} {1,S} 3 *3 C u0 {2,[D,T]} {4,[S,D]} @@ -471,9 +438,8 @@ 6 *6 H u0 {1,S} 7 R!H u1 {5,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid an H from shifting to a doubly resonant radical site on a CPD ring, in order to avoid redundancy with Intra_H_migration family, the radical atom can be anything element """, @@ -481,9 +447,8 @@ forbidden( - label = "H_shift_to_single_resonant_radical_linear", - group = -""" + label="H_shift_to_single_resonant_radical_linear", + group=""" 1 *1 C u0 {5,[S,D]} {6,S} 2 *2 C u0 {3,[D,T]} 3 *3 C u0 {2,[D,T]} {4,[S,D]} {7,S} @@ -492,18 +457,16 @@ 6 *6 H u0 {1,S} 7 R!H u1 {3,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid an H from shifting to a resonant radical site on a linear 1,3-unsaturated hexane chain, in order to avoid redundancy with Intra_H_migration family, the radical atom can be anything element """, ) forbidden( - label = "H_shift_to_double_resonant_radical_linear", - group = -""" + label="H_shift_to_double_resonant_radical_linear", + group=""" 1 *1 C u0 {5,[S,D]} {6,S} 2 *2 C u0 {3,[D,T]} 3 *3 C u0 {2,[D,T]} {4,[S,D]} @@ -512,18 +475,16 @@ 6 *6 H u0 {1,S} 7 R!H u1 {5,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Forbid an H from shifting to a doubly resonant radical site on a linear 1,3-unsaturated hexane chain, in order to avoid redundancy with Intra_H_migration family, the radical atom can be anything element """, ) forbidden( - label = "para_to_benzylic_shift", - group = -""" + label="para_to_benzylic_shift", + group=""" 1 *1 C u0 {2,S} {8,S} 2 *5 C u0 {1,S} {3,D} {7,[S,D]} 3 *4 C u0 {2,D} {4,S} @@ -533,17 +494,15 @@ 7 R!H ux {2,[S,D]} {6,[D,T]} 8 *6 H u0 {1,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Prevents an H on para position of a benzene ring from shifting to the benzylic position of a tail """, ) forbidden( - label = "benzylic_to_para_shift", - group = -""" + label="benzylic_to_para_shift", + group=""" 1 *2 C u0 {2,D} 2 *3 C u0 {1,D} {3,S} {7,[S,D]} 3 *4 C u0 {2,S} {4,D} @@ -553,9 +512,8 @@ 7 R!H ux {2,[S,D]} {6,[D,T]} 8 *6 H u0 {5,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Prevents an H on the benzylic position of a tail from shifting to the para position of the benzene ring """, ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py index ac74cbab39..127fbcb156 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Intra_ene_reaction/rules.py @@ -7,18 +7,17 @@ """ entry( - index = 1, - label = "cyclopentadiene;CH_end;unsaturated_end", - kinetics = ArrheniusEP( - A = (5.06e+07, 's^-1'), - n = 1.74, - alpha = 0, - E0 = (24.3, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=1, + label="cyclopentadiene;CH_end;unsaturated_end", + kinetics=ArrheniusEP( + A=(5.06e07, "s^-1"), + n=1.74, + alpha=0, + E0=(24.3, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 4, - shortDesc = """AG Vandeputte, CBS-QB3""", - longDesc = """Rate taken from H shift in ethyleneCPD""", + rank=4, + shortDesc="""AG Vandeputte, CBS-QB3""", + longDesc="""Rate taken from H shift in ethyleneCPD""", ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py index 666ba1e072..9fe1a4daa0 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/groups.py @@ -11,310 +11,286 @@ reverse = "COM_Elimination_From_Carbonyl" -recipe(actions=[ - ['LOSE_PAIR', '*1', '1'], - ['CHANGE_BOND', '*1', -1, '*3'], - ['GAIN_PAIR', '*3', '1'], - ['GAIN_RADICAL', '*1', '1'], - ['FORM_BOND', '*1', 1, '*2'], - ['LOSE_RADICAL', '*2', '1'], -]) - -entry( - index = 1, - label = "COm", - group = -""" +recipe( + actions=[ + ["LOSE_PAIR", "*1", "1"], + ["CHANGE_BOND", "*1", -1, "*3"], + ["GAIN_PAIR", "*3", "1"], + ["GAIN_RADICAL", "*1", "1"], + ["FORM_BOND", "*1", 1, "*2"], + ["LOSE_RADICAL", "*2", "1"], + ] +) + +entry( + index=1, + label="COm", + group=""" 1 *1 C2tc u0 p1 c-1 {2,T} 2 *3 O4tc u0 p1 c+1 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "Y_rad", - group = -""" + index=2, + label="Y_rad", + group=""" 1 *2 R u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "H_rad", - group = -""" + index=3, + label="H_rad", + group=""" 1 *2 H u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "O_rad", - group = -""" + index=4, + label="O_rad", + group=""" 1 *2 O u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "O_pri_rad", - group = -""" + index=5, + label="O_pri_rad", + group=""" 1 *2 O u1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "O_sec_rad", - group = -""" + index=6, + label="O_sec_rad", + group=""" 1 *2 O u1 {2,S} 2 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "O_rad/NonDe", - group = -""" + index=7, + label="O_rad/NonDe", + group=""" 1 *2 O u1 {2,S} 2 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "O_rad/OneDe", - group = -""" + index=8, + label="O_rad/OneDe", + group=""" 1 *2 O u1 {2,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "Ct_rad", - group = -""" + index=9, + label="Ct_rad", + group=""" 1 *2 C u1 {2,T} 2 C u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "CO_rad", - group = -""" + index=10, + label="CO_rad", + group=""" 1 *2 C u1 {2,D} 2 O u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "CO_pri_rad", - group = -""" + index=11, + label="CO_pri_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "CO_sec_rad", - group = -""" + index=12, + label="CO_sec_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 O u0 {1,D} 3 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 70, - label = "CS_rad", - group = -""" + index=70, + label="CS_rad", + group=""" 1 *2 C u1 {2,D} 2 S u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 71, - label = "CS_pri_rad", - group = -""" + index=71, + label="CS_pri_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 S u0 {1,D} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 72, - label = "CS_sec_rad", - group = -""" + index=72, + label="CS_sec_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 S u0 {1,D} 3 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "Cd_rad", - group = -""" + index=13, + label="Cd_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "Cd_pri_rad", - group = -""" + index=14, + label="Cd_pri_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "Cd_sec_rad", - group = -""" + index=15, + label="Cd_sec_rad", + group=""" 1 *2 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "Cd_rad/NonDe", - group = -""" + index=16, + label="Cd_rad/NonDe", + group=""" 1 *2 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "Cd_rad/OneDe", - group = -""" + index=17, + label="Cd_rad/OneDe", + group=""" 1 *2 C u1 {2,D} {3,S} 2 C u0 {1,D} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "Cb_rad", - group = -""" + index=18, + label="Cb_rad", + group=""" 1 *2 Cb u1 {2,B} {3,B} 2 [Cb,Cbf] u0 {1,B} 3 [Cb,Cbf] u0 {1,B} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "Cs_rad", - group = -""" + index=19, + label="Cs_rad", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 R u0 {1,S} 3 R u0 {1,S} 4 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "C_methyl", - group = -""" + index=20, + label="C_methyl", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "C_pri_rad", - group = -""" + index=21, + label="C_pri_rad", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "C_rad/H2/Cs", - group = -""" + index=22, + label="C_rad/H2/Cs", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "CH2CH3", - group = -""" + index=23, + label="CH2CH3", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} @@ -323,14 +299,13 @@ 6 H u0 {4,S} 7 H u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 24, - label = "CH2CH2CH3", - group = -""" + index=24, + label="CH2CH2CH3", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} @@ -342,131 +317,121 @@ 9 H u0 {7,S} 10 H u0 {7,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 25, - label = "C_rad/H2/Cd", - group = -""" + index=25, + label="C_rad/H2/Cd", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Cd u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 26, - label = "C_rad/H2/Ct", - group = -""" + index=26, + label="C_rad/H2/Ct", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Ct u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 27, - label = "C_rad/H2/Cb", - group = -""" + index=27, + label="C_rad/H2/Cb", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 Cb u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 28, - label = "C_rad/H2/CO", - group = -""" + index=28, + label="C_rad/H2/CO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 CO u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 29, - label = "C_rad/H2/O", - group = -""" + index=29, + label="C_rad/H2/O", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 72, - label = "C_rad/H2/CS", - group = -""" + index=72, + label="C_rad/H2/CS", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 CS u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 73, - label = "C_rad/H2/S", - group = -""" + index=73, + label="C_rad/H2/S", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 S u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 30, - label = "C_sec_rad", - group = -""" + index=30, + label="C_sec_rad", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 R!H u0 {1,S} 4 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 31, - label = "C_rad/H/NonDeC", - group = -""" + index=31, + label="C_rad/H/NonDeC", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 32, - label = "CH(CH3)2", - group = -""" + index=32, + label="CH(CH3)2", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -478,364 +443,336 @@ 9 H u0 {4,S} 10 H u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 33, - label = "C_rad/H/NonDeO", - group = -""" + index=33, + label="C_rad/H/NonDeO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 O u0 {1,S} 4 [Cs,O] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 34, - label = "C_rad/H/CsO", - group = -""" + index=34, + label="C_rad/H/CsO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 Cs u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 35, - label = "C_rad/H/O2", - group = -""" + index=35, + label="C_rad/H/O2", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 O u0 {1,S} 4 O u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 74, - label = "C_rad/H/NonDeS", - group = -""" + index=74, + label="C_rad/H/NonDeS", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [S,C] u0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 75, - label = "C_rad/H/CsS", - group = -""" + index=75, + label="C_rad/H/CsS", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 76, - label = "C_rad/H/S2", - group = -""" + index=76, + label="C_rad/H/S2", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 S u0 {1,S} 4 [O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 36, - label = "C_rad/H/OneDe", - group = -""" + index=36, + label="C_rad/H/OneDe", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 37, - label = "C_rad/H/OneDeC", - group = -""" + index=37, + label="C_rad/H/OneDeC", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 Cs u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 38, - label = "C_rad/H/OneDeO", - group = -""" + index=38, + label="C_rad/H/OneDeO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 O u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 77, - label = "C_rad/H/OneDeS", - group = -""" + index=77, + label="C_rad/H/OneDeS", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 S2s u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 39, - label = "C_rad/H/TwoDe", - group = -""" + index=39, + label="C_rad/H/TwoDe", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 40, - label = "C_ter_rad", - group = -""" + index=40, + label="C_ter_rad", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 R!H u0 {1,S} 3 R!H u0 {1,S} 4 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 41, - label = "C_rad/NonDeC", - group = -""" + index=41, + label="C_rad/NonDeC", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cs,O,S2s] u0 px c0 {1,S} 3 [Cs,O,S2s] u0 px c0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 42, - label = "C_rad/Cs3", - group = -""" + index=42, + label="C_rad/Cs3", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 Cs u0 px c0 {1,S} 3 Cs u0 px c0 {1,S} 4 Cs u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 43, - label = "C_rad/NDMustO", - group = -""" + index=43, + label="C_rad/NDMustO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 O u0 px c0 {1,S} 3 [Cs,O] u0 px c0 {1,S} 4 [Cs,O] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 78, - label = "C_rad/NDMustS", - group = -""" + index=78, + label="C_rad/NDMustS", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 S2s u0 px c0 {1,S} 3 [Cs,O,S2s] u0 px c0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 44, - label = "C_rad/OneDe", - group = -""" + index=44, + label="C_rad/OneDe", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 [Cs,O,S2s] u0 px c0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 45, - label = "C_rad/OD_Cs2", - group = -""" + index=45, + label="C_rad/OD_Cs2", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 Cs u0 px c0 {1,S} 4 Cs u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 46, - label = "C_rad/ODMustO", - group = -""" + index=46, + label="C_rad/ODMustO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 O u0 px c0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 47, - label = "C_rad/TwoDe", - group = -""" + index=47, + label="C_rad/TwoDe", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 48, - label = "C_rad/TD_Cs", - group = -""" + index=48, + label="C_rad/TD_Cs", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 Cs u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 49, - label = "C_rad/TDMustO", - group = -""" + index=49, + label="C_rad/TDMustO", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 O u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 50, - label = "C_rad/ThreeDe", - group = -""" + index=50, + label="C_rad/ThreeDe", + group=""" 1 *2 C u1 {2,S} {3,S} {4,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} 3 [Cd,Ct,Cb,CO,CS] u0 {1,S} 4 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 51, - label = "S_rad", - group = -""" + index=51, + label="S_rad", + group=""" 1 *2 S u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 52, - label = "S_pri_rad", - group = -""" + index=52, + label="S_pri_rad", + group=""" 1 *2 S u1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 53, - label = "S_sec_rad", - group = -""" + index=53, + label="S_sec_rad", + group=""" 1 *2 S u1 {2,S} 2 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 54, - label = "S_rad/NonDe", - group = -""" + index=54, + label="S_rad/NonDe", + group=""" 1 *2 S u1 {2,S} 2 [Cs,O,S2s] u0 px c0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 55, - label = "S_rad/OneDe", - group = -""" + index=55, + label="S_rad/OneDe", + group=""" 1 *2 S u1 {2,S} 2 [Cd,Ct,Cb,CO,CS] u0 {1,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: COm L1: Y_rad L2: H_rad @@ -905,16 +842,13 @@ ) forbidden( - label = "O2_birad", - group = -""" + label="O2_birad", + group=""" 1 *2 O u1 p2 {2,S} 2 O u1 p2 {1,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py index e6edcd0b76..e9b9b7dc3e 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_COm/rules.py @@ -11,34 +11,33 @@ temperatures used were from 600 K to 2000 K (in 200 K increments). """ entry( - index = 416, - label = "COm;Y_rad", - kinetics = ArrheniusEP( - A = (1e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (5, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=416, + label="COm;Y_rad", + kinetics=ArrheniusEP( + A=(1e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(5, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 0, + rank=0, ) entry( - index = 417, - label = "COm;H_rad", - kinetics = ArrheniusEP( - A = (1.18e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (2.72, 'kcal/mol'), - Tmin = (345, 'K'), - Tmax = (449, 'K'), + index=417, + label="COm;H_rad", + kinetics=ArrheniusEP( + A=(1.18e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(2.72, "kcal/mol"), + Tmin=(345, "K"), + Tmax=(449, "K"), ), - rank = 4, - shortDesc = """Arai et al [102].""", - longDesc = -""" + rank=4, + shortDesc="""Arai et al [102].""", + longDesc=""" [102] Arai, H.; Nagai, S.; Hatada, M.; Radiat. Phys. Chem. 1981, 17, 211. CO + H --> HCO. Data estimated @@ -93,20 +92,19 @@ ) entry( - index = 418, - label = "COm;H_rad", - kinetics = ArrheniusEP( - A = (1.87e+11, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (1.53, 'kcal/mol'), - Tmin = (305, 'K'), - Tmax = (375, 'K'), + index=418, + label="COm;H_rad", + kinetics=ArrheniusEP( + A=(1.87e11, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(1.53, "kcal/mol"), + Tmin=(305, "K"), + Tmax=(375, "K"), ), - rank = 3, - shortDesc = """Gordon et al [103].""", - longDesc = -""" + rank=3, + shortDesc="""Gordon et al [103].""", + longDesc=""" [103] Gordon, E.B.; Ivanov, B.I; Perminov, A.P; Balalaev, V.E. Chem. Phys. 1978, 35, 79. CO + H --> HCO. @@ -131,20 +129,19 @@ ) entry( - index = 419, - label = "COm;C_methyl", - kinetics = ArrheniusEP( - A = (5.06e+11, 'cm^3/(mol*s)', '*|/', 3.16), - n = 0, - alpha = 0, - E0 = (6.88, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (500, 'K'), + index=419, + label="COm;C_methyl", + kinetics=ArrheniusEP( + A=(5.06e11, "cm^3/(mol*s)", "*|/", 3.16), + n=0, + alpha=0, + E0=(6.88, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(500, "K"), ), - rank = 4, - shortDesc = """Baulch et al. [94]""", - longDesc = -""" + rank=4, + shortDesc="""Baulch et al. [94]""", + longDesc=""" [94] Baulch, D.L.; Cobos, C.J.; Cox, R.A.; Frank, P.; Hayman, G,; Just, T.; Kerr, J.A.; Murrells, T.; Pilling, M.J.; Troe, J.; Walker, R.W.; Warnatz, J. J. Phys. Chem. Ref. Data 1994, 23, 847. @@ -167,20 +164,19 @@ ) entry( - index = 420, - label = "COm;C_rad/H2/Cs", - kinetics = ArrheniusEP( - A = (1.51e+11, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - alpha = 0, - E0 = (4.81, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=420, + label="COm;C_rad/H2/Cs", + kinetics=ArrheniusEP( + A=(1.51e11, "cm^3/(mol*s)", "*|/", 2), + n=0, + alpha=0, + E0=(4.81, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang et al [89] literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang et al [89] literature review.""", + longDesc=""" [89] Tsang, W.; Hampson, R.F. J.Phys. Chem. Ref. Data 1986, 15, 1087. CO + C2H5 --> C2H5CO. @@ -201,20 +197,19 @@ ) entry( - index = 421, - label = "COm;Cd_pri_rad", - kinetics = ArrheniusEP( - A = (1.51e+11, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - alpha = 0, - E0 = (4.81, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), + index=421, + label="COm;Cd_pri_rad", + kinetics=ArrheniusEP( + A=(1.51e11, "cm^3/(mol*s)", "*|/", 5), + n=0, + alpha=0, + E0=(4.81, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2500, "K"), ), - rank = 4, - shortDesc = """Tsang et al [89] literature review.""", - longDesc = -""" + rank=4, + shortDesc="""Tsang et al [89] literature review.""", + longDesc=""" [89] Tsang, W.; Hampson, R.F. J.Phys. Chem. Ref. Data 1986, 15, 1087. CO + C2H3 --> CH2=CHCO. @@ -237,20 +232,19 @@ ) entry( - index = 422, - label = "COm;Cb_rad", - kinetics = ArrheniusEP( - A = (1.48e+12, 'cm^3/(mol*s)', '*|/', 1.5), - n = 0, - alpha = 0, - E0 = (3.33, 'kcal/mol', '+|-', 0.3), - Tmin = (295, 'K'), - Tmax = (500, 'K'), + index=422, + label="COm;Cb_rad", + kinetics=ArrheniusEP( + A=(1.48e12, "cm^3/(mol*s)", "*|/", 1.5), + n=0, + alpha=0, + E0=(3.33, "kcal/mol", "+|-", 0.3), + Tmin=(295, "K"), + Tmax=(500, "K"), ), - rank = 3, - shortDesc = """Nam et al [104].""", - longDesc = -""" + rank=3, + shortDesc="""Nam et al [104].""", + longDesc=""" [104] Nam, G.-J.; Xia, W.; Park, J.; Lin, M. Phys. Chem. A 2000, 104, 1233. Phenyl + CO --> Benzoyl. Original deltaA = 2.8E+11 @@ -319,20 +313,19 @@ ) entry( - index = 423, - label = "COm;O_rad/NonDe", - kinetics = ArrheniusEP( - A = (3.41e+07, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (3, 'kcal/mol'), - Tmin = (250, 'K'), - Tmax = (2500, 'K'), + index=423, + label="COm;O_rad/NonDe", + kinetics=ArrheniusEP( + A=(3.41e07, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(3, "kcal/mol"), + Tmin=(250, "K"), + Tmax=(2500, "K"), ), - rank = 5, - shortDesc = """Wang et al. [105].""", - longDesc = -""" + rank=5, + shortDesc="""Wang et al. [105].""", + longDesc=""" [105] Wang, B.; Hou, H.; Gu, Y. Phys. Chem. A 1999, 103, 8021. RRK(M) extrapolation. CH3O + CO --> CH3OCO, 250K and 2500K @@ -350,20 +343,19 @@ ) entry( - index = 424, - label = "COm;C_methyl", - kinetics = ArrheniusEP( - A = (3.06e+06, 'cm^3/(mol*s)', '*|/', 3), - n = 1.89, - alpha = 0, - E0 = (4.82, 'kcal/mol', '+|-', 2), - Tmin = (600, 'K'), - Tmax = (2000, 'K'), + index=424, + label="COm;C_methyl", + kinetics=ArrheniusEP( + A=(3.06e06, "cm^3/(mol*s)", "*|/", 3), + n=1.89, + alpha=0, + E0=(4.82, "kcal/mol", "+|-", 2), + Tmin=(600, "K"), + Tmax=(2000, "K"), ), - rank = 3, - shortDesc = """MRH CBS-QB3 calculations with 1dHR corrections""", - longDesc = -""" + rank=3, + shortDesc="""MRH CBS-QB3 calculations with 1dHR corrections""", + longDesc=""" CH3 + CO = CH3CO MRH CBS-QB3 calculations with 1D hindered rotor corrections [MRHCBSQB31DHR]_. @@ -375,20 +367,19 @@ ) entry( - index = 425, - label = "COm;CH2CH3", - kinetics = ArrheniusEP( - A = (7.7e+07, 'cm^3/(mol*s)', '*|/', 3), - n = 1.37, - alpha = 0, - E0 = (5.69, 'kcal/mol', '+|-', 2), - Tmin = (600, 'K'), - Tmax = (2000, 'K'), + index=425, + label="COm;CH2CH3", + kinetics=ArrheniusEP( + A=(7.7e07, "cm^3/(mol*s)", "*|/", 3), + n=1.37, + alpha=0, + E0=(5.69, "kcal/mol", "+|-", 2), + Tmin=(600, "K"), + Tmax=(2000, "K"), ), - rank = 3, - shortDesc = """MRH CBS-QB3 calculations with 1dHR corrections""", - longDesc = -""" + rank=3, + shortDesc="""MRH CBS-QB3 calculations with 1dHR corrections""", + longDesc=""" CH3CH2 + CO = CH3CH2CO MRH CBS-QB3 calculations with 1D hindered rotor corrections [MRHCBSQB31DHR]_. @@ -400,20 +391,19 @@ ) entry( - index = 426, - label = "COm;CH2CH2CH3", - kinetics = ArrheniusEP( - A = (6.51e+10, 'cm^3/(mol*s)', '*|/', 3), - n = 0.45, - alpha = 0, - E0 = (6.68, 'kcal/mol', '+|-', 2), - Tmin = (600, 'K'), - Tmax = (2000, 'K'), + index=426, + label="COm;CH2CH2CH3", + kinetics=ArrheniusEP( + A=(6.51e10, "cm^3/(mol*s)", "*|/", 3), + n=0.45, + alpha=0, + E0=(6.68, "kcal/mol", "+|-", 2), + Tmin=(600, "K"), + Tmax=(2000, "K"), ), - rank = 3, - shortDesc = """MRH CBS-QB3 calculations with 1dHR corrections""", - longDesc = -""" + rank=3, + shortDesc="""MRH CBS-QB3 calculations with 1dHR corrections""", + longDesc=""" CH3CH2CH2 + CO = CH3CH2CH2CO MRH CBS-QB3 calculations with 1D hindered rotor corrections [MRHCBSQB31DHR]_. @@ -425,20 +415,19 @@ ) entry( - index = 427, - label = "COm;CH(CH3)2", - kinetics = ArrheniusEP( - A = (8.61e+07, 'cm^3/(mol*s)', '*|/', 3), - n = 1.36, - alpha = 0, - E0 = (4.8, 'kcal/mol', '+|-', 2), - Tmin = (600, 'K'), - Tmax = (2000, 'K'), + index=427, + label="COm;CH(CH3)2", + kinetics=ArrheniusEP( + A=(8.61e07, "cm^3/(mol*s)", "*|/", 3), + n=1.36, + alpha=0, + E0=(4.8, "kcal/mol", "+|-", 2), + Tmin=(600, "K"), + Tmax=(2000, "K"), ), - rank = 3, - shortDesc = """MRH CBS-QB3 calculations with 1dHR corrections""", - longDesc = -""" + rank=3, + shortDesc="""MRH CBS-QB3 calculations with 1dHR corrections""", + longDesc=""" CH3CHCH3 + CO = CH3CH(CO)CH3 MRH CBS-QB3 calculations with 1D hindered rotor corrections [MRHCBSQB31DHR]_. @@ -450,17 +439,16 @@ ) entry( - index = 428, - label = "COm;S_rad/NonDe", - kinetics = ArrheniusEP( - A = (78500, 'cm^3/(mol*s)'), - n = 2.33, - alpha = 0, - E0 = (2.23, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (2000, 'K'), + index=428, + label="COm;S_rad/NonDe", + kinetics=ArrheniusEP( + A=(78500, "cm^3/(mol*s)"), + n=2.33, + alpha=0, + E0=(2.23, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(2000, "K"), ), - rank = 4, - shortDesc = """CAC CBS-QB3 calcs, HO""", + rank=4, + shortDesc="""CAC CBS-QB3 calcs, HO""", ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py index d4a567b41d..83520468c1 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/groups.py @@ -11,443 +11,410 @@ reverse = "Beta_Scission" -recipe(actions=[ - ['CHANGE_BOND', '*1', -1, '*2'], - ['FORM_BOND', '*1', 1, '*3'], - ['GAIN_RADICAL', '*2', '1'], - ['LOSE_RADICAL', '*3', '1'], -]) +recipe( + actions=[ + ["CHANGE_BOND", "*1", -1, "*2"], + ["FORM_BOND", "*1", 1, "*3"], + ["GAIN_RADICAL", "*2", "1"], + ["LOSE_RADICAL", "*3", "1"], + ] +) entry( - index = 0, - label = "R_R", - group = -""" + index=0, + label="R_R", + group=""" 1 *1 R!H u0 {2,[D,T,B]} 2 *2 R!H u0 {1,[D,T,B]} """, - kinetics = None, + kinetics=None, ) entry( - index = 1, - label = "YJ", - group = "OR{HJ, Y_1centerquadrad, Y_1centertrirad, Y_1centerbirad, CJ, OJ, SJ, NJ}", - kinetics = None, + index=1, + label="YJ", + group="OR{HJ, Y_1centerquadrad, Y_1centertrirad, Y_1centerbirad, CJ, OJ, SJ, NJ}", + kinetics=None, ) entry( - index = 2, - label = "Cb_Cb", - group = -""" + index=2, + label="Cb_Cb", + group=""" 1 *1 [Cb,Cbf] u0 {2,B} 2 *2 [Cb,Cbf] u0 {1,B} """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "Cd_R", - group = -""" + index=3, + label="Cd_R", + group=""" 1 *1 C u0 {2,D} 2 *2 R!H u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "Ck_O", - group = -""" + index=4, + label="Ck_O", + group=""" 1 *1 Cdd u0 {2,D} {3,D} 2 *2 O2d u0 {1,D} 3 C u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "Ck_Ca", - group = -""" + index=5, + label="Ck_Ca", + group=""" 1 *1 Cdd u0 {2,D} {3,D} 2 *2 Cdd u0 {1,D} {4,D} 3 O2d u0 {1,D} 4 C u0 {2,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "Ct_R", - group = -""" + index=6, + label="Ct_R", + group=""" 1 *1 Ct u0 {2,T} 2 *2 R!H u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "Od_R", - group = -""" + index=7, + label="Od_R", + group=""" 1 *1 O2d u0 {2,D} 2 *2 R!H u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "Nd_R", - group = "OR{N1dc_R, N3d_R}", - kinetics = None, + index=8, + label="Nd_R", + group="OR{N1dc_R, N3d_R}", + kinetics=None, ) entry( - index = 9, - label = "N1dc_R", - group = -""" + index=9, + label="N1dc_R", + group=""" 1 *1 N1dc u0 p2 {2,D} 2 *2 R!H u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "N3d_R", - group = -""" + index=10, + label="N3d_R", + group=""" 1 *1 N3d u0 {2,D} 2 *2 R!H u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "Nt_R", - group = "OR{N3t_R, N5t_R}", - kinetics = None, + index=11, + label="Nt_R", + group="OR{N3t_R, N5t_R}", + kinetics=None, ) entry( - index = 12, - label = "N3t_R", - group = -""" + index=12, + label="N3t_R", + group=""" 1 *1 N3t u0 {2,T} 2 *2 R!H u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "N5t_R", - group = -""" + index=13, + label="N5t_R", + group=""" 1 *1 N5tc u0 {2,T} 2 *2 R!H u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "Sd_R", - group = -""" + index=14, + label="Sd_R", + group=""" 1 *1 S2d u0 {2,D} 2 *2 R!H u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "HJ", - group = -""" + index=15, + label="HJ", + group=""" 1 *3 H u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "Y_1centerquadrad", - group = "OR{C_quintet, C_triplet}", - kinetics = None, + index=16, + label="Y_1centerquadrad", + group="OR{C_quintet, C_triplet}", + kinetics=None, ) entry( - index = 17, - label = "C_quintet", - group = -""" + index=17, + label="C_quintet", + group=""" 1 *3 C u4 p0 """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "C_triplet", - group = -""" + index=18, + label="C_triplet", + group=""" 1 *3 C u2 p1 """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "Y_1centertrirad", - group = "OR{N_atom_quartet, N_atom_doublet, CH_quartet, CH_doublet}", - kinetics = None, + index=19, + label="Y_1centertrirad", + group="OR{N_atom_quartet, N_atom_doublet, CH_quartet, CH_doublet}", + kinetics=None, ) entry( - index = 20, - label = "N_atom_quartet", - group = -""" + index=20, + label="N_atom_quartet", + group=""" 1 *3 N u3 p1 """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "N_atom_doublet", - group = -""" + index=21, + label="N_atom_doublet", + group=""" 1 *3 N u1 p2 """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "CH_quartet", - group = -""" + index=22, + label="CH_quartet", + group=""" 1 *3 Cs u3 p0 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "CH_doublet", - group = -""" + index=23, + label="CH_doublet", + group=""" 1 *3 C u1 p1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 24, - label = "Y_1centerbirad", - group = -""" + index=24, + label="Y_1centerbirad", + group=""" 1 *3 R!H u2 """, - kinetics = None, + kinetics=None, ) entry( - index = 25, - label = "CJ", - group = -""" + index=25, + label="CJ", + group=""" 1 *3 C u1 p0 """, - kinetics = None, + kinetics=None, ) entry( - index = 26, - label = "CbJ", - group = -""" + index=26, + label="CbJ", + group=""" 1 *3 Cb u1 p0 """, - kinetics = None, + kinetics=None, ) entry( - index = 27, - label = "CtJ", - group = -""" + index=27, + label="CtJ", + group=""" 1 *3 Ct u1 p0 {2,T} 2 R!H u0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 28, - label = "C2b", - group = -""" + index=28, + label="C2b", + group=""" 1 *3 C u1 p0 {2,T} 2 C u1 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 29, - label = "C=SJ", - group = -""" + index=29, + label="C=SJ", + group=""" 1 *3 CS u1 p0 {2,S} 2 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 30, - label = "CO_rad", - group = -""" + index=30, + label="CO_rad", + group=""" 1 *3 C u1 p0 {2,D} {3,S} 2 O u0 {1,D} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 31, - label = "CsJ", - group = -""" + index=31, + label="CsJ", + group=""" 1 *3 C u1 p0 {2,S} {3,S} {4,S} 2 R u0 {1,S} 3 R u0 {1,S} 4 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 32, - label = "OJ", - group = "OR{OJ_pri, OJ_sec, O2b}", - kinetics = None, + index=32, + label="OJ", + group="OR{OJ_pri, OJ_sec, O2b}", + kinetics=None, ) entry( - index = 33, - label = "OJ_pri", - group = -""" + index=33, + label="OJ_pri", + group=""" 1 *3 O u1 {2,S} 2 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 34, - label = "OJ_sec", - group = -""" + index=34, + label="OJ_sec", + group=""" 1 *3 O u1 {2,S} 2 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 35, - label = "O2b", - group = -""" + index=35, + label="O2b", + group=""" 1 *3 O u1 {2,S} 2 O u1 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 36, - label = "SJ", - group = -""" + index=36, + label="SJ", + group=""" 1 *3 S u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 37, - label = "SsJ", - group = -""" + index=37, + label="SsJ", + group=""" 1 *3 S2s u1 {2,S} 2 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 38, - label = "NJ", - group = "OR{N3J}", - kinetics = None, + index=38, + label="NJ", + group="OR{N3J}", + kinetics=None, ) entry( - index = 39, - label = "N3J", - group = -""" + index=39, + label="N3J", + group=""" 1 *3 [N3s,N3d] u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 40, - label = "N3sJ", - group = -""" + index=40, + label="N3sJ", + group=""" 1 *3 N3s u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 41, - label = "N3dJ", - group = -""" + index=41, + label="N3dJ", + group=""" 1 *3 N3d u1 """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: R_R L2: Cb_Cb L2: Cd_R @@ -494,16 +461,13 @@ ) forbidden( - label = "O2d", - group = -""" + label="O2d", + group=""" 1 *1 O u0 {2,D} 2 *2 O u0 {1,D} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py index f4e0944377..04ed559952 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/R_Addition_MultipleBond/rules.py @@ -7,17 +7,16 @@ """ entry( - index = 1, - label = "Cd_R;CsJ", - kinetics = ArrheniusEP( - A = (20900, 'cm^3/(mol*s)'), - n = 2.41, - alpha = 0, - E0 = (5.63, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=1, + label="Cd_R;CsJ", + kinetics=ArrheniusEP( + A=(20900, "cm^3/(mol*s)"), + n=2.41, + alpha=0, + E0=(5.63, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 4, - shortDesc = """Original label: Cds-HH_Cds-HH;CsJ-HHH""", + rank=4, + shortDesc="""Original label: Cds-HH_Cds-HH;CsJ-HHH""", ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py index c98972a584..c3124facb1 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/groups.py @@ -11,71 +11,65 @@ reverse = "Bond_Dissociation" -autoGenerated=True +autoGenerated = True reactantNum = 2 productNum = 1 -recipe(actions=[ - ['FORM_BOND', '*', 1, '*'], - ['LOSE_RADICAL', '*', '1'], -]) +recipe( + actions=[ + ["FORM_BOND", "*", 1, "*"], + ["LOSE_RADICAL", "*", "1"], + ] +) entry( - index = 0, - label = "Y_rad", - group = -""" + index=0, + label="Y_rad", + group=""" 1 * R u1 2 * R u1 """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: Y_rad """ ) forbidden( - label = "Cl", - group = -""" + label="Cl", + group=""" 1 *1 Cl u1 """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "Cl_2", - group = -""" + label="Cl_2", + group=""" 1 *2 Cl u1 """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "O4", - group = -""" + label="O4", + group=""" 1 O u1 {2,S} 2 *1 O u0 {1,S} {3,S} 3 *2 O u0 {2,S} {4,S} 4 O u1 {3,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py index b92dde0164..097b70206b 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/R_Recombination/rules.py @@ -19,17 +19,16 @@ is apparently not causing a problem """ entry( - index = 424, - label = "Y_rad", - kinetics = ArrheniusEP( - A = (1e+13, 'cm^3/(mol*s)'), - n = 0, - alpha = 0, - E0 = (0, 'kcal/mol'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), + index=424, + label="Y_rad", + kinetics=ArrheniusEP( + A=(1e13, "cm^3/(mol*s)"), + n=0, + alpha=0, + E0=(0, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), ), - rank = 0, - shortDesc = """Default""", + rank=0, + shortDesc="""Default""", ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py index bd8ffd51a5..d5da95dfe4 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/groups.py @@ -7,67 +7,65 @@ Reaction site *1 should always be a singlet in this family. """ -template(reactants=["singletcarbene_CH"], products=["CH_C_unsaturated"], ownReverse=False) +template( + reactants=["singletcarbene_CH"], products=["CH_C_unsaturated"], ownReverse=False +) reverse = "SingletCarbenefromMultipleBond" -recipe(actions=[ - ['LOSE_PAIR', '*1', '1'], - ['FORM_BOND', '*1', 1, '*3'], - ['BREAK_BOND', '*2', 1, '*3'], - ['CHANGE_BOND', '*1', 1, '*2'], -]) +recipe( + actions=[ + ["LOSE_PAIR", "*1", "1"], + ["FORM_BOND", "*1", 1, "*3"], + ["BREAK_BOND", "*2", 1, "*3"], + ["CHANGE_BOND", "*1", 1, "*2"], + ] +) boundaryAtoms = ["*1", "*2"] entry( - index = 1, - label = "singletcarbene_CH", - group= - """ + index=1, + label="singletcarbene_CH", + group=""" 1 *1 C u0 p1 c0 {2,[S,D]} 2 *2 C u0 {1,[S,D]} {3,S} 3 *3 H u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "singletcarbene", - group = -""" + index=2, + label="singletcarbene", + group=""" 1 *1 C u0 p1 c0 """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 3, - label = "CH", - group = -""" + index=3, + label="CH", + group=""" 1 *2 C u0 {2,S} 2 *3 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 4, - label = "fulvene_backbone", - group = -""" + index=4, + label="fulvene_backbone", + group=""" 1 *2 C u0 {2,S} {6,S} {7,S} 2 C u0 {1,S} {3,S} {5,D} 3 C u0 {2,S} {4,D} @@ -76,19 +74,17 @@ 6 *1 C u0 p1 c0 {1,S} {4,S} 7 *3 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 5, - label = "benzene_backbone", - group = -""" + index=5, + label="benzene_backbone", + group=""" 1 *2 C u0 {2,S} {6,S} {7,S} 2 C u0 {1,S} {3,D} 3 C u0 {2,D} {4,S} @@ -97,255 +93,226 @@ 6 *1 C u0 p1 c0 {1,S} {5,S} 7 *3 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 6, - label = "CsJ2-C", - group = -""" + index=6, + label="CsJ2-C", + group=""" 1 *1 C u0 p1 c0 {2,S} 2 *2 C u0 {1,S} {3,S} 3 *3 H u0 {2,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 7, - label = "CdJ2=C", - group = -""" + index=7, + label="CdJ2=C", + group=""" 1 *1 C u0 p1 c0 {2,D} 2 *2 C u0 {1,D} {3,S} 3 *3 H u0 {2,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 8, - label = "CdJ2", - group = -""" + index=8, + label="CdJ2", + group=""" 1 *1 Cd u0 p1 c0 """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 9, - label = "CsJ2H", - group = -""" + index=9, + label="CsJ2H", + group=""" 1 *1 Cs u0 p1 c0 {2,S} 2 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 10, - label = "CsJ2C", - group = -""" + index=10, + label="CsJ2C", + group=""" 1 *1 Cs u0 p1 c0 {2,S} 2 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 11, - label = "CsJ2(CsC)", - group = -""" + index=11, + label="CsJ2(CsC)", + group=""" 1 *1 Cs u0 p1 c0 {2,S} 2 Cs u0 {1,S} {3,S} 3 C u0 {2,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 12, - label = "CsJ2(C=C)", - group = -""" + index=12, + label="CsJ2(C=C)", + group=""" 1 *1 Cs u0 p1 c0 {2,S} 2 Cd u0 {1,S} {3,D} 3 C u0 {2,D} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 13, - label = "CdH2", - group = -""" + index=13, + label="CdH2", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 H u0 {1,S} 3 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 14, - label = "CdHC", - group = -""" + index=14, + label="CdHC", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 H u0 {1,S} 3 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 15, - label = "CH3", - group = -""" + index=15, + label="CH3", + group=""" 1 *2 Cs u0 {2,S} {3,S} {4,S} 2 *3 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 16, - label = "CH2(C)", - group = -""" + index=16, + label="CH2(C)", + group=""" 1 *2 Cs u0 {2,S} {3,S} {4,S} 2 *3 H u0 {1,S} 3 H u0 {1,S} 4 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 17, - label = "CH2(C=C)", - group = -""" + index=17, + label="CH2(C=C)", + group=""" 1 *2 Cs u0 {2,S} {3,S} {4,S} 2 *3 H u0 {1,S} 3 H u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 C u0 {4,D} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 18, - label = "CH(C)C", - group = -""" + index=18, + label="CH(C)C", + group=""" 1 *2 Cs u0 {2,S} {3,S} {4,S} 2 *3 H u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) entry( - index = 19, - label = "CH=C", - group = -""" + index=19, + label="CH=C", + group=""" 1 *2 Cd u0 {2,S} {3,D} 2 *3 H u0 {1,S} 3 C u0 {1,D} """, - kinetics = None, - shortDesc = "", - longDesc = -""" + kinetics=None, + shortDesc="", + longDesc=""" """, ) tree( -""" + """ L1: singletcarbene_CH L2: fulvene_backbone L2: benzene_backbone diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py index 43972b1f54..bb7f5c92cd 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Carbene_Intra_Disproportionation/training/reactions.py @@ -9,56 +9,58 @@ """ - entry( - index = 1, - label = "C6H6 <=> C6H6-2", - degeneracy = 1, - kinetics = Arrhenius(A=(8.067e+10, 's^-1'), n=0.649, Ea=(8.03, 'kcal/mol'), T0=(1, 'K')), - rank = 3, - shortDesc = """Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", - longDesc = -""" + index=1, + label="C6H6 <=> C6H6-2", + degeneracy=1, + kinetics=Arrhenius( + A=(8.067e10, "s^-1"), n=0.649, Ea=(8.03, "kcal/mol"), T0=(1, "K") + ), + rank=3, + shortDesc="""Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", + longDesc=""" Taken from entry: A <=> IV """, ) entry( - index = 2, - label = "C6H6-3 <=> C6H6-4", - degeneracy = 1, - kinetics = Arrhenius(A=(1.454e+12, 's^-1'), n=0.178, Ea=(0.205, 'kcal/mol'), T0=(1, 'K')), - rank = 3, - shortDesc = """Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", - longDesc = -""" + index=2, + label="C6H6-3 <=> C6H6-4", + degeneracy=1, + kinetics=Arrhenius( + A=(1.454e12, "s^-1"), n=0.178, Ea=(0.205, "kcal/mol"), T0=(1, "K") + ), + rank=3, + shortDesc="""Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", + longDesc=""" Taken from entry: IX <=> VII """, ) entry( - index = 3, - label = "C6H6-5 <=> C6H6-6", - degeneracy = 1, - kinetics = Arrhenius(A=(1.865e+11, 's^-1'), n=0.577, Ea=(29.169, 'kcal/mol'), T0=(1, 'K')), - rank = 3, - shortDesc = """Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", - longDesc = -""" + index=3, + label="C6H6-5 <=> C6H6-6", + degeneracy=1, + kinetics=Arrhenius( + A=(1.865e11, "s^-1"), n=0.577, Ea=(29.169, "kcal/mol"), T0=(1, "K") + ), + rank=3, + shortDesc="""Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", + longDesc=""" Taken from entry: X <=> IX """, ) entry( - index = 4, - label = "C6H6-7 <=> C6H6-8", - degeneracy = 1, - kinetics = Arrhenius(A=(3.355e+12, 's^-1'), n=0.294, Ea=(35.954, 'kcal/mol'), T0=(1, 'K')), - rank = 3, - shortDesc = """Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", - longDesc = -""" + index=4, + label="C6H6-7 <=> C6H6-8", + degeneracy=1, + kinetics=Arrhenius( + A=(3.355e12, "s^-1"), n=0.294, Ea=(35.954, "kcal/mol"), T0=(1, "K") + ), + rank=3, + shortDesc="""Training reaction from kinetics library: 2003_Miller_Propargyl_Recomb_High_P""", + longDesc=""" Taken from entry: X <=> XI """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py index 9303148a18..7556d665ac 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/groups.py @@ -14,58 +14,56 @@ reverse = None reversible = False -recipe(actions=[ - ['CHANGE_BOND', '*1', -1, '*2'], - ['GAIN_RADICAL', '*1', '1'], - ['GAIN_RADICAL', '*2', '1'], -]) +recipe( + actions=[ + ["CHANGE_BOND", "*1", -1, "*2"], + ["GAIN_RADICAL", "*1", "1"], + ["GAIN_RADICAL", "*2", "1"], + ] +) entry( - index = 1, - label = "singlet", - group = -""" + index=1, + label="singlet", + group=""" 1 *1 [O2d,S2d] u0 p2 c0 {2,D} 2 *2 [O2d,S2d] u0 p2 c0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "O2", - group = -""" + index=2, + label="O2", + group=""" 1 *1 O2d u0 p2 c0 {2,D} 2 *2 O2d u0 p2 c0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "S2", - group = -""" + index=2, + label="S2", + group=""" 1 *1 S2d u0 p2 c0 {2,D} 2 *2 S2d u0 p2 c0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "SO", - group = -""" + index=2, + label="SO", + group=""" 1 *1 S2d u0 p2 c0 {2,D} 2 *2 O2d u0 p2 c0 {1,D} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: singlet L2: O2 L2: S2 diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py index 1dcc8075f9..730e6dc2fc 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/rules.py @@ -7,13 +7,12 @@ """ entry( - index = 1, - label = "singlet", - kinetics = Arrhenius(A=(4.5E+10, 's^-1'), n=0, Ea=(397, 'cal/mol')), - rank = 1, - shortDesc = """Default""", - longDesc = -""" + index=1, + label="singlet", + kinetics=Arrhenius(A=(4.5e10, "s^-1"), n=0, Ea=(397, "cal/mol")), + rank=1, + shortDesc="""Default""", + longDesc=""" taken from: R. Atkinson, D.L. Baulch, R.A. Cox, R.F. Hampson, J.A. Kerr, J. Troe, Evaluated Kinetic and Photochemical Data for Atmospheric Chemistry: Supplement IV. diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py index 83aefe083e..efe19e4718 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Singlet_Val6_to_triplet/training/reactions.py @@ -7,15 +7,14 @@ """ entry( - index = 1, - label = "O2(S) => O2(T)", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(4.5E+10, 's^-1'), n=0, Ea=(397, 'cal/mol')), - rank = 1, - shortDesc = """""", - longDesc = -""" + index=1, + label="O2(S) => O2(T)", + degeneracy=1, + reversible=False, + kinetics=Arrhenius(A=(4.5e10, "s^-1"), n=0, Ea=(397, "cal/mol")), + rank=1, + shortDesc="""""", + longDesc=""" taken from: R. Atkinson, D.L. Baulch, R.A. Cox, R.F. Hampson, J.A. Kerr, J. Troe, Evaluated Kinetic and Photochemical Data for Atmospheric Chemistry: Supplement IV. diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py index 5af0d39792..0640c2330c 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/groups.py @@ -2,8 +2,8 @@ # encoding: utf-8 name = "Surface_Abstraction_vdW/groups" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ A vdW species splitting, adsorbing to the surface, and transferring a functional group to a double, triple, or quadruple bonded surface species. @@ -17,276 +17,260 @@ """ -template(reactants=["AdsorbateVdW","Adsorbate1"], products=["Adsorbate2","Adsorbate3"], ownReverse=False) +template( + reactants=["AdsorbateVdW", "Adsorbate1"], + products=["Adsorbate2", "Adsorbate3"], + ownReverse=False, +) reverse = "Surface_Reverse_Abstraction_vdW" # maybe needs a better name? -reactantNum=2 -productNum=2 +reactantNum = 2 +productNum = 2 -recipe(actions=[ - ['BREAK_BOND', '*2', 1, '*3'], - ['CHANGE_BOND', '*1', 1, '*2'], - ['CHANGE_BOND', '*4', -1, '*5'], - ['FORM_BOND', '*3', 1, '*4'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*2", 1, "*3"], + ["CHANGE_BOND", "*1", 1, "*2"], + ["CHANGE_BOND", "*4", -1, "*5"], + ["FORM_BOND", "*3", 1, "*4"], + ] +) entry( - index = 1, - label = "AdsorbateVdW", - group = -""" + index=1, + label="AdsorbateVdW", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 R ux px cx {3,S} 3 *3 R ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "Adsorbate1", - group = -""" + index=2, + label="Adsorbate1", + group=""" 1 *5 X u0 p0 c0 {2,[D,T,Q]} 2 *4 R!H ux px cx {1,[D,T,Q]} """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "O-R", - group = -""" + index=3, + label="O-R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O ux p2 cx {3,S} 3 *3 R ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "C-R", - group = -""" + index=4, + label="C-R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 C ux px cx {3,S} 3 *3 R ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "*=O", - group = -""" + index=5, + label="*=O", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 O u0 p2 c0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "*C", - group = -""" + index=6, + label="*C", + group=""" 1 *5 X u0 p0 c0 {2,[D,T,Q]} 2 *4 C ux px cx {1,[D,T,Q]} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "H-H", - group = -""" + index=7, + label="H-H", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 H u0 p0 c0 {3,S} 3 *3 H u0 p0 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "N-R", - group = -""" + index=8, + label="N-R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 N ux px cx {3,S} 3 *3 R ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "*N", - group = -""" + index=9, + label="*N", + group=""" 1 *5 X u0 p0 c0 {2,[D,T]} 2 *4 N ux px cx {1,[D,T]} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "*=C", - group = -""" + index=10, + label="*=C", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 C ux px cx {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "*#C", - group = -""" + index=11, + label="*#C", + group=""" 1 *5 X u0 p0 c0 {2,T} 2 *4 C u0 p0 c0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "*$C", - group = -""" + index=12, + label="*$C", + group=""" 1 *5 X u0 p0 c0 {2,Q} 2 *4 C u0 p0 c0 {1,Q} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "*#CH", - group = -""" + index=13, + label="*#CH", + group=""" 1 *5 X u0 p0 c0 {2,T} 2 *4 C u0 p0 c0 {1,T} {3,S} 3 H u0 p0 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "*=C=R", - group = -""" + index=14, + label="*=C=R", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 C u0 p0 c0 {1,D} {3,D} 3 R!H ux px cx {2,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "*=C-2R", - group = -""" + index=15, + label="*=C-2R", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 C u0 p0 c0 {1,D} {3,S} {4,S} 3 R ux px cx {2,S} 4 R ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "*=N", - group = -""" + index=16, + label="*=N", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 N u0 p1 c0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "*#N", - group = -""" + index=17, + label="*#N", + group=""" 1 *5 X u0 p0 c0 {2,T} 2 *4 N u0 p1 c0 {1,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "*=NH", - group = -""" + index=18, + label="*=NH", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 N u0 p1 c0 {1,D} {3,S} 3 H u0 p0 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "*=NO", - group = -""" + index=19, + label="*=NO", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 N u0 p1 c0 {1,D} {3,S} 3 O u0 p2 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "*=NOH", - group = -""" + index=20, + label="*=NOH", + group=""" 1 *5 X u0 p0 c0 {2,D} 2 *4 N u0 p1 c0 {1,D} {3,S} 3 O u0 p2 c0 {2,S} {4,S} 4 H u0 p0 c0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "O-O", - group = -""" + index=21, + label="O-O", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} 3 *3 O u0 p2 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "HO-OH", - group = -""" + index=22, + label="HO-OH", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} {5,S} @@ -294,42 +278,39 @@ 4 H u0 p0 c0 {3,S} 5 H u0 p0 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "O-N", - group = -""" + index=23, + label="O-N", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} 3 *3 N u0 p1 c0 {2,S} {4,[S,D]} 4 R ux px cx {3,[S,D]} """, - kinetics = None, + kinetics=None, ) entry( - index = 24, - label = "O-C", - group = -""" + index=24, + label="O-C", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} 3 *3 C u0 p0 c0 {2,S} {4,[S,D,T]} 4 R ux px cx {3,[S,D,T]} """, - kinetics = None, + kinetics=None, ) entry( - index = 25, - label = "O-C-3R", - group = -""" + index=25, + label="O-C-3R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} @@ -338,14 +319,13 @@ 5 R ux px cx {3,S} 6 R ux px cx {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 26, - label = "O-C=R", - group = -""" + index=26, + label="O-C=R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} @@ -353,28 +333,26 @@ 4 R!H ux px cx {3,D} 5 R ux px cx {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 27, - label = "O-C#R", - group = -""" + index=27, + label="O-C#R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} 3 *3 C u0 p0 c0 {2,S} {4,T} 4 R!H ux px cx {3,T} """, - kinetics = None, + kinetics=None, ) entry( - index = 28, - label = "O-N-2R", - group = -""" + index=28, + label="O-N-2R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} @@ -382,14 +360,13 @@ 4 R ux px cx {3,S} 5 R ux px cx {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 29, - label = "O-NHH", - group = -""" + index=29, + label="O-NHH", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} @@ -397,117 +374,109 @@ 4 H u0 p0 c0 {3,S} 5 H u0 p0 c0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 30, - label = "O-N=R", - group = -""" + index=30, + label="O-N=R", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 O u0 p2 c0 {3,S} 3 *3 N u0 p1 c0 {2,S} {4,D} 4 R!H ux px cx {3,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 31, - label = "C-C", - group = -""" + index=31, + label="C-C", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 C ux px cx {3,S} 3 *3 C ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 32, - label = "C-O", - group = -""" + index=32, + label="C-O", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 C ux px cx {3,S} 3 *3 O ux p2 cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 33, - label = "C-N", - group = -""" + index=33, + label="C-N", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 C ux px cx {3,S} 3 *3 N u0 p1 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 34, - label = "C-OH", - group = -""" + index=34, + label="C-OH", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 C ux px cx {3,S} 3 *3 O u0 p2 c0 {2,S} {4,S} 4 H u0 p0 c0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 35, - label = "N-N", - group = -""" + index=35, + label="N-N", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 N ux px cx {3,S} 3 *3 N ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 36, - label = "N-O", - group = -""" + index=36, + label="N-O", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 N ux px cx {3,S} 3 *3 O u0 p2 c0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 37, - label = "N-C", - group = -""" + index=37, + label="N-C", + group=""" multiplicity [1] 1 *1 Xv u0 p0 c0 2 *2 N ux px cx {3,S} 3 *3 C ux px cx {2,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: AdsorbateVdW L2: H-H L2: O-R diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py index dd35569bde..50eea60a86 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/rules.py @@ -2,24 +2,24 @@ # encoding: utf-8 name = "Surface_Abstraction_vdW/rules" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ A vdW double bonded species dissociatively adsorbing to the surface with double bonds. """ entry( - index = 1, - label = "AdsorbateVdW;Adsorbate1", - kinetics = SurfaceArrheniusBEP( - A = (1.0e13, 'm^2/(mol*s)'), - n = 0, - alpha = 0.5, - E0 = (0, 'kcal/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=1, + label="AdsorbateVdW;Adsorbate1", + kinetics=SurfaceArrheniusBEP( + A=(1.0e13, "m^2/(mol*s)"), + n=0, + alpha=0.5, + E0=(0, "kcal/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - rank = 0, - shortDesc = u"""Default""", - longDesc = u"""Made up""" -) \ No newline at end of file + rank=0, + shortDesc="""Default""", + longDesc="""Made up""", +) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py index c6606c7759..0794bf6c53 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Abstraction_vdW/training/reactions.py @@ -2,8 +2,8 @@ # encoding: utf-8 name = "Surface_Abstraction_vdW/training" -shortDesc = u"Reaction kinetics used to generate rate rules" -longDesc = u""" +shortDesc = "Reaction kinetics used to generate rate rules" +longDesc = """ Put kinetic parameters for specific reactions in this file to use as a training set for generating rate rules to populate this kinetics family. """ @@ -32,137 +32,137 @@ # reverse of 34, above entry( - index = 16, - label = "OH_2* + OH_4* <=> H2O* + O*", - degeneracy = 2, - kinetics = SurfaceArrhenius( - A = (5.691e16, 'm^2/(mol*s)'), - n = 0., - Ea = (14.0669343, 'kcal/mol'), - Tmin = (298, 'K'), - Tmax = (2000, 'K'), + index=16, + label="OH_2* + OH_4* <=> H2O* + O*", + degeneracy=2, + kinetics=SurfaceArrhenius( + A=(5.691e16, "m^2/(mol*s)"), + n=0.0, + Ea=(14.0669343, "kcal/mol"), + Tmin=(298, "K"), + Tmax=(2000, "K"), ), - rank = 10, - shortDesc = u"""Default""", - longDesc = u""" + rank=10, + shortDesc="""Default""", + longDesc=""" Reaction 16 from table 2 in "Mechanism of Methanol Synthesis on Cu through CO2 and CO Hydrogenation", Grabow and Mavrikakis. doi:10.1021/cs200055d A factor from paper / surface site density of Cu 1.675e12 m^4/(mol^2 * s) / 2.943e‐5 mol/m^2 = 5.691e16 m^2/(mol*s) """, - metal = "Cu", + metal="Cu", ) entry( - index = 21, - label = "CH4* + O* <=> CH3* + OH_4*", - degeneracy = 4, - kinetics = SurfaceArrhenius( - A = (5.62E20, 'm^2/(mol*s)'), - n = -0.101, - Ea = (92700, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=21, + label="CH4* + O* <=> CH3* + OH_4*", + degeneracy=4, + kinetics=SurfaceArrhenius( + A=(5.62e20, "m^2/(mol*s)"), + n=-0.101, + Ea=(92700, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - rank = 10, - shortDesc = u"""Default""", - longDesc = u"""R21 + rank=10, + shortDesc="""Default""", + longDesc="""R21 test surface mechanism: based upon Olaf Deutschmann's work: "Surface Reaction Kinetics of Steam- and CO2-Reforming as well as Oxidation of Methane over Nickel-Based Catalysts" Delgado et al Catalysts, 2015, 5, 871-904""", - metal = "Ni", + metal="Ni", ) entry( - index = 40, - label = "OH_2* + HCO* <=> H2O* + CO*", - degeneracy = 1, - kinetics = SurfaceArrhenius( - A = (3.261e17, 'm^2/(mol*s)'), - n = 0., - Ea = (6.9181644, 'kcal/mol'), - Tmin = (298, 'K'), - Tmax = (2000, 'K'), + index=40, + label="OH_2* + HCO* <=> H2O* + CO*", + degeneracy=1, + kinetics=SurfaceArrhenius( + A=(3.261e17, "m^2/(mol*s)"), + n=0.0, + Ea=(6.9181644, "kcal/mol"), + Tmin=(298, "K"), + Tmax=(2000, "K"), ), - rank = 10, - shortDesc = u"""Default""", - longDesc = u""" + rank=10, + shortDesc="""Default""", + longDesc=""" Reaction 40 from table 2 in "Mechanism of Methanol Synthesis on Cu through CO2 and CO Hydrogenation", Grabow and Mavrikakis. doi:10.1021/cs200055d A factor from paper / surface site density of Cu 9.597e12 m^4/(mol^2 * s) / 2.943e‐5 mol/m^2 = 3.261e17 m^2/(mol*s) """, - metal = "Cu", + metal="Cu", ) entry( - index = 41, - label = "HCOO_1* + HCO* <=> HCOOH* + CO*", - degeneracy = 1, - kinetics = SurfaceArrhenius( - A = (7.475e18, 'm^2/(mol*s)'), - n = 0., - Ea = (13.8363288, 'kcal/mol'), - Tmin = (298, 'K'), - Tmax = (2000, 'K'), + index=41, + label="HCOO_1* + HCO* <=> HCOOH* + CO*", + degeneracy=1, + kinetics=SurfaceArrhenius( + A=(7.475e18, "m^2/(mol*s)"), + n=0.0, + Ea=(13.8363288, "kcal/mol"), + Tmin=(298, "K"), + Tmax=(2000, "K"), ), - rank = 10, - shortDesc = u"""Default""", - longDesc = u""" + rank=10, + shortDesc="""Default""", + longDesc=""" Reaction 41 from table 2 in "Mechanism of Methanol Synthesis on Cu through CO2 and CO Hydrogenation", Grabow and Mavrikakis. doi:10.1021/cs200055d A factor from paper / surface site density of Cu 2.2e14 m^4/(mol^2 * s) / 2.943e‐5 mol/m^2 = 7.475e18 m^2/(mol*s) """, - metal = "Cu", + metal="Cu", ) entry( - index = 45, - label = "CH3O* + HCO* <=> CH3OH* + CO*", - degeneracy = 1, - kinetics = SurfaceArrhenius( - A = (6.572e16, 'm^2/(mol*s)'), - n = 0., - Ea = (8.76300824, 'kcal/mol'), - Tmin = (298, 'K'), - Tmax = (2000, 'K'), + index=45, + label="CH3O* + HCO* <=> CH3OH* + CO*", + degeneracy=1, + kinetics=SurfaceArrhenius( + A=(6.572e16, "m^2/(mol*s)"), + n=0.0, + Ea=(8.76300824, "kcal/mol"), + Tmin=(298, "K"), + Tmax=(2000, "K"), ), - rank = 10, - shortDesc = u"""Default""", - longDesc = u""" + rank=10, + shortDesc="""Default""", + longDesc=""" Reaction 45 from table 2 in "Mechanism of Methanol Synthesis on Cu through CO2 and CO Hydrogenation", Grabow and Mavrikakis. doi:10.1021/cs200055d A factor from paper / surface site density of Cu 1.934e12 m^4/(mol^2 * s) / 2.943e‐5 mol/m^2 = 6.572e16 m^2/(mol*s) """, - metal = "Cu", + metal="Cu", ) entry( - index = 46, - label = "CH3O* + HCOO_5* <=> HCOOCH3* + O*", - degeneracy = 1, - kinetics = SurfaceArrhenius( - A = (2.356e16, 'm^2/(mol*s)'), - n = 0., - Ea = (28.5950795, 'kcal/mol'), - Tmin = (298, 'K'), - Tmax = (2000, 'K'), + index=46, + label="CH3O* + HCOO_5* <=> HCOOCH3* + O*", + degeneracy=1, + kinetics=SurfaceArrhenius( + A=(2.356e16, "m^2/(mol*s)"), + n=0.0, + Ea=(28.5950795, "kcal/mol"), + Tmin=(298, "K"), + Tmax=(2000, "K"), ), - rank = 10, - shortDesc = u"""Default""", - longDesc = u""" + rank=10, + shortDesc="""Default""", + longDesc=""" Reaction 46 from table 2 in "Mechanism of Methanol Synthesis on Cu through CO2 and CO Hydrogenation", Grabow and Mavrikakis. doi:10.1021/cs200055d A factor from paper / surface site density of Cu 6.934e11 m^4/(mol^2 * s) / 2.943e‐5 mol/m^2 = 2.356e16 m^2/(mol*s) """, - metal = "Cu", + metal="Cu", ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py index b3a456f376..cdc4c3264e 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/groups.py @@ -15,49 +15,52 @@ so k should be in (m5/mol2/s). We will use sticking coefficients. """ -template(reactants=["Adsorbate", "VacantSite1", "VacantSite2"], products=["Adsorbed1", "Adsorbed2"], ownReverse=False) +template( + reactants=["Adsorbate", "VacantSite1", "VacantSite2"], + products=["Adsorbed1", "Adsorbed2"], + ownReverse=False, +) reverse = "Surface_Desorption_Associative" -recipe(actions=[ - ['BREAK_BOND', '*1', 1, '*2'], - ['FORM_BOND', '*1', 1, '*3'], - ['FORM_BOND', '*2', 1, '*4'] -]) +recipe( + actions=[ + ["BREAK_BOND", "*1", 1, "*2"], + ["FORM_BOND", "*1", 1, "*3"], + ["FORM_BOND", "*2", 1, "*4"], + ] +) entry( - index = 1, - label = "Adsorbate", - group = -""" + index=1, + label="Adsorbate", + group=""" 1 *1 R u0 {2,S} 2 *2 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 2, + index=2, label="VacantSite1", - group = -""" + group=""" 1 *3 Xv u0 """, - kinetics = None, + kinetics=None, ) entry( - index = 3, + index=3, label="VacantSite2", - group = -""" + group=""" 1 *4 Xv u0 """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: Adsorbate L1: VacantSite1 @@ -68,15 +71,13 @@ forbidden( - label = "adjacentradical1", - group = -""" + label="adjacentradical1", + group=""" 1 *1 R u0 {2,[S,D,T]} 2 R u1 {1,[S,D,T]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" The adsorbing atom should not be adjacent to a radical. e.g. this is not allowed: @@ -87,15 +88,13 @@ ) forbidden( - label = "adjacentradical2", - group = -""" + label="adjacentradical2", + group=""" 1 *2 R u0 {2,[S,D,T]} 2 R u1 {1,[S,D,T]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" Neither adsorbing atom should be adjacent to a radical e.g. this is not allowed: @@ -107,16 +106,14 @@ forbidden( - label = "disigma1", - group = -""" + label="disigma1", + group=""" 1 *1 R u0 {2,[S,D,T]} 2 R u0 {1,[S,D,T]} {3,[S,D,T]} 3 X u0 {2,[S,D,T]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" The adsorbing atom should not be adjacent to an atom that is already adsorbed. e.g. this is not allowed: @@ -127,16 +124,14 @@ ) forbidden( - label = "disigma2", - group = -""" + label="disigma2", + group=""" 1 *2 R u0 {2,[S,D,T]} 2 R u0 {1,[S,D,T]} {3,[S,D,T]} 3 X u0 {2,[S,D,T]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" The adsorbing atom should not be adjacent to an atom that is already adsorbed. e.g. this is not allowed: @@ -147,34 +142,30 @@ ) forbidden( - label = "disigma3", - group = -""" + label="disigma3", + group=""" 1 *1 R u0 {2,[S,D,T]} 2 R u0 {1,[S,D,T]} {3,[S,D,T]} 3 R u0 {2,[S,D,T]} {4,[S,D,T]} 4 X u0 {3,[S,D,T]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" The adsorbing atom should not be next-nearest neighbor to an atom that is already adsorbed. """, ) forbidden( - label = "disigma4", - group = -""" + label="disigma4", + group=""" 1 *2 R u0 {2,[S,D,T]} 2 R u0 {1,[S,D,T]} {3,[S,D,T]} 3 R u0 {2,[S,D,T]} {4,[S,D,T]} 4 X u0 {3,[S,D,T]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" The adsorbing atom should not be next-nearest neighbor to an atom that is already adsorbed. """, ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py index cf14da1721..5fa5c5e64c 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/rules.py @@ -7,20 +7,17 @@ Dissociative adsorption of a gas-phase species forming two adsorbates, each with a single bond to a surface site """ entry( - index = 1, - label = "Adsorbate;VacantSite1;VacantSite2", - kinetics = StickingCoefficientBEP( - A = 0.01, - n = 0, - alpha = 0, - E0 = (10, 'kcal/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=1, + label="Adsorbate;VacantSite1;VacantSite2", + kinetics=StickingCoefficientBEP( + A=0.01, + n=0, + alpha=0, + E0=(10, "kcal/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - rank = 0, - shortDesc = """Default""", - longDesc = """Made up""" + rank=0, + shortDesc="""Default""", + longDesc="""Made up""", ) - - - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py index d294b9de6e..5498f62a8e 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Adsorption_Dissociative/training/reactions.py @@ -8,7 +8,7 @@ group additivity values in this file. """ -#entry( +# entry( # index = 1, # label = "H2 + Ni_3 + Ni_4 <=> HX_3 + HX_4", # degeneracy = 2, @@ -22,9 +22,8 @@ # rank = 3, # shortDesc = """Deutschmann Ni""", # longDesc = """ -#"Surface Reaction Kinetics of Steam- and CO2-Reforming as well as Oxidation of Methane over Nickel-Based Catalysts" -#Delgado et al -#Catalysts, 2015, 5, 871-904 -#""" -#) - +# "Surface Reaction Kinetics of Steam- and CO2-Reforming as well as Oxidation of Methane over Nickel-Based Catalysts" +# Delgado et al +# Catalysts, 2015, 5, 871-904 +# """ +# ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py index 522c1df722..4c293d8b24 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/groups.py @@ -16,44 +16,47 @@ so k should be in (m2/mol/s) """ -template(reactants=["Combined", "VacantSite"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) +template( + reactants=["Combined", "VacantSite"], + products=["Adsorbate1", "Adsorbate2"], + ownReverse=False, +) reverse = "Surface_Association_vdW" -recipe(actions=[ - ['CHANGE_BOND', '*1', 1, '*3'], - ['FORM_BOND', '*2', 1, '*4'], - ['BREAK_BOND', '*1', 1, '*2'], -]) +recipe( + actions=[ + ["CHANGE_BOND", "*1", 1, "*3"], + ["FORM_BOND", "*2", 1, "*4"], + ["BREAK_BOND", "*1", 1, "*2"], + ] +) entry( - index = 1, - label = "Combined", - group = -""" + index=1, + label="Combined", + group=""" 1 *1 R u0 {2,S} 2 *2 R u0 {1,S} 3 *3 X u0 """, - kinetics = None, + kinetics=None, ) entry( - index = 2, + index=2, label="VacantSite", - group = -""" + group=""" 1 *4 Xv u0 """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: Combined L1: VacantSite """ ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py index b2f73e9a20..0817d0ab37 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/Surface_Dissociation_vdW/rules.py @@ -6,19 +6,19 @@ longDesc = """ """ entry( - index = 1, - label = "Combined;VacantSite", - kinetics = SurfaceArrheniusBEP( - A = (1.0e17, 'm^2/(mol*s)'), - n = 0, - alpha = 0.84, - E0 = (44.25, 'kcal/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=1, + label="Combined;VacantSite", + kinetics=SurfaceArrheniusBEP( + A=(1.0e17, "m^2/(mol*s)"), + n=0, + alpha=0.84, + E0=(44.25, "kcal/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - rank = 0, - shortDesc = """Default""", - longDesc = """ + rank=0, + shortDesc="""Default""", + longDesc=""" "Arrhenius preexponential values for surface recombination...reactions are, in the SI system,... 10^13 - 10^14 m2/mol/s ...for bimolecular reactions" from page 54 of "Silicon epitaxy" @@ -30,8 +30,5 @@ "Universal Brønsted-Evans-Polanyi Relations for C–C, C–O, C–N, N–O, N–N, and O–O Dissociation Reactions" by Wang, ..., Norskov/ Catal. Lett (2011) 141:370-373. DOI 10.1007/s10562-010-0477-y (actual value for E0 was 1.92 eV.) - """ + """, ) - - - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py index 720f9d1443..06c38ba5c7 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/groups.py @@ -13,73 +13,70 @@ autoGenerated = False -recipe(actions=[ - ['BREAK_BOND', '*2', 1, '*3'], - ['FORM_BOND', '*1', 1, '*3'], - ['GAIN_RADICAL', '*2', '1'], - ['LOSE_RADICAL', '*1', '1'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*2", 1, "*3"], + ["FORM_BOND", "*1", 1, "*3"], + ["GAIN_RADICAL", "*2", "1"], + ["LOSE_RADICAL", "*1", "1"], + ] +) boundaryAtoms = ["*1", "*2"] entry( - index = 0, - label = "RnH", - group = "OR{R5Hall, R6Hall, R2Hall, R3Hall}", - kinetics = None, + index=0, + label="RnH", + group="OR{R5Hall, R6Hall, R2Hall, R3Hall}", + kinetics=None, ) entry( - index = 1, - label = "Y_rad_out", - group = -""" + index=1, + label="Y_rad_out", + group=""" 1 *1 R!H u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 2, - label = "XH_out", - group = -""" + index=2, + label="XH_out", + group=""" 1 *2 R!H u0 {2,S} 2 *3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "R2Hall", - group = -""" + index=3, + label="R2Hall", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *2 R!H u0 {1,[S,D,T,B]} {3,S} 3 *3 H u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "R3Hall", - group = -""" + index=4, + label="R3Hall", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H ux {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *2 R!H u0 {2,[S,D,T,B]} {4,S} 4 *3 H u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "R5Hall", - group = -""" + index=5, + label="R5Hall", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H ux {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H ux {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -87,14 +84,13 @@ 5 *2 R!H u0 {4,[S,D,T,B]} {6,S} 6 *3 H u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "R5HJ_1", - group = -""" + index=6, + label="R5HJ_1", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u1 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -102,14 +98,13 @@ 5 *2 R!H u0 {4,[S,D,T,B]} {6,S} 6 *3 H u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "R5HJ_2", - group = -""" + index=7, + label="R5HJ_2", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u1 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -117,14 +112,13 @@ 5 *2 R!H u0 {4,[S,D,T,B]} {6,S} 6 *3 H u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "R5HJ_3", - group = -""" + index=8, + label="R5HJ_3", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -132,14 +126,13 @@ 5 *2 R!H u0 {4,[S,D,T,B]} {6,S} 6 *3 H u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "R5H", - group = -""" + index=9, + label="R5H", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -147,14 +140,13 @@ 5 *2 R!H u0 {4,[S,D,T,B]} {6,S} 6 *3 H u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "R6Hall", - group = -""" + index=10, + label="R6Hall", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H ux {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H ux {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -163,14 +155,13 @@ 6 *2 R!H u0 {5,[S,D,T,B]} {7,S} 7 *3 H u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "R6HJ_1", - group = -""" + index=11, + label="R6HJ_1", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u1 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -179,14 +170,13 @@ 6 *2 R!H u0 {5,[S,D,T,B]} {7,S} 7 *3 H u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "R6HJ_2", - group = -""" + index=12, + label="R6HJ_2", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u1 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -195,14 +185,13 @@ 6 *2 R!H u0 {5,[S,D,T,B]} {7,S} 7 *3 H u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "R6HJ_3", - group = -""" + index=13, + label="R6HJ_3", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -211,14 +200,13 @@ 6 *2 R!H u0 {5,[S,D,T,B]} {7,S} 7 *3 H u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "R6HJ_4", - group = -""" + index=14, + label="R6HJ_4", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -227,14 +215,13 @@ 6 *2 R!H u0 {5,[S,D,T,B]} {7,S} 7 *3 H u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "R6H", - group = -""" + index=15, + label="R6H", + group=""" 1 *1 R!H u1 {2,[S,D,T,B]} 2 *4 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 *6 R!H u0 {2,[S,D,T,B]} {4,[S,D,T,B]} @@ -243,91 +230,84 @@ 6 *2 R!H u0 {5,[S,D,T,B]} {7,S} 7 *3 H u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "O_rad_out", - group = -""" + index=16, + label="O_rad_out", + group=""" 1 *1 O u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "Cd_rad_out", - group = -""" + index=17, + label="Cd_rad_out", + group=""" 1 *1 Cd u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "C_rad_out_single", - group = -""" + index=18, + label="C_rad_out_single", + group=""" 1 *1 C u1 {2,S} {3,S} 2 R u0 {1,S} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "O_H_out", - group = -""" + index=19, + label="O_H_out", + group=""" 1 *2 O u0 {2,S} 2 *3 H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "Cd_H_out_double", - group = -""" + index=20, + label="Cd_H_out_double", + group=""" 1 *2 Cd u0 {2,S} {3,D} 2 *3 H u0 {1,S} 3 [Cd,Cdd,O] u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "Cd_H_out_single", - group = -""" + index=21, + label="Cd_H_out_single", + group=""" 1 *2 Cd u0 {2,S} {3,S} 2 *3 H u0 {1,S} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "Cs_H_out", - group = -""" + index=22, + label="Cs_H_out", + group=""" 1 *2 Cs u0 {2,S} {3,S} {4,S} 2 *3 H u0 {1,S} 3 R u0 {1,S} 4 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: RnH L2: R2Hall L2: R3Hall @@ -355,9 +335,8 @@ ) forbidden( - label = "[CH2]C1=CC(C)CC=C1_1", - group = -""" + label="[CH2]C1=CC(C)CC=C1_1", + group=""" 1 *5 C u0 {2,S} {3,S} {8,S} 2 *2 C u0 {1,S} {9,S} 3 C u0 {1,S} {4,S} @@ -368,17 +347,15 @@ 8 *6 C u0 {1,S} {6,D} 9 *3 H u0 {2,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "[CH2]C1=CC(C)CC=C1_2", - group = -""" + label="[CH2]C1=CC(C)CC=C1_2", + group=""" 1 *5 C u0 {2,S} {3,S} {8,S} 2 C u0 {1,S} 3 *2 C u0 {1,S} {4,S} {9,S} @@ -389,17 +366,15 @@ 8 *6 C u0 {1,S} {6,D} 9 *3 H u0 {3,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "[CH2]C1=CC(C)CC=C1_3", - group = -""" + label="[CH2]C1=CC(C)CC=C1_3", + group=""" 1 C u0 {2,S} {3,S} {8,S} 2 C u0 {1,S} 3 *2 C u0 {1,S} {4,S} {9,S} @@ -410,17 +385,15 @@ 8 C u0 {1,S} {6,D} 9 *3 H u0 {3,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "bridged56_1243", - group = -""" + label="bridged56_1243", + group=""" 1 *1 C u1 {2,S} {6,S} 2 *4 C u0 {1,S} {3,S} {7,S} 3 *2 C u0 {2,S} {4,S} {8,S} @@ -430,17 +403,15 @@ 7 C u0 {2,S} {5,S} 8 *3 H u0 {3,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "bridged56_1254", - group = -""" + label="bridged56_1254", + group=""" 1 *1 C u1 {2,S} {6,S} 2 *4 C u0 {1,S} {3,S} {7,S} 3 C u0 {2,S} {4,S} @@ -450,10 +421,8 @@ 7 C u0 {2,S} {5,S} 8 *3 H u0 {4,S} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py index 90f3800ee9..7096b26a61 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/intra_H_migration/rules.py @@ -7,23 +7,35 @@ """ entry( - index = 614, - label = "RnH;Y_rad_out;XH_out", - kinetics = ArrheniusEP(A=(1e+10,'s^-1'), n=0, alpha=0, E0=(25,'kcal/mol'), Tmin=(300,'K'), Tmax=(1500,'K')), - rank = 0, - shortDesc = """default""", + index=614, + label="RnH;Y_rad_out;XH_out", + kinetics=ArrheniusEP( + A=(1e10, "s^-1"), + n=0, + alpha=0, + E0=(25, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), + ), + rank=0, + shortDesc="""default""", ) entry( - index = 615, - label = "R6H;C_rad_out_single;Cs_H_out", - kinetics = ArrheniusEP(A=(5.48e+08,'s^-1'), n=1.62, alpha=0, E0=(38.76,'kcal/mol'), Tmin=(300,'K'), Tmax=(1500,'K')), - rank = 5, - shortDesc = """Currans's estimation [5] in his reaction type 5.""", - longDesc = -""" + index=615, + label="R6H;C_rad_out_single;Cs_H_out", + kinetics=ArrheniusEP( + A=(5.48e08, "s^-1"), + n=1.62, + alpha=0, + E0=(38.76, "kcal/mol"), + Tmin=(300, "K"), + Tmax=(1500, "K"), + ), + rank=5, + shortDesc="""Currans's estimation [5] in his reaction type 5.""", + longDesc=""" Test case with modified group from database. This data is definitly not scientifically accurate, so do not use it in model generation!!!" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py b/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py index 1f444430aa..3516ea2ca4 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/intra_substitutionS_isomerization/groups.py @@ -9,275 +9,257 @@ template(reactants=["XSYJ"], products=["XSYJ"], ownReverse=True) -recipe(actions=[ - ['BREAK_BOND', '*1', 1, '*2'], - ['FORM_BOND', '*1', 1, '*3'], - ['GAIN_RADICAL', '*2', '1'], - ['LOSE_RADICAL', '*3', '1'], -]) +recipe( + actions=[ + ["BREAK_BOND", "*1", 1, "*2"], + ["FORM_BOND", "*1", 1, "*3"], + ["GAIN_RADICAL", "*2", "1"], + ["LOSE_RADICAL", "*3", "1"], + ] +) entry( - index = 1, - label = "XSYJ", - group = "OR{XSR3J, XSR4J, XSR5J, XSR6J, XSR7J}", - kinetics = None, + index=1, + label="XSYJ", + group="OR{XSR3J, XSR4J, XSR5J, XSR6J, XSR7J}", + kinetics=None, ) boundaryAtoms = ["*1", "*3"] entry( - index = 2, - label = "YJ", - group = -""" + index=2, + label="YJ", + group=""" 1 *3 R!H u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 3, - label = "S-RR", - group = -""" + index=3, + label="S-RR", + group=""" 1 *1 S2s u0 {2,S} 2 *2 R!H u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 4, - label = "XSR3J", - group = -""" + index=4, + label="XSR3J", + group=""" 1 *3 R!H u1 {2,[S,D]} 2 *2 R!H u0 {1,[S,D]} {3,S} 3 *1 S2s u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 5, - label = "XSR3J_S", - group = -""" + index=5, + label="XSR3J_S", + group=""" 1 *3 R!H u1 {2,S} 2 *2 R!H u0 {1,S} {3,S} 3 *1 S2s u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 6, - label = "XSR3J_D", - group = -""" + index=6, + label="XSR3J_D", + group=""" 1 *3 R!H u1 {2,D} 2 *2 R!H u0 {1,D} {3,S} 3 *1 S2s u0 {2,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 7, - label = "XSR4J", - group = -""" + index=7, + label="XSR4J", + group=""" 1 *3 R!H u1 {2,[S,D]} 2 *4 R!H u0 {1,[S,D]} {3,[S,D]} 3 *2 R!H u0 {2,[S,D]} {4,S} 4 *1 S2s u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 8, - label = "XSR4J_SS", - group = -""" + index=8, + label="XSR4J_SS", + group=""" 1 *3 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,S} 3 *2 R!H u0 {2,S} {4,S} 4 *1 S2s u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 9, - label = "XSR4J_SD", - group = -""" + index=9, + label="XSR4J_SD", + group=""" 1 *3 R!H u1 {2,D} 2 *4 R!H u0 {1,D} {3,S} 3 *2 R!H u0 {2,S} {4,S} 4 *1 S2s u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 10, - label = "XSR4J_DS", - group = -""" + index=10, + label="XSR4J_DS", + group=""" 1 *3 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,D} 3 *2 R!H u0 {2,D} {4,S} 4 *1 S2s u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 11, - label = "XSR4J_DD", - group = -""" + index=11, + label="XSR4J_DD", + group=""" 1 *3 R!H u1 {2,D} 2 *4 R!H u0 {1,D} {3,D} 3 *2 R!H u0 {2,D} {4,S} 4 *1 S2s u0 {3,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 12, - label = "XSR5J", - group = -""" + index=12, + label="XSR5J", + group=""" 1 *3 R!H u1 {2,[S,D]} 2 *4 R!H u0 {1,[S,D]} {3,[S,D]} 3 *5 R!H u0 {2,[S,D]} {4,[S,D]} 4 *2 R!H u0 {3,[S,D]} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 13, - label = "XSR5J_SSS", - group = -""" + index=13, + label="XSR5J_SSS", + group=""" 1 *3 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,S} 3 *5 R!H u0 {2,S} {4,S} 4 *2 R!H u0 {3,S} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 14, - label = "XSR5J_SSD", - group = -""" + index=14, + label="XSR5J_SSD", + group=""" 1 *3 R!H u1 {2,D} 2 *4 R!H u0 {1,D} {3,S} 3 *5 R!H u0 {2,S} {4,S} 4 *2 R!H u0 {3,S} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 15, - label = "XSR5J_SDS", - group = -""" + index=15, + label="XSR5J_SDS", + group=""" 1 *3 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,D} 3 *5 R!H u0 {2,D} {4,S} 4 *2 R!H u0 {3,S} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 16, - label = "XSR5J_DSS", - group = -""" + index=16, + label="XSR5J_DSS", + group=""" 1 *3 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,S} 3 *5 R!H u0 {2,S} {4,D} 4 *2 R!H u0 {3,D} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 17, - label = "XSR5J_DDS", - group = -""" + index=17, + label="XSR5J_DDS", + group=""" 1 *3 R!H u1 {2,S} 2 *4 R!H u0 {1,S} {3,D} 3 *5 R!H u0 {2,D} {4,D} 4 *2 R!H u0 {3,D} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 18, - label = "XSR5J_DSD", - group = -""" + index=18, + label="XSR5J_DSD", + group=""" 1 *3 R!H u1 {2,D} 2 *4 R!H u0 {1,D} {3,S} 3 *5 R!H u0 {2,S} {4,D} 4 *2 R!H u0 {3,D} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 19, - label = "XSR5J_SDD", - group = -""" + index=19, + label="XSR5J_SDD", + group=""" 1 *3 R!H u1 {2,D} 2 *4 R!H u0 {1,D} {3,D} 3 *5 R!H u0 {2,D} {4,S} 4 *2 R!H u0 {3,S} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 20, - label = "XSR5J_DDD", - group = -""" + index=20, + label="XSR5J_DDD", + group=""" 1 *3 R!H u1 {2,D} 2 *4 R!H u0 {1,D} {3,D} 3 *5 R!H u0 {2,D} {4,D} 4 *2 R!H u0 {3,D} {5,S} 5 *1 S2s u0 {4,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 21, - label = "XSR6J", - group = -""" + index=21, + label="XSR6J", + group=""" 1 *3 R!H u1 {2,[S,D]} 2 *4 R!H u0 {1,[S,D]} {3,[S,D]} 3 *5 R!H u0 {2,[S,D]} {4,[S,D]} @@ -285,14 +267,13 @@ 5 *2 R!H u0 {4,[S,D]} {6,S} 6 *1 S2s u0 {5,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 22, - label = "XSR7J", - group = -""" + index=22, + label="XSR7J", + group=""" 1 *3 R!H u1 {2,[S,D]} 2 *4 R!H u0 {1,[S,D]} {3,[S,D]} 3 *5 R!H u0 {2,[S,D]} {4,[S,D]} @@ -301,236 +282,217 @@ 6 *2 R!H u0 {5,[S,D]} {7,S} 7 *1 S2s u0 {6,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 23, - label = "CJ", - group = -""" + index=23, + label="CJ", + group=""" 1 *3 C u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 25, - label = "CdsJ", - group = -""" + index=25, + label="CdsJ", + group=""" 1 *3 Cd u1 {2,D} 2 R!H u0 {1,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 36, - label = "CsJ", - group = -""" + index=36, + label="CsJ", + group=""" 1 *3 Cs u1 {2,S} {3,S} 2 R u0 {1,S} 3 R u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 82, - label = "SsJ", - group = -""" + index=82, + label="SsJ", + group=""" 1 *3 S2s u1 """, - kinetics = None, + kinetics=None, ) entry( - index = 149, - label = "S-HC", - group = -""" + index=149, + label="S-HC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 H u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 150, - label = "S-CC", - group = -""" + index=150, + label="S-CC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 151, - label = "S-CsC", - group = -""" + index=151, + label="S-CsC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 167, - label = "S-CtC", - group = -""" + index=167, + label="S-CtC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 168, - label = "S-CbC", - group = -""" + index=168, + label="S-CbC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 Cb u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 169, - label = "S-CdC", - group = -""" + index=169, + label="S-CdC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 *2 C u0 {1,S} 4 C u0 {2,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 172, - label = "S-CSs", - group = -""" + index=172, + label="S-CSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 *2 S u0 {1,S} 3 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 173, - label = "S-CsSs", - group = -""" + index=173, + label="S-CsSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 *2 S2s u0 {1,S} 3 Cs u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 178, - label = "S-CtSs", - group = -""" + index=178, + label="S-CtSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 *2 S2s u0 {1,S} 3 Ct u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 179, - label = "S-CbSs", - group = -""" + index=179, + label="S-CbSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 *2 S2s u0 {1,S} 3 Cb u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 180, - label = "S-CdSs", - group = -""" + index=180, + label="S-CdSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 *2 S2s u0 {1,S} 3 Cd u0 {1,S} {4,D} 4 C u0 {3,D} """, - kinetics = None, + kinetics=None, ) entry( - index = 183, - label = "S-SC", - group = -""" + index=183, + label="S-SC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 S u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 184, - label = "S-SsC", - group = -""" + index=184, + label="S-SsC", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 *2 C u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 188, - label = "S-HSs", - group = -""" + index=188, + label="S-HSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 H u0 {1,S} 3 *2 S2s u0 {1,S} """, - kinetics = None, + kinetics=None, ) entry( - index = 189, - label = "S-SsSs", - group = -""" + index=189, + label="S-SsSs", + group=""" 1 *1 S2s u0 {2,S} {3,S} 2 *2 S2s u0 {1,S} 3 S2s u0 {1,S} """, - kinetics = None, + kinetics=None, ) tree( -""" + """ L1: XSYJ L2: XSR3J L3: XSR3J_S @@ -578,29 +540,24 @@ ) forbidden( - label = "RR_13", - group = -""" + label="RR_13", + group=""" 1 *1 R u0 {2,[S,D]} 2 *3 R u1 {1,[S,D]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) forbidden( - label = "RR_birad", - group = -""" + label="RR_birad", + group=""" 1 *3 R u1 {2,[S,D]} 2 R u1 {1,[S,D]} """, - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/families/recommended.py b/test/rmgpy/test_data/testing_database/kinetics/families/recommended.py index 8043b9f674..01a7f2ead1 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/families/recommended.py +++ b/test/rmgpy/test_data/testing_database/kinetics/families/recommended.py @@ -11,15 +11,15 @@ """ default = { - 'Disproportionation', - 'H_Abstraction', - 'R_Addition_MultipleBond', - 'R_Recombination', + "Disproportionation", + "H_Abstraction", + "R_Addition_MultipleBond", + "R_Recombination", } pah = { - '1,2_shiftC', - '6_membered_central_C-C_shift', - 'Intra_R_Add_Exo_scission', - 'Intra_ene_reaction', + "1,2_shiftC", + "6_membered_central_C-C_shift", + "Intra_R_Add_Exo_scission", + "Intra_ene_reaction", } diff --git a/test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py index edac728102..b250b981c5 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/libraries/GRI-Mech3.0/reactions.py @@ -19,1994 +19,2368 @@ """ entry( - index = 1, - label = "O + H2 <=> H + OH", - degeneracy = 1, - kinetics = Arrhenius(A=(38700, 'cm^3/(mol*s)'), n=2.7, Ea=(6260, 'cal/mol'), T0=(1, 'K')), + index=1, + label="O + H2 <=> H + OH", + degeneracy=1, + kinetics=Arrhenius( + A=(38700, "cm^3/(mol*s)"), n=2.7, Ea=(6260, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 2, - label = "O + HO2 <=> OH + O2", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=2, + label="O + HO2 <=> OH + O2", + degeneracy=1, + kinetics=Arrhenius(A=(2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 3, - label = "O + H2O2 <=> OH + HO2", - degeneracy = 1, - kinetics = Arrhenius(A=(9.63e+06, 'cm^3/(mol*s)'), n=2, Ea=(4000, 'cal/mol'), T0=(1, 'K')), + index=3, + label="O + H2O2 <=> OH + HO2", + degeneracy=1, + kinetics=Arrhenius( + A=(9.63e06, "cm^3/(mol*s)"), n=2, Ea=(4000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 4, - label = "O + CH <=> H + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(5.7e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=4, + label="O + CH <=> H + CO", + degeneracy=1, + kinetics=Arrhenius(A=(5.7e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 5, - label = "O + CH2 <=> H + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(8e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=5, + label="O + CH2 <=> H + HCO", + degeneracy=1, + kinetics=Arrhenius(A=(8e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 6, - label = "O + CH2(S) <=> H2 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=6, + label="O + CH2(S) <=> H2 + CO", + degeneracy=1, + kinetics=Arrhenius(A=(1.5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 7, - label = "O + CH2(S) <=> H + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=7, + label="O + CH2(S) <=> H + HCO", + degeneracy=1, + kinetics=Arrhenius(A=(1.5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 8, - label = "O + CH3 <=> H + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(5.06e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=8, + label="O + CH3 <=> H + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(5.06e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 9, - label = "O + CH4 <=> OH + CH3", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.02e+09, 'cm^3/(mol*s)'), - n = 1.5, - Ea = (8600, 'cal/mol'), - T0 = (1, 'K'), + index=9, + label="O + CH4 <=> OH + CH3", + degeneracy=1, + kinetics=Arrhenius( + A=(1.02e09, "cm^3/(mol*s)"), + n=1.5, + Ea=(8600, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 10, - label = "O + HCO <=> OH + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=10, + label="O + HCO <=> OH + CO", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 11, - label = "O + HCO <=> H + CO2", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=11, + label="O + HCO <=> H + CO2", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 12, - label = "O + CH2O <=> OH + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(3.9e+13, 'cm^3/(mol*s)'), n=0, Ea=(3540, 'cal/mol'), T0=(1, 'K')), + index=12, + label="O + CH2O <=> OH + HCO", + degeneracy=1, + kinetics=Arrhenius( + A=(3.9e13, "cm^3/(mol*s)"), n=0, Ea=(3540, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 13, - label = "O + CH2OH <=> OH + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=13, + label="O + CH2OH <=> OH + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 14, - label = "O + CH3O <=> OH + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=14, + label="O + CH3O <=> OH + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 15, - label = "O + CH3OH <=> OH + CH2OH", - degeneracy = 1, - kinetics = Arrhenius(A=(388000, 'cm^3/(mol*s)'), n=2.5, Ea=(3100, 'cal/mol'), T0=(1, 'K')), + index=15, + label="O + CH3OH <=> OH + CH2OH", + degeneracy=1, + kinetics=Arrhenius( + A=(388000, "cm^3/(mol*s)"), n=2.5, Ea=(3100, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 16, - label = "O + CH3OH <=> OH + CH3O", - degeneracy = 1, - kinetics = Arrhenius(A=(130000, 'cm^3/(mol*s)'), n=2.5, Ea=(5000, 'cal/mol'), T0=(1, 'K')), + index=16, + label="O + CH3OH <=> OH + CH3O", + degeneracy=1, + kinetics=Arrhenius( + A=(130000, "cm^3/(mol*s)"), n=2.5, Ea=(5000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 17, - label = "O + C2H <=> CH + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=17, + label="O + C2H <=> CH + CO", + degeneracy=1, + kinetics=Arrhenius(A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 18, - label = "O + C2H2 <=> H + HCCO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.35e+07, 'cm^3/(mol*s)'), n=2, Ea=(1900, 'cal/mol'), T0=(1, 'K')), + index=18, + label="O + C2H2 <=> H + HCCO", + degeneracy=1, + kinetics=Arrhenius( + A=(1.35e07, "cm^3/(mol*s)"), n=2, Ea=(1900, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 19, - label = "O + C2H2 <=> OH + C2H", - degeneracy = 1, - kinetics = Arrhenius( - A = (4.6e+19, 'cm^3/(mol*s)'), - n = -1.41, - Ea = (28950, 'cal/mol'), - T0 = (1, 'K'), + index=19, + label="O + C2H2 <=> OH + C2H", + degeneracy=1, + kinetics=Arrhenius( + A=(4.6e19, "cm^3/(mol*s)"), + n=-1.41, + Ea=(28950, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 20, - label = "O + C2H2 <=> CO + CH2", - degeneracy = 1, - kinetics = Arrhenius(A=(6.94e+06, 'cm^3/(mol*s)'), n=2, Ea=(1900, 'cal/mol'), T0=(1, 'K')), + index=20, + label="O + C2H2 <=> CO + CH2", + degeneracy=1, + kinetics=Arrhenius( + A=(6.94e06, "cm^3/(mol*s)"), n=2, Ea=(1900, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 21, - label = "O + C2H3 <=> H + CH2CO", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=21, + label="O + C2H3 <=> H + CH2CO", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 22, - label = "O + C2H4 <=> CH3 + HCO", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.25e+07, 'cm^3/(mol*s)'), - n = 1.83, - Ea = (220, 'cal/mol'), - T0 = (1, 'K'), + index=22, + label="O + C2H4 <=> CH3 + HCO", + degeneracy=1, + kinetics=Arrhenius( + A=(1.25e07, "cm^3/(mol*s)"), + n=1.83, + Ea=(220, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 23, - label = "O + C2H5 <=> CH3 + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2.24e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=23, + label="O + C2H5 <=> CH3 + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(2.24e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 24, - label = "O + C2H6 <=> OH + C2H5", - degeneracy = 1, - kinetics = Arrhenius( - A = (8.98e+07, 'cm^3/(mol*s)'), - n = 1.92, - Ea = (5690, 'cal/mol'), - T0 = (1, 'K'), + index=24, + label="O + C2H6 <=> OH + C2H5", + degeneracy=1, + kinetics=Arrhenius( + A=(8.98e07, "cm^3/(mol*s)"), + n=1.92, + Ea=(5690, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 25, - label = "O + HCCO <=> H + CO + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=25, + label="O + HCCO <=> H + CO + CO", + degeneracy=1, + kinetics=Arrhenius(A=(1e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 26, - label = "O + CH2CO <=> OH + HCCO", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(8000, 'cal/mol'), T0=(1, 'K')), + index=26, + label="O + CH2CO <=> OH + HCCO", + degeneracy=1, + kinetics=Arrhenius( + A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(8000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 27, - label = "O + CH2CO <=> CH2 + CO2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.75e+12, 'cm^3/(mol*s)'), n=0, Ea=(1350, 'cal/mol'), T0=(1, 'K')), + index=27, + label="O + CH2CO <=> CH2 + CO2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.75e12, "cm^3/(mol*s)"), n=0, Ea=(1350, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 28, - label = "O2 + CO <=> O + CO2", - degeneracy = 1, - kinetics = Arrhenius(A=(2.5e+12, 'cm^3/(mol*s)'), n=0, Ea=(47800, 'cal/mol'), T0=(1, 'K')), + index=28, + label="O2 + CO <=> O + CO2", + degeneracy=1, + kinetics=Arrhenius( + A=(2.5e12, "cm^3/(mol*s)"), n=0, Ea=(47800, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 29, - label = "O2 + CH2O <=> HO2 + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+14, 'cm^3/(mol*s)'), n=0, Ea=(40000, 'cal/mol'), T0=(1, 'K')), + index=29, + label="O2 + CH2O <=> HO2 + HCO", + degeneracy=1, + kinetics=Arrhenius( + A=(1e14, "cm^3/(mol*s)"), n=0, Ea=(40000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 30, - label = "H + O2 + O2 <=> HO2 + O2", - degeneracy = 1, - kinetics = Arrhenius( - A = (2.08e+19, 'cm^6/(mol^2*s)'), - n = -1.24, - Ea = (0, 'cal/mol'), - T0 = (1, 'K'), + index=30, + label="H + O2 + O2 <=> HO2 + O2", + degeneracy=1, + kinetics=Arrhenius( + A=(2.08e19, "cm^6/(mol^2*s)"), + n=-1.24, + Ea=(0, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 31, - label = "H + O2 + H2O <=> HO2 + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.126e+19, 'cm^6/(mol^2*s)'), - n = -0.76, - Ea = (0, 'cal/mol'), - T0 = (1, 'K'), + index=31, + label="H + O2 + H2O <=> HO2 + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1.126e19, "cm^6/(mol^2*s)"), + n=-0.76, + Ea=(0, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 32, - label = "H + O2 <=> O + OH", - degeneracy = 1, - kinetics = Arrhenius( - A = (2.65e+16, 'cm^3/(mol*s)'), - n = -0.6707, - Ea = (17041, 'cal/mol'), - T0 = (1, 'K'), + index=32, + label="H + O2 <=> O + OH", + degeneracy=1, + kinetics=Arrhenius( + A=(2.65e16, "cm^3/(mol*s)"), + n=-0.6707, + Ea=(17041, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 33, - label = "H + H + H2 <=> H2 + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(9e+16, 'cm^6/(mol^2*s)'), n=-0.6, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=33, + label="H + H + H2 <=> H2 + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(9e16, "cm^6/(mol^2*s)"), n=-0.6, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 34, - label = "H + H + H2O <=> H2 + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(6e+19, 'cm^6/(mol^2*s)'), n=-1.25, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=34, + label="H + H + H2O <=> H2 + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(6e19, "cm^6/(mol^2*s)"), n=-1.25, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 35, - label = "H + H + CO2 <=> H2 + CO2", - degeneracy = 1, - kinetics = Arrhenius(A=(5.5e+20, 'cm^6/(mol^2*s)'), n=-2, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=35, + label="H + H + CO2 <=> H2 + CO2", + degeneracy=1, + kinetics=Arrhenius( + A=(5.5e20, "cm^6/(mol^2*s)"), n=-2, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 36, - label = "H + HO2 <=> O + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(3.97e+12, 'cm^3/(mol*s)'), n=0, Ea=(671, 'cal/mol'), T0=(1, 'K')), + index=36, + label="H + HO2 <=> O + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.97e12, "cm^3/(mol*s)"), n=0, Ea=(671, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 37, - label = "H + HO2 <=> O2 + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(4.48e+13, 'cm^3/(mol*s)'), n=0, Ea=(1068, 'cal/mol'), T0=(1, 'K')), + index=37, + label="H + HO2 <=> O2 + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(4.48e13, "cm^3/(mol*s)"), n=0, Ea=(1068, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 38, - label = "H + HO2 <=> OH + OH", - degeneracy = 1, - kinetics = Arrhenius(A=(8.4e+13, 'cm^3/(mol*s)'), n=0, Ea=(635, 'cal/mol'), T0=(1, 'K')), + index=38, + label="H + HO2 <=> OH + OH", + degeneracy=1, + kinetics=Arrhenius( + A=(8.4e13, "cm^3/(mol*s)"), n=0, Ea=(635, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 39, - label = "H + H2O2 <=> HO2 + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.21e+07, 'cm^3/(mol*s)'), n=2, Ea=(5200, 'cal/mol'), T0=(1, 'K')), + index=39, + label="H + H2O2 <=> HO2 + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.21e07, "cm^3/(mol*s)"), n=2, Ea=(5200, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 40, - label = "H + H2O2 <=> OH + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(3600, 'cal/mol'), T0=(1, 'K')), + index=40, + label="H + H2O2 <=> OH + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(3600, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 41, - label = "H + CH <=> C + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.65e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=41, + label="H + CH <=> C + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.65e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 42, - label = "H + CH2(S) <=> CH + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=42, + label="H + CH2(S) <=> CH + H2", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 43, - label = "H + CH4 <=> CH3 + H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (6.6e+08, 'cm^3/(mol*s)'), - n = 1.62, - Ea = (10840, 'cal/mol'), - T0 = (1, 'K'), + index=43, + label="H + CH4 <=> CH3 + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(6.6e08, "cm^3/(mol*s)"), + n=1.62, + Ea=(10840, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 44, - label = "H + HCO <=> H2 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(7.34e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=44, + label="H + HCO <=> H2 + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(7.34e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 45, - label = "H + CH2O <=> HCO + H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (5.74e+07, 'cm^3/(mol*s)'), - n = 1.9, - Ea = (2742, 'cal/mol'), - T0 = (1, 'K'), + index=45, + label="H + CH2O <=> HCO + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(5.74e07, "cm^3/(mol*s)"), + n=1.9, + Ea=(2742, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 46, - label = "H + CH2OH <=> H2 + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=46, + label="H + CH2OH <=> H2 + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 47, - label = "H + CH2OH <=> OH + CH3", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.65e+11, 'cm^3/(mol*s)'), - n = 0.65, - Ea = (-284, 'cal/mol'), - T0 = (1, 'K'), + index=47, + label="H + CH2OH <=> OH + CH3", + degeneracy=1, + kinetics=Arrhenius( + A=(1.65e11, "cm^3/(mol*s)"), + n=0.65, + Ea=(-284, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 48, - label = "H + CH2OH <=> CH2(S) + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (3.28e+13, 'cm^3/(mol*s)'), - n = -0.09, - Ea = (610, 'cal/mol'), - T0 = (1, 'K'), + index=48, + label="H + CH2OH <=> CH2(S) + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.28e13, "cm^3/(mol*s)"), + n=-0.09, + Ea=(610, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 49, - label = "H + CH3O <=> H + CH2OH", - degeneracy = 1, - kinetics = Arrhenius( - A = (4.15e+07, 'cm^3/(mol*s)'), - n = 1.63, - Ea = (1924, 'cal/mol'), - T0 = (1, 'K'), + index=49, + label="H + CH3O <=> H + CH2OH", + degeneracy=1, + kinetics=Arrhenius( + A=(4.15e07, "cm^3/(mol*s)"), + n=1.63, + Ea=(1924, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 50, - label = "H + CH3O <=> H2 + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=50, + label="H + CH3O <=> H2 + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 51, - label = "H + CH3O <=> OH + CH3", - degeneracy = 1, - kinetics = Arrhenius(A=(1.5e+12, 'cm^3/(mol*s)'), n=0.5, Ea=(-110, 'cal/mol'), T0=(1, 'K')), + index=51, + label="H + CH3O <=> OH + CH3", + degeneracy=1, + kinetics=Arrhenius( + A=(1.5e12, "cm^3/(mol*s)"), n=0.5, Ea=(-110, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 52, - label = "H + CH3O <=> CH2(S) + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (2.62e+14, 'cm^3/(mol*s)'), - n = -0.23, - Ea = (1070, 'cal/mol'), - T0 = (1, 'K'), + index=52, + label="H + CH3O <=> CH2(S) + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(2.62e14, "cm^3/(mol*s)"), + n=-0.23, + Ea=(1070, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 53, - label = "H + CH3OH <=> CH2OH + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.7e+07, 'cm^3/(mol*s)'), n=2.1, Ea=(4870, 'cal/mol'), T0=(1, 'K')), + index=53, + label="H + CH3OH <=> CH2OH + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.7e07, "cm^3/(mol*s)"), n=2.1, Ea=(4870, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 54, - label = "H + CH3OH <=> CH3O + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(4.2e+06, 'cm^3/(mol*s)'), n=2.1, Ea=(4870, 'cal/mol'), T0=(1, 'K')), + index=54, + label="H + CH3OH <=> CH3O + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(4.2e06, "cm^3/(mol*s)"), n=2.1, Ea=(4870, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 55, - label = "H + C2H3 <=> H2 + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=55, + label="H + C2H3 <=> H2 + C2H2", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 56, - label = "H + C2H4 <=> C2H3 + H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.325e+06, 'cm^3/(mol*s)'), - n = 2.53, - Ea = (12240, 'cal/mol'), - T0 = (1, 'K'), + index=56, + label="H + C2H4 <=> C2H3 + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.325e06, "cm^3/(mol*s)"), + n=2.53, + Ea=(12240, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 57, - label = "H + C2H5 <=> H2 + C2H4", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=57, + label="H + C2H5 <=> H2 + C2H4", + degeneracy=1, + kinetics=Arrhenius(A=(2e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 58, - label = "H + C2H6 <=> C2H5 + H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.15e+08, 'cm^3/(mol*s)'), - n = 1.9, - Ea = (7530, 'cal/mol'), - T0 = (1, 'K'), + index=58, + label="H + C2H6 <=> C2H5 + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.15e08, "cm^3/(mol*s)"), + n=1.9, + Ea=(7530, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 59, - label = "H + HCCO <=> CH2(S) + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=59, + label="H + HCCO <=> CH2(S) + CO", + degeneracy=1, + kinetics=Arrhenius(A=(1e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 60, - label = "H + CH2CO <=> HCCO + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(8000, 'cal/mol'), T0=(1, 'K')), + index=60, + label="H + CH2CO <=> HCCO + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(8000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 61, - label = "H + CH2CO <=> CH3 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.13e+13, 'cm^3/(mol*s)'), n=0, Ea=(3428, 'cal/mol'), T0=(1, 'K')), + index=61, + label="H + CH2CO <=> CH3 + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(1.13e13, "cm^3/(mol*s)"), n=0, Ea=(3428, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 62, - label = "H + HCCOH <=> H + CH2CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=62, + label="H + HCCOH <=> H + CH2CO", + degeneracy=1, + kinetics=Arrhenius(A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 63, - label = "OH + H2 <=> H + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (2.16e+08, 'cm^3/(mol*s)'), - n = 1.51, - Ea = (3430, 'cal/mol'), - T0 = (1, 'K'), + index=63, + label="OH + H2 <=> H + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(2.16e08, "cm^3/(mol*s)"), + n=1.51, + Ea=(3430, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 64, - label = "OH + OH <=> O + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(35700, 'cm^3/(mol*s)'), n=2.4, Ea=(-2110, 'cal/mol'), T0=(1, 'K')), + index=64, + label="OH + OH <=> O + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(35700, "cm^3/(mol*s)"), n=2.4, Ea=(-2110, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 65, - label = "OH + HO2 <=> O2 + H2O", - degeneracy = 1, - duplicate = True, - kinetics = MultiArrhenius( - arrhenius = [ - Arrhenius(A=(1.45e+13, 'cm^3/(mol*s)'), n=0, Ea=(-500, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(5e+15, 'cm^3/(mol*s)'), n=0, Ea=(17330, 'cal/mol'), T0=(1, 'K')), + index=65, + label="OH + HO2 <=> O2 + H2O", + degeneracy=1, + duplicate=True, + kinetics=MultiArrhenius( + arrhenius=[ + Arrhenius( + A=(1.45e13, "cm^3/(mol*s)"), n=0, Ea=(-500, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(5e15, "cm^3/(mol*s)"), n=0, Ea=(17330, "cal/mol"), T0=(1, "K") + ), ], ), ) entry( - index = 66, - label = "OH + H2O2 <=> HO2 + H2O", - degeneracy = 1, - duplicate = True, - kinetics = MultiArrhenius( - arrhenius = [ - Arrhenius(A=(2e+12, 'cm^3/(mol*s)'), n=0, Ea=(427, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(1.7e+18, 'cm^3/(mol*s)'), n=0, Ea=(29410, 'cal/mol'), T0=(1, 'K')), + index=66, + label="OH + H2O2 <=> HO2 + H2O", + degeneracy=1, + duplicate=True, + kinetics=MultiArrhenius( + arrhenius=[ + Arrhenius(A=(2e12, "cm^3/(mol*s)"), n=0, Ea=(427, "cal/mol"), T0=(1, "K")), + Arrhenius( + A=(1.7e18, "cm^3/(mol*s)"), n=0, Ea=(29410, "cal/mol"), T0=(1, "K") + ), ], ), ) entry( - index = 68, - label = "OH + C <=> H + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=68, + label="OH + C <=> H + CO", + degeneracy=1, + kinetics=Arrhenius(A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 69, - label = "OH + CH <=> H + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=69, + label="OH + CH <=> H + HCO", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 70, - label = "OH + CH2 <=> H + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=70, + label="OH + CH2 <=> H + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 71, - label = "OH + CH2 <=> CH + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1.13e+07, 'cm^3/(mol*s)'), n=2, Ea=(3000, 'cal/mol'), T0=(1, 'K')), + index=71, + label="OH + CH2 <=> CH + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1.13e07, "cm^3/(mol*s)"), n=2, Ea=(3000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 72, - label = "OH + CH2(S) <=> H + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=72, + label="OH + CH2(S) <=> H + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 73, - label = "OH + CH3 <=> CH2 + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(5.6e+07, 'cm^3/(mol*s)'), n=1.6, Ea=(5420, 'cal/mol'), T0=(1, 'K')), + index=73, + label="OH + CH3 <=> CH2 + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(5.6e07, "cm^3/(mol*s)"), n=1.6, Ea=(5420, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 74, - label = "OH + CH3 <=> CH2(S) + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (6.44e+17, 'cm^3/(mol*s)'), - n = -1.34, - Ea = (1417, 'cal/mol'), - T0 = (1, 'K'), + index=74, + label="OH + CH3 <=> CH2(S) + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(6.44e17, "cm^3/(mol*s)"), + n=-1.34, + Ea=(1417, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 75, - label = "OH + CH4 <=> CH3 + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+08, 'cm^3/(mol*s)'), n=1.6, Ea=(3120, 'cal/mol'), T0=(1, 'K')), + index=75, + label="OH + CH4 <=> CH3 + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1e08, "cm^3/(mol*s)"), n=1.6, Ea=(3120, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 76, - label = "OH + CO <=> H + CO2", - degeneracy = 1, - kinetics = Arrhenius( - A = (4.76e+07, 'cm^3/(mol*s)'), - n = 1.228, - Ea = (70, 'cal/mol'), - T0 = (1, 'K'), + index=76, + label="OH + CO <=> H + CO2", + degeneracy=1, + kinetics=Arrhenius( + A=(4.76e07, "cm^3/(mol*s)"), + n=1.228, + Ea=(70, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 77, - label = "OH + HCO <=> H2O + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=77, + label="OH + HCO <=> H2O + CO", + degeneracy=1, + kinetics=Arrhenius(A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 78, - label = "OH + CH2O <=> HCO + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (3.43e+09, 'cm^3/(mol*s)'), - n = 1.18, - Ea = (-447, 'cal/mol'), - T0 = (1, 'K'), + index=78, + label="OH + CH2O <=> HCO + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.43e09, "cm^3/(mol*s)"), + n=1.18, + Ea=(-447, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 79, - label = "OH + CH2OH <=> H2O + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=79, + label="OH + CH2OH <=> H2O + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(5e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 80, - label = "OH + CH3O <=> H2O + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=80, + label="OH + CH3O <=> H2O + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(5e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 81, - label = "OH + CH3OH <=> CH2OH + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1.44e+06, 'cm^3/(mol*s)'), n=2, Ea=(-840, 'cal/mol'), T0=(1, 'K')), + index=81, + label="OH + CH3OH <=> CH2OH + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1.44e06, "cm^3/(mol*s)"), n=2, Ea=(-840, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 82, - label = "OH + CH3OH <=> CH3O + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(6.3e+06, 'cm^3/(mol*s)'), n=2, Ea=(1500, 'cal/mol'), T0=(1, 'K')), + index=82, + label="OH + CH3OH <=> CH3O + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(6.3e06, "cm^3/(mol*s)"), n=2, Ea=(1500, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 83, - label = "OH + C2H <=> H + HCCO", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=83, + label="OH + C2H <=> H + HCCO", + degeneracy=1, + kinetics=Arrhenius(A=(2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 84, - label = "OH + C2H2 <=> H + CH2CO", - degeneracy = 1, - kinetics = Arrhenius( - A = (0.000218, 'cm^3/(mol*s)'), - n = 4.5, - Ea = (-1000, 'cal/mol'), - T0 = (1, 'K'), + index=84, + label="OH + C2H2 <=> H + CH2CO", + degeneracy=1, + kinetics=Arrhenius( + A=(0.000218, "cm^3/(mol*s)"), + n=4.5, + Ea=(-1000, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 85, - label = "OH + C2H2 <=> H + HCCOH", - degeneracy = 1, - kinetics = Arrhenius(A=(504000, 'cm^3/(mol*s)'), n=2.3, Ea=(13500, 'cal/mol'), T0=(1, 'K')), + index=85, + label="OH + C2H2 <=> H + HCCOH", + degeneracy=1, + kinetics=Arrhenius( + A=(504000, "cm^3/(mol*s)"), n=2.3, Ea=(13500, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 86, - label = "OH + C2H2 <=> C2H + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(3.37e+07, 'cm^3/(mol*s)'), n=2, Ea=(14000, 'cal/mol'), T0=(1, 'K')), + index=86, + label="OH + C2H2 <=> C2H + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.37e07, "cm^3/(mol*s)"), n=2, Ea=(14000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 87, - label = "OH + C2H2 <=> CH3 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(0.000483, 'cm^3/(mol*s)'), n=4, Ea=(-2000, 'cal/mol'), T0=(1, 'K')), + index=87, + label="OH + C2H2 <=> CH3 + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(0.000483, "cm^3/(mol*s)"), n=4, Ea=(-2000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 88, - label = "OH + C2H3 <=> H2O + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=88, + label="OH + C2H3 <=> H2O + C2H2", + degeneracy=1, + kinetics=Arrhenius(A=(5e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 89, - label = "OH + C2H4 <=> C2H3 + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(3.6e+06, 'cm^3/(mol*s)'), n=2, Ea=(2500, 'cal/mol'), T0=(1, 'K')), + index=89, + label="OH + C2H4 <=> C2H3 + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.6e06, "cm^3/(mol*s)"), n=2, Ea=(2500, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 90, - label = "OH + C2H6 <=> C2H5 + H2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (3.54e+06, 'cm^3/(mol*s)'), - n = 2.12, - Ea = (870, 'cal/mol'), - T0 = (1, 'K'), + index=90, + label="OH + C2H6 <=> C2H5 + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.54e06, "cm^3/(mol*s)"), + n=2.12, + Ea=(870, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 91, - label = "OH + CH2CO <=> HCCO + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(7.5e+12, 'cm^3/(mol*s)'), n=0, Ea=(2000, 'cal/mol'), T0=(1, 'K')), + index=91, + label="OH + CH2CO <=> HCCO + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(7.5e12, "cm^3/(mol*s)"), n=0, Ea=(2000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 92, - label = "HO2 + HO2 <=> O2 + H2O2", - degeneracy = 1, - duplicate = True, - kinetics = MultiArrhenius( - arrhenius = [ - Arrhenius(A=(1.3e+11, 'cm^3/(mol*s)'), n=0, Ea=(-1630, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(4.2e+14, 'cm^3/(mol*s)'), n=0, Ea=(12000, 'cal/mol'), T0=(1, 'K')), + index=92, + label="HO2 + HO2 <=> O2 + H2O2", + degeneracy=1, + duplicate=True, + kinetics=MultiArrhenius( + arrhenius=[ + Arrhenius( + A=(1.3e11, "cm^3/(mol*s)"), n=0, Ea=(-1630, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(4.2e14, "cm^3/(mol*s)"), n=0, Ea=(12000, "cal/mol"), T0=(1, "K") + ), ], ), ) entry( - index = 94, - label = "HO2 + CH2 <=> OH + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=94, + label="HO2 + CH2 <=> OH + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 95, - label = "HO2 + CH3 <=> O2 + CH4", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=95, + label="HO2 + CH3 <=> O2 + CH4", + degeneracy=1, + kinetics=Arrhenius(A=(1e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 96, - label = "HO2 + CH3 <=> OH + CH3O", - degeneracy = 1, - kinetics = Arrhenius(A=(3.78e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), -) - -entry( - index = 97, - label = "HO2 + CO <=> OH + CO2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.5e+14, 'cm^3/(mol*s)'), n=0, Ea=(23600, 'cal/mol'), T0=(1, 'K')), -) - -entry( - index = 98, - label = "HO2 + CH2O <=> HCO + H2O2", - degeneracy = 1, - kinetics = Arrhenius(A=(5.6e+06, 'cm^3/(mol*s)'), n=2, Ea=(12000, 'cal/mol'), T0=(1, 'K')), + index=96, + label="HO2 + CH3 <=> OH + CH3O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.78e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 99, - label = "C + O2 <=> O + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(5.8e+13, 'cm^3/(mol*s)'), n=0, Ea=(576, 'cal/mol'), T0=(1, 'K')), + index=97, + label="HO2 + CO <=> OH + CO2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.5e14, "cm^3/(mol*s)"), n=0, Ea=(23600, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 100, - label = "C + CH2 <=> H + C2H", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=98, + label="HO2 + CH2O <=> HCO + H2O2", + degeneracy=1, + kinetics=Arrhenius( + A=(5.6e06, "cm^3/(mol*s)"), n=2, Ea=(12000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 101, - label = "C + CH3 <=> H + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=99, + label="C + O2 <=> O + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(5.8e13, "cm^3/(mol*s)"), n=0, Ea=(576, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 102, - label = "CH + O2 <=> O + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(6.71e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=100, + label="C + CH2 <=> H + C2H", + degeneracy=1, + kinetics=Arrhenius(A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 103, - label = "CH + H2 <=> H + CH2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.08e+14, 'cm^3/(mol*s)'), n=0, Ea=(3110, 'cal/mol'), T0=(1, 'K')), + index=101, + label="C + CH3 <=> H + C2H2", + degeneracy=1, + kinetics=Arrhenius(A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 104, - label = "CH + H2O <=> H + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(5.71e+12, 'cm^3/(mol*s)'), n=0, Ea=(-755, 'cal/mol'), T0=(1, 'K')), + index=102, + label="CH + O2 <=> O + HCO", + degeneracy=1, + kinetics=Arrhenius( + A=(6.71e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 105, - label = "CH + CH2 <=> H + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(4e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=103, + label="CH + H2 <=> H + CH2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.08e14, "cm^3/(mol*s)"), n=0, Ea=(3110, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 106, - label = "CH + CH3 <=> H + C2H3", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=104, + label="CH + H2O <=> H + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(5.71e12, "cm^3/(mol*s)"), n=0, Ea=(-755, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 107, - label = "CH + CH4 <=> H + C2H4", - degeneracy = 1, - kinetics = Arrhenius(A=(6e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=105, + label="CH + CH2 <=> H + C2H2", + degeneracy=1, + kinetics=Arrhenius(A=(4e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 108, - label = "CH + CO2 <=> HCO + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.9e+14, 'cm^3/(mol*s)'), n=0, Ea=(15792, 'cal/mol'), T0=(1, 'K')), + index=106, + label="CH + CH3 <=> H + C2H3", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 109, - label = "CH + CH2O <=> H + CH2CO", - degeneracy = 1, - kinetics = Arrhenius(A=(9.46e+13, 'cm^3/(mol*s)'), n=0, Ea=(-515, 'cal/mol'), T0=(1, 'K')), + index=107, + label="CH + CH4 <=> H + C2H4", + degeneracy=1, + kinetics=Arrhenius(A=(6e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 110, - label = "CH + HCCO <=> CO + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=108, + label="CH + CO2 <=> HCO + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(1.9e14, "cm^3/(mol*s)"), n=0, Ea=(15792, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 111, - label = "CH2 + O2 => OH + H + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(5e+12, 'cm^3/(mol*s)'), n=0, Ea=(1500, 'cal/mol'), T0=(1, 'K')), + index=109, + label="CH + CH2O <=> H + CH2CO", + degeneracy=1, + kinetics=Arrhenius( + A=(9.46e13, "cm^3/(mol*s)"), n=0, Ea=(-515, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 112, - label = "CH2 + H2 <=> H + CH3", - degeneracy = 1, - kinetics = Arrhenius(A=(500000, 'cm^3/(mol*s)'), n=2, Ea=(7230, 'cal/mol'), T0=(1, 'K')), + index=110, + label="CH + HCCO <=> CO + C2H2", + degeneracy=1, + kinetics=Arrhenius(A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 113, - label = "CH2 + CH2 <=> H2 + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.6e+15, 'cm^3/(mol*s)'), n=0, Ea=(11944, 'cal/mol'), T0=(1, 'K')), + index=111, + label="CH2 + O2 => OH + H + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(5e12, "cm^3/(mol*s)"), n=0, Ea=(1500, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 114, - label = "CH2 + CH3 <=> H + C2H4", - degeneracy = 1, - kinetics = Arrhenius(A=(4e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=112, + label="CH2 + H2 <=> H + CH3", + degeneracy=1, + kinetics=Arrhenius( + A=(500000, "cm^3/(mol*s)"), n=2, Ea=(7230, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 115, - label = "CH2 + CH4 <=> CH3 + CH3", - degeneracy = 1, - kinetics = Arrhenius(A=(2.46e+06, 'cm^3/(mol*s)'), n=2, Ea=(8270, 'cal/mol'), T0=(1, 'K')), + index=113, + label="CH2 + CH2 <=> H2 + C2H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.6e15, "cm^3/(mol*s)"), n=0, Ea=(11944, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 116, - label = "CH2 + HCCO <=> C2H3 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=114, + label="CH2 + CH3 <=> H + C2H4", + degeneracy=1, + kinetics=Arrhenius(A=(4e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 117, - label = "CH2(S) + O2 <=> H + OH + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(2.8e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=115, + label="CH2 + CH4 <=> CH3 + CH3", + degeneracy=1, + kinetics=Arrhenius( + A=(2.46e06, "cm^3/(mol*s)"), n=2, Ea=(8270, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 118, - label = "CH2(S) + O2 <=> CO + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1.2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=116, + label="CH2 + HCCO <=> C2H3 + CO", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 119, - label = "CH2(S) + H2 <=> CH3 + H", - degeneracy = 1, - kinetics = Arrhenius(A=(7e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=117, + label="CH2(S) + O2 <=> H + OH + CO", + degeneracy=1, + kinetics=Arrhenius(A=(2.8e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 120, - label = "CH2(S) + H2O <=> CH2 + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=118, + label="CH2(S) + O2 <=> CO + H2O", + degeneracy=1, + kinetics=Arrhenius(A=(1.2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 121, - label = "CH2(S) + CH3 <=> H + C2H4", - degeneracy = 1, - kinetics = Arrhenius(A=(1.2e+13, 'cm^3/(mol*s)'), n=0, Ea=(-570, 'cal/mol'), T0=(1, 'K')), + index=119, + label="CH2(S) + H2 <=> CH3 + H", + degeneracy=1, + kinetics=Arrhenius(A=(7e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 122, - label = "CH2(S) + CH4 <=> CH3 + CH3", - degeneracy = 1, - kinetics = Arrhenius(A=(1.6e+13, 'cm^3/(mol*s)'), n=0, Ea=(-570, 'cal/mol'), T0=(1, 'K')), + index=120, + label="CH2(S) + H2O <=> CH2 + H2O", + degeneracy=1, + kinetics=Arrhenius(A=(3e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 123, - label = "CH2(S) + CO <=> CH2 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(9e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=121, + label="CH2(S) + CH3 <=> H + C2H4", + degeneracy=1, + kinetics=Arrhenius( + A=(1.2e13, "cm^3/(mol*s)"), n=0, Ea=(-570, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 124, - label = "CH2(S) + CO2 <=> CH2 + CO2", - degeneracy = 1, - kinetics = Arrhenius(A=(7e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=122, + label="CH2(S) + CH4 <=> CH3 + CH3", + degeneracy=1, + kinetics=Arrhenius( + A=(1.6e13, "cm^3/(mol*s)"), n=0, Ea=(-570, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 125, - label = "CH2(S) + CO2 <=> CO + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1.4e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=123, + label="CH2(S) + CO <=> CH2 + CO", + degeneracy=1, + kinetics=Arrhenius(A=(9e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 126, - label = "CH2(S) + C2H6 <=> CH3 + C2H5", - degeneracy = 1, - kinetics = Arrhenius(A=(4e+13, 'cm^3/(mol*s)'), n=0, Ea=(-550, 'cal/mol'), T0=(1, 'K')), + index=124, + label="CH2(S) + CO2 <=> CH2 + CO2", + degeneracy=1, + kinetics=Arrhenius(A=(7e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 127, - label = "CH3 + O2 <=> O + CH3O", - degeneracy = 1, - kinetics = Arrhenius(A=(3.56e+13, 'cm^3/(mol*s)'), n=0, Ea=(30480, 'cal/mol'), T0=(1, 'K')), + index=125, + label="CH2(S) + CO2 <=> CO + CH2O", + degeneracy=1, + kinetics=Arrhenius(A=(1.4e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 128, - label = "CH3 + O2 <=> OH + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2.31e+12, 'cm^3/(mol*s)'), n=0, Ea=(20315, 'cal/mol'), T0=(1, 'K')), + index=126, + label="CH2(S) + C2H6 <=> CH3 + C2H5", + degeneracy=1, + kinetics=Arrhenius( + A=(4e13, "cm^3/(mol*s)"), n=0, Ea=(-550, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 129, - label = "CH3 + H2O2 <=> HO2 + CH4", - degeneracy = 1, - kinetics = Arrhenius(A=(24500, 'cm^3/(mol*s)'), n=2.47, Ea=(5180, 'cal/mol'), T0=(1, 'K')), + index=127, + label="CH3 + O2 <=> O + CH3O", + degeneracy=1, + kinetics=Arrhenius( + A=(3.56e13, "cm^3/(mol*s)"), n=0, Ea=(30480, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 130, - label = "CH3 + CH3 <=> H + C2H5", - degeneracy = 1, - kinetics = Arrhenius( - A = (6.84e+12, 'cm^3/(mol*s)'), - n = 0.1, - Ea = (10600, 'cal/mol'), - T0 = (1, 'K'), + index=128, + label="CH3 + O2 <=> OH + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(2.31e12, "cm^3/(mol*s)"), n=0, Ea=(20315, "cal/mol"), T0=(1, "K") ), ) entry( - index = 131, - label = "CH3 + HCO <=> CH4 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(2.648e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=129, + label="CH3 + H2O2 <=> HO2 + CH4", + degeneracy=1, + kinetics=Arrhenius( + A=(24500, "cm^3/(mol*s)"), n=2.47, Ea=(5180, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 132, - label = "CH3 + CH2O <=> HCO + CH4", - degeneracy = 1, - kinetics = Arrhenius(A=(3320, 'cm^3/(mol*s)'), n=2.81, Ea=(5860, 'cal/mol'), T0=(1, 'K')), + index=130, + label="CH3 + CH3 <=> H + C2H5", + degeneracy=1, + kinetics=Arrhenius( + A=(6.84e12, "cm^3/(mol*s)"), + n=0.1, + Ea=(10600, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 133, - label = "CH3 + CH3OH <=> CH2OH + CH4", - degeneracy = 1, - kinetics = Arrhenius(A=(3e+07, 'cm^3/(mol*s)'), n=1.5, Ea=(9940, 'cal/mol'), T0=(1, 'K')), + index=131, + label="CH3 + HCO <=> CH4 + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(2.648e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 134, - label = "CH3 + CH3OH <=> CH3O + CH4", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+07, 'cm^3/(mol*s)'), n=1.5, Ea=(9940, 'cal/mol'), T0=(1, 'K')), + index=132, + label="CH3 + CH2O <=> HCO + CH4", + degeneracy=1, + kinetics=Arrhenius( + A=(3320, "cm^3/(mol*s)"), n=2.81, Ea=(5860, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 135, - label = "CH3 + C2H4 <=> C2H3 + CH4", - degeneracy = 1, - kinetics = Arrhenius(A=(227000, 'cm^3/(mol*s)'), n=2, Ea=(9200, 'cal/mol'), T0=(1, 'K')), + index=133, + label="CH3 + CH3OH <=> CH2OH + CH4", + degeneracy=1, + kinetics=Arrhenius( + A=(3e07, "cm^3/(mol*s)"), n=1.5, Ea=(9940, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 136, - label = "CH3 + C2H6 <=> C2H5 + CH4", - degeneracy = 1, - kinetics = Arrhenius( - A = (6.14e+06, 'cm^3/(mol*s)'), - n = 1.74, - Ea = (10450, 'cal/mol'), - T0 = (1, 'K'), + index=134, + label="CH3 + CH3OH <=> CH3O + CH4", + degeneracy=1, + kinetics=Arrhenius( + A=(1e07, "cm^3/(mol*s)"), n=1.5, Ea=(9940, "cal/mol"), T0=(1, "K") ), ) entry( - index = 137, - label = "HCO + H2O <=> H + CO + H2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1.5e+18, 'cm^3/(mol*s)'), n=-1, Ea=(17000, 'cal/mol'), T0=(1, 'K')), + index=135, + label="CH3 + C2H4 <=> C2H3 + CH4", + degeneracy=1, + kinetics=Arrhenius( + A=(227000, "cm^3/(mol*s)"), n=2, Ea=(9200, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 138, - label = "HCO + O2 <=> HO2 + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.345e+13, 'cm^3/(mol*s)'), n=0, Ea=(400, 'cal/mol'), T0=(1, 'K')), + index=136, + label="CH3 + C2H6 <=> C2H5 + CH4", + degeneracy=1, + kinetics=Arrhenius( + A=(6.14e06, "cm^3/(mol*s)"), + n=1.74, + Ea=(10450, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 139, - label = "CH2OH + O2 <=> HO2 + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(1.8e+13, 'cm^3/(mol*s)'), n=0, Ea=(900, 'cal/mol'), T0=(1, 'K')), + index=137, + label="HCO + H2O <=> H + CO + H2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1.5e18, "cm^3/(mol*s)"), n=-1, Ea=(17000, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 140, - label = "CH3O + O2 <=> HO2 + CH2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (4.28e-13, 'cm^3/(mol*s)'), - n = 7.6, - Ea = (-3530, 'cal/mol'), - T0 = (1, 'K'), + index=138, + label="HCO + O2 <=> HO2 + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(1.345e13, "cm^3/(mol*s)"), n=0, Ea=(400, "cal/mol"), T0=(1, "K") ), ) entry( - index = 141, - label = "C2H + O2 <=> HCO + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(-755, 'cal/mol'), T0=(1, 'K')), + index=139, + label="CH2OH + O2 <=> HO2 + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(1.8e13, "cm^3/(mol*s)"), n=0, Ea=(900, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 142, - label = "C2H + H2 <=> H + C2H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (5.68e+10, 'cm^3/(mol*s)'), - n = 0.9, - Ea = (1993, 'cal/mol'), - T0 = (1, 'K'), + index=140, + label="CH3O + O2 <=> HO2 + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(4.28e-13, "cm^3/(mol*s)"), + n=7.6, + Ea=(-3530, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 143, - label = "C2H3 + O2 <=> HCO + CH2O", - degeneracy = 1, - kinetics = Arrhenius( - A = (4.58e+16, 'cm^3/(mol*s)'), - n = -1.39, - Ea = (1015, 'cal/mol'), - T0 = (1, 'K'), + index=141, + label="C2H + O2 <=> HCO + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(-755, "cal/mol"), T0=(1, "K") ), ) entry( - index = 144, - label = "C2H5 + O2 <=> HO2 + C2H4", - degeneracy = 1, - kinetics = Arrhenius(A=(8.4e+11, 'cm^3/(mol*s)'), n=0, Ea=(3875, 'cal/mol'), T0=(1, 'K')), + index=142, + label="C2H + H2 <=> H + C2H2", + degeneracy=1, + kinetics=Arrhenius( + A=(5.68e10, "cm^3/(mol*s)"), + n=0.9, + Ea=(1993, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 145, - label = "HCCO + O2 <=> OH + CO + CO", - degeneracy = 1, - kinetics = Arrhenius(A=(3.2e+12, 'cm^3/(mol*s)'), n=0, Ea=(854, 'cal/mol'), T0=(1, 'K')), + index=143, + label="C2H3 + O2 <=> HCO + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(4.58e16, "cm^3/(mol*s)"), + n=-1.39, + Ea=(1015, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 146, - label = "HCCO + HCCO <=> CO + CO + C2H2", - degeneracy = 1, - kinetics = Arrhenius(A=(1e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=144, + label="C2H5 + O2 <=> HO2 + C2H4", + degeneracy=1, + kinetics=Arrhenius( + A=(8.4e11, "cm^3/(mol*s)"), n=0, Ea=(3875, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 147, - label = "O + CH3 => H + H2 + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(3.37e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=145, + label="HCCO + O2 <=> OH + CO + CO", + degeneracy=1, + kinetics=Arrhenius( + A=(3.2e12, "cm^3/(mol*s)"), n=0, Ea=(854, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 148, - label = "O + C2H4 <=> H + CH2CHO", - degeneracy = 1, - kinetics = Arrhenius(A=(6.7e+06, 'cm^3/(mol*s)'), n=1.83, Ea=(220, 'cal/mol'), T0=(1, 'K')), + index=146, + label="HCCO + HCCO <=> CO + CO + C2H2", + degeneracy=1, + kinetics=Arrhenius(A=(1e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 149, - label = "O + C2H5 <=> H + CH3CHO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.096e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=147, + label="O + CH3 => H + H2 + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(3.37e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 151, - label = "OH + CH3 => H2 + CH2O", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(8e+09, 'cm^3/(mol*s)'), n=0.5, Ea=(-1755, 'cal/mol'), T0=(1, 'K')), + index=148, + label="O + C2H4 <=> H + CH2CHO", + degeneracy=1, + kinetics=Arrhenius( + A=(6.7e06, "cm^3/(mol*s)"), n=1.83, Ea=(220, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 152, - label = "CH2 + O2 => H + H + CO2", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(5.8e+12, 'cm^3/(mol*s)'), n=0, Ea=(1500, 'cal/mol'), T0=(1, 'K')), + index=149, + label="O + C2H5 <=> H + CH3CHO", + degeneracy=1, + kinetics=Arrhenius( + A=(1.096e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 153, - label = "CH2 + O2 <=> O + CH2O", - degeneracy = 1, - kinetics = Arrhenius(A=(2.4e+12, 'cm^3/(mol*s)'), n=0, Ea=(1500, 'cal/mol'), T0=(1, 'K')), + index=151, + label="OH + CH3 => H2 + CH2O", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(8e09, "cm^3/(mol*s)"), n=0.5, Ea=(-1755, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 154, - label = "CH2 + CH2 => H + H + C2H2", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(2e+14, 'cm^3/(mol*s)'), n=0, Ea=(10989, 'cal/mol'), T0=(1, 'K')), + index=152, + label="CH2 + O2 => H + H + CO2", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(5.8e12, "cm^3/(mol*s)"), n=0, Ea=(1500, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 155, - label = "CH2(S) + H2O => H2 + CH2O", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius( - A = (6.82e+10, 'cm^3/(mol*s)'), - n = 0.25, - Ea = (-935, 'cal/mol'), - T0 = (1, 'K'), + index=153, + label="CH2 + O2 <=> O + CH2O", + degeneracy=1, + kinetics=Arrhenius( + A=(2.4e12, "cm^3/(mol*s)"), n=0, Ea=(1500, "cal/mol"), T0=(1, "K") ), ) entry( - index = 156, - label = "C2H3 + O2 <=> O + CH2CHO", - degeneracy = 1, - kinetics = Arrhenius(A=(3.03e+11, 'cm^3/(mol*s)'), n=0.29, Ea=(11, 'cal/mol'), T0=(1, 'K')), + index=154, + label="CH2 + CH2 => H + H + C2H2", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(2e14, "cm^3/(mol*s)"), n=0, Ea=(10989, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 157, - label = "C2H3 + O2 <=> HO2 + C2H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (1.337e+06, 'cm^3/(mol*s)'), - n = 1.61, - Ea = (-384, 'cal/mol'), - T0 = (1, 'K'), + index=155, + label="CH2(S) + H2O => H2 + CH2O", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(6.82e10, "cm^3/(mol*s)"), + n=0.25, + Ea=(-935, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 158, - label = "O + CH3CHO <=> OH + CH2CHO", - degeneracy = 1, - kinetics = Arrhenius(A=(2.92e+12, 'cm^3/(mol*s)'), n=0, Ea=(1808, 'cal/mol'), T0=(1, 'K')), + index=156, + label="C2H3 + O2 <=> O + CH2CHO", + degeneracy=1, + kinetics=Arrhenius( + A=(3.03e11, "cm^3/(mol*s)"), n=0.29, Ea=(11, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 159, - label = "O + CH3CHO => OH + CH3 + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(2.92e+12, 'cm^3/(mol*s)'), n=0, Ea=(1808, 'cal/mol'), T0=(1, 'K')), + index=157, + label="C2H3 + O2 <=> HO2 + C2H2", + degeneracy=1, + kinetics=Arrhenius( + A=(1.337e06, "cm^3/(mol*s)"), + n=1.61, + Ea=(-384, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 160, - label = "O2 + CH3CHO => HO2 + CH3 + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(3.01e+13, 'cm^3/(mol*s)'), n=0, Ea=(39150, 'cal/mol'), T0=(1, 'K')), + index=158, + label="O + CH3CHO <=> OH + CH2CHO", + degeneracy=1, + kinetics=Arrhenius( + A=(2.92e12, "cm^3/(mol*s)"), n=0, Ea=(1808, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 161, - label = "H + CH3CHO <=> CH2CHO + H2", - degeneracy = 1, - kinetics = Arrhenius( - A = (2.05e+09, 'cm^3/(mol*s)'), - n = 1.16, - Ea = (2405, 'cal/mol'), - T0 = (1, 'K'), + index=159, + label="O + CH3CHO => OH + CH3 + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(2.92e12, "cm^3/(mol*s)"), n=0, Ea=(1808, "cal/mol"), T0=(1, "K") ), ) entry( - index = 162, - label = "H + CH3CHO => CH3 + H2 + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius( - A = (2.05e+09, 'cm^3/(mol*s)'), - n = 1.16, - Ea = (2405, 'cal/mol'), - T0 = (1, 'K'), + index=160, + label="O2 + CH3CHO => HO2 + CH3 + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(3.01e13, "cm^3/(mol*s)"), n=0, Ea=(39150, "cal/mol"), T0=(1, "K") ), ) entry( - index = 163, - label = "OH + CH3CHO => CH3 + H2O + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius( - A = (2.343e+10, 'cm^3/(mol*s)'), - n = 0.73, - Ea = (-1113, 'cal/mol'), - T0 = (1, 'K'), + index=161, + label="H + CH3CHO <=> CH2CHO + H2", + degeneracy=1, + kinetics=Arrhenius( + A=(2.05e09, "cm^3/(mol*s)"), + n=1.16, + Ea=(2405, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 164, - label = "HO2 + CH3CHO => CH3 + H2O2 + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(3.01e+12, 'cm^3/(mol*s)'), n=0, Ea=(11923, 'cal/mol'), T0=(1, 'K')), + index=162, + label="H + CH3CHO => CH3 + H2 + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(2.05e09, "cm^3/(mol*s)"), + n=1.16, + Ea=(2405, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 165, - label = "CH3 + CH3CHO => CH3 + CH4 + CO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius( - A = (2.72e+06, 'cm^3/(mol*s)'), - n = 1.77, - Ea = (5920, 'cal/mol'), - T0 = (1, 'K'), + index=163, + label="OH + CH3CHO => CH3 + H2O + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(2.343e10, "cm^3/(mol*s)"), + n=0.73, + Ea=(-1113, "cal/mol"), + T0=(1, "K"), ), ) entry( - index = 166, - label = "O + CH2CHO => H + CH2 + CO2", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(1.5e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=164, + label="HO2 + CH3CHO => CH3 + H2O2 + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(3.01e12, "cm^3/(mol*s)"), n=0, Ea=(11923, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 167, - label = "O2 + CH2CHO => OH + CO + CH2O", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(1.81e+10, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=165, + label="CH3 + CH3CHO => CH3 + CH4 + CO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(2.72e06, "cm^3/(mol*s)"), + n=1.77, + Ea=(5920, "cal/mol"), + T0=(1, "K"), + ), ) entry( - index = 168, - label = "O2 + CH2CHO => OH + HCO + HCO", - degeneracy = 1, - reversible = False, - kinetics = Arrhenius(A=(2.35e+10, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=166, + label="O + CH2CHO => H + CH2 + CO2", + degeneracy=1, + reversible=False, + kinetics=Arrhenius(A=(1.5e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 169, - label = "H + CH2CHO <=> CH3 + HCO", - degeneracy = 1, - kinetics = Arrhenius(A=(2.2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=167, + label="O2 + CH2CHO => OH + CO + CH2O", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(1.81e10, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 170, - label = "H + CH2CHO <=> CH2CO + H2", - degeneracy = 1, - kinetics = Arrhenius(A=(1.1e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=168, + label="O2 + CH2CHO => OH + HCO + HCO", + degeneracy=1, + reversible=False, + kinetics=Arrhenius( + A=(2.35e10, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), ) entry( - index = 171, - label = "OH + CH2CHO <=> H2O + CH2CO", - degeneracy = 1, - kinetics = Arrhenius(A=(1.2e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=169, + label="H + CH2CHO <=> CH3 + HCO", + degeneracy=1, + kinetics=Arrhenius(A=(2.2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 172, - label = "OH + CH2CHO <=> HCO + CH2OH", - degeneracy = 1, - kinetics = Arrhenius(A=(3.01e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), + index=170, + label="H + CH2CHO <=> CH2CO + H2", + degeneracy=1, + kinetics=Arrhenius(A=(1.1e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 173, - label = "O + O <=> O2", - degeneracy = 1, - kinetics = ThirdBody( - arrheniusLow = Arrhenius(A=(1.2e+17, 'cm^6/(mol^2*s)'), n=-1, Ea=(0, 'cal/mol'), T0=(1, 'K')), - efficiencies = {'C': 2, 'O=C=O': 3.6, 'CC': 3, 'O': 15.4, '[H][H]': 2.4, '[C]=O': 1.75, '[Ar]': 0.83}, - ), + index=171, + label="OH + CH2CHO <=> H2O + CH2CO", + degeneracy=1, + kinetics=Arrhenius(A=(1.2e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K")), ) entry( - index = 174, - label = "O + H <=> OH", - degeneracy = 1, - kinetics = ThirdBody( - arrheniusLow = Arrhenius(A=(5e+17, 'cm^6/(mol^2*s)'), n=-1, Ea=(0, 'cal/mol'), T0=(1, 'K')), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + index=172, + label="OH + CH2CHO <=> HCO + CH2OH", + degeneracy=1, + kinetics=Arrhenius( + A=(3.01e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") ), ) entry( - index = 175, - label = "H + O2 <=> HO2", - degeneracy = 1, - kinetics = ThirdBody( - arrheniusLow = Arrhenius( - A = (2.8e+18, 'cm^6/(mol^2*s)'), - n = -0.86, - Ea = (0, 'cal/mol'), - T0 = (1, 'K'), + index=173, + label="O + O <=> O2", + degeneracy=1, + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(1.2e17, "cm^6/(mol^2*s)"), n=-1, Ea=(0, "cal/mol"), T0=(1, "K") ), - efficiencies = {'O=C=O': 1.5, 'CC': 1.5, 'O': 0, '[O][O]': 0, 'N#N': 0, '[C]=O': 0.75, '[Ar]': 0}, + efficiencies={ + "C": 2, + "O=C=O": 3.6, + "CC": 3, + "O": 15.4, + "[H][H]": 2.4, + "[C]=O": 1.75, + "[Ar]": 0.83, + }, ), ) entry( - index = 176, - label = "H + H <=> H2", - degeneracy = 1, - kinetics = ThirdBody( - arrheniusLow = Arrhenius(A=(1e+18, 'cm^6/(mol^2*s)'), n=-1, Ea=(0, 'cal/mol'), T0=(1, 'K')), - efficiencies = {'C': 2, 'O=C=O': 0, 'CC': 3, 'O': 0, '[H][H]': 0, '[Ar]': 0.63}, - ), -) - -entry( - index = 177, - label = "H + OH <=> H2O", - degeneracy = 1, - kinetics = ThirdBody( - arrheniusLow = Arrhenius(A=(2.2e+22, 'cm^6/(mol^2*s)'), n=-2, Ea=(0, 'cal/mol'), T0=(1, 'K')), - efficiencies = {'CC': 3, 'C': 2, '[H][H]': 0.73, 'O': 3.65, '[Ar]': 0.38}, + index=174, + label="O + H <=> OH", + degeneracy=1, + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(5e17, "cm^6/(mol^2*s)"), n=-1, Ea=(0, "cal/mol"), T0=(1, "K") + ), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=175, + label="H + O2 <=> HO2", + degeneracy=1, + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(2.8e18, "cm^6/(mol^2*s)"), + n=-0.86, + Ea=(0, "cal/mol"), + T0=(1, "K"), + ), + efficiencies={ + "O=C=O": 1.5, + "CC": 1.5, + "O": 0, + "[O][O]": 0, + "N#N": 0, + "[C]=O": 0.75, + "[Ar]": 0, + }, ), ) entry( - index = 178, - label = "HCO <=> H + CO", - degeneracy = 1, - kinetics = ThirdBody( - arrheniusLow = Arrhenius( - A = (1.87e+17, 'cm^3/(mol*s)'), - n = -1, - Ea = (17000, 'cal/mol'), - T0 = (1, 'K'), + index=176, + label="H + H <=> H2", + degeneracy=1, + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(1e18, "cm^6/(mol^2*s)"), n=-1, Ea=(0, "cal/mol"), T0=(1, "K") ), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 0, '[H][H]': 2, '[C]=O': 1.5}, + efficiencies={"C": 2, "O=C=O": 0, "CC": 3, "O": 0, "[H][H]": 0, "[Ar]": 0.63}, ), ) entry( - index = 179, - label = "O + CO <=> CO2", - degeneracy = 1, - kinetics = Lindemann( - arrheniusHigh = Arrhenius(A=(1.8e+10, 'cm^3/(mol*s)'), n=0, Ea=(2385, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (6.02e+14, 'cm^6/(mol^2*s)'), - n = 0, - Ea = (3000, 'cal/mol'), - T0 = (1, 'K'), + index=177, + label="H + OH <=> H2O", + degeneracy=1, + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(2.2e22, "cm^6/(mol^2*s)"), n=-2, Ea=(0, "cal/mol"), T0=(1, "K") ), - efficiencies = {'C': 2, 'O=C=O': 3.5, 'CC': 3, 'O': 6, '[H][H]': 2, '[O][O]': 6, '[C]=O': 1.5, '[Ar]': 0.5}, + efficiencies={"CC": 3, "C": 2, "[H][H]": 0.73, "O": 3.65, "[Ar]": 0.38}, ), ) entry( - index = 180, - label = "H + CH2 <=> CH3", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(6e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (1.04e+26, 'cm^6/(mol^2*s)'), - n = -2.76, - Ea = (1600, 'cal/mol'), - T0 = (1, 'K'), + index=178, + label="HCO <=> H + CO", + degeneracy=1, + kinetics=ThirdBody( + arrheniusLow=Arrhenius( + A=(1.87e17, "cm^3/(mol*s)"), + n=-1, + Ea=(17000, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.562, - T3 = (91, 'K'), - T1 = (5836, 'K'), - T2 = (8552, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 0, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 181, - label = "H + CH3 <=> CH4", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (1.39e+16, 'cm^3/(mol*s)'), - n = -0.534, - Ea = (536, 'cal/mol'), - T0 = (1, 'K'), + index=179, + label="O + CO <=> CO2", + degeneracy=1, + kinetics=Lindemann( + arrheniusHigh=Arrhenius( + A=(1.8e10, "cm^3/(mol*s)"), n=0, Ea=(2385, "cal/mol"), T0=(1, "K") ), - arrheniusLow = Arrhenius( - A = (2.62e+33, 'cm^6/(mol^2*s)'), - n = -4.76, - Ea = (2440, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(6.02e14, "cm^6/(mol^2*s)"), + n=0, + Ea=(3000, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.783, - T3 = (74, 'K'), - T1 = (2941, 'K'), - T2 = (6964, 'K'), - efficiencies = {'C': 3, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 182, - label = "H + HCO <=> CH2O", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (1.09e+12, 'cm^3/(mol*s)'), - n = 0.48, - Ea = (-260, 'cal/mol'), - T0 = (1, 'K'), + efficiencies={ + "C": 2, + "O=C=O": 3.5, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[O][O]": 6, + "[C]=O": 1.5, + "[Ar]": 0.5, + }, + ), +) + +entry( + index=180, + label="H + CH2 <=> CH3", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(6e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") ), - arrheniusLow = Arrhenius( - A = (2.47e+24, 'cm^6/(mol^2*s)'), - n = -2.57, - Ea = (425, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(1.04e26, "cm^6/(mol^2*s)"), + n=-2.76, + Ea=(1600, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.7824, - T3 = (271, 'K'), - T1 = (2755, 'K'), - T2 = (6570, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 183, - label = "H + CH2O <=> CH2OH", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (5.4e+11, 'cm^3/(mol*s)'), - n = 0.454, - Ea = (3600, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.562, + T3=(91, "K"), + T1=(5836, "K"), + T2=(8552, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=181, + label="H + CH3 <=> CH4", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(1.39e16, "cm^3/(mol*s)"), + n=-0.534, + Ea=(536, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (1.27e+32, 'cm^6/(mol^2*s)'), - n = -4.82, - Ea = (6530, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(2.62e33, "cm^6/(mol^2*s)"), + n=-4.76, + Ea=(2440, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.7187, - T3 = (103, 'K'), - T1 = (1291, 'K'), - T2 = (4160, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5}, - ), -) - -entry( - index = 184, - label = "H + CH2O <=> CH3O", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (5.4e+11, 'cm^3/(mol*s)'), - n = 0.454, - Ea = (2600, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.783, + T3=(74, "K"), + T1=(2941, "K"), + T2=(6964, "K"), + efficiencies={ + "C": 3, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=182, + label="H + HCO <=> CH2O", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(1.09e12, "cm^3/(mol*s)"), + n=0.48, + Ea=(-260, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (2.2e+30, 'cm^6/(mol^2*s)'), - n = -4.8, - Ea = (5560, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(2.47e24, "cm^6/(mol^2*s)"), + n=-2.57, + Ea=(425, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.758, - T3 = (94, 'K'), - T1 = (1555, 'K'), - T2 = (4200, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5}, - ), -) - -entry( - index = 185, - label = "H + CH2OH <=> CH3OH", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(1.055e+12, 'cm^3/(mol*s)'), n=0.5, Ea=(86, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (4.36e+31, 'cm^6/(mol^2*s)'), - n = -4.65, - Ea = (5080, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.7824, + T3=(271, "K"), + T1=(2755, "K"), + T2=(6570, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=183, + label="H + CH2O <=> CH2OH", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(5.4e11, "cm^3/(mol*s)"), + n=0.454, + Ea=(3600, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.6, - T3 = (100, 'K'), - T1 = (90000, 'K'), - T2 = (10000, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5}, + arrheniusLow=Arrhenius( + A=(1.27e32, "cm^6/(mol^2*s)"), + n=-4.82, + Ea=(6530, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.7187, + T3=(103, "K"), + T1=(1291, "K"), + T2=(4160, "K"), + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 6, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 186, - label = "H + CH3O <=> CH3OH", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (2.43e+12, 'cm^3/(mol*s)'), - n = 0.515, - Ea = (50, 'cal/mol'), - T0 = (1, 'K'), + index=184, + label="H + CH2O <=> CH3O", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(5.4e11, "cm^3/(mol*s)"), + n=0.454, + Ea=(2600, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (4.66e+41, 'cm^6/(mol^2*s)'), - n = -7.44, - Ea = (14080, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(2.2e30, "cm^6/(mol^2*s)"), + n=-4.8, + Ea=(5560, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.7, - T3 = (100, 'K'), - T1 = (90000, 'K'), - T2 = (10000, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5}, + alpha=0.758, + T3=(94, "K"), + T1=(1555, "K"), + T2=(4200, "K"), + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 6, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 187, - label = "H + C2H <=> C2H2", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(1e+17, 'cm^3/(mol*s)'), n=-1, Ea=(0, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (3.75e+33, 'cm^6/(mol^2*s)'), - n = -4.8, - Ea = (1900, 'cal/mol'), - T0 = (1, 'K'), + index=185, + label="H + CH2OH <=> CH3OH", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(1.055e12, "cm^3/(mol*s)"), n=0.5, Ea=(86, "cal/mol"), T0=(1, "K") ), - alpha = 0.6464, - T3 = (132, 'K'), - T1 = (1315, 'K'), - T2 = (5566, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 188, - label = "H + C2H2 <=> C2H3", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(5.6e+12, 'cm^3/(mol*s)'), n=0, Ea=(2400, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (3.8e+40, 'cm^6/(mol^2*s)'), - n = -7.27, - Ea = (7220, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(4.36e31, "cm^6/(mol^2*s)"), + n=-4.65, + Ea=(5080, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.7507, - T3 = (98.5, 'K'), - T1 = (1302, 'K'), - T2 = (4167, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + alpha=0.6, + T3=(100, "K"), + T1=(90000, "K"), + T2=(10000, "K"), + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 6, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 189, - label = "H + C2H3 <=> C2H4", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (6.08e+12, 'cm^3/(mol*s)'), - n = 0.27, - Ea = (280, 'cal/mol'), - T0 = (1, 'K'), + index=186, + label="H + CH3O <=> CH3OH", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(2.43e12, "cm^3/(mol*s)"), + n=0.515, + Ea=(50, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (1.4e+30, 'cm^6/(mol^2*s)'), - n = -3.86, - Ea = (3320, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(4.66e41, "cm^6/(mol^2*s)"), + n=-7.44, + Ea=(14080, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.782, - T3 = (207.5, 'K'), - T1 = (2663, 'K'), - T2 = (6095, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + alpha=0.7, + T3=(100, "K"), + T1=(90000, "K"), + T2=(10000, "K"), + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 6, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 190, - label = "H + C2H4 <=> C2H5", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (5.4e+11, 'cm^3/(mol*s)'), - n = 0.454, - Ea = (1820, 'cal/mol'), - T0 = (1, 'K'), + index=187, + label="H + C2H <=> C2H2", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(1e17, "cm^3/(mol*s)"), n=-1, Ea=(0, "cal/mol"), T0=(1, "K") ), - arrheniusLow = Arrhenius( - A = (6e+41, 'cm^6/(mol^2*s)'), - n = -7.62, - Ea = (6970, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(3.75e33, "cm^6/(mol^2*s)"), + n=-4.8, + Ea=(1900, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.9753, - T3 = (210, 'K'), - T1 = (984, 'K'), - T2 = (4374, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 191, - label = "H + C2H5 <=> C2H6", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (5.21e+17, 'cm^3/(mol*s)'), - n = -0.99, - Ea = (1580, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.6464, + T3=(132, "K"), + T1=(1315, "K"), + T2=(5566, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=188, + label="H + C2H2 <=> C2H3", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(5.6e12, "cm^3/(mol*s)"), n=0, Ea=(2400, "cal/mol"), T0=(1, "K") ), - arrheniusLow = Arrhenius( - A = (1.99e+41, 'cm^6/(mol^2*s)'), - n = -7.08, - Ea = (6685, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(3.8e40, "cm^6/(mol^2*s)"), + n=-7.27, + Ea=(7220, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.8422, - T3 = (125, 'K'), - T1 = (2219, 'K'), - T2 = (6882, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 192, - label = "H2 + CO <=> CH2O", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (4.3e+07, 'cm^3/(mol*s)'), - n = 1.5, - Ea = (79600, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.7507, + T3=(98.5, "K"), + T1=(1302, "K"), + T2=(4167, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=189, + label="H + C2H3 <=> C2H4", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(6.08e12, "cm^3/(mol*s)"), + n=0.27, + Ea=(280, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (5.07e+27, 'cm^6/(mol^2*s)'), - n = -3.42, - Ea = (84350, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(1.4e30, "cm^6/(mol^2*s)"), + n=-3.86, + Ea=(3320, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.932, - T3 = (197, 'K'), - T1 = (1540, 'K'), - T2 = (10300, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 193, - label = "OH + OH <=> H2O2", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(7.4e+13, 'cm^3/(mol*s)'), n=-0.37, Ea=(0, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (2.3e+18, 'cm^6/(mol^2*s)'), - n = -0.9, - Ea = (-1700, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.782, + T3=(207.5, "K"), + T1=(2663, "K"), + T2=(6095, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=190, + label="H + C2H4 <=> C2H5", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(5.4e11, "cm^3/(mol*s)"), + n=0.454, + Ea=(1820, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.7346, - T3 = (94, 'K'), - T1 = (1756, 'K'), - T2 = (5182, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 194, - label = "OH + CH3 <=> CH3OH", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (2.79e+18, 'cm^3/(mol*s)'), - n = -1.43, - Ea = (1330, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(6e41, "cm^6/(mol^2*s)"), + n=-7.62, + Ea=(6970, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (4e+36, 'cm^6/(mol^2*s)'), - n = -5.92, - Ea = (3140, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.9753, + T3=(210, "K"), + T1=(984, "K"), + T2=(4374, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=191, + label="H + C2H5 <=> C2H6", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(5.21e17, "cm^3/(mol*s)"), + n=-0.99, + Ea=(1580, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.412, - T3 = (195, 'K'), - T1 = (5900, 'K'), - T2 = (6394, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5}, - ), -) - -entry( - index = 195, - label = "CH + CO <=> HCCO", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(5e+13, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (2.69e+28, 'cm^6/(mol^2*s)'), - n = -3.74, - Ea = (1936, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(1.99e41, "cm^6/(mol^2*s)"), + n=-7.08, + Ea=(6685, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.5757, - T3 = (237, 'K'), - T1 = (1652, 'K'), - T2 = (5069, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 196, - label = "CH2 + CO <=> CH2CO", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(8.1e+11, 'cm^3/(mol*s)'), n=0.5, Ea=(4510, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (2.69e+33, 'cm^6/(mol^2*s)'), - n = -5.11, - Ea = (7095, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.8422, + T3=(125, "K"), + T1=(2219, "K"), + T2=(6882, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=192, + label="H2 + CO <=> CH2O", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(4.3e07, "cm^3/(mol*s)"), + n=1.5, + Ea=(79600, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.5907, - T3 = (275, 'K'), - T1 = (1226, 'K'), - T2 = (5185, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 197, - label = "CH2(S) + H2O <=> CH3OH", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (4.82e+17, 'cm^3/(mol*s)'), - n = -1.16, - Ea = (1145, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(5.07e27, "cm^6/(mol^2*s)"), + n=-3.42, + Ea=(84350, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (1.88e+38, 'cm^6/(mol^2*s)'), - n = -6.36, - Ea = (5040, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.932, + T3=(197, "K"), + T1=(1540, "K"), + T2=(10300, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=193, + label="OH + OH <=> H2O2", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(7.4e13, "cm^3/(mol*s)"), n=-0.37, Ea=(0, "cal/mol"), T0=(1, "K") ), - alpha = 0.6027, - T3 = (208, 'K'), - T1 = (3922, 'K'), - T2 = (10180, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5}, - ), -) - -entry( - index = 198, - label = "CH3 + CH3 <=> C2H6", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (6.77e+16, 'cm^3/(mol*s)'), - n = -1.18, - Ea = (654, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(2.3e18, "cm^6/(mol^2*s)"), + n=-0.9, + Ea=(-1700, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (3.4e+41, 'cm^6/(mol^2*s)'), - n = -7.03, - Ea = (2762, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.7346, + T3=(94, "K"), + T1=(1756, "K"), + T2=(5182, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=194, + label="OH + CH3 <=> CH3OH", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(2.79e18, "cm^3/(mol*s)"), + n=-1.43, + Ea=(1330, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.619, - T3 = (73.2, 'K'), - T1 = (1180, 'K'), - T2 = (9999, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 199, - label = "C2H4 <=> H2 + C2H2", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(8e+12, 's^-1'), n=0.44, Ea=(86770, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (1.58e+51, 'cm^3/(mol*s)'), - n = -9.3, - Ea = (97800, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(4e36, "cm^6/(mol^2*s)"), + n=-5.92, + Ea=(3140, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.7345, - T3 = (180, 'K'), - T1 = (1035, 'K'), - T2 = (5417, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + alpha=0.412, + T3=(195, "K"), + T1=(5900, "K"), + T2=(6394, "K"), + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 6, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 200, - label = "CH + H2 <=> CH3", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (1.97e+12, 'cm^3/(mol*s)'), - n = 0.43, - Ea = (-370, 'cal/mol'), - T0 = (1, 'K'), + index=195, + label="CH + CO <=> HCCO", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(5e13, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") ), - arrheniusLow = Arrhenius( - A = (4.82e+25, 'cm^6/(mol^2*s)'), - n = -2.8, - Ea = (590, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(2.69e28, "cm^6/(mol^2*s)"), + n=-3.74, + Ea=(1936, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.578, - T3 = (122, 'K'), - T1 = (2535, 'K'), - T2 = (9365, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, - ), -) - -entry( - index = 201, - label = "H + CH2CO <=> CH2CHO", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius( - A = (4.865e+11, 'cm^3/(mol*s)'), - n = 0.422, - Ea = (-1755, 'cal/mol'), - T0 = (1, 'K'), + alpha=0.5757, + T3=(237, "K"), + T1=(1652, "K"), + T2=(5069, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=196, + label="CH2 + CO <=> CH2CO", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(8.1e11, "cm^3/(mol*s)"), n=0.5, Ea=(4510, "cal/mol"), T0=(1, "K") + ), + arrheniusLow=Arrhenius( + A=(2.69e33, "cm^6/(mol^2*s)"), + n=-5.11, + Ea=(7095, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.5907, + T3=(275, "K"), + T1=(1226, "K"), + T2=(5185, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=197, + label="CH2(S) + H2O <=> CH3OH", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(4.82e17, "cm^3/(mol*s)"), + n=-1.16, + Ea=(1145, "cal/mol"), + T0=(1, "K"), ), - arrheniusLow = Arrhenius( - A = (1.012e+42, 'cm^6/(mol^2*s)'), - n = -7.63, - Ea = (3854, 'cal/mol'), - T0 = (1, 'K'), + arrheniusLow=Arrhenius( + A=(1.88e38, "cm^6/(mol^2*s)"), + n=-6.36, + Ea=(5040, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.465, - T3 = (201, 'K'), - T1 = (1773, 'K'), - T2 = (5333, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + alpha=0.6027, + T3=(208, "K"), + T1=(3922, "K"), + T2=(10180, "K"), + efficiencies={"C": 2, "O=C=O": 2, "CC": 3, "O": 6, "[H][H]": 2, "[C]=O": 1.5}, ), ) entry( - index = 202, - label = "CH3 + C2H5 <=> C3H8", - degeneracy = 1, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(9.43e+12, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (2.71e+74, 'cm^6/(mol^2*s)'), - n = -16.82, - Ea = (13065, 'cal/mol'), - T0 = (1, 'K'), + index=198, + label="CH3 + CH3 <=> C2H6", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(6.77e16, "cm^3/(mol*s)"), + n=-1.18, + Ea=(654, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.1527, - T3 = (291, 'K'), - T1 = (2742, 'K'), - T2 = (7748, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + arrheniusLow=Arrhenius( + A=(3.4e41, "cm^6/(mol^2*s)"), + n=-7.03, + Ea=(2762, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.619, + T3=(73.2, "K"), + T1=(1180, "K"), + T2=(9999, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=199, + label="C2H4 <=> H2 + C2H2", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(8e12, "s^-1"), n=0.44, Ea=(86770, "cal/mol"), T0=(1, "K") + ), + arrheniusLow=Arrhenius( + A=(1.58e51, "cm^3/(mol*s)"), + n=-9.3, + Ea=(97800, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.7345, + T3=(180, "K"), + T1=(1035, "K"), + T2=(5417, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=200, + label="CH + H2 <=> CH3", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(1.97e12, "cm^3/(mol*s)"), + n=0.43, + Ea=(-370, "cal/mol"), + T0=(1, "K"), + ), + arrheniusLow=Arrhenius( + A=(4.82e25, "cm^6/(mol^2*s)"), + n=-2.8, + Ea=(590, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.578, + T3=(122, "K"), + T1=(2535, "K"), + T2=(9365, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=201, + label="H + CH2CO <=> CH2CHO", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(4.865e11, "cm^3/(mol*s)"), + n=0.422, + Ea=(-1755, "cal/mol"), + T0=(1, "K"), + ), + arrheniusLow=Arrhenius( + A=(1.012e42, "cm^6/(mol^2*s)"), + n=-7.63, + Ea=(3854, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.465, + T3=(201, "K"), + T1=(1773, "K"), + T2=(5333, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, + ), +) + +entry( + index=202, + label="CH3 + C2H5 <=> C3H8", + degeneracy=1, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(9.43e12, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), + arrheniusLow=Arrhenius( + A=(2.71e74, "cm^6/(mol^2*s)"), + n=-16.82, + Ea=(13065, "cal/mol"), + T0=(1, "K"), + ), + alpha=0.1527, + T3=(291, "K"), + T1=(2742, "K"), + T2=(7748, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, ), ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py index 51f8754a94..34226f9c74 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/libraries/ethane-oxidation/reactions.py @@ -6,13 +6,13 @@ longDesc = """ """ -autoGenerated=True +autoGenerated = True entry( - index = 0, - label = "[CH3] + [CH3] <=> ethane", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=0, + label="[CH3] + [CH3] <=> ethane", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [12.8791, 0.560009, -0.115177, 0.0105093], [-1.04561, 0.857712, -0.116582, -0.0134747], [-0.599769, 0.449793, 0.0096248, -0.0271013], @@ -20,20 +20,20 @@ [-0.155503, 0.0517415, 0.0323201, 0.00343069], [-0.0727158, 0.00622718, 0.0138549, 0.00630263], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 1, - label = "O2 + [CH3] <=> CO[O]", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=1, + label="O2 + [CH3] <=> CO[O]", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [9.90191, 1.69355, -0.276112, -0.014107], [-0.201801, 0.693442, 0.183308, -0.0255194], [-0.446451, 0.0857639, 0.0676062, 0.0247624], @@ -41,27 +41,26 @@ [-0.0347555, 0.00594742, -0.00642878, -0.00257428], [0.0288809, -0.0156872, -0.00508067, 0.000142012], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 2, - label = "ethane + [CH3] <=> C[CH2] + CH4", - degeneracy = 6.0, - kinetics = Arrhenius( - A = (2.94005e-11, 'm^3/(mol*s)'), - n = 5.135, - Ea = (33.0118, 'kJ/mol'), - T0 = (1, 'K'), - comment = 'Estimated using average of templates [C/H3/Cs;C_methyl] + [C/H3/Cs\\H3;Cs_rad] for rate rule [C/H3/Cs\\H3;C_methyl]\nEuclidian distance = 1.0\nMultiplied by reaction path degeneracy 6.0\nfamily: H_Abstraction', + index=2, + label="ethane + [CH3] <=> C[CH2] + CH4", + degeneracy=6.0, + kinetics=Arrhenius( + A=(2.94005e-11, "m^3/(mol*s)"), + n=5.135, + Ea=(33.0118, "kJ/mol"), + T0=(1, "K"), + comment="Estimated using average of templates [C/H3/Cs;C_methyl] + [C/H3/Cs\\H3;Cs_rad] for rate rule [C/H3/Cs\\H3;C_methyl]\nEuclidian distance = 1.0\nMultiplied by reaction path degeneracy 6.0\nfamily: H_Abstraction", ), - longDesc = -""" + longDesc=""" Estimated using average of templates [C/H3/Cs;C_methyl] + [C/H3/Cs\H3;Cs_rad] for rate rule [C/H3/Cs\H3;C_methyl] Euclidian distance = 1.0 Multiplied by reaction path degeneracy 6.0 @@ -70,20 +69,19 @@ ) entry( - index = 3, - label = "[CH3] + C[CH2] <=> C=C + CH4", - degeneracy = 3.0, - kinetics = Arrhenius( - A = (6.57e+14, 'cm^3/(mol*s)', '*|/', 1.1), - n = -0.68, - Ea = (0, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), - comment = 'Exact match found for rate rule [C_methyl;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 3.0\nfamily: Disproportionation', + index=3, + label="[CH3] + C[CH2] <=> C=C + CH4", + degeneracy=3.0, + kinetics=Arrhenius( + A=(6.57e14, "cm^3/(mol*s)", "*|/", 1.1), + n=-0.68, + Ea=(0, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2500, "K"), + comment="Exact match found for rate rule [C_methyl;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 3.0\nfamily: Disproportionation", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [C_methyl;Cmethyl_Csrad] Euclidian distance = 0 Multiplied by reaction path degeneracy 3.0 @@ -92,20 +90,19 @@ ) entry( - index = 4, - label = "C[CH2] + C[CH2] <=> ethane + C=C", - degeneracy = 3.0, - kinetics = Arrhenius( - A = (6.9e+13, 'cm^3/(mol*s)', '*|/', 1.1), - n = -0.35, - Ea = (0, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), - comment = 'Exact match found for rate rule [C_rad/H2/Cs;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 3.0\nfamily: Disproportionation', + index=4, + label="C[CH2] + C[CH2] <=> ethane + C=C", + degeneracy=3.0, + kinetics=Arrhenius( + A=(6.9e13, "cm^3/(mol*s)", "*|/", 1.1), + n=-0.35, + Ea=(0, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2500, "K"), + comment="Exact match found for rate rule [C_rad/H2/Cs;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 3.0\nfamily: Disproportionation", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [C_rad/H2/Cs;Cmethyl_Csrad] Euclidian distance = 0 Multiplied by reaction path degeneracy 3.0 @@ -114,11 +111,11 @@ ) entry( - index = 5, - label = "C[CH2] + H <=> ethane", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=5, + label="C[CH2] + H <=> ethane", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [13.5315, 0.449416, -0.0774212, 0.00616325], [-0.82609, 0.750471, -0.0982394, -0.00339778], [-0.593837, 0.463725, -0.0136024, -0.0157443], @@ -126,20 +123,20 @@ [-0.206783, 0.0792869, 0.0290969, -0.000446421], [-0.108198, 0.0181184, 0.0155923, 0.00424989], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 6, - label = "C=C + H <=> C[CH2]", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=6, + label="C=C + H <=> C[CH2]", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [12.0332, 0.873833, -0.162407, 0.0168639], [-0.164957, 1.00913, -0.0324404, -0.0377042], [-0.453805, 0.37093, 0.0671946, -0.0148132], @@ -147,20 +144,20 @@ [-0.0559888, -0.0120163, 0.0102436, 0.00671826], [0.00490435, -0.021391, -0.00366922, 0.00178308], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 7, - label = "[CH3] + H <=> CH4", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=7, + label="[CH3] + H <=> CH4", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [12.8642, 1.35989, -0.256864, -0.00362492], [-0.9798, 0.658274, 0.0852943, -0.0312454], [-0.472679, 0.155862, 0.0540246, 0.00851828], @@ -168,27 +165,26 @@ [-0.106076, 0.00938481, 0.00466234, 0.00169057], [-0.0493405, 0.00170846, 0.000954967, 0.000351117], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 8, - label = "ethane + H <=> H2 + C[CH2]", - degeneracy = 6.0, - kinetics = Arrhenius( - A = (2.17494e-06, 'm^3/(mol*s)'), - n = 4.07, - Ea = (25.4387, 'kJ/mol'), - T0 = (1, 'K'), - comment = 'Estimated using average of templates [C/H3/Cs;H_rad] + [C/H3/Cs\\H3;Y_rad] for rate rule [C/H3/Cs\\H3;H_rad]\nEuclidian distance = 1.0\nMultiplied by reaction path degeneracy 6.0\nfamily: H_Abstraction', + index=8, + label="ethane + H <=> H2 + C[CH2]", + degeneracy=6.0, + kinetics=Arrhenius( + A=(2.17494e-06, "m^3/(mol*s)"), + n=4.07, + Ea=(25.4387, "kJ/mol"), + T0=(1, "K"), + comment="Estimated using average of templates [C/H3/Cs;H_rad] + [C/H3/Cs\\H3;Y_rad] for rate rule [C/H3/Cs\\H3;H_rad]\nEuclidian distance = 1.0\nMultiplied by reaction path degeneracy 6.0\nfamily: H_Abstraction", ), - longDesc = -""" + longDesc=""" Estimated using average of templates [C/H3/Cs;H_rad] + [C/H3/Cs\H3;Y_rad] for rate rule [C/H3/Cs\H3;H_rad] Euclidian distance = 1.0 Multiplied by reaction path degeneracy 6.0 @@ -197,20 +193,19 @@ ) entry( - index = 9, - label = "C[CH2] + H <=> C=C + H2", - degeneracy = 3.0, - kinetics = Arrhenius( - A = (1.083e+13, 'cm^3/(mol*s)', '*|/', 2), - n = 0, - Ea = (0, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (2500, 'K'), - comment = 'Exact match found for rate rule [H_rad;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 3.0\nfamily: Disproportionation', + index=9, + label="C[CH2] + H <=> C=C + H2", + degeneracy=3.0, + kinetics=Arrhenius( + A=(1.083e13, "cm^3/(mol*s)", "*|/", 2), + n=0, + Ea=(0, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(2500, "K"), + comment="Exact match found for rate rule [H_rad;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 3.0\nfamily: Disproportionation", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [H_rad;Cmethyl_Csrad] Euclidian distance = 0 Multiplied by reaction path degeneracy 3.0 @@ -219,20 +214,19 @@ ) entry( - index = 10, - label = "H + CH4 <=> H2 + [CH3]", - degeneracy = 4.0, - kinetics = Arrhenius( - A = (0.876, 'cm^3/(mol*s)'), - n = 4.34, - Ea = (34.3088, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (1500, 'K'), - comment = 'Exact match found for rate rule [C_methane;H_rad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 4.0\nfamily: H_Abstraction', + index=10, + label="H + CH4 <=> H2 + [CH3]", + degeneracy=4.0, + kinetics=Arrhenius( + A=(0.876, "cm^3/(mol*s)"), + n=4.34, + Ea=(34.3088, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(1500, "K"), + comment="Exact match found for rate rule [C_methane;H_rad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 4.0\nfamily: H_Abstraction", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [C_methane;H_rad] Euclidian distance = 0 Multiplied by reaction path degeneracy 4.0 @@ -241,11 +235,11 @@ ) entry( - index = 11, - label = "H + H <=> H2", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=11, + label="H + H <=> H2", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [8.48588, 1.72816, -0.232832, -0.0184726], [0.0439119, 0.262399, 0.0740112, -0.0228139], [-0.107787, 0.0499097, 0.00176484, -0.00151681], @@ -253,27 +247,26 @@ [-0.0159905, 0.00413936, 0.0016664, 0.00147354], [-0.00614586, 0.00151107, 0.000719274, 0.000598049], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 12, - label = "C[CH2] + [O]O <=> ethane + O2", - degeneracy = 1.0, - kinetics = Arrhenius( - A = (7.74112e-12, 'm^3/(mol*s)'), - n = 4.92, - Ea = (19.623, 'kJ/mol'), - T0 = (1, 'K'), - comment = 'Estimated using template [X_H;C_rad/H2/Cs\\H3] for rate rule [Orad_O_H;C_rad/H2/Cs\\H3]\nEuclidian distance = 1.0\nfamily: H_Abstraction', + index=12, + label="C[CH2] + [O]O <=> ethane + O2", + degeneracy=1.0, + kinetics=Arrhenius( + A=(7.74112e-12, "m^3/(mol*s)"), + n=4.92, + Ea=(19.623, "kJ/mol"), + T0=(1, "K"), + comment="Estimated using template [X_H;C_rad/H2/Cs\\H3] for rate rule [Orad_O_H;C_rad/H2/Cs\\H3]\nEuclidian distance = 1.0\nfamily: H_Abstraction", ), - longDesc = -""" + longDesc=""" Estimated using template [X_H;C_rad/H2/Cs\H3] for rate rule [Orad_O_H;C_rad/H2/Cs\H3] Euclidian distance = 1.0 family: H_Abstraction @@ -281,20 +274,19 @@ ) entry( - index = 13, - label = "O2 + C[CH2] <=> C=C + [O]O", - degeneracy = 6.0, - kinetics = Arrhenius( - A = (4.338e+13, 'cm^3/(mol*s)', '*|/', 3), - n = 0, - Ea = (66.9022, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (700, 'K'), - Tmax = (2500, 'K'), - comment = 'Exact match found for rate rule [O2b;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 6.0\nfamily: Disproportionation', + index=13, + label="O2 + C[CH2] <=> C=C + [O]O", + degeneracy=6.0, + kinetics=Arrhenius( + A=(4.338e13, "cm^3/(mol*s)", "*|/", 3), + n=0, + Ea=(66.9022, "kJ/mol"), + T0=(1, "K"), + Tmin=(700, "K"), + Tmax=(2500, "K"), + comment="Exact match found for rate rule [O2b;Cmethyl_Csrad]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 6.0\nfamily: Disproportionation", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [O2b;Cmethyl_Csrad] Euclidian distance = 0 Multiplied by reaction path degeneracy 6.0 @@ -303,20 +295,19 @@ ) entry( - index = 14, - label = "O2 + CH4 <=> [CH3] + [O]O", - degeneracy = 8.0, - kinetics = Arrhenius( - A = (7.94e+13, 'cm^3/(mol*s)', '*|/', 10), - n = 0, - Ea = (237.777, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (500, 'K'), - Tmax = (2000, 'K'), - comment = 'Exact match found for rate rule [C_methane;O2b]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 8.0\nfamily: H_Abstraction', + index=14, + label="O2 + CH4 <=> [CH3] + [O]O", + degeneracy=8.0, + kinetics=Arrhenius( + A=(7.94e13, "cm^3/(mol*s)", "*|/", 10), + n=0, + Ea=(237.777, "kJ/mol"), + T0=(1, "K"), + Tmin=(500, "K"), + Tmax=(2000, "K"), + comment="Exact match found for rate rule [C_methane;O2b]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 8.0\nfamily: H_Abstraction", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [C_methane;O2b] Euclidian distance = 0 Multiplied by reaction path degeneracy 8.0 @@ -325,11 +316,11 @@ ) entry( - index = 15, - label = "O2 + C[CH2] <=> C=C + [O]O", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=15, + label="O2 + C[CH2] <=> C=C + [O]O", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [9.44348, -0.969233, -0.242864, -0.000655854], [1.68707, 0.910295, 0.146246, -0.0476217], [0.118536, 0.124642, 0.0773244, 0.0178854], @@ -337,20 +328,20 @@ [-0.0315143, -0.0469276, -0.0141423, 0.00204769], [-0.0174421, -0.00689436, -0.00820692, -0.00214934], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 16, - label = "O2 + H <=> [O]O", - degeneracy = 1.0, - kinetics = Chebyshev( - coeffs = [ + index=16, + label="O2 + H <=> [O]O", + degeneracy=1.0, + kinetics=Chebyshev( + coeffs=[ [10.9076, 1.98606, -0.233099, -0.0481274], [-0.571345, 0.31254, 0.126352, 0.0124235], [-0.307278, 0.0783359, 0.0239632, 0.00365003], @@ -358,33 +349,31 @@ [-0.0494686, 0.00279831, 0.00361649, 0.000666411], [-0.0263897, 0.0102559, -0.00268875, -0.00159869], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 17, - label = "O2 + H2 <=> H + [O]O", - degeneracy = 4.0, - kinetics = Arrhenius( - A = (2.9e+14, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - Ea = (236.982, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (800, 'K'), - comment = 'Exact match found for rate rule [H2;O2b]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 4.0\nfamily: H_Abstraction', + index=17, + label="O2 + H2 <=> H + [O]O", + degeneracy=4.0, + kinetics=Arrhenius( + A=(2.9e14, "cm^3/(mol*s)", "*|/", 5), + n=0, + Ea=(236.982, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(800, "K"), + comment="Exact match found for rate rule [H2;O2b]\nEuclidian distance = 0\nMultiplied by reaction path degeneracy 4.0\nfamily: H_Abstraction", ), - longDesc = -""" + longDesc=""" Exact match found for rate rule [H2;O2b] Euclidian distance = 0 Multiplied by reaction path degeneracy 4.0 family: H_Abstraction """, ) - diff --git a/test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py index 3a74b65d08..5acb7dd28e 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/libraries/lib_net/reactions.py @@ -8,12 +8,12 @@ """ entry( - index = 1, - label = "CH3 + CH3 <=> ethane", - degeneracy = 1.0, - elementary_high_p = True, - kinetics = Chebyshev( - coeffs = [ + index=1, + label="CH3 + CH3 <=> ethane", + degeneracy=1.0, + elementary_high_p=True, + kinetics=Chebyshev( + coeffs=[ [12.8791, 0.560009, -0.115177, 0.0105093], [-1.04561, 0.857712, -0.116582, -0.0134747], [-0.599769, 0.449793, 0.0096248, -0.0271013], @@ -21,106 +21,141 @@ [-0.155503, 0.0517415, 0.0323201, 0.00343069], [-0.0727158, 0.00622718, 0.0138549, 0.00630263], ], - kunits = 'cm^3/(mol*s)', - Tmin = (300, 'K'), - Tmax = (3000, 'K'), - Pmin = (0.001, 'bar'), - Pmax = (100, 'bar'), + kunits="cm^3/(mol*s)", + Tmin=(300, "K"), + Tmax=(3000, "K"), + Pmin=(0.001, "bar"), + Pmax=(100, "bar"), ), ) entry( - index = 2, - label = "H + CH3 <=> CH4", - degeneracy = 1.0, - elementary_high_p = True, - kinetics = Arrhenius( - A = (2.94005e-11, 'm^3/(mol*s)'), - n = 5.135, - Ea = (33.0118, 'kJ/mol'), - T0 = (1, 'K')), + index=2, + label="H + CH3 <=> CH4", + degeneracy=1.0, + elementary_high_p=True, + kinetics=Arrhenius( + A=(2.94005e-11, "m^3/(mol*s)"), n=5.135, Ea=(33.0118, "kJ/mol"), T0=(1, "K") + ), ) entry( - index = 3, - label = "O2 + H2 <=> H + [O]O", - degeneracy = 4.0, - kinetics = Arrhenius( - A = (2.9e+14, 'cm^3/(mol*s)', '*|/', 5), - n = 0, - Ea = (236.982, 'kJ/mol'), - T0 = (1, 'K'), - Tmin = (300, 'K'), - Tmax = (800, 'K'), + index=3, + label="O2 + H2 <=> H + [O]O", + degeneracy=4.0, + kinetics=Arrhenius( + A=(2.9e14, "cm^3/(mol*s)", "*|/", 5), + n=0, + Ea=(236.982, "kJ/mol"), + T0=(1, "K"), + Tmin=(300, "K"), + Tmax=(800, "K"), ), ) entry( - index = 4, - label = "CO + OH <=> CO2 + H", - degeneracy = 1, - kinetics = PDepArrhenius( - pressures = ([0.01315, 0.1315, 1.315, 13.158, 131.58], 'atm'), - arrhenius = [ - Arrhenius(A=(210000, 'cm^3/(mol*s)'), n=1.9, Ea=(-1064, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(250000, 'cm^3/(mol*s)'), n=1.88, Ea=(-1043, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(870000, 'cm^3/(mol*s)'), n=1.73, Ea=(-685, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(6.8e+06, 'cm^3/(mol*s)'), n=1.48, Ea=(48, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(2.3e+07, 'cm^3/(mol*s)'), n=1.35, Ea=(974, 'cal/mol'), T0=(1, 'K')), + index=4, + label="CO + OH <=> CO2 + H", + degeneracy=1, + kinetics=PDepArrhenius( + pressures=([0.01315, 0.1315, 1.315, 13.158, 131.58], "atm"), + arrhenius=[ + Arrhenius( + A=(210000, "cm^3/(mol*s)"), n=1.9, Ea=(-1064, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(250000, "cm^3/(mol*s)"), n=1.88, Ea=(-1043, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(870000, "cm^3/(mol*s)"), n=1.73, Ea=(-685, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(6.8e06, "cm^3/(mol*s)"), n=1.48, Ea=(48, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(2.3e07, "cm^3/(mol*s)"), n=1.35, Ea=(974, "cal/mol"), T0=(1, "K") + ), ], ), - shortDesc = """The chemkin file reaction is CO + OH <=> CO2 + H""", + shortDesc="""The chemkin file reaction is CO + OH <=> CO2 + H""", ) entry( - index = 5, - label = "C2H2 + CH3 <=> C3H5", - degeneracy = 1, - elementary_high_p = True, - kinetics = PDepArrhenius( - pressures = ([1, 2, 5], 'atm'), - arrhenius = [ - Arrhenius(A=(4.99e+22, 'cm^3/(mol*s)'), n=-4.39, Ea = (18850, 'cal/mol'), T0 = (1, 'K')), - Arrhenius(A=(6e+23, 'cm^3/(mol*s)'), n=-4.6, Ea=(19571, 'cal/mol'), T0=(1, 'K')), - Arrhenius(A=(7.31e+25, 'cm^3/(mol*s)'), n=-5.06, Ea=(21150, 'cal/mol'), T0 = (1, 'K')), + index=5, + label="C2H2 + CH3 <=> C3H5", + degeneracy=1, + elementary_high_p=True, + kinetics=PDepArrhenius( + pressures=([1, 2, 5], "atm"), + arrhenius=[ + Arrhenius( + A=(4.99e22, "cm^3/(mol*s)"), n=-4.39, Ea=(18850, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(6e23, "cm^3/(mol*s)"), n=-4.6, Ea=(19571, "cal/mol"), T0=(1, "K") + ), + Arrhenius( + A=(7.31e25, "cm^3/(mol*s)"), n=-5.06, Ea=(21150, "cal/mol"), T0=(1, "K") + ), ], ), ) entry( - index = 6, - label = "H + CH2 <=> CH3", - degeneracy = 1, - elementary_high_p = True, - kinetics = Troe( - arrheniusHigh = Arrhenius(A=(6e+14, 'cm^3/(mol*s)'), n=0, Ea=(0, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (1.04e+26, 'cm^6/(mol^2*s)'), - n = -2.76, - Ea = (1600, 'cal/mol'), - T0 = (1, 'K'), + index=6, + label="H + CH2 <=> CH3", + degeneracy=1, + elementary_high_p=True, + kinetics=Troe( + arrheniusHigh=Arrhenius( + A=(6e14, "cm^3/(mol*s)"), n=0, Ea=(0, "cal/mol"), T0=(1, "K") + ), + arrheniusLow=Arrhenius( + A=(1.04e26, "cm^6/(mol^2*s)"), + n=-2.76, + Ea=(1600, "cal/mol"), + T0=(1, "K"), ), - alpha = 0.562, - T3 = (91, 'K'), - T1 = (5836, 'K'), - T2 = (8552, 'K'), - efficiencies = {'C': 2, 'O=C=O': 2, 'CC': 3, 'O': 6, '[H][H]': 2, '[C]=O': 1.5, '[Ar]': 0.7}, + alpha=0.562, + T3=(91, "K"), + T1=(5836, "K"), + T2=(8552, "K"), + efficiencies={ + "C": 2, + "O=C=O": 2, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[C]=O": 1.5, + "[Ar]": 0.7, + }, ), ) entry( - index = 7, - label = "O + CO <=> CO2", - degeneracy = 1, - elementary_high_p = True, - kinetics = Lindemann( - arrheniusHigh = Arrhenius(A=(1.8e+10, 'cm^3/(mol*s)'), n=0, Ea=(2385, 'cal/mol'), T0=(1, 'K')), - arrheniusLow = Arrhenius( - A = (6.02e+14, 'cm^6/(mol^2*s)'), - n = 0, - Ea = (3000, 'cal/mol'), - T0 = (1, 'K'), + index=7, + label="O + CO <=> CO2", + degeneracy=1, + elementary_high_p=True, + kinetics=Lindemann( + arrheniusHigh=Arrhenius( + A=(1.8e10, "cm^3/(mol*s)"), n=0, Ea=(2385, "cal/mol"), T0=(1, "K") + ), + arrheniusLow=Arrhenius( + A=(6.02e14, "cm^6/(mol^2*s)"), + n=0, + Ea=(3000, "cal/mol"), + T0=(1, "K"), ), - efficiencies = {'C': 2, 'O=C=O': 3.5, 'CC': 3, 'O': 6, '[H][H]': 2, '[O][O]': 6, '[C]=O': 1.5, '[Ar]': 0.5}, + efficiencies={ + "C": 2, + "O=C=O": 3.5, + "CC": 3, + "O": 6, + "[H][H]": 2, + "[O][O]": 6, + "[C]=O": 1.5, + "[Ar]": 0.5, + }, ), ) diff --git a/test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py b/test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py index f2fe64c6fe..5ce5831a04 100644 --- a/test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py +++ b/test/rmgpy/test_data/testing_database/kinetics/libraries/surface-example/reactions.py @@ -2,8 +2,8 @@ # encoding: utf-8 name = "Surface" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ test surface mechanism: based upon Olaf Deutschmann's work: "Surface Reaction Kinetics of Steam- and CO2-Reforming as well as Oxidation of Methane over Nickel-Based Catalysts" Delgado et al @@ -11,112 +11,113 @@ """ entry( - index = 1, - label = "O2 + Ni + Ni <=> OX + OX", - kinetics = StickingCoefficient( - A = 4.36E-2, - n = -0.206, - Ea=(1.5E3, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), - coverage_dependence = {'OX': {'E': (0.0, 'J/mol'), 'm':0.0, 'a':0.0},} + index=1, + label="O2 + Ni + Ni <=> OX + OX", + kinetics=StickingCoefficient( + A=4.36e-2, + n=-0.206, + Ea=(1.5e3, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), + coverage_dependence={ + "OX": {"E": (0.0, "J/mol"), "m": 0.0, "a": 0.0}, + }, ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) entry( - index = 2, - label = "O2 + Ni <=> O2X", - kinetics = StickingCoefficient( - A = 0.0, - n = 0, - Ea=(0, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=2, + label="O2 + Ni <=> O2X", + kinetics=StickingCoefficient( + A=0.0, + n=0, + Ea=(0, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) entry( - index = 3, - label = "CH4 + Ni + Ni <=> CH3X + HX", - kinetics = StickingCoefficient( - A = 8.0E-3, - n = 0, - Ea=(0, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=3, + label="CH4 + Ni + Ni <=> CH3X + HX", + kinetics=StickingCoefficient( + A=8.0e-3, + n=0, + Ea=(0, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) entry( - index = 4, - label = "H2 + Ni + Ni <=> HX + HX", - kinetics = StickingCoefficient( - A = 3.2E-2, - n = 0, - Ea=(0, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=4, + label="H2 + Ni + Ni <=> HX + HX", + kinetics=StickingCoefficient( + A=3.2e-2, + n=0, + Ea=(0, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) entry( - index = 5, - label = "HX + HOX <=> H2O + Ni + Ni", - kinetics = SurfaceArrhenius( - A=(1.85E16, 'm^2/(mol*s)'), - n = 0.086, - Ea=(41500.0, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=5, + label="HX + HOX <=> H2O + Ni + Ni", + kinetics=SurfaceArrhenius( + A=(1.85e16, "m^2/(mol*s)"), + n=0.086, + Ea=(41500.0, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) entry( - index = 6, - label = "CO + Ni <=> OCX", - kinetics = StickingCoefficient( - A = 5.0E-1, - n = 0, - Ea=(0, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=6, + label="CO + Ni <=> OCX", + kinetics=StickingCoefficient( + A=5.0e-1, + n=0, + Ea=(0, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) - entry( - index = 7, - label = "OCX + OX <=> CO2 + Ni + Ni", - kinetics = SurfaceArrhenius( - A=(2.00E15, 'm^2/(mol*s)'), - n = 0.0, - Ea=(123600.0, 'J/mol'), - Tmin = (200, 'K'), - Tmax = (3000, 'K'), + index=7, + label="OCX + OX <=> CO2 + Ni + Ni", + kinetics=SurfaceArrhenius( + A=(2.00e15, "m^2/(mol*s)"), + n=0.0, + Ea=(123600.0, "J/mol"), + Tmin=(200, "K"), + Tmax=(3000, "K"), ), - shortDesc = u"""Default""", - longDesc = u"""Made up""", - metal = "Ni", + shortDesc="""Default""", + longDesc="""Made up""", + metal="Ni", ) diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/group.py b/test/rmgpy/test_data/testing_database/solvation/groups/group.py index ad2014b808..f56fe237ec 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/group.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/group.py @@ -2,127 +2,113 @@ # encoding: utf-8 name = "Abraham Solute Descriptors" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ """ entry( - index = -3, - label = "R", - group = -""" + index=-3, + label="R", + group=""" 1 * R u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -2, - label = "C", - group = -""" + index=-2, + label="C", + group=""" 1 * C u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -9, - label = "Cb", - group = -""" + index=-9, + label="Cb", + group=""" 1 * Cb u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 38, - label = "Cb-H", - group = -""" + index=38, + label="Cb-H", + group=""" 1 * Cb u0 {2,B} {3,B} {4,S} 2 R!H u0 {1,B} 3 R!H u0 {1,B} 4 H u0 {1,S} """, - solute = SoluteData( - S = 0.05, - B = 0.011, - E = 0.068, - L = 0.469, - A = 0, + solute=SoluteData( + S=0.05, + B=0.011, + E=0.068, + L=0.469, + A=0, ), - shortDesc = u"""same as Platts group 6""", - longDesc = -u""" + shortDesc="""same as Platts group 6""", + longDesc=""" """, ) entry( - index = 736, - label = "O", - group = -""" + index=736, + label="O", + group=""" 1 * O u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 747, - label = "O2s", - group = -""" + index=747, + label="O2s", + group=""" 1 * O2s u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 768, - label = "O2s-OsH", - group = -""" + index=768, + label="O2s-OsH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 H u0 {1,S} """, - solute = SoluteData( - S = 0.15824, - B = 0.05902, - E = 0.12734, - L = 0.46756, - A = 0.23700, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.15824, + B=0.05902, + E=0.12734, + L=0.46756, + A=0.23700, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 3 B: 3 @@ -133,68 +119,60 @@ ) entry( - index = 807, - label = "S", - group = -""" + index=807, + label="S", + group=""" 1 * S ux """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 812, - label = "S2s", - group = -""" + index=812, + label="S2s", + group=""" 1 * S2s u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 813, - label = "S2s-CH", - group = -""" + index=813, + label="S2s-CH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 H u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 814, - label = "S2s-CsH", - group = -""" + index=814, + label="S2s-CsH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - solute = SoluteData( - S = 0.20433, - B = 0.14840, - E = 0.22845, - L = 0.91094, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.20433, + B=0.14840, + E=0.22845, + L=0.91094, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 37 B: 37 @@ -205,70 +183,62 @@ ) entry( - index = 870, - label = "N", - group = -""" + index=870, + label="N", + group=""" 1 * N u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 873, - label = "N3s", - group = -""" + index=873, + label="N3s", + group=""" 1 * N3s u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 874, - label = "N3s-CHH", - group = -""" + index=874, + label="N3s-CHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 877, - label = "N3s-CbHH", - group = -""" + index=877, + label="N3s-CbHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - solute = SoluteData( - S = 0.40793, - B = 0.16116, - E = 0.22723, - L = 0.66930, - A = 0.23902, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.40793, + B=0.16116, + E=0.22723, + L=0.66930, + A=0.23902, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 247 B: 229 @@ -279,53 +249,47 @@ ) entry( - index = 1125, - label = "P", - group = -""" + index=1125, + label="P", + group=""" 1 * P u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1126, - label = "P3s", - group = -""" + index=1126, + label="P3s", + group=""" 1 * P3s u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1127, - label = "P3s-O2sO2sO2s", - group = -""" + index=1127, + label="P3s-O2sO2sO2s", + group=""" 1 * P3s u0 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - solute = SoluteData( - S = 0.03939, - B = 0.06846, - E = 0.00644, - L = 0.17857, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.03939, + B=0.06846, + E=0.00644, + L=0.17857, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 2 B: 2 @@ -337,7 +301,7 @@ tree( -""" + """ L1: R L2: C L3: Cb diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/halogen.py b/test/rmgpy/test_data/testing_database/solvation/groups/halogen.py index 740b7f3f0a..bd66ae927b 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/halogen.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/halogen.py @@ -2,72 +2,64 @@ # encoding: utf-8 name = "halogen" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ """ entry( - index = 1, - label = "X", - group = -""" + index=1, + label="X", + group=""" 1 * [F1s,Cl1s,Br1s,I1s] ux """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "F", - group = -""" + index=2, + label="F", + group=""" 1 * F1s u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "F-C", - group = -""" + index=3, + label="F-C", + group=""" 1 * F1s u0 {2,S} 2 C u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 4, - label = "F-Cb", - group = -""" + index=4, + label="F-Cb", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} """, - solute = SoluteData( - S = -0.02870, - B = -0.01608, - E = -0.10588, - L = -0.12204, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.02870, + B=-0.01608, + E=-0.10588, + L=-0.12204, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 135 B: 131 @@ -78,37 +70,34 @@ ) entry( - index = 5, - label = "F-Phenol", - group = "OR{F-Phenol(ortho), F-Phenol(meta), F-Phenol(para)}", - solute = None, - shortDesc = u"""""", - longDesc = -u""" + index=5, + label="F-Phenol", + group="OR{F-Phenol(ortho), F-Phenol(meta), F-Phenol(para)}", + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 6, - label = "F-Phenol(ortho)", - group = -""" + index=6, + label="F-Phenol(ortho)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,S} 4 O2s u0 {3,S} {5,S} 5 H u0 {4,S} """, - solute = SoluteData( - S = -0.01903, - B = -0.03461, - E = -0.10427, - L = -0.12259, - A = 0.09756, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.01903, + B=-0.03461, + E=-0.10427, + L=-0.12259, + A=0.09756, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 5 B: 5 @@ -119,10 +108,9 @@ ) entry( - index = 7, - label = "F-Phenol(meta)", - group = -""" + index=7, + label="F-Phenol(meta)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,B} @@ -130,16 +118,15 @@ 5 O2s u0 {4,S} {6,S} 6 H u0 {5,S} """, - solute = SoluteData( - S = 0.02174, - B = -0.03645, - E = -0.09013, - L = -0.02170, - A = 0.07464, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.02174, + B=-0.03645, + E=-0.09013, + L=-0.02170, + A=0.07464, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 3 B: 3 @@ -150,10 +137,9 @@ ) entry( - index = 8, - label = "F-Phenol(para)", - group = -""" + index=8, + label="F-Phenol(para)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,B} @@ -162,16 +148,15 @@ 6 O2s u0 {5,S} {7,S} 7 H u0 {6,S} """, - solute = SoluteData( - S = -0.00778, - B = -0.02958, - E = -0.09518, - L = -0.13622, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00778, + B=-0.02958, + E=-0.09518, + L=-0.13622, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 4 @@ -182,21 +167,19 @@ ) entry( - index = 9, - label = "F-BenzoicAcid", - group = "OR{F-BenzoicAcid(ortho), F-BenzoicAcid(meta), F-BenzoicAcid(para)}", - solute = None, - shortDesc = u"""""", - longDesc = -u""" + index=9, + label="F-BenzoicAcid", + group="OR{F-BenzoicAcid(ortho), F-BenzoicAcid(meta), F-BenzoicAcid(para)}", + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 10, - label = "F-BenzoicAcid(ortho)", - group = -""" + index=10, + label="F-BenzoicAcid(ortho)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,S} @@ -204,16 +187,15 @@ 5 O2s u0 {4,S} {6,S} 6 H u0 {5,S} """, - solute = SoluteData( - S = -0.01126, - B = 0.00000, - E = -0.07247, - L = -0.04312, - A = 0.07852, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.01126, + B=0.00000, + E=-0.07247, + L=-0.04312, + A=0.07852, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 6 B: 6 @@ -224,10 +206,9 @@ ) entry( - index = 11, - label = "F-BenzoicAcid(meta)", - group = -""" + index=11, + label="F-BenzoicAcid(meta)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,B} @@ -236,16 +217,15 @@ 6 O2s u0 {5,S} {7,S} 7 H u0 {6,S} """, - solute = SoluteData( - S = -0.05665, - B = 0.00000, - E = -0.07247, - L = -0.11925, - A = 0.05052, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.05665, + B=0.00000, + E=-0.07247, + L=-0.11925, + A=0.05052, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 6 B: 6 @@ -256,10 +236,9 @@ ) entry( - index = 12, - label = "F-BenzoicAcid(para)", - group = -""" + index=12, + label="F-BenzoicAcid(para)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,B} @@ -269,16 +248,15 @@ 7 O2s u0 {6,S} {8,S} 8 H u0 {7,S} """, - solute = SoluteData( - S = -0.04977, - B = 0.01219, - E = -0.04977, - L = -0.11742, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.04977, + B=0.01219, + E=-0.04977, + L=-0.11742, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 5 B: 5 @@ -289,21 +267,19 @@ ) entry( - index = 13, - label = "F-Aniline", - group = "OR{F-Aniline(ortho), F-Aniline(meta), F-Aniline(para)}", - solute = None, - shortDesc = u"""""", - longDesc = -u""" + index=13, + label="F-Aniline", + group="OR{F-Aniline(ortho), F-Aniline(meta), F-Aniline(para)}", + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 14, - label = "F-Aniline(ortho)", - group = -""" + index=14, + label="F-Aniline(ortho)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,S} @@ -311,16 +287,15 @@ 5 H u0 {4,S} 6 H u0 {4,S} """, - solute = SoluteData( - S = -0.00377, - B = -0.00166, - E = -0.18386, - L = -0.20968, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00377, + B=-0.00166, + E=-0.18386, + L=-0.20968, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 2 @@ -331,10 +306,9 @@ ) entry( - index = 15, - label = "F-Aniline(meta)", - group = -""" + index=15, + label="F-Aniline(meta)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,B} @@ -343,16 +317,15 @@ 6 H u0 {5,S} 7 H u0 {5,S} """, - solute = SoluteData( - S = 0.03842, - B = -0.00651, - E = -0.17201, - L = -0.14335, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.03842, + B=-0.00651, + E=-0.17201, + L=-0.14335, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 3 B: 1 @@ -363,10 +336,9 @@ ) entry( - index = 16, - label = "F-Aniline(para)", - group = -""" + index=16, + label="F-Aniline(para)", + group=""" 1 * F1s u0 {2,S} 2 Cb u0 {1,S} {3,B} 3 Cb u0 {2,B} {4,B} @@ -376,16 +348,15 @@ 7 H u0 {6,S} 8 H u0 {6,S} """, - solute = SoluteData( - S = 0.02190, - B = -0.00166, - E = -0.14880, - L = -0.13381, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.02190, + B=-0.00166, + E=-0.14880, + L=-0.13381, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 2 @@ -396,7 +367,7 @@ ) tree( -""" + """ L1: X L2: F L3: F-C diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py b/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py index ecf930a489..9f8eb4cef4 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_cyclic.py @@ -2,62 +2,55 @@ # encoding: utf-8 name = "longDistanceInteraction_cyclic" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ """ entry( - index = -1, - label = "R", - group = -""" + index=-1, + label="R", + group=""" 1 *1 R u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1, - label = "aromatic-ortho", - group = -""" + index=1, + label="aromatic-ortho", + group=""" 1 *1 Cb u0 {2,B} 2 *2 Cb u0 {1,B} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "o_OH", - group = -""" + index=2, + label="o_OH", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} 3 O u0 {1,S} {4,S} 4 H u0 {3,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "o_OH_OH", - group = -""" + index=3, + label="o_OH_OH", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {5,S} 3 O u0 {1,S} {4,S} @@ -65,16 +58,15 @@ 5 O u0 {2,S} {6,S} 6 H u0 {5,S} """, - solute = SoluteData( - S = -0.01250, - B = -0.01125, - E = -0.00857, - L = -0.04727, - A = -0.04812, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.01250, + B=-0.01125, + E=-0.00857, + L=-0.04727, + A=-0.04812, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 45 B: 45 @@ -85,10 +77,9 @@ ) entry( - index = 4, - label = "o_OH_MeO", - group = -""" + index=4, + label="o_OH_MeO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {5,S} 3 O u0 {1,S} {4,S} @@ -99,16 +90,15 @@ 8 H u0 {6,S} 9 H u0 {6,S} """, - solute = SoluteData( - S = -0.04689, - B = 0.03429, - E = -0.04782, - L = -0.08123, - A = -0.15375, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.04689, + B=0.03429, + E=-0.04782, + L=-0.08123, + A=-0.15375, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 27 B: 26 @@ -119,10 +109,9 @@ ) entry( - index = 5, - label = "o_OH_CHO", - group = -""" + index=5, + label="o_OH_CHO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {5,S} 3 O u0 {1,S} {4,S} @@ -131,16 +120,15 @@ 6 H u0 {5,S} 7 O u0 {5,D} """, - solute = SoluteData( - S = -0.00219, - B = -0.08964, - E = -0.02234, - L = -0.12099, - A = -0.12705, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00219, + B=-0.08964, + E=-0.02234, + L=-0.12099, + A=-0.12705, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 3 B: 3 @@ -151,28 +139,25 @@ ) entry( - index = 6, - label = "o_CHO", - group = -""" + index=6, + label="o_CHO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} 3 C u0 {1,S} {4,S} {5,D} 4 H u0 {3,S} 5 O u0 {3,D} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 7, - label = "o_CHO_CHO", - group = -""" + index=7, + label="o_CHO_CHO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {5,S} 3 C u0 {1,S} {4,S} {8,D} @@ -182,16 +167,15 @@ 7 O u0 {5,D} 8 O u0 {3,D} """, - solute = SoluteData( - S = -0.02599, - B = 0.02166, - E = -0.02119, - L = 0.05049, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.02599, + B=0.02166, + E=-0.02119, + L=0.05049, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -202,10 +186,9 @@ ) entry( - index = 8, - label = "o_CHO_CH3", - group = -""" + index=8, + label="o_CHO_CH3", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {6,S} 3 C u0 {1,S} {4,S} {5,D} @@ -216,16 +199,15 @@ 8 H u0 {6,S} 9 H u0 {6,S} """, - solute = SoluteData( - S = -0.02032, - B = 0.01155, - E = 0.02170, - L = 0.05993, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.02032, + B=0.01155, + E=0.02170, + L=0.05993, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 3 @@ -236,10 +218,9 @@ ) entry( - index = 9, - label = "o_CHO_MeO", - group = -""" + index=9, + label="o_CHO_MeO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {6,S} 3 C u0 {1,S} {4,S} {5,D} @@ -251,16 +232,15 @@ 9 H u0 {7,S} 10 H u0 {7,S} """, - solute = SoluteData( - S = -0.00691, - B = -0.02058, - E = 0.03712, - L = 0.03491, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00691, + B=-0.02058, + E=0.03712, + L=0.03491, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 2 B: 2 @@ -271,10 +251,9 @@ ) entry( - index = 10, - label = "o_vinyl", - group = -""" + index=10, + label="o_vinyl", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} 3 C u0 {1,S} {4,S} {5,D} @@ -283,18 +262,16 @@ 6 H u0 {5,S} 7 H u0 {5,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 11, - label = "o_vinyl_CH3", - group = -""" + index=11, + label="o_vinyl_CH3", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {8,S} 3 C u0 {1,S} {4,S} {5,D} @@ -307,16 +284,15 @@ 10 H u0 {8,S} 11 H u0 {8,S} """, - solute = SoluteData( - S = 0.00322, - B = -0.01187, - E = 0.01917, - L = -0.01980, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00322, + B=-0.01187, + E=0.01917, + L=-0.01980, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -327,10 +303,9 @@ ) entry( - index = 12, - label = "o_MeO", - group = -""" + index=12, + label="o_MeO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} 3 O u0 {1,S} {4,S} @@ -339,18 +314,16 @@ 6 H u0 {4,S} 7 H u0 {4,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 13, - label = "o_MeO_MeO", - group = -""" + index=13, + label="o_MeO_MeO", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {8,S} 3 O u0 {1,S} {4,S} @@ -364,16 +337,15 @@ 11 H u0 {9,S} 12 H u0 {9,S} """, - solute = SoluteData( - S = 0.00232, - B = 0.03528, - E = -0.00533, - L = 0.02199, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00232, + B=0.03528, + E=-0.00533, + L=0.02199, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 37 B: 27 @@ -384,10 +356,9 @@ ) entry( - index = 14, - label = "o_CH3", - group = -""" + index=14, + label="o_CH3", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} 3 C u0 {1,S} {4,S} {5,S} {6,S} @@ -395,18 +366,16 @@ 5 H u0 {3,S} 6 H u0 {3,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 15, - label = "o_CH3_CH3", - group = -""" + index=15, + label="o_CH3_CH3", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {7,S} 3 C u0 {1,S} {4,S} {5,S} {6,S} @@ -418,16 +387,15 @@ 9 H u0 {7,S} 10 H u0 {7,S} """, - solute = SoluteData( - S = 0.00252, - B = 0.00305, - E = 0.01519, - L = 0.05823, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00252, + B=0.00305, + E=0.01519, + L=0.05823, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 78 B: 72 @@ -438,10 +406,9 @@ ) entry( - index = 16, - label = "o_CH3_C2H5", - group = -""" + index=16, + label="o_CH3_C2H5", + group=""" 1 *1 Cb u0 {2,B} {3,S} 2 *2 Cb u0 {1,B} {7,S} 3 C u0 {1,S} {4,S} {5,S} {6,S} @@ -456,16 +423,15 @@ 12 H u0 {10,S} 13 H u0 {10,S} """, - solute = SoluteData( - S = 0.02407, - B = -0.01130, - E = 0.04752, - L = 0.08493, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.02407, + B=-0.01130, + E=0.04752, + L=0.08493, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 13 B: 12 @@ -476,26 +442,23 @@ ) entry( - index = 17, - label = "aromatic-meta", - group = -""" + index=17, + label="aromatic-meta", + group=""" 1 *1 Cb u0 {2,B} 2 Cb u0 {1,B} {3,B} 3 *2 Cb u0 {2,B} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 18, - label = "m_CHO_CHO", - group = -""" + index=18, + label="m_CHO_CHO", + group=""" 1 *1 Cb u0 {2,B} {4,S} 2 Cb u0 {1,B} {3,B} 3 *2 Cb u0 {2,B} {7,S} @@ -506,35 +469,31 @@ 8 O u0 {7,D} 9 H u0 {7,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 19, - label = "aromatic-para", - group = -""" + index=19, + label="aromatic-para", + group=""" 1 *1 Cb u0 {2,B} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} 4 *2 Cb u0 {3,B} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 20, - label = "p_OH", - group = -""" + index=20, + label="p_OH", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -542,18 +501,16 @@ 5 O u0 {1,S} {6,S} 6 H u0 {5,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 21, - label = "p_OH_OH", - group = -""" + index=21, + label="p_OH_OH", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -563,16 +520,15 @@ 7 O u0 {4,S} {8,S} 8 H u0 {7,S} """, - solute = SoluteData( - S = -0.01768, - B = -0.01463, - E = 0.00979, - L = -0.07210, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.01768, + B=-0.01463, + E=0.00979, + L=-0.07210, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 20 B: 20 @@ -583,10 +539,9 @@ ) entry( - index = 22, - label = "p_OH_MeO", - group = -""" + index=22, + label="p_OH_MeO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -599,16 +554,15 @@ 10 H u0 {8,S} 11 H u0 {8,S} """, - solute = SoluteData( - S = 0.05626, - B = -0.02969, - E = -0.02441, - L = -0.06934, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.05626, + B=-0.02969, + E=-0.02441, + L=-0.06934, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 4 @@ -619,10 +573,9 @@ ) entry( - index = 23, - label = "p_OH_CHO", - group = -""" + index=23, + label="p_OH_CHO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -633,16 +586,15 @@ 8 O u0 {7,D} 9 H u0 {7,S} """, - solute = SoluteData( - S = -0.00084, - B = -0.02017, - E = -0.00036, - L = 0.17408, - A = 0.03002, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00084, + B=-0.02017, + E=-0.00036, + L=0.17408, + A=0.03002, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 5 B: 5 @@ -653,10 +605,9 @@ ) entry( - index = 24, - label = "p_MeO", - group = -""" + index=24, + label="p_MeO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -667,18 +618,16 @@ 8 H u0 {6,S} 9 H u0 {6,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 25, - label = "p_MeO_MeO", - group = -""" + index=25, + label="p_MeO_MeO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -694,16 +643,15 @@ 13 H u0 {6,S} 14 H u0 {6,S} """, - solute = SoluteData( - S = 0.01741, - B = -0.02377, - E = -0.01924, - L = -0.06033, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.01741, + B=-0.02377, + E=-0.01924, + L=-0.06033, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 5 B: 5 @@ -714,10 +662,9 @@ ) entry( - index = 26, - label = "p_MeO_CHO", - group = -""" + index=26, + label="p_MeO_CHO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -731,16 +678,15 @@ 11 H u0 {6,S} 12 H u0 {6,S} """, - solute = SoluteData( - S = 0.03761, - B = -0.04243, - E = 0.01332, - L = -0.01369, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.03761, + B=-0.04243, + E=0.01332, + L=-0.01369, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 4 @@ -751,10 +697,9 @@ ) entry( - index = 27, - label = "p_CHO", - group = -""" + index=27, + label="p_CHO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -763,18 +708,16 @@ 6 H u0 {5,S} 7 O u0 {5,D} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 28, - label = "p_CHO_CHO", - group = -""" + index=28, + label="p_CHO_CHO", + group=""" 1 *1 Cb u0 {2,B} {5,S} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -786,16 +729,15 @@ 9 H u0 {7,S} 10 O u0 {5,D} """, - solute = SoluteData( - S = -0.03508, - B = -0.00120, - E = -0.00785, - L = -0.05185, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.03508, + B=-0.00120, + E=-0.00785, + L=-0.05185, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -806,7 +748,7 @@ ) tree( -""" + """ L1: R L2: aromatic-ortho L3: o_OH @@ -837,4 +779,4 @@ L3: p_CHO L4: p_CHO_CHO """ -) \ No newline at end of file +) diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py b/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py index b2b6f12d6d..9e16678f8f 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/longDistanceInteraction_noncyclic.py @@ -2,77 +2,68 @@ # encoding: utf-8 name = "longDistanceInteraction_noncyclic" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ """ entry( - index = -1, - label = "R", - group = -""" + index=-1, + label="R", + group=""" 1 *1 R u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1, - label = "int14_gauche", - group = -""" + index=1, + label="int14_gauche", + group=""" 1 *1 [Cs,O2s,Cd,S2s] u0 {2,S} 2 *2 Cs u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "CsCs", - group = -""" + index=2, + label="CsCs", + group=""" 1 *1 Cs u0 {2,S} 2 *2 Cs u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "CsCs-P", - group = -""" + index=3, + label="CsCs-P", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 4 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 3049 B: 2937 @@ -83,27 +74,24 @@ ) entry( - index = 4, - label = "CsCs-S", - group = -""" + index=4, + label="CsCs-S", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 4 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 5 Cs u0 {1,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 2073 B: 2023 @@ -114,10 +102,9 @@ ) entry( - index = 5, - label = "CsCs-SS", - group = -""" + index=5, + label="CsCs-SS", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} @@ -127,17 +114,15 @@ 7 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1351 B: 1338 @@ -148,10 +133,9 @@ ) entry( - index = 6, - label = "CsCs-ST", - group = -""" + index=6, + label="CsCs-ST", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} @@ -161,17 +145,15 @@ 7 Cs u0 {2,S} 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 262 B: 260 @@ -182,10 +164,9 @@ ) entry( - index = 7, - label = "CsCs-SQ", - group = -""" + index=7, + label="CsCs-SQ", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} @@ -195,17 +176,15 @@ 7 Cs u0 {2,S} 8 Cs u0 {2,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 51 B: 51 @@ -216,27 +195,24 @@ ) entry( - index = 8, - label = "CsCs-T", - group = -""" + index=8, + label="CsCs-T", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 526 B: 514 @@ -247,10 +223,9 @@ ) entry( - index = 9, - label = "CsCs-TT", - group = -""" + index=9, + label="CsCs-TT", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} @@ -260,17 +235,15 @@ 7 Cs u0 {2,S} 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 27 B: 27 @@ -281,10 +254,9 @@ ) entry( - index = 10, - label = "CsCs-T(TTP)", - group = -""" + index=10, + label="CsCs-T(TTP)", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -300,17 +272,15 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 4 @@ -321,10 +291,9 @@ ) entry( - index = 11, - label = "CsCs-T(TTS)", - group = -""" + index=11, + label="CsCs-T(TTS)", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -340,17 +309,15 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 2 B: 2 @@ -361,10 +328,9 @@ ) entry( - index = 12, - label = "CsCs-TQ", - group = -""" + index=12, + label="CsCs-TQ", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} @@ -374,17 +340,15 @@ 7 Cs u0 {2,S} 8 Cs u0 {2,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 13 B: 13 @@ -395,27 +359,24 @@ ) entry( - index = 13, - label = "CsCs-Q", - group = -""" + index=13, + label="CsCs-Q", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 75 B: 75 @@ -426,10 +387,9 @@ ) entry( - index = 14, - label = "CsCs-QQ", - group = -""" + index=14, + label="CsCs-QQ", + group=""" 1 *1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 *2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} @@ -439,17 +399,15 @@ 7 Cs u0 {2,S} 8 Cs u0 {2,S} """, - - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 2 B: 2 @@ -460,39 +418,35 @@ ) entry( - index = 15, - label = "OsCs", - group = -""" + index=15, + label="OsCs", + group=""" 1 *1 O2s u0 {2,S} 2 *2 Cs u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 16, - label = "OsCs-P", - group = -""" + index=16, + label="OsCs-P", + group=""" 1 *1 O2s u0 {2,S} {3,S} 2 *2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1592 B: 1556 @@ -503,24 +457,22 @@ ) entry( - index = 17, - label = "OsCs-S", - group = -""" + index=17, + label="OsCs-S", + group=""" 1 *1 O2s u0 {2,S} {3,S} 2 *2 Cs u0 {1,S} 3 Cs u0 {1,S} """, - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 10 B: 10 @@ -531,10 +483,9 @@ ) entry( - index = 18, - label = "OsCs-SP", - group = -""" + index=18, + label="OsCs-SP", + group=""" 1 *1 O2s u0 {2,S} {3,S} 2 *2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} @@ -542,16 +493,15 @@ 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - solute = SoluteData( - S = 0.05053, - B = -0.03293, - E = 0.00000, - L = -0.20990, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.05053, + B=-0.03293, + E=0.00000, + L=-0.20990, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 184 B: 169 @@ -562,10 +512,9 @@ ) entry( - index = 19, - label = "OsCs-SS", - group = -""" + index=19, + label="OsCs-SS", + group=""" 1 *1 O2s u0 {2,S} {3,S} 2 *2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} @@ -573,16 +522,15 @@ 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - solute = SoluteData( - S = 0.01821, - B = -0.05133, - E = 0.00000, - L = -0.26050, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.01821, + B=-0.05133, + E=0.00000, + L=-0.26050, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 231 B: 212 @@ -593,10 +541,9 @@ ) entry( - index = 20, - label = "OsCs-ST", - group = -""" + index=20, + label="OsCs-ST", + group=""" 1 *1 O2s u0 {2,S} {3,S} 2 *2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} @@ -604,16 +551,15 @@ 5 Cs u0 {2,S} 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - solute = SoluteData( - S = 0.03351, - B = 0.02734, - E = 0.00000, - L = -0.21073, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.03351, + B=0.02734, + E=0.00000, + L=-0.21073, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 34 B: 23 @@ -624,10 +570,9 @@ ) entry( - index = 21, - label = "OsCs-SQ", - group = -""" + index=21, + label="OsCs-SQ", + group=""" 1 *1 O2s u0 {2,S} {3,S} 2 *2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} @@ -635,16 +580,15 @@ 5 Cs u0 {2,S} 6 Cs u0 {2,S} """, - solute = SoluteData( - S = 0.03210, - B = 0.04690, - E = 0.00000, - L = -0.09839, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.03210, + B=0.04690, + E=0.00000, + L=-0.09839, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 10 B: 10 @@ -655,41 +599,37 @@ ) entry( - index = 22, - label = "CdCs", - group = -""" + index=22, + label="CdCs", + group=""" 1 *1 Cd u0 {2,D} {3,S} 2 Cd u0 {1,D} 3 *2 Cs u0 {1,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 23, - label = "CdCs-P", - group = -""" + index=23, + label="CdCs-P", + group=""" 1 *1 Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 4 *2 Cs u0 {1,S} """, - solute = SoluteData( - S = 0.03660, - B = 0.03194, - E = 0.00896, - L = 0.25534, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.03660, + B=0.03194, + E=0.00896, + L=0.25534, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 496 B: 489 @@ -700,25 +640,23 @@ ) entry( - index = 24, - label = "CdCs-S", - group = -""" + index=24, + label="CdCs-S", + group=""" 1 *1 Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} 4 *2 Cs u0 {1,S} """, - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 0 B: 0 @@ -729,10 +667,9 @@ ) entry( - index = 25, - label = "CdCs-SP", - group = -""" + index=25, + label="CdCs-SP", + group=""" 1 *1 Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} @@ -741,16 +678,15 @@ 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 7 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - solute = SoluteData( - S = -0.06923, - B = 0.00629, - E = 0.03339, - L = 0.20427, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.06923, + B=0.00629, + E=0.03339, + L=0.20427, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 151 B: 145 @@ -761,10 +697,9 @@ ) entry( - index = 26, - label = "CdCs-SS", - group = -""" + index=26, + label="CdCs-SS", + group=""" 1 *1 Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} @@ -773,16 +708,15 @@ 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 7 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - solute = SoluteData( - S = -0.02028, - B = 0.00012, - E = 0.00999, - L = 0.22238, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.02028, + B=0.00012, + E=0.00999, + L=0.22238, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 46 B: 46 @@ -793,10 +727,9 @@ ) entry( - index = 27, - label = "CdCs-ST", - group = -""" + index=27, + label="CdCs-ST", + group=""" 1 *1 Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} @@ -805,16 +738,15 @@ 6 Cs u0 {4,S} 7 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - solute = SoluteData( - S = -0.02097, - B = -0.00294, - E = 0.01043, - L = 0.08786, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.02097, + B=-0.00294, + E=0.01043, + L=0.08786, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 7 B: 7 @@ -825,10 +757,9 @@ ) entry( - index = 28, - label = "CdCs-SQ", - group = -""" + index=28, + label="CdCs-SQ", + group=""" 1 *1 Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} @@ -837,16 +768,15 @@ 6 Cs u0 {4,S} 7 Cs u0 {4,S} """, - solute = SoluteData( - S = -0.00597, - B = 0.00942, - E = 0.01083, - L = 0.05317, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00597, + B=0.00942, + E=0.01083, + L=0.05317, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -857,10 +787,9 @@ ) entry( - index = 29, - label = "int15", - group = -""" + index=29, + label="int15", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} 2 [Cs,O2s,S2s] u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {6,S} {7,S} {8,S} @@ -870,18 +799,16 @@ 7 Cs u0 {3,S} 8 Cs u0 {3,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 30, - label = "CsCsCs", - group = -""" + index=30, + label="CsCsCs", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} 2 Cs u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {6,S} {7,S} {8,S} @@ -891,18 +818,16 @@ 7 Cs u0 {3,S} 8 Cs u0 {3,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 31, - label = "CsCsCs-TQ", - group = -""" + index=31, + label="CsCsCs-TQ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {9,S} 2 Cs u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {6,S} {7,S} {8,S} @@ -913,16 +838,15 @@ 8 Cs u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 17 B: 17 @@ -933,10 +857,9 @@ ) entry( - index = 32, - label = "CsCsCs-QQ", - group = -""" + index=32, + label="CsCsCs-QQ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cs u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {7,S} {8,S} {9,S} @@ -947,16 +870,15 @@ 8 Cs u0 {3,S} 9 Cs u0 {3,S} """, - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 4 B: 4 @@ -967,10 +889,9 @@ ) entry( - index = 33, - label = "CsOsCs", - group = -""" + index=33, + label="CsOsCs", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {6,S} {7,S} {8,S} @@ -980,18 +901,16 @@ 7 Cs u0 {3,S} 8 Cs u0 {3,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 34, - label = "CsOsCs-TQ", - group = -""" + index=34, + label="CsOsCs-TQ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {9,S} 2 O2s u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {6,S} {7,S} {8,S} @@ -1002,16 +921,15 @@ 8 Cs u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - solute = SoluteData( - S = -0.00592, - B = -0.00434, - E = -0.04000, - L = -0.05596, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00592, + B=-0.00434, + E=-0.04000, + L=-0.05596, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -1022,10 +940,9 @@ ) entry( - index = 35, - label = "CsOsCs-QQ", - group = -""" + index=35, + label="CsOsCs-QQ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 O2s u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {7,S} {8,S} {9,S} @@ -1036,16 +953,15 @@ 8 Cs u0 {3,S} 9 Cs u0 {3,S} """, - solute = SoluteData( - S = 0.00000, - B = 0.00000, - E = 0.00000, - L = 0.00000, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00000, + B=0.00000, + E=0.00000, + L=0.00000, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -1056,10 +972,9 @@ ) entry( - index = 36, - label = "CsSsCs", - group = -""" + index=36, + label="CsSsCs", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} 2 S2s u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {6,S} {7,S} {8,S} @@ -1069,18 +984,16 @@ 7 Cs u0 {3,S} 8 Cs u0 {3,S} """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 37, - label = "CsSsCs-QQ", - group = -""" + index=37, + label="CsSsCs-QQ", + group=""" 1 *1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 S2s u0 {1,S} {3,S} 3 *2 Cs u0 {2,S} {7,S} {8,S} {9,S} @@ -1091,16 +1004,15 @@ 8 Cs u0 {3,S} 9 Cs u0 {3,S} """, - solute = SoluteData( - S = 0.01584, - B = 0.01615, - E = 0.00654, - L = -0.01076, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.01584, + B=0.01615, + E=0.00654, + L=-0.01076, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -1111,7 +1023,7 @@ ) tree( -""" + """ L1: R L2: int14_gauche L3: CsCs @@ -1151,4 +1063,4 @@ L3: CsSsCs L4: CsSsCs-QQ """ -) \ No newline at end of file +) diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py b/test/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py index 7d7fb315f9..3b5b955a5a 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/polycyclic.py @@ -2,28 +2,26 @@ # encoding: utf-8 name = "polycyclic" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ """ entry( - index = 1, - label = "PolycyclicRing", - group = -""" + index=1, + label="PolycyclicRing", + group=""" 1 * R u0 """, - solute = SoluteData( - S = 0.00086, - B = 0.04137, - E = -0.08617, - L = 0.16153, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.00086, + B=0.04137, + E=-0.08617, + L=0.16153, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 17 B: 17 @@ -34,21 +32,19 @@ ) entry( - index = 2, - label = "polycyclic_7fused", - group = "OR{Strychnine_general}", - solute = None, - shortDesc = u"""""", - longDesc = -u""" + index=2, + label="polycyclic_7fused", + group="OR{Strychnine_general}", + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "Strychnine_general", - group = -""" + index=3, + label="Strychnine_general", + group=""" 1 * R!H u0 {9,[S,D,B]} {16,[S,D,B]} 2 R!H u0 {7,[S,D,B]} {13,[S,D,B]} {15,[S,D,B]} 3 R!H u0 {6,[S,D,B]} {14,[S,D,B]} {19,[S,D,B]} @@ -74,18 +70,16 @@ 23 R!H u0 {21,[S,D,B]} {24,[S,D,B]} 24 R!H u0 {22,[S,D,B]} {23,[S,D,B]} """, - solute = u'Strychnine', - shortDesc = u"""""", - longDesc = -u""" + solute="Strychnine", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 4, - label = "Strychnine", - group = -""" + index=4, + label="Strychnine", + group=""" 1 * O u0 {9,S} {16,S} 2 N u0 {7,S} {13,S} {15,S} 3 N u0 {6,S} {14,S} {19,S} @@ -111,16 +105,15 @@ 23 C u0 {21,B} {24,B} 24 C u0 {22,B} {23,B} """, - solute = SoluteData( - S = -0.03901, - B = 0.04494, - E = 0.24179, - L = 0.19867, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.03901, + B=0.04494, + E=0.24179, + L=0.19867, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 2 B: 2 @@ -131,10 +124,9 @@ ) entry( - index = 138, - label = "s1_3_6", - group = -""" + index=138, + label="s1_3_6", + group=""" 1 R!H u0 {2,[S,D,T,B]} {3,[S,D,T,B]} {4,[S,D,T,B]} {5,[S,D,T,B]} 2 R!H u0 {1,[S,D,T,B]} {3,[S,D,T,B]} 3 R!H u0 {1,[S,D,T,B]} {2,[S,D,T,B]} @@ -144,18 +136,16 @@ 7 R!H u0 {5,[S,D,T,B]} {8,[S,D,T,B]} 8 * R!H u0 {6,[S,D,T,B]} {7,[S,D,T,B]} """, - solute = u's1_3_6_ane', - shortDesc = u"""""", - longDesc = -u""" + solute="s1_3_6_ane", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 139, - label = "s1_3_6_ane", - group = -""" + index=139, + label="s1_3_6_ane", + group=""" 1 R!H u0 {2,S} {3,S} {4,S} {5,S} 2 R!H u0 {1,S} {3,S} 3 R!H u0 {1,S} {2,S} @@ -165,16 +155,15 @@ 7 R!H u0 {5,S} {8,S} 8 * R!H u0 {6,S} {7,S} """, - solute = SoluteData( - S = -0.00921, - B = 0.02340, - E = -0.03777, - L = -0.03540, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.00921, + B=0.02340, + E=-0.03777, + L=-0.03540, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -185,7 +174,7 @@ ) tree( -""" + """ L1: PolycyclicRing L2: polycyclic_7fused L3: Strychnine_general diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/radical.py b/test/rmgpy/test_data/testing_database/solvation/groups/radical.py index 2f2bf550ee..b73071b68a 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/radical.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/radical.py @@ -9,83 +9,74 @@ structure. """ entry( - index = 0, - label = "R_rad", - group = -""" + index=0, + label="R_rad", + group=""" 1 * R u1 """, - solute = None, - shortDesc = """""", - longDesc = -""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1, - label = "O_rad", - group = -""" + index=1, + label="O_rad", + group=""" 1 * O u1 p2 """, - solute = None, - shortDesc = """""", - longDesc = -""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "ROJ", - group = -""" + index=2, + label="ROJ", + group=""" 1 * O u1 p2 c0 {2,S} 2 R u0 {1,S} """, - solute = SoluteData( - S = 0.0, - B = 0.0, - E = 0.0, - L = 0.0, - A = -0.345, + solute=SoluteData( + S=0.0, + B=0.0, + E=0.0, + L=0.0, + A=-0.345, ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 5, - label = "N3s_rad", - group = -""" + index=5, + label="N3s_rad", + group=""" 1 * N3s u1 p1 """, - solute = SoluteData( - S = 0.0, - B = 0.0, - E = 0.0, - L = 0.0, - A = -0.087, + solute=SoluteData( + S=0.0, + B=0.0, + E=0.0, + L=0.0, + A=-0.087, ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 14, - label = "N3d_guanidine", - group = -""" + index=14, + label="N3d_guanidine", + group=""" 1 Cd u0 {2,D} {3,S} {4,S} 2 * N3d u1 {1,D} 3 N3s u0 {1,S} {5,S} {6,S} @@ -95,21 +86,14 @@ 7 H u0 {4,S} 8 H u0 {4,S} """, - solute = SoluteData( - S = 0.0, - B = 0.0, - E = 0.0, - L = 0.0, - A = -0.17 - ), - shortDesc = """""", - longDesc = -""" + solute=SoluteData(S=0.0, B=0.0, E=0.0, L=0.0, A=-0.17), + shortDesc="""""", + longDesc=""" """, ) tree( -""" + """ L1: R_rad L2: O_rad L3: ROJ @@ -117,4 +101,3 @@ L2: N3d_guanidine """ ) - diff --git a/test/rmgpy/test_data/testing_database/solvation/groups/ring.py b/test/rmgpy/test_data/testing_database/solvation/groups/ring.py index 8143484772..7b31e77b87 100644 --- a/test/rmgpy/test_data/testing_database/solvation/groups/ring.py +++ b/test/rmgpy/test_data/testing_database/solvation/groups/ring.py @@ -2,44 +2,39 @@ # encoding: utf-8 name = "ring" -shortDesc = u"" -longDesc = u""" +shortDesc = "" +longDesc = """ """ entry( - index = 1, - label = "Ring", - group = -""" + index=1, + label="Ring", + group=""" 1 * R u0 """, - solute = None, - shortDesc = u"""""", - longDesc = -u""" + solute=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "Aromatic", - group = -""" + index=2, + label="Aromatic", + group=""" 1 * Cb u0 """, - solute = u'Benzene', - shortDesc = u"""""", - longDesc = -u""" + solute="Benzene", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "Benzene", - group = -""" + index=3, + label="Benzene", + group=""" 1 * Cb u0 {2,B} {6,B} 2 Cb u0 {1,B} {3,B} 3 Cb u0 {2,B} {4,B} @@ -47,16 +42,15 @@ 5 Cb u0 {4,B} {6,B} 6 Cb u0 {1,B} {5,B} """, - solute = SoluteData( - S = -0.08211, - B = 0.03455, - E = -0.09106, - L = -0.06839, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=-0.08211, + B=0.03455, + E=-0.09106, + L=-0.06839, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 3037 B: 2925 @@ -67,40 +61,36 @@ ) entry( - index = 4, - label = "ThreeMember", - group = -""" + index=4, + label="ThreeMember", + group=""" 1 * R!H u0 {2,[S,D,T]} {3,[S,D]} 2 R!H u0 {1,[S,D,T]} {3,[S,D]} 3 R!H u0 {1,[S,D]} {2,[S,D]} """, - solute = u'Cyclopropane', - shortDesc = u"""""", - longDesc = -u""" + solute="Cyclopropane", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 5, - label = "Cyclopropane", - group = -""" + index=5, + label="Cyclopropane", + group=""" 1 * Cs u0 {2,S} {3,S} 2 Cs u0 {1,S} {3,S} 3 Cs u0 {1,S} {2,S} """, - solute = SoluteData( - S = 0.08944, - B = 0.00000, - E = 0.12286, - L = -0.02938, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.08944, + B=0.00000, + E=0.12286, + L=-0.02938, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 46 B: 45 @@ -111,24 +101,22 @@ ) entry( - index = 6, - label = "Ethylene_oxide", - group = -""" + index=6, + label="Ethylene_oxide", + group=""" 1 * O2s u0 {2,S} {3,S} 2 [Cs,N] u0 {1,S} {3,S} 3 [Cs,N] u0 {1,S} {2,S} """, - solute = SoluteData( - S = 0.26498, - B = -0.00442, - E = 0.07866, - L = 0.07046, - A = 0.00000, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.26498, + B=-0.00442, + E=0.07866, + L=0.07046, + A=0.00000, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 20 B: 20 @@ -139,24 +127,22 @@ ) entry( - index = 7, - label = "Ethyleneimine", - group = -""" + index=7, + label="Ethyleneimine", + group=""" 1 * N u0 {2,S} {3,S} 2 [Cs,N,S] u0 {1,S} {3,S} 3 [Cs,N,S] u0 {1,S} {2,S} """, - solute = SoluteData( - S = 0.07140, - B = -0.02734, - E = 0.04383, - L = 0.07610, - A = 0.00704, - ), - shortDesc = u"""""", - longDesc = -u""" + solute=SoluteData( + S=0.07140, + B=-0.02734, + E=0.04383, + L=0.07610, + A=0.00704, + ), + shortDesc="""""", + longDesc=""" Number of data used to fit each solute parameter: S: 1 B: 1 @@ -167,7 +153,7 @@ ) tree( -""" + """ L1: Ring L2: Aromatic L3: Benzene diff --git a/test/rmgpy/test_data/testing_database/solvation/libraries/solute.py b/test/rmgpy/test_data/testing_database/solvation/libraries/solute.py index d78c4c10c5..0c38c2993e 100644 --- a/test/rmgpy/test_data/testing_database/solvation/libraries/solute.py +++ b/test/rmgpy/test_data/testing_database/solvation/libraries/solute.py @@ -7,77 +7,73 @@ From Abraham J. Chem. Soc. 1994 """ entry( - index = 1, - label = "methane", - molecule = "C", - solute = SoluteData( - S = 0, - B = 0, - E = 0, - L = -0.323, - A = 0, - V = 0.2495, + index=1, + label="methane", + molecule="C", + solute=SoluteData( + S=0, + B=0, + E=0, + L=-0.323, + A=0, + V=0.2495, ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "ethane", - molecule = "CC", - solute = SoluteData( - S = 0, - B = 0, - E = 0, - L = 0.492, - A = 0, - V = 0.3904, + index=2, + label="ethane", + molecule="CC", + solute=SoluteData( + S=0, + B=0, + E=0, + L=0.492, + A=0, + V=0.3904, ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "propane", - molecule = "CCC", - solute = SoluteData( - S = 0, - B = 0, - E = 0, - L = 1.05, - A = 0, - V = 0.5313, + index=3, + label="propane", + molecule="CCC", + solute=SoluteData( + S=0, + B=0, + E=0, + L=1.05, + A=0, + V=0.5313, ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 4, - label = "n-butane", - molecule = "CCCC", - solute = SoluteData( - S = 0, - B = 0, - E = 0, - L = 1.615, - A = 0, - V = 0.6722, + index=4, + label="n-butane", + molecule="CCCC", + solute=SoluteData( + S=0, + B=0, + E=0, + L=1.615, + A=0, + V=0.6722, ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) diff --git a/test/rmgpy/test_data/testing_database/solvation/libraries/solvent.py b/test/rmgpy/test_data/testing_database/solvation/libraries/solvent.py index 3c03718600..caad151a28 100644 --- a/test/rmgpy/test_data/testing_database/solvation/libraries/solvent.py +++ b/test/rmgpy/test_data/testing_database/solvation/libraries/solvent.py @@ -7,134 +7,130 @@ """ entry( - index = 1, - label = "water", - molecule = "O", - solvent = SolventData( - s_g = 2.743, - b_g = 4.814, - e_g = 0.822, - l_g = -0.213, - a_g = 3.904, - c_g = -1.271, - s_h = 2.836, - b_h = -41.816, - e_h = 9.91, - l_h = -6.354, - a_h = -32.01, - c_h = -13.31, - A = -52.843, - B = 3703.6, - C = 5.866, - D = -5.88e-29, - E = 10, - alpha = 0.353, - beta = 0.38, - eps = 80.4, + index=1, + label="water", + molecule="O", + solvent=SolventData( + s_g=2.743, + b_g=4.814, + e_g=0.822, + l_g=-0.213, + a_g=3.904, + c_g=-1.271, + s_h=2.836, + b_h=-41.816, + e_h=9.91, + l_h=-6.354, + a_h=-32.01, + c_h=-13.31, + A=-52.843, + B=3703.6, + C=5.866, + D=-5.88e-29, + E=10, + alpha=0.353, + beta=0.38, + eps=80.4, ), - shortDesc = """ """, - longDesc = -""" + shortDesc=""" """, + longDesc=""" """, ) entry( - index = 2, - label = "1-octanol", - molecule = "CCCCCCCCO", - solvent = SolventData( - s_g = 0.56, - b_g = 0.702, - e_g = -0.203, - l_g = 0.939, - a_g = 3.56, - c_g = -0.12, - s_h = 5.89, - b_h = -8.99, - e_h = -1.04, - l_h = -9.18, - a_h = -53.99, - c_h = -6.49, - A = -0.022128, - B = 3018.4, - C = -2.8054, - D = 1.3141e-05, - E = 2, - alpha = 0.328, - beta = 0.45, - eps = 10.3, + index=2, + label="1-octanol", + molecule="CCCCCCCCO", + solvent=SolventData( + s_g=0.56, + b_g=0.702, + e_g=-0.203, + l_g=0.939, + a_g=3.56, + c_g=-0.12, + s_h=5.89, + b_h=-8.99, + e_h=-1.04, + l_h=-9.18, + a_h=-53.99, + c_h=-6.49, + A=-0.022128, + B=3018.4, + C=-2.8054, + D=1.3141e-05, + E=2, + alpha=0.328, + beta=0.45, + eps=10.3, ), - shortDesc = """ """, - longDesc = -""" + shortDesc=""" """, + longDesc=""" alpha = 0.328, #primary alcohols beta = 0.45, #primary alcohols, """, ) entry( - index = 3, - label = "benzene", - molecule = "C1=CC=CC=C1", - solvent = SolventData( - s_g = 1.053, - b_g = 0.169, - e_g = -0.313, - l_g = 1.02, - a_g = 0.457, - c_g = 0.107, - s_h = -12.599, - b_h = -4.023, - e_h = 4.446, - l_h = -8.488, - a_h = -9.775, - c_h = -4.637, - A = 7.5117, - B = 294.68, - C = -2.794, - D = 0, - E = 0, - alpha = 0, - beta = 0.14, - eps = 2.3, + index=3, + label="benzene", + molecule="C1=CC=CC=C1", + solvent=SolventData( + s_g=1.053, + b_g=0.169, + e_g=-0.313, + l_g=1.02, + a_g=0.457, + c_g=0.107, + s_h=-12.599, + b_h=-4.023, + e_h=4.446, + l_h=-8.488, + a_h=-9.775, + c_h=-4.637, + A=7.5117, + B=294.68, + C=-2.794, + D=0, + E=0, + alpha=0, + beta=0.14, + eps=2.3, ), - shortDesc = """ """, - longDesc = -""" + shortDesc=""" """, + longDesc=""" """, ) entry( - index = 4, - label = "cyclohexane", - molecule = "C1CCCCC1", - solvent = SolventData( - s_g = 0, - b_g = 0, - e_g = -0.11, - l_g = 1.013, - a_g = 0, - c_g = 0.163, - s_h = 0.0, - b_h = 0.0, - e_h = 3.375, - l_h = -9.078, - a_h = 0.0, - c_h = -6.507, - A = -33.763, - B = 2497.2, - C = 3.2236, - D = 0, - E = 0, - alpha = 0, - beta = 0, - eps = 2.0, + index=4, + label="cyclohexane", + molecule="C1CCCCC1", + solvent=SolventData( + s_g=0, + b_g=0, + e_g=-0.11, + l_g=1.013, + a_g=0, + c_g=0.163, + s_h=0.0, + b_h=0.0, + e_h=3.375, + l_h=-9.078, + a_h=0.0, + c_h=-6.507, + A=-33.763, + B=2497.2, + C=3.2236, + D=0, + E=0, + alpha=0, + beta=0, + eps=2.0, ), - shortDesc = """ """, - longDesc = -""" + shortDesc=""" """, + longDesc=""" """, ) diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py b/test/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py index f4f67ed748..2de75959e5 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/adsorptionPt111.py @@ -10,10 +10,9 @@ """ entry( - index = 1, - label = "R*", - group= -""" + index=1, + label="R*", + group=""" 1 R u0 2 X u0 """, @@ -25,23 +24,22 @@ *********** This node should be empty, ensuring that one of the nodes below is used. """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 1, - label = "R-*", - group = -""" + index=1, + label="R-*", + group=""" 1 X u0 p0 c0 {2,S} 2 R u0 p0 c0 {1,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-3.01, -1.78, -0.96, -0.41, 0.23, 0.56, 0.91], 'cal/(mol*K)'), - H298=(-86.29, 'kcal/mol'), - S298=(-26.39, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.01, -1.78, -0.96, -0.41, 0.23, 0.56, 0.91], "cal/(mol*K)"), + H298=(-86.29, "kcal/mol"), + S298=(-26.39, "cal/(mol*K)"), ), shortDesc="""Came from H single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -50,24 +48,23 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 2, - label = "(R2)*", - group = -""" + index=2, + label="(R2)*", + group=""" 1 X u0 p0 c0 2 R u0 p0 c0 {3,S} 3 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.13, 1.17, 1.19, 1.2, 1.21, 1.21, 1.22], 'cal/(mol*K)'), - H298=(-1.22, 'kcal/mol'), - S298=(-7.73, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.13, 1.17, 1.19, 1.2, 1.21, 1.21, 1.22], "cal/(mol*K)"), + H298=(-1.22, "kcal/mol"), + S298=(-7.73, "cal/(mol*K)"), ), shortDesc="""Came from H2 vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -76,25 +73,24 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 3, - label = "(OR2)*", - group = -""" + index=3, + label="(OR2)*", + group=""" 1 X u0 p0 c0 2 O u0 p2 c0 {3,S} {4,S} 3 R u0 p0 c0 {2,S} 4 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.88, 1.49, 1.82, 2.02, 2.22, 2.33, 2.43], 'cal/(mol*K)'), - H298=(-4.85, 'kcal/mol'), - S298=(-22.53, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.88, 1.49, 1.82, 2.02, 2.22, 2.33, 2.43], "cal/(mol*K)"), + H298=(-4.85, "kcal/mol"), + S298=(-22.53, "cal/(mol*K)"), ), shortDesc="""Came from H2O vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -103,24 +99,23 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 4, - label = "O-*R", - group = -""" + index=4, + label="O-*R", + group=""" 1 X u0 p0 c0 {2,S} 2 O u0 p2 c0 {1,S} {3,S} 3 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.34, 2.23, 2.7, 2.97, 3.25, 3.38, 3.5], 'cal/(mol*K)'), - H298=(-46.18, 'kcal/mol'), - S298=(-33.89, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.34, 2.23, 2.7, 2.97, 3.25, 3.38, 3.5], "cal/(mol*K)"), + H298=(-46.18, "kcal/mol"), + S298=(-33.89, "cal/(mol*K)"), ), shortDesc="""Came from OH single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -131,15 +126,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 5, - label = "(OROR)*", - group = -""" + index=5, + label="(OROR)*", + group=""" 1 X u0 p0 c0 2 O u0 p2 c0 {3,S} {4,S} 3 O u0 p2 c0 {2,S} {5,S} @@ -147,10 +141,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.85, 2.13, 2.27, 2.35, 2.45, 2.51, 2.57], 'cal/(mol*K)'), - H298=(-6.72, 'kcal/mol'), - S298=(-26.31, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.85, 2.13, 2.27, 2.35, 2.45, 2.51, 2.57], "cal/(mol*K)"), + H298=(-6.72, "kcal/mol"), + S298=(-26.31, "cal/(mol*K)"), ), shortDesc="""Came from HO-OH vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -159,25 +153,24 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 6, - label = "O-*O-*", - group = -""" + index=6, + label="O-*O-*", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,S} 3 O u0 p2 c0 {1,S} {4,S} 4 O u0 p2 c0 {2,S} {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.43, 3.46, 3.9, 4.05, 4.07, 4.0, 3.85], 'cal/(mol*K)'), - H298=(-8.59, 'kcal/mol'), - S298=(-40.49, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.43, 3.46, 3.9, 4.05, 4.07, 4.0, 3.85], "cal/(mol*K)"), + H298=(-8.59, "kcal/mol"), + S298=(-40.49, "cal/(mol*K)"), ), shortDesc="""Came from O2 bidentate, twice single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -186,25 +179,24 @@ | | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 7, - label = "O-*OR", - group = -""" + index=7, + label="O-*OR", + group=""" 1 X u0 p0 c0 {2,S} 2 O u0 p2 c0 {1,S} {3,S} 3 O u0 p2 c0 {2,S} {4,S} 4 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.69, 3.13, 3.18, 3.12, 2.92, 2.76, 2.56], 'cal/(mol*K)'), - H298=(-17.47, 'kcal/mol'), - S298=(-31.56, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.69, 3.13, 3.18, 3.12, 2.92, 2.76, 2.56], "cal/(mol*K)"), + H298=(-17.47, "kcal/mol"), + S298=(-31.56, "cal/(mol*K)"), ), shortDesc="""Came from OOH single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -215,23 +207,22 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 8, - label = "O=*", - group = -""" + index=8, + label="O=*", + group=""" 1 X u0 p0 c0 {2,D} 2 O u0 p2 c0 {1,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.39, 0.26, 0.58, 0.77, 0.96, 1.05, 1.14], 'cal/(mol*K)'), - H298=(-99.97, 'kcal/mol'), - S298=(-30.95, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.39, 0.26, 0.58, 0.77, 0.96, 1.05, 1.14], "cal/(mol*K)"), + H298=(-99.97, "kcal/mol"), + S298=(-30.95, "cal/(mol*K)"), ), shortDesc="""Came from O double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -240,15 +231,14 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 9, - label = "O-*NR2", - group = -""" + index=9, + label="O-*NR2", + group=""" 1 X u0 p0 c0 {3,S} 2 N u0 p1 c0 {3,S} {4,S} {5,S} 3 O u0 p2 c0 {1,S} {2,S} @@ -256,10 +246,10 @@ 5 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.33, 1.18, 1.65, 1.93, 2.2, 2.32, 2.41], 'cal/(mol*K)'), - H298=(-16.75, 'kcal/mol'), - S298=(-33.37, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.33, 1.18, 1.65, 1.93, 2.2, 2.32, 2.41], "cal/(mol*K)"), + H298=(-16.75, "kcal/mol"), + S298=(-33.37, "cal/(mol*K)"), ), shortDesc="""Came from O-NH2 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -270,15 +260,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 10, - label = "O-*CR3", - group = -""" + index=10, + label="O-*CR3", + group=""" 1 X u0 p0 c0 {3,S} 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 O u0 p2 c0 {1,S} {2,S} @@ -287,10 +276,10 @@ 6 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.28, 0.58, 0.85, 1.08, 1.4, 1.61, 1.93], 'cal/(mol*K)'), - H298=(-32.28, 'kcal/mol'), - S298=(-34.6, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.28, 0.58, 0.85, 1.08, 1.4, 1.61, 1.93], "cal/(mol*K)"), + H298=(-32.28, "kcal/mol"), + S298=(-34.6, "cal/(mol*K)"), ), shortDesc="""Came from O-CH3 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -301,15 +290,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 11, - label = "(NR3)*", - group = -""" + index=11, + label="(NR3)*", + group=""" 1 X u0 p0 c0 2 N u0 p1 c0 {3,S} {4,S} {5,S} 3 R u0 p0 c0 {2,S} @@ -317,10 +305,10 @@ 5 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.23, 2.36, 3.08, 3.56, 4.11, 4.4, 4.69], 'cal/(mol*K)'), - H298=(-16.11, 'kcal/mol'), - S298=(-32.0, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.23, 2.36, 3.08, 3.56, 4.11, 4.4, 4.69], "cal/(mol*K)"), + H298=(-16.11, "kcal/mol"), + S298=(-32.0, "cal/(mol*K)"), ), shortDesc="""Came from NH3 vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -329,25 +317,24 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 12, - label = "N-*R2", - group = -""" + index=12, + label="N-*R2", + group=""" 1 X u0 p0 c0 {2,S} 2 N u0 p1 c0 {1,S} {3,S} {4,S} 3 R u0 p0 c0 {2,S} 4 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.05, 0.88, 2.07, 2.81, 3.6, 3.99, 4.4], 'cal/(mol*K)'), - H298=(-48.33, 'kcal/mol'), - S298=(-47.88, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.05, 0.88, 2.07, 2.81, 3.6, 3.99, 4.4], "cal/(mol*K)"), + H298=(-48.33, "kcal/mol"), + S298=(-47.88, "cal/(mol*K)"), ), shortDesc="""Came from NH2 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -356,46 +343,44 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 13, - label = "N=*R", - group = -""" + index=13, + label="N=*R", + group=""" 1 X u0 p0 c0 {2,D} 2 N u0 p1 c0 {1,D} {3,S} 3 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-2.14, -0.29, 0.86, 1.58, 2.37, 2.76, 3.18], 'cal/(mol*K)'), - H298=(-80.92, 'kcal/mol'), - S298=(-40.72, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.14, -0.29, 0.86, 1.58, 2.37, 2.76, 3.18], "cal/(mol*K)"), + H298=(-80.92, "kcal/mol"), + S298=(-40.72, "cal/(mol*K)"), ), shortDesc="""Came from NH double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 14, - label = "N#*", - group = -""" + index=14, + label="N#*", + group=""" 1 X u0 p0 c0 {2,T} 2 N u0 p1 c0 {1,T} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.14, -0.25, 0.24, 0.52, 0.81, 0.96, 1.1], 'cal/(mol*K)'), - H298=(-147.51, 'kcal/mol'), - S298=(-32.92, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.14, -0.25, 0.24, 0.52, 0.81, 0.96, 1.1], "cal/(mol*K)"), + H298=(-147.51, "kcal/mol"), + S298=(-32.92, "cal/(mol*K)"), ), shortDesc="""Came from N triple-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -404,15 +389,14 @@ ||| *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 15, - label = "(NR2OR)*", - group = -""" + index=15, + label="(NR2OR)*", + group=""" 1 X u0 p0 c0 2 N u0 p1 c0 {3,S} {4,S} {5,S} 3 O u0 p2 c0 {2,S} {6,S} @@ -421,10 +405,10 @@ 6 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.44, 0.2, 0.73, 1.14, 1.69, 2.01, 2.35], 'cal/(mol*K)'), - H298=(-15.69, 'kcal/mol'), - S298=(-32.2, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.44, 0.2, 0.73, 1.14, 1.69, 2.01, 2.35], "cal/(mol*K)"), + H298=(-15.69, "kcal/mol"), + S298=(-32.2, "cal/(mol*K)"), ), shortDesc="""Came from H2N-OH vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -433,25 +417,24 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 16, - label = "(NRO)*", - group = -""" + index=16, + label="(NRO)*", + group=""" 1 X u0 p0 c0 2 N u0 p1 c0 {3,D} {4,S} 3 O u0 p2 c0 {2,D} 4 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.27, 0.8, 1.4, 1.72, 1.98, 2.06, 2.17], 'cal/(mol*K)'), - H298=(-30.08, 'kcal/mol'), - S298=(-32.78, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.27, 0.8, 1.4, 1.72, 1.98, 2.06, 2.17], "cal/(mol*K)"), + H298=(-30.08, "kcal/mol"), + S298=(-32.78, "cal/(mol*K)"), ), shortDesc="""Came from HN-O vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -460,15 +443,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 17, - label = "N-*ROR", - group = -""" + index=17, + label="N-*ROR", + group=""" 1 X u0 p0 c0 {2,S} 2 N u0 p1 c0 {1,S} {3,S} {4,S} 3 O u0 p2 c0 {2,S} {5,S} @@ -476,10 +458,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.24, 3.32, 3.89, 4.22, 4.56, 4.73, 4.88], 'cal/(mol*K)'), - H298=(-32.32, 'kcal/mol'), - S298=(-45.51, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.24, 3.32, 3.89, 4.22, 4.56, 4.73, 4.88], "cal/(mol*K)"), + H298=(-32.32, "kcal/mol"), + S298=(-45.51, "cal/(mol*K)"), ), shortDesc="""Came from HN-OH single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -488,24 +470,23 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 18, - label = "N-*O", - group = -""" + index=18, + label="N-*O", + group=""" 1 X u0 p0 c0 {2,S} 2 N u0 p1 c0 {1,S} {3,D} 3 O u0 p2 c0 {2,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.81, 2.7, 3.19, 3.47, 3.71, 3.77, 3.75], 'cal/(mol*K)'), - H298=(-37.18, 'kcal/mol'), - S298=(-40.63, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.81, 2.7, 3.19, 3.47, 3.71, 3.77, 3.75], "cal/(mol*K)"), + H298=(-37.18, "kcal/mol"), + S298=(-40.63, "cal/(mol*K)"), ), shortDesc="""Came from NO single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -516,25 +497,24 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 19, - label = "N=*O-*", - group = -""" + index=19, + label="N=*O-*", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,S} 3 N u0 p1 c0 {1,D} {4,S} 4 O u0 p2 c0 {2,S} {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.05, 0.57, 0.86, 1.04, 1.2, 1.25, 1.26], 'cal/(mol*K)'), - H298=(-32.66, 'kcal/mol'), - S298=(-29.32, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.05, 0.57, 0.86, 1.04, 1.2, 1.25, 1.26], "cal/(mol*K)"), + H298=(-32.66, "kcal/mol"), + S298=(-29.32, "cal/(mol*K)"), ), shortDesc="""Came from NO-h bidentate, double- and single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -543,25 +523,24 @@ || | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 20, - label = "N=*OR", - group = -""" + index=20, + label="N=*OR", + group=""" 1 X u0 p0 c0 {2,D} 2 N u0 p1 c0 {1,D} {3,S} 3 O u0 p2 c0 {2,S} {4,S} 4 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.65, 3.78, 4.29, 4.49, 4.55, 4.5, 4.48], 'cal/(mol*K)'), - H298=(-75.72, 'kcal/mol'), - S298=(-44.7, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.65, 3.78, 4.29, 4.49, 4.55, 4.5, 4.48], "cal/(mol*K)"), + H298=(-75.72, "kcal/mol"), + S298=(-44.7, "cal/(mol*K)"), ), shortDesc="""Came from NOH double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -572,15 +551,14 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 21, - label = "(NR2NR2)*", - group = -""" + index=21, + label="(NR2NR2)*", + group=""" 1 X u0 p0 c0 2 N u0 p1 c0 {3,S} {4,S} {5,S} 3 N u0 p1 c0 {2,S} {6,S} {7,S} @@ -590,10 +568,10 @@ 7 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.13, 0.74, 1.16, 1.46, 1.84, 2.06, 2.3], 'cal/(mol*K)'), - H298=(-23.19, 'kcal/mol'), - S298=(-31.95, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.13, 0.74, 1.16, 1.46, 1.84, 2.06, 2.3], "cal/(mol*K)"), + H298=(-23.19, "kcal/mol"), + S298=(-31.95, "cal/(mol*K)"), ), shortDesc="""Came from H2N-NH2 vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -602,15 +580,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 22, - label = "(NRNR)*", - group = -""" + index=22, + label="(NRNR)*", + group=""" 1 X u0 p0 c0 2 N u0 p1 c0 {3,D} {4,S} 3 N u0 p1 c0 {2,D} {5,S} @@ -618,10 +595,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([3.21, 4.62, 5.24, 5.46, 5.43, 5.28, 5.02], 'cal/(mol*K)'), - H298=(-20.58, 'kcal/mol'), - S298=(-42.07, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.21, 4.62, 5.24, 5.46, 5.43, 5.28, 5.02], "cal/(mol*K)"), + H298=(-20.58, "kcal/mol"), + S298=(-42.07, "cal/(mol*K)"), ), shortDesc="""Came from HN-NH vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -630,25 +607,24 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 23, - label = "N-*N-*", - group = -""" + index=23, + label="N-*N-*", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,S} 3 N u0 p1 c0 {1,S} {4,D} 4 N u0 p1 c0 {2,S} {3,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.2, 1.21, 1.21, 1.21, 1.22, 1.22, 1.22], 'cal/(mol*K)'), - H298=(-2.39, 'kcal/mol'), - S298=(-13.89, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.2, 1.21, 1.21, 1.21, 1.22, 1.22, 1.22], "cal/(mol*K)"), + H298=(-2.39, "kcal/mol"), + S298=(-13.89, "cal/(mol*K)"), ), shortDesc="""Came from NN bidentate, twice single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -657,15 +633,14 @@ | | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 24, - label = "N-*RNR2", - group = -""" + index=24, + label="N-*RNR2", + group=""" 1 X u0 p0 c0 {2,S} 2 N u0 p1 c0 {1,S} {3,S} {4,S} 3 N u0 p1 c0 {2,S} {5,S} {6,S} @@ -674,10 +649,10 @@ 6 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.92, 2.91, 3.52, 3.91, 4.35, 4.57, 4.79], 'cal/(mol*K)'), - H298=(-29.97, 'kcal/mol'), - S298=(-45.43, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.92, 2.91, 3.52, 3.91, 4.35, 4.57, 4.79], "cal/(mol*K)"), + H298=(-29.97, "kcal/mol"), + S298=(-45.43, "cal/(mol*K)"), ), shortDesc="""Came from HN-NH2 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -686,25 +661,24 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 25, - label = "N-*NR", - group = -""" + index=25, + label="N-*NR", + group=""" 1 X u0 p0 c0 {2,S} 2 N u0 p1 c0 {1,S} {3,D} 3 N u0 p1 c0 {2,D} {4,S} 4 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.74, 2.91, 3.56, 3.93, 4.25, 4.37, 4.52], 'cal/(mol*K)'), - H298=(-25.14, 'kcal/mol'), - S298=(-43.45, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.74, 2.91, 3.56, 3.93, 4.25, 4.37, 4.52], "cal/(mol*K)"), + H298=(-25.14, "kcal/mol"), + S298=(-43.45, "cal/(mol*K)"), ), shortDesc="""Came from N-NH single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -715,15 +689,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 26, - label = "N=*NR2", - group = -""" + index=26, + label="N=*NR2", + group=""" 1 X u0 p0 c0 {2,D} 2 N u0 p1 c0 {1,D} {3,S} 3 N u0 p1 c0 {2,S} {4,S} {5,S} @@ -731,10 +704,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([3.32, 4.56, 5.07, 5.2, 5.03, 4.79, 4.55], 'cal/(mol*K)'), - H298=(-47.66, 'kcal/mol'), - S298=(-43.17, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.32, 4.56, 5.07, 5.2, 5.03, 4.79, 4.55], "cal/(mol*K)"), + H298=(-47.66, "kcal/mol"), + S298=(-43.17, "cal/(mol*K)"), ), shortDesc="""Came from N-NH2 double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -745,15 +718,14 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 27, - label = "N-*RN-*R", - group = -""" + index=27, + label="N-*RN-*R", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,S} 3 N u0 p1 c0 {1,S} {4,S} {5,S} @@ -762,10 +734,10 @@ 6 R u0 p0 c0 {4,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.53, 4.03, 4.78, 5.11, 5.24, 5.17, 5.0], 'cal/(mol*K)'), - H298=(-23.37, 'kcal/mol'), - S298=(-43.91, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.53, 4.03, 4.78, 5.11, 5.24, 5.17, 5.0], "cal/(mol*K)"), + H298=(-23.37, "kcal/mol"), + S298=(-43.91, "cal/(mol*K)"), ), shortDesc="""Came from HN-NH-h bidentate, twice single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -774,15 +746,14 @@ | | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 28, - label = "N-*RCR3", - group = -""" + index=28, + label="N-*RCR3", + group=""" 1 X u0 p0 c0 {3,S} 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 N u0 p1 c0 {1,S} {2,S} {7,S} @@ -792,10 +763,10 @@ 7 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.18, 2.22, 2.89, 3.33, 3.85, 4.12, 4.45], 'cal/(mol*K)'), - H298=(-43.5, 'kcal/mol'), - S298=(-46.63, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.18, 2.22, 2.89, 3.33, 3.85, 4.12, 4.45], "cal/(mol*K)"), + H298=(-43.5, "kcal/mol"), + S298=(-46.63, "cal/(mol*K)"), ), shortDesc="""Came from HN-CH3 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -804,15 +775,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 29, - label = "N-*CR2", - group = -""" + index=29, + label="N-*CR2", + group=""" 1 X u0 p0 c0 {3,S} 2 C u0 p0 c0 {3,D} {4,S} {5,S} 3 N u0 p1 c0 {1,S} {2,D} @@ -820,10 +790,10 @@ 5 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.99, 2.96, 3.5, 3.83, 4.17, 4.33, 4.54], 'cal/(mol*K)'), - H298=(-39.07, 'kcal/mol'), - S298=(-44.16, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.99, 2.96, 3.5, 3.83, 4.17, 4.33, 4.54], "cal/(mol*K)"), + H298=(-39.07, "kcal/mol"), + S298=(-44.16, "cal/(mol*K)"), ), shortDesc="""Came from N-CH2 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -834,15 +804,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 30, - label = "N=*CR3", - group = -""" + index=30, + label="N=*CR3", + group=""" 1 X u0 p0 c0 {3,D} 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 N u0 p1 c0 {1,D} {2,S} @@ -851,10 +820,10 @@ 6 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.12, 1.89, 2.43, 2.81, 3.29, 3.59, 4.07], 'cal/(mol*K)'), - H298=(-71.1, 'kcal/mol'), - S298=(-47.17, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.12, 1.89, 2.43, 2.81, 3.29, 3.59, 4.07], "cal/(mol*K)"), + H298=(-71.1, "kcal/mol"), + S298=(-47.17, "cal/(mol*K)"), ), shortDesc="""Came from N-CH3 double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -865,25 +834,24 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 31, - label = "N-*O2", - group = -""" + index=31, + label="N-*O2", + group=""" 1 X u0 p0 c0 {2,S} 2 N u0 p0 c+1 {1,S} {3,S} {4,D} 3 O u0 p2 c-1 {2,S} 4 O u0 p2 c0 {2,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.35, 2.6, 2.67, 2.66, 2.61, 2.57, 2.5], 'cal/(mol*K)'), - H298=(-16.1, 'kcal/mol'), - S298=(-33.93, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.35, 2.6, 2.67, 2.66, 2.61, 2.57, 2.5], "cal/(mol*K)"), + H298=(-16.1, "kcal/mol"), + S298=(-33.93, "cal/(mol*K)"), ), shortDesc="""Came from ON-O single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -892,23 +860,22 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 32, - label = "Cq*", - group = -""" + index=32, + label="Cq*", + group=""" 1 X u0 p0 c0 {2,Q} 2 C u0 p0 c0 {1,Q} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-2.0, -0.88, -0.22, 0.18, 0.61, 0.82, 1.04], 'cal/(mol*K)'), - H298=(-156.9, 'kcal/mol'), - S298=(-31.82, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.0, -0.88, -0.22, 0.18, 0.61, 0.82, 1.04], "cal/(mol*K)"), + H298=(-156.9, "kcal/mol"), + S298=(-31.82, "cal/(mol*K)"), ), shortDesc="""Came from C quadruple-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -917,25 +884,24 @@ |||| *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 33, - label = "C-*C-*", - group = -""" + index=33, + label="C-*C-*", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,D} 3 C u0 p0 c0 {1,D} {4,D} 4 C u0 p0 c0 {2,D} {3,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.98, 2.17, 2.79, 3.13, 3.44, 3.55, 3.63], 'cal/(mol*K)'), - H298=(-137.31, 'kcal/mol'), - S298=(-41.99, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.98, 2.17, 2.79, 3.13, 3.44, 3.55, 3.63], "cal/(mol*K)"), + H298=(-137.31, "kcal/mol"), + S298=(-41.99, "cal/(mol*K)"), ), shortDesc="""Came from C-C bidentate, twice double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -944,15 +910,14 @@ | | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 34, - label = "C=*CR2", - group = -""" + index=34, + label="C=*CR2", + group=""" 1 X u0 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} 3 C u0 p0 c0 {2,D} {4,S} {5,S} @@ -960,10 +925,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.2, 0.67, 1.9, 2.71, 3.62, 4.07, 4.52], 'cal/(mol*K)'), - H298=(-93.15, 'kcal/mol'), - S298=(-48.06, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.2, 0.67, 1.9, 2.71, 3.62, 4.07, 4.52], "cal/(mol*K)"), + H298=(-93.15, "kcal/mol"), + S298=(-48.06, "cal/(mol*K)"), ), shortDesc="""Came from C-CH2 double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -974,15 +939,14 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 35, - label = "C#*CR3", - group = -""" + index=35, + label="C#*CR3", + group=""" 1 X u0 p0 c0 {3,T} 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 C u0 p0 c0 {1,T} {2,S} @@ -991,10 +955,10 @@ 6 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.98, 1.94, 2.58, 3.04, 3.6, 3.92, 4.33], 'cal/(mol*K)'), - H298=(-129.74, 'kcal/mol'), - S298=(-45.92, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.98, 1.94, 2.58, 3.04, 3.6, 3.92, 4.33], "cal/(mol*K)"), + H298=(-129.74, "kcal/mol"), + S298=(-45.92, "cal/(mol*K)"), ), shortDesc="""Came from C-CH3 triple-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1005,24 +969,23 @@ ||| *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 36, - label = "C#*R", - group = -""" + index=36, + label="C#*R", + group=""" 1 X u0 p0 c0 {2,T} 2 C u0 p0 c0 {1,T} {3,S} 3 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-2.35, -0.42, 0.76, 1.49, 2.29, 2.68, 3.14], 'cal/(mol*K)'), - H298=(-145.5, 'kcal/mol'), - S298=(-40.0, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.35, -0.42, 0.76, 1.49, 2.29, 2.68, 3.14], "cal/(mol*K)"), + H298=(-145.5, "kcal/mol"), + S298=(-40.0, "cal/(mol*K)"), ), shortDesc="""Came from CH triple-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1033,15 +996,14 @@ ||| *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 37, - label = "C=*RC=*R", - group = -""" + index=37, + label="C=*RC=*R", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,D} 3 C u0 p0 c0 {1,D} {4,S} {5,S} @@ -1050,10 +1012,10 @@ 6 R u0 p0 c0 {4,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.05, 1.59, 2.7, 3.47, 4.37, 4.8, 5.11], 'cal/(mol*K)'), - H298=(-47.33, 'kcal/mol'), - S298=(-31.36, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.05, 1.59, 2.7, 3.47, 4.37, 4.8, 5.11], "cal/(mol*K)"), + H298=(-47.33, "kcal/mol"), + S298=(-31.36, "cal/(mol*K)"), ), shortDesc="""Came from CH-CH bidentate, twice double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1062,25 +1024,24 @@ || || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 38, - label = "C=*R2", - group = -""" + index=38, + label="C=*R2", + group=""" 1 X u0 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,S} {4,S} 3 R u0 p0 c0 {2,S} 4 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.54, 0.48, 1.74, 2.53, 3.38, 3.8, 4.29], 'cal/(mol*K)'), - H298=(-85.5, 'kcal/mol'), - S298=(-42.7, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, 0.48, 1.74, 2.53, 3.38, 3.8, 4.29], "cal/(mol*K)"), + H298=(-85.5, "kcal/mol"), + S298=(-42.7, "cal/(mol*K)"), ), shortDesc="""Came from CH2 double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1089,15 +1050,14 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 39, - label = "C-*R2C-*R2", - group = -""" + index=39, + label="C-*R2C-*R2", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,S} 3 C u0 p0 c0 {1,S} {4,S} {5,S} {6,S} @@ -1108,10 +1068,10 @@ 8 R u0 p0 c0 {4,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.94, 3.35, 4.13, 4.56, 4.94, 5.08, 5.11], 'cal/(mol*K)'), - H298=(-22.63, 'kcal/mol'), - S298=(-41.46, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.94, 3.35, 4.13, 4.56, 4.94, 5.08, 5.11], "cal/(mol*K)"), + H298=(-22.63, "kcal/mol"), + S298=(-41.46, "cal/(mol*K)"), ), shortDesc="""Came from CH2-CH2 bidentate, twice single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1120,15 +1080,14 @@ | | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 40, - label = "C-*R3", - group = -""" + index=40, + label="C-*R3", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} {4,S} {5,S} 3 R u0 p0 c0 {2,S} @@ -1136,10 +1095,10 @@ 5 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.56, 0.74, 1.74, 2.48, 3.45, 4.0, 4.58], 'cal/(mol*K)'), - H298=(-41.63, 'kcal/mol'), - S298=(-32.73, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.56, 0.74, 1.74, 2.48, 3.45, 4.0, 4.58], "cal/(mol*K)"), + H298=(-41.63, "kcal/mol"), + S298=(-32.73, "cal/(mol*K)"), ), shortDesc="""Came from CH3 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1148,15 +1107,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 41, - label = "(CR3CR3)*", - group = -""" + index=41, + label="(CR3CR3)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 C u0 p0 c0 {2,S} {7,S} {8,S} {9,S} @@ -1168,10 +1126,10 @@ 9 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.46, 2.5, 2.52, 2.53, 2.53, 2.53, 2.51], 'cal/(mol*K)'), - H298=(-4.64, 'kcal/mol'), - S298=(-15.11, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.46, 2.5, 2.52, 2.53, 2.53, 2.53, 2.51], "cal/(mol*K)"), + H298=(-4.64, "kcal/mol"), + S298=(-15.11, "cal/(mol*K)"), ), shortDesc="""Came from CH3-CH3 vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1180,15 +1138,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 42, - label = "(CR4)*", - group = -""" + index=42, + label="(CR4)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 R u0 p0 c0 {2,S} @@ -1197,10 +1154,10 @@ 6 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.42, 2.45, 2.46, 2.47, 2.48, 2.48, 2.47], 'cal/(mol*K)'), - H298=(-2.4, 'kcal/mol'), - S298=(-6.92, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.42, 2.45, 2.46, 2.47, 2.48, 2.48, 2.47], "cal/(mol*K)"), + H298=(-2.4, "kcal/mol"), + S298=(-6.92, "cal/(mol*K)"), ), shortDesc="""Came from CH4 vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1209,25 +1166,24 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 43, - label = "C=*N-*", - group = -""" + index=43, + label="C=*N-*", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,S} 3 C u0 p0 c0 {1,D} {4,D} 4 N u0 p1 c0 {2,S} {3,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.99, 3.32, 3.51, 3.63, 3.74, 3.76, 3.74], 'cal/(mol*K)'), - H298=(-77.01, 'kcal/mol'), - S298=(-34.98, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.99, 3.32, 3.51, 3.63, 3.74, 3.76, 3.74], "cal/(mol*K)"), + H298=(-77.01, "kcal/mol"), + S298=(-34.98, "cal/(mol*K)"), ), shortDesc="""Came from CN bidentate, double- and single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1236,25 +1192,24 @@ || | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 44, - label = "C=*NR", - group = -""" + index=44, + label="C=*NR", + group=""" 1 X u0 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} 3 N u0 p1 c0 {2,D} {4,S} 4 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.64, 3.53, 4.09, 4.44, 4.81, 4.96, 5.04], 'cal/(mol*K)'), - H298=(-40.56, 'kcal/mol'), - S298=(-30.68, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.64, 3.53, 4.09, 4.44, 4.81, 4.96, 5.04], "cal/(mol*K)"), + H298=(-40.56, "kcal/mol"), + S298=(-30.68, "cal/(mol*K)"), ), shortDesc="""Came from CNH double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1265,15 +1220,14 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 45, - label = "C#*NR2", - group = -""" + index=45, + label="C#*NR2", + group=""" 1 X u0 p0 c0 {2,T} 2 C u0 p0 c0 {1,T} {3,S} 3 N u0 p1 c0 {2,S} {4,S} {5,S} @@ -1281,10 +1235,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([3.38, 4.13, 4.45, 4.59, 4.65, 4.62, 4.6], 'cal/(mol*K)'), - H298=(-94.24, 'kcal/mol'), - S298=(-49.82, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.38, 4.13, 4.45, 4.59, 4.65, 4.62, 4.6], "cal/(mol*K)"), + H298=(-94.24, "kcal/mol"), + S298=(-49.82, "cal/(mol*K)"), ), shortDesc="""Came from CNH2 triple-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1295,24 +1249,23 @@ ||| *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 46, - label = "C=*O", - group = -""" + index=46, + label="C=*O", + group=""" 1 X u0 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,D} 3 O u0 p2 c0 {2,D} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.21, 2.9, 3.29, 3.53, 3.74, 3.8, 3.78], 'cal/(mol*K)'), - H298=(-34.7, 'kcal/mol'), - S298=(-38.09, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.21, 2.9, 3.29, 3.53, 3.74, 3.8, 3.78], "cal/(mol*K)"), + H298=(-34.7, "kcal/mol"), + S298=(-38.09, "cal/(mol*K)"), ), shortDesc="""Came from CO-f double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1323,25 +1276,24 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 47, - label = "C#*OR", - group = -""" + index=47, + label="C#*OR", + group=""" 1 X u0 p0 c0 {2,T} 2 C u0 p0 c0 {1,T} {3,S} 3 O u0 p2 c0 {2,S} {4,S} 4 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([2.23, 3.29, 3.83, 4.12, 4.34, 4.41, 4.5], 'cal/(mol*K)'), - H298=(-99.0, 'kcal/mol'), - S298=(-43.75, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.23, 3.29, 3.83, 4.12, 4.34, 4.41, 4.5], "cal/(mol*K)"), + H298=(-99.0, "kcal/mol"), + S298=(-43.75, "cal/(mol*K)"), ), shortDesc="""Came from COH triple-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1352,15 +1304,14 @@ ||| *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 48, - label = "C-*R2C=*R", - group = -""" + index=48, + label="C-*R2C=*R", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,D} 3 C u0 p0 c0 {1,S} {4,S} {5,S} {6,S} @@ -1370,10 +1321,10 @@ 7 R u0 p0 c0 {4,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.55, 0.65, 2.05, 2.94, 3.91, 4.38, 4.78], 'cal/(mol*K)'), - H298=(-65.6, 'kcal/mol'), - S298=(-53.04, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.55, 0.65, 2.05, 2.94, 3.91, 4.38, 4.78], "cal/(mol*K)"), + H298=(-65.6, "kcal/mol"), + S298=(-53.04, "cal/(mol*K)"), ), shortDesc="""Came from H2C-CH bidentate, single- and double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1382,15 +1333,14 @@ | || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 49, - label = "C-*R2CR3", - group = -""" + index=49, + label="C-*R2CR3", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} {4,S} {5,S} 3 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} @@ -1401,10 +1351,10 @@ 8 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.67, -0.64, 0.12, 0.68, 1.38, 1.78, 2.19], 'cal/(mol*K)'), - H298=(-41.42, 'kcal/mol'), - S298=(-38.35, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.67, -0.64, 0.12, 0.68, 1.38, 1.78, 2.19], "cal/(mol*K)"), + H298=(-41.42, "kcal/mol"), + S298=(-38.35, "cal/(mol*K)"), ), shortDesc="""Came from H2C-CH3 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1415,15 +1365,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 50, - label = "(CR2NR)*", - group = -""" + index=50, + label="(CR2NR)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,D} {4,S} {5,S} 3 N u0 p1 c0 {2,D} {6,S} @@ -1432,10 +1381,10 @@ 6 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.62, 1.68, 2.22, 2.47, 2.62, 2.62, 2.54], 'cal/(mol*K)'), - H298=(-5.98, 'kcal/mol'), - S298=(-33.14, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.62, 1.68, 2.22, 2.47, 2.62, 2.62, 2.54], "cal/(mol*K)"), + H298=(-5.98, "kcal/mol"), + S298=(-33.14, "cal/(mol*K)"), ), shortDesc="""Came from H2C-NH vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1444,15 +1393,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 51, - label = "C-*R2NR2", - group = -""" + index=51, + label="C-*R2NR2", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} {4,S} {5,S} 3 N u0 p1 c0 {2,S} {6,S} {7,S} @@ -1462,10 +1410,10 @@ 7 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.06, -0.27, 0.37, 0.85, 1.47, 1.83, 2.21], 'cal/(mol*K)'), - H298=(-46.51, 'kcal/mol'), - S298=(-35.43, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.06, -0.27, 0.37, 0.85, 1.47, 1.83, 2.21], "cal/(mol*K)"), + H298=(-46.51, "kcal/mol"), + S298=(-35.43, "cal/(mol*K)"), ), shortDesc="""Came from H2C-NH2 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1476,15 +1424,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 52, - label = "(CR2O)*", - group = -""" + index=52, + label="(CR2O)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,D} {4,S} {5,S} 3 O u0 p2 c0 {2,D} @@ -1492,10 +1439,10 @@ 5 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.12, 1.56, 2.29, 2.63, 2.79, 2.75, 2.6], 'cal/(mol*K)'), - H298=(-5.18, 'kcal/mol'), - S298=(-34.64, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.12, 1.56, 2.29, 2.63, 2.79, 2.75, 2.6], "cal/(mol*K)"), + H298=(-5.18, "kcal/mol"), + S298=(-34.64, "cal/(mol*K)"), ), shortDesc="""Came from H2C-O vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1504,15 +1451,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 53, - label = "C-*R2OR", - group = -""" + index=53, + label="C-*R2OR", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,S} {4,S} {5,S} 3 O u0 p2 c0 {2,S} {6,S} @@ -1521,10 +1467,10 @@ 6 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-1.37, -0.44, 0.27, 0.8, 1.48, 1.87, 2.27], 'cal/(mol*K)'), - H298=(-44.42, 'kcal/mol'), - S298=(-35.7, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.37, -0.44, 0.27, 0.8, 1.48, 1.87, 2.27], "cal/(mol*K)"), + H298=(-44.42, "kcal/mol"), + S298=(-35.7, "cal/(mol*K)"), ), shortDesc="""Came from H2C-OH single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1535,15 +1481,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 54, - label = "(CR3NR2)*", - group = -""" + index=54, + label="(CR3NR2)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 N u0 p1 c0 {2,S} {7,S} {8,S} @@ -1554,10 +1499,10 @@ 8 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.09, 0.79, 1.24, 1.54, 1.88, 2.06, 2.26], 'cal/(mol*K)'), - H298=(-20.93, 'kcal/mol'), - S298=(-33.73, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.09, 0.79, 1.24, 1.54, 1.88, 2.06, 2.26], "cal/(mol*K)"), + H298=(-20.93, "kcal/mol"), + S298=(-33.73, "cal/(mol*K)"), ), shortDesc="""Came from H3C-NH2 vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1566,15 +1511,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 55, - label = "(CR3OR)*", - group = -""" + index=55, + label="(CR3OR)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 O u0 p2 c0 {2,S} {7,S} @@ -1584,10 +1528,10 @@ 7 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.69, 2.05, 2.23, 2.33, 2.4, 2.43, 2.45], 'cal/(mol*K)'), - H298=(-7.47, 'kcal/mol'), - S298=(-28.83, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.69, 2.05, 2.23, 2.33, 2.4, 2.43, 2.45], "cal/(mol*K)"), + H298=(-7.47, "kcal/mol"), + S298=(-28.83, "cal/(mol*K)"), ), shortDesc="""Came from H3C-OH vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1596,15 +1540,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 56, - label = "C-*RC=*", - group = -""" + index=56, + label="C-*RC=*", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,D} 3 C u0 p0 c0 {1,S} {4,D} {5,S} @@ -1612,10 +1555,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.85, 2.25, 3.11, 3.66, 4.25, 4.53, 4.78], 'cal/(mol*K)'), - H298=(-95.45, 'kcal/mol'), - S298=(-42.29, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.85, 2.25, 3.11, 3.66, 4.25, 4.53, 4.78], "cal/(mol*K)"), + H298=(-95.45, "kcal/mol"), + S298=(-42.29, "cal/(mol*K)"), ), shortDesc="""Came from HC-C bidentate, single- and double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1624,15 +1567,14 @@ | || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 57, - label = "C-*RCR2", - group = -""" + index=57, + label="C-*RCR2", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,D} {4,S} 3 C u0 p0 c0 {2,D} {5,S} {6,S} @@ -1641,10 +1583,10 @@ 6 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.22, 1.96, 3.02, 3.67, 4.35, 4.65, 4.89], 'cal/(mol*K)'), - H298=(-65.44, 'kcal/mol'), - S298=(-48.91, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.22, 1.96, 3.02, 3.67, 4.35, 4.65, 4.89], "cal/(mol*K)"), + H298=(-65.44, "kcal/mol"), + S298=(-48.91, "cal/(mol*K)"), ), shortDesc="""Came from HC-CH2 single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1655,15 +1597,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 58, - label = "C=*RCR3", - group = -""" + index=58, + label="C=*RCR3", + group=""" 1 X u0 p0 c0 {3,D} 2 C u0 p0 c0 {3,S} {4,S} {5,S} {6,S} 3 C u0 p0 c0 {1,D} {2,S} {7,S} @@ -1673,10 +1614,10 @@ 7 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.11, 2.09, 2.75, 3.2, 3.72, 4.0, 4.37], 'cal/(mol*K)'), - H298=(-83.24, 'kcal/mol'), - S298=(-44.11, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.11, 2.09, 2.75, 3.2, 3.72, 4.0, 4.37], "cal/(mol*K)"), + H298=(-83.24, "kcal/mol"), + S298=(-44.11, "cal/(mol*K)"), ), shortDesc="""Came from HC-CH3 double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1687,25 +1628,24 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 59, - label = "(CRN)*", - group = -""" + index=59, + label="(CRN)*", + group=""" 1 X u0 p0 c0 2 C u0 p0 c0 {3,T} {4,S} 3 N u0 p1 c0 {2,T} 4 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.03, 0.84, 1.41, 1.79, 2.22, 2.4, 2.53], 'cal/(mol*K)'), - H298=(-0.94, 'kcal/mol'), - S298=(-22.92, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.03, 0.84, 1.41, 1.79, 2.22, 2.4, 2.53], "cal/(mol*K)"), + H298=(-0.94, "kcal/mol"), + S298=(-22.92, "cal/(mol*K)"), ), shortDesc="""Came from HCN vdW-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1714,15 +1654,14 @@ : *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 60, - label = "C=*RN=*", - group = -""" + index=60, + label="C=*RN=*", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,D} 3 C u0 p0 c0 {1,D} {4,S} {5,S} @@ -1730,10 +1669,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.72, 2.17, 3.13, 3.78, 4.5, 4.82, 5.03], 'cal/(mol*K)'), - H298=(-15.96, 'kcal/mol'), - S298=(-35.76, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.72, 2.17, 3.13, 3.78, 4.5, 4.82, 5.03], "cal/(mol*K)"), + H298=(-15.96, "kcal/mol"), + S298=(-35.76, "cal/(mol*K)"), ), shortDesc="""Came from HCN-h bidentate, twice double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1744,15 +1683,14 @@ || || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 61, - label = "C-*RNR", - group = -""" + index=61, + label="C-*RNR", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,D} {4,S} 3 N u0 p1 c0 {2,D} {5,S} @@ -1760,10 +1698,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.28, 0.62, 1.17, 1.52, 1.89, 2.07, 2.25], 'cal/(mol*K)'), - H298=(-51.9, 'kcal/mol'), - S298=(-33.8, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.28, 0.62, 1.17, 1.52, 1.89, 2.07, 2.25], "cal/(mol*K)"), + H298=(-51.9, "kcal/mol"), + S298=(-33.8, "cal/(mol*K)"), ), shortDesc="""Came from HCNH single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1774,15 +1712,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 62, - label = "C=*RN-*R", - group = -""" + index=62, + label="C=*RN-*R", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,S} 3 C u0 p0 c0 {1,D} {4,S} {5,S} @@ -1791,10 +1728,10 @@ 6 R u0 p0 c0 {4,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.09, 2.47, 3.27, 3.76, 4.25, 4.47, 4.67], 'cal/(mol*K)'), - H298=(-58.44, 'kcal/mol'), - S298=(-46.17, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.09, 2.47, 3.27, 3.76, 4.25, 4.47, 4.67], "cal/(mol*K)"), + H298=(-58.44, "kcal/mol"), + S298=(-46.17, "cal/(mol*K)"), ), shortDesc="""Came from HCNH-h bidentate, double- and single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1803,15 +1740,14 @@ || | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 63, - label = "C=*RNR2", - group = -""" + index=63, + label="C=*RNR2", + group=""" 1 X u0 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,S} {4,S} 3 N u0 p1 c0 {2,S} {5,S} {6,S} @@ -1820,10 +1756,10 @@ 6 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([0.47, 1.4, 1.85, 2.07, 2.21, 2.24, 2.27], 'cal/(mol*K)'), - H298=(-62.35, 'kcal/mol'), - S298=(-33.34, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.47, 1.4, 1.85, 2.07, 2.21, 2.24, 2.27], "cal/(mol*K)"), + H298=(-62.35, "kcal/mol"), + S298=(-33.34, "cal/(mol*K)"), ), shortDesc="""Came from HCNH2 double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1834,25 +1770,24 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 64, - label = "C-*RO", - group = -""" + index=64, + label="C-*RO", + group=""" 1 X u0 p0 c0 {2,S} 2 C u0 p0 c0 {1,S} {3,D} {4,S} 3 O u0 p2 c0 {2,D} 4 R u0 p0 c0 {2,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.71, 0.27, 0.89, 1.28, 1.69, 1.9, 2.14], 'cal/(mol*K)'), - H298=(-51.82, 'kcal/mol'), - S298=(-33.46, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.71, 0.27, 0.89, 1.28, 1.69, 1.9, 2.14], "cal/(mol*K)"), + H298=(-51.82, "kcal/mol"), + S298=(-33.46, "cal/(mol*K)"), ), shortDesc="""Came from HCO single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1863,15 +1798,14 @@ | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 65, - label = "C=*RO-*", - group = -""" + index=65, + label="C=*RO-*", + group=""" 1 X u0 p0 c0 {2,S} {3,D} 2 X u0 p0 c0 {1,S} {4,S} 3 C u0 p0 c0 {1,D} {4,S} {5,S} @@ -1879,10 +1813,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.21, 2.72, 3.6, 4.09, 4.5, 4.63, 4.73], 'cal/(mol*K)'), - H298=(-44.71, 'kcal/mol'), - S298=(-45.92, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.21, 2.72, 3.6, 4.09, 4.5, 4.63, 4.73], "cal/(mol*K)"), + H298=(-44.71, "kcal/mol"), + S298=(-45.92, "cal/(mol*K)"), ), shortDesc="""Came from HCO-h bidentate, double- and single-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1893,15 +1827,14 @@ || | *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 66, - label = "C=*ROR", - group = -""" + index=66, + label="C=*ROR", + group=""" 1 X u0 p0 c0 {2,D} 2 C u0 p0 c0 {1,D} {3,S} {4,S} 3 O u0 p2 c0 {2,S} {5,S} @@ -1909,10 +1842,10 @@ 5 R u0 p0 c0 {3,S} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.51, 0.59, 1.21, 1.58, 1.97, 2.17, 2.38], 'cal/(mol*K)'), - H298=(-69.06, 'kcal/mol'), - S298=(-33.81, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.51, 0.59, 1.21, 1.58, 1.97, 2.17, 2.38], "cal/(mol*K)"), + H298=(-69.06, "kcal/mol"), + S298=(-33.81, "cal/(mol*K)"), ), shortDesc="""Came from HCOH double-bonded on Pt(111)""", longDesc="""Calculated by Katrin Blondal at Brown University using statistical mechanics (files: compute_NASA_for_Pt-adsorbates.ipynb and compute_NASA_for_Pt-gas_phase.ipynb). Based on DFT calculations by Jelena Jelic at KIT. @@ -1923,281 +1856,264 @@ || *********** """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 67, - label = "C*", - group = -""" + index=67, + label="C*", + group=""" 1 X u0 {2,[S,D,T,Q]} 2 C u0 {1,[S,D,T,Q]} """, - thermo='C-*R3', + thermo="C-*R3", metal="Pt", facet="111", ) entry( - index = 68, - label = "N*", - group = -""" + index=68, + label="N*", + group=""" 1 X u0 {2,[S,D,T,Q]} 2 N u0 {1,[S,D,T,Q]} """, - thermo='N-*R2', + thermo="N-*R2", metal="Pt", facet="111", ) entry( - index = 69, - label = "O*", - group = -""" + index=69, + label="O*", + group=""" 1 X u0 {2,[S,D,T,Q]} 2 O u0 {1,[S,D,T,Q]} """, - thermo='O-*R', + thermo="O-*R", metal="Pt", facet="111", ) entry( - index = 70, - label = "R*single_chemisorbed", - group = -""" + index=70, + label="R*single_chemisorbed", + group=""" 1 X u0 {2,[S,D,T,Q]} 2 R u0 {1,[S,D,T,Q]} """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([-0.09, 1.28, 2.17, 2.75, 3.43, 3.79, 4.16], 'cal/(mol*K)'), - H298=(-45.38, 'kcal/mol'), - S298=(-38.17, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.09, 1.28, 2.17, 2.75, 3.43, 3.79, 4.16], "cal/(mol*K)"), + H298=(-45.38, "kcal/mol"), + S298=(-38.17, "cal/(mol*K)"), ), shortDesc="""Average of C-*R3, N-*R2 and O-*R thermo. """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 71, - label = "C*C*", - group = -""" + index=71, + label="C*C*", + group=""" 1 X u0 2 X u0 3 C u0 4 C u0 """, - thermo='C-*R2C-*R2', + thermo="C-*R2C-*R2", metal="Pt", facet="111", ) entry( - index = 72, - label = "C*N*", - group = -""" + index=72, + label="C*N*", + group=""" 1 X u0 2 X u0 3 C u0 4 N u0 """, - thermo='C=*RN-*R', + thermo="C=*RN-*R", metal="Pt", facet="111", ) entry( - index = 73, - label = "C*O*", - group = -""" + index=73, + label="C*O*", + group=""" 1 X u0 2 X u0 3 C u0 4 O u0 """, - thermo='C=*RO-*R', + thermo="C=*RO-*R", metal="Pt", facet="111", ) entry( - index = 74, - label = "N*N*", - group = -""" + index=74, + label="N*N*", + group=""" 1 X u0 2 X u0 3 N u0 4 N u0 """, - thermo='N-*RN-*R', + thermo="N-*RN-*R", metal="Pt", facet="111", ) entry( - index = 75, - label = "R*bidentate", - group = -""" + index=75, + label="R*bidentate", + group=""" 1 X u0 2 X u0 3 R u0 4 R u0 """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.69, 3.14, 3.95, 4.38, 4.73, 4.84, 4,88], 'cal/(mol*K)'), - H298=(-37.29, 'kcal/mol'), - S298=(-44.37, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.69, 3.14, 3.95, 4.38, 4.73, 4.84, 4, 88], "cal/(mol*K)"), + H298=(-37.29, "kcal/mol"), + S298=(-44.37, "cal/(mol*K)"), ), shortDesc="""Average of C-*R2C-*R2, C=*RN-*R, C=*RO-* and N-*RN-*R thermo. """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 76, - label = "R*vdW", - group = -""" + index=76, + label="R*vdW", + group=""" 1 X u0 2 R u0 """, thermo=ThermoData( - Tdata=([300, 400, 500, 600, 800, 1000, 1500], 'K'), - Cpdata=([1.51, 2.1, 2.45, 2.68, 2.94, 3.07, 3.2], 'cal/(mol*K)'), - H298=(-7.79, 'kcal/mol'), - S298=(-20.48, 'cal/(mol*K)'), + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.51, 2.1, 2.45, 2.68, 2.94, 3.07, 3.2], "cal/(mol*K)"), + H298=(-7.79, "kcal/mol"), + S298=(-20.48, "cal/(mol*K)"), ), shortDesc="""Average of (CR4)*, (NR3)* and (OR2)* thermo. """, - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 77, - label = "N*O*", - group = -""" + index=77, + label="N*O*", + group=""" 1 X u0 p0 c0 {2,S} {3,[S,D]} 2 X u0 p0 c0 {1,S} {4,[S,D]} 3 N u0 p1 c0 {1,[S,D]} {4,[S,D]} 4 O u0 p2 c0 {2,[S,D]} {3,[S,D]} """, - thermo='N=*O-*', + thermo="N=*O-*", longDesc="""Is there really any way to do N*O* besides N=*O-* ?""", - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 78, - label = "O*O*", - group = -""" + index=78, + label="O*O*", + group=""" 1 X u0 p0 c0 {2,S} {3,S} 2 X u0 p0 c0 {1,S} {4,S} 3 O u0 p2 c0 {1,S} {4,S} 4 O u0 p2 c0 {2,S} {3,S} """, - thermo='O-*O-*', + thermo="O-*O-*", longDesc="""Is there really any way to do O*O* besides O-*O-* ?""", - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 79, - label = "N#*R", - group = -""" + index=79, + label="N#*R", + group=""" 1 X u0 {2,T} 2 N u0 {1,T} {3,[S,D]} 3 R u0 {2,[S,D]} """, - thermo='N*', + thermo="N*", metal="Pt", facet="111", ) entry( - index = 80, - label = "(CR3)*", - group = -""" + index=80, + label="(CR3)*", + group=""" 1 X u0 2 C u0 {3,D} {4,S} {5,S} 3 R u0 {2,D} 4 R u0 {2,S} 5 R u0 {2,S} """, - thermo='(CR2NR)*', + thermo="(CR2NR)*", longDesc="""Perhaps should be an average?""", - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 81, - label = "(CR2)*", - group = -""" + index=81, + label="(CR2)*", + group=""" 1 X u0 2 C u0 {3,[S,D,T]} {4,[S,D,T]} 3 R u0 {2,[S,D,T]} 4 R u0 {2,[S,D,T]} """, - thermo='(CRN)*', + thermo="(CRN)*", metal="Pt", facet="111", ) entry( - index = 82, - label = "(NR2CR3)*", - group = -""" + index=82, + label="(NR2CR3)*", + group=""" 1 X u0 p0 c0 2 N u0 p1 c0 {3,S} {4,S} {5,S} 3 Cs u0 p0 c0 {2,S} 4 R u0 p0 c0 {2,S} 5 R u0 p0 c0 {2,S} """, - thermo='(NR3)*', + thermo="(NR3)*", longDesc="""Do we have data for this?""", - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) entry( - index = 83, - label = "(NR2)*", - group = -""" + index=83, + label="(NR2)*", + group=""" 1 X u0 2 N u0 {3,D} {4,S} 3 R u0 {2,D} 4 R u0 {2,S} """, - thermo='(NRO)*', + thermo="(NRO)*", longDesc="""Parent of (RN=O)* and (RN=NR)*. Should it be an average?""", - metal = "Pt", - facet = "111", + metal="Pt", + facet="111", ) tree( -""" + """ L1: R* L2: R*bidentate L3: C*C* diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/gauche.py b/test/rmgpy/test_data/testing_database/thermo/groups/gauche.py index 87edf40f9e..c590ea2f14 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/gauche.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/gauche.py @@ -7,74 +7,67 @@ """ entry( - index = 0, - label = "CsOsCdSs", - group = -""" + index=0, + label="CsOsCdSs", + group=""" 1 * [Cs,O2s,Cd,S2s] u0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1, - label = "Cs(RRRR)", - group = -""" + index=1, + label="Cs(RRRR)", + group=""" 1 * Cs u0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "Cs(CsRRR)", - group = -""" + index=2, + label="Cs(CsRRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 4 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "Cs(Cs(CsRR)RRR)", - group = -""" + index=3, + label="Cs(Cs(CsRR)RRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} @@ -84,24 +77,22 @@ 7 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 4, - label = "Cs(Cs(CsCsR)RRR)", - group = -""" + index=4, + label="Cs(Cs(CsCsR)RRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} @@ -111,24 +102,22 @@ 7 Cs u0 {2,S} 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 5, - label = "Cs(Cs(CsCsCs)RRR)", - group = -""" + index=5, + label="Cs(Cs(CsCsCs)RRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} @@ -138,48 +127,44 @@ 7 Cs u0 {2,S} 8 Cs u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 6, - label = "Cs(CsCsRR)", - group = -""" + index=6, + label="Cs(CsCsRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 7, - label = "Cs(Cs(CsRR)CsRR)", - group = -""" + index=7, + label="Cs(Cs(CsRR)CsRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -192,24 +177,22 @@ 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 8, - label = "Cs(Cs(CsRR)Cs(CsRR)RR)", - group = -""" + index=8, + label="Cs(Cs(CsRR)Cs(CsRR)RR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -222,24 +205,22 @@ 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 9, - label = "Cs(Cs(CsCsR)CsRR)", - group = -""" + index=9, + label="Cs(Cs(CsCsR)CsRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -252,24 +233,22 @@ 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 10, - label = "Cs(Cs(CsCsR)Cs(CsRR)RR)", - group = -""" + index=10, + label="Cs(Cs(CsCsR)Cs(CsRR)RR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -282,24 +261,22 @@ 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 11, - label = "Cs(Cs(CsCsR)Cs(CsCsR)RR)", - group = -""" + index=11, + label="Cs(Cs(CsCsR)Cs(CsCsR)RR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -312,24 +289,22 @@ 10 Cs u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 12, - label = "Cs(Cs(CsCsCs)CsRR)", - group = -""" + index=12, + label="Cs(Cs(CsCsCs)CsRR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -342,24 +317,22 @@ 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 13, - label = "Cs(Cs(CsCsCs)Cs(CsRR)RR)", - group = -""" + index=13, + label="Cs(Cs(CsCsCs)Cs(CsRR)RR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -372,24 +345,22 @@ 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 14, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)RR)", - group = -""" + index=14, + label="Cs(Cs(CsCsCs)Cs(CsCsR)RR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -402,24 +373,22 @@ 10 Cs u0 {3,S} 11 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 15, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)RR)", - group = -""" + index=15, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)RR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -432,48 +401,44 @@ 10 Cs u0 {3,S} 11 Cs u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 16, - label = "Cs(CsCsCsR)", - group = -""" + index=16, + label="Cs(CsCsCsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 17, - label = "Cs(Cs(CsRR)CsCsR)", - group = -""" + index=17, + label="Cs(Cs(CsRR)CsCsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -489,24 +454,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 18, - label = "Cs(Cs(CsRR)Cs(CsRR)CsR)", - group = -""" + index=18, + label="Cs(Cs(CsRR)Cs(CsRR)CsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -522,24 +485,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 19, - label = "Cs(Cs(CsRR)Cs(CsRR)Cs(CsRR)R)", - group = -""" + index=19, + label="Cs(Cs(CsRR)Cs(CsRR)Cs(CsRR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -555,24 +516,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 20, - label = "Cs(Cs(CsCsR)CsCsR)", - group = -""" + index=20, + label="Cs(Cs(CsCsR)CsCsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -588,24 +547,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 21, - label = "Cs(Cs(CsCsR)Cs(CsRR)CsR)", - group = -""" + index=21, + label="Cs(Cs(CsCsR)Cs(CsRR)CsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -621,24 +578,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 22, - label = "Cs(Cs(CsCsR)Cs(CsRR)Cs(CsRR)R)", - group = -""" + index=22, + label="Cs(Cs(CsCsR)Cs(CsRR)Cs(CsRR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -654,24 +609,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 23, - label = "Cs(Cs(CsCsR)Cs(CsCsR)CsR)", - group = -""" + index=23, + label="Cs(Cs(CsCsR)Cs(CsCsR)CsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -687,24 +640,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 24, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsRR)R)", - group = -""" + index=24, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsRR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -720,24 +671,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 25, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)R)", - group = -""" + index=25, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -753,24 +702,22 @@ 13 Cs u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 26, - label = "Cs(Cs(CsCsCs)CsCsR)", - group = -""" + index=26, + label="Cs(Cs(CsCsCs)CsCsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -786,24 +733,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 27, - label = "Cs(Cs(CsCsCs)Cs(CsRR)CsR)", - group = -""" + index=27, + label="Cs(Cs(CsCsCs)Cs(CsRR)CsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -819,24 +764,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 28, - label = "Cs(Cs(CsCsCs)Cs(CsRR)Cs(CsRR)R)", - group = -""" + index=28, + label="Cs(Cs(CsCsCs)Cs(CsRR)Cs(CsRR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -852,24 +795,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 29, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)CsR)", - group = -""" + index=29, + label="Cs(Cs(CsCsCs)Cs(CsCsR)CsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -885,24 +826,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 30, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsRR)R)", - group = -""" + index=30, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsRR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -918,24 +857,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 31, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)R)", - group = -""" + index=31, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -951,24 +888,22 @@ 13 Cs u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 32, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)CsR)", - group = -""" + index=32, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)CsR)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -984,24 +919,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 33, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR)R)", - group = -""" + index=33, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1017,24 +950,22 @@ 13 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 34, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)R)", - group = -""" + index=34, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1050,24 +981,22 @@ 13 Cs u0 {4,S} 14 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 35, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)R)", - group = -""" + index=35, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)R)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1083,48 +1012,44 @@ 13 Cs u0 {4,S} 14 Cs u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 36, - label = "Cs(CsCsCsCs)", - group = -""" + index=36, + label="Cs(CsCsCsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 37, - label = "Cs(Cs(CsRR)CsCsCs)", - group = -""" + index=37, + label="Cs(Cs(CsRR)CsCsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1143,24 +1068,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 38, - label = "Cs(Cs(CsRR)Cs(CsRR)CsCs)", - group = -""" + index=38, + label="Cs(Cs(CsRR)Cs(CsRR)CsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1179,24 +1102,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 39, - label = "Cs(Cs(CsRR)Cs(CsRR)Cs(CsRR)Cs)", - group = -""" + index=39, + label="Cs(Cs(CsRR)Cs(CsRR)Cs(CsRR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1215,24 +1136,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 40, - label = "Cs(Cs(CsRR)Cs(CsRR)Cs(CsRR)Cs(CsRR))", - group = -""" + index=40, + label="Cs(Cs(CsRR)Cs(CsRR)Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1251,24 +1170,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 41, - label = "Cs(Cs(CsCsR)CsCsCs)", - group = -""" + index=41, + label="Cs(Cs(CsCsR)CsCsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1287,24 +1204,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 42, - label = "Cs(Cs(CsCsR)Cs(CsRR)CsCs)", - group = -""" + index=42, + label="Cs(Cs(CsCsR)Cs(CsRR)CsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1323,24 +1238,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 43, - label = "Cs(Cs(CsCsR)Cs(CsRR)Cs(CsRR)Cs)", - group = -""" + index=43, + label="Cs(Cs(CsCsR)Cs(CsRR)Cs(CsRR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1359,24 +1272,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 44, - label = "Cs(Cs(CsCsR)Cs(CsRR)Cs(CsRR)Cs(CsRR))", - group = -""" + index=44, + label="Cs(Cs(CsCsR)Cs(CsRR)Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1395,24 +1306,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 45, - label = "Cs(Cs(CsCsR)Cs(CsCsR)CsCs)", - group = -""" + index=45, + label="Cs(Cs(CsCsR)Cs(CsCsR)CsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1431,24 +1340,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 46, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsRR)Cs)", - group = -""" + index=46, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsRR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1467,24 +1374,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 47, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsRR)Cs(CsRR))", - group = -""" + index=47, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1503,24 +1408,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 48, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)Cs)", - group = -""" + index=48, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1539,24 +1442,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 49, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)Cs(CsRR))", - group = -""" + index=49, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1575,24 +1476,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (5.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(5.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 50, - label = "Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)Cs(CsCsR))", - group = -""" + index=50, + label="Cs(Cs(CsCsR)Cs(CsCsR)Cs(CsCsR)Cs(CsCsR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1611,24 +1510,22 @@ 16 Cs u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (6.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(6.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 51, - label = "Cs(Cs(CsCsCs)CsCsCs)", - group = -""" + index=51, + label="Cs(Cs(CsCsCs)CsCsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1647,24 +1544,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 52, - label = "Cs(Cs(CsCsCs)Cs(CsRR)CsCs)", - group = -""" + index=52, + label="Cs(Cs(CsCsCs)Cs(CsRR)CsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1683,24 +1578,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (3.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(3.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 53, - label = "Cs(Cs(CsCsCs)Cs(CsRR)Cs(CsRR)Cs)", - group = -""" + index=53, + label="Cs(Cs(CsCsCs)Cs(CsRR)Cs(CsRR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1719,24 +1612,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 54, - label = "Cs(Cs(CsCsCs)Cs(CsRR)Cs(CsRR)Cs(CsRR))", - group = -""" + index=54, + label="Cs(Cs(CsCsCs)Cs(CsRR)Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1755,24 +1646,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 55, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)CsCs)", - group = -""" + index=55, + label="Cs(Cs(CsCsCs)Cs(CsCsR)CsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1791,24 +1680,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 56, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsRR)Cs)", - group = -""" + index=56, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsRR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1827,24 +1714,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 57, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsRR)Cs(CsRR))", - group = -""" + index=57, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1863,24 +1748,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (5.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(5.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 58, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)Cs)", - group = -""" + index=58, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1899,24 +1782,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (5.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(5.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 59, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)Cs(CsRR))", - group = -""" + index=59, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1935,24 +1816,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (6.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(6.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 60, - label = "Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)Cs(CsCsR))", - group = -""" + index=60, + label="Cs(Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR)Cs(CsCsR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -1971,24 +1850,22 @@ 16 Cs u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (7.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(7.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 61, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)CsCs)", - group = -""" + index=61, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)CsCs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2007,24 +1884,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 62, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR)Cs)", - group = -""" + index=62, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2043,24 +1918,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (5.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(5.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 63, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR)Cs(CsRR))", - group = -""" + index=63, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2079,24 +1952,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (6.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(6.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 64, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)Cs)", - group = -""" + index=64, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2115,24 +1986,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (6.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(6.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 65, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)Cs(CsRR))", - group = -""" + index=65, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2151,24 +2020,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (7.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(7.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 66, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR))", - group = -""" + index=66, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR)Cs(CsCsR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2187,24 +2054,22 @@ 16 Cs u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 67, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs)", - group = -""" + index=67, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2223,24 +2088,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (7.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(7.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 68, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR))", - group = -""" + index=68, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs(CsRR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2259,24 +2122,22 @@ 16 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 69, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR))", - group = -""" + index=69, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsR))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2295,24 +2156,22 @@ 16 Cs u0 {5,S} 17 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (8.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(8.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 70, - label = "Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs))", - group = -""" + index=70, + label="Cs(Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs)Cs(CsCsCs))", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {6,S} {7,S} {8,S} 3 Cs u0 {1,S} {9,S} {10,S} {11,S} @@ -2331,66 +2190,60 @@ 16 Cs u0 {5,S} 17 Cs u0 {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (9.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(9.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 71, - label = "O2s(RR)", - group = -""" + index=71, + label="O2s(RR)", + group=""" 1 * O2s u0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 72, - label = "O2s(CsR)", - group = -""" + index=72, + label="O2s(CsR)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 73, - label = "O2s(Cs(CsRR)R)", - group = -""" + index=73, + label="O2s(Cs(CsRR)R)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} @@ -2398,24 +2251,22 @@ 5 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 74, - label = "O2s(Cs(CsCsR)R)", - group = -""" + index=74, + label="O2s(Cs(CsCsR)R)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} @@ -2423,24 +2274,22 @@ 5 Cs u0 {2,S} 6 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 75, - label = "O2s(Cs(CsCsCs)R)", - group = -""" + index=75, + label="O2s(Cs(CsCsCs)R)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} @@ -2448,46 +2297,42 @@ 5 Cs u0 {2,S} 6 Cs u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 76, - label = "O2s(CsCs)", - group = -""" + index=76, + label="O2s(CsCs)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 77, - label = "O2s(Cs(CsRR)Cs)", - group = -""" + index=77, + label="O2s(Cs(CsRR)Cs)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2498,24 +2343,22 @@ 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 78, - label = "O2s(Cs(CsRR)Cs(CsRR))", - group = -""" + index=78, + label="O2s(Cs(CsRR)Cs(CsRR))", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2526,24 +2369,22 @@ 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 79, - label = "O2s(Cs(CsCsR)Cs)", - group = -""" + index=79, + label="O2s(Cs(CsCsR)Cs)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2554,24 +2395,22 @@ 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.5,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.5, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 80, - label = "O2s(Cs(CsCsR)Cs(CsRR))", - group = -""" + index=80, + label="O2s(Cs(CsCsR)Cs(CsRR))", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2582,24 +2421,22 @@ 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.5,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.5, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 81, - label = "O2s(Cs(CsCsR)Cs(CsCsR))", - group = -""" + index=81, + label="O2s(Cs(CsCsR)Cs(CsCsR))", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2610,24 +2447,22 @@ 8 Cs u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 82, - label = "O2s(Cs(CsCsCs)Cs)", - group = -""" + index=82, + label="O2s(Cs(CsCsCs)Cs)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2638,24 +2473,22 @@ 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 83, - label = "O2s(Cs(CsCsCs)Cs(CsRR))", - group = -""" + index=83, + label="O2s(Cs(CsCsCs)Cs(CsRR))", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2666,24 +2499,22 @@ 8 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 84, - label = "O2s(Cs(CsCsCs)Cs(CsCsR))", - group = -""" + index=84, + label="O2s(Cs(CsCsCs)Cs(CsCsR))", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2694,24 +2525,22 @@ 8 Cs u0 {3,S} 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1.5,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1.5, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 85, - label = "O2s(Cs(CsCsCs)Cs(CsCsCs))", - group = -""" + index=85, + label="O2s(Cs(CsCsCs)Cs(CsCsCs))", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 Cs u0 {1,S} {7,S} {8,S} {9,S} @@ -2722,47 +2551,43 @@ 8 Cs u0 {3,S} 9 Cs u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 86, - label = "Cd(CsCs)", - group = -""" + index=86, + label="Cd(CsCs)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 87, - label = "Cd(Cs(CsRR)Cs)", - group = -""" + index=87, + label="Cd(Cs(CsRR)Cs)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2774,24 +2599,22 @@ 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 88, - label = "Cd(Cs(CsRR)Cs(CsRR))", - group = -""" + index=88, + label="Cd(Cs(CsRR)Cs(CsRR))", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2803,24 +2626,22 @@ 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 89, - label = "Cd(Cs(CsCsR)Cs)", - group = -""" + index=89, + label="Cd(Cs(CsCsR)Cs)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2832,24 +2653,22 @@ 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 90, - label = "Cd(Cs(CsCsR)Cs(CsRR))", - group = -""" + index=90, + label="Cd(Cs(CsCsR)Cs(CsRR))", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2861,24 +2680,22 @@ 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 91, - label = "Cd(Cs(CsCsR)Cs(CsCsR))", - group = -""" + index=91, + label="Cd(Cs(CsCsR)Cs(CsCsR))", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2890,24 +2707,22 @@ 9 Cs u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 92, - label = "Cd(Cs(CsCsCs)Cs)", - group = -""" + index=92, + label="Cd(Cs(CsCsCs)Cs)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2919,24 +2734,22 @@ 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 93, - label = "Cd(Cs(CsCsCs)Cs(CsRR))", - group = -""" + index=93, + label="Cd(Cs(CsCsCs)Cs(CsRR))", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2948,24 +2761,22 @@ 9 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 94, - label = "Cd(Cs(CsCsCs)Cs(CsCsR))", - group = -""" + index=94, + label="Cd(Cs(CsCsCs)Cs(CsCsR))", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -2977,24 +2788,22 @@ 9 Cs u0 {4,S} 10 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 95, - label = "Cd(Cs(CsCsCs)Cs(CsCsCs))", - group = -""" + index=95, + label="Cd(Cs(CsCsCs)Cs(CsCsCs))", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} {5,S} {6,S} {7,S} @@ -3006,88 +2815,80 @@ 9 Cs u0 {4,S} 10 Cs u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 96, - label = "S2s(RR)", - group = -""" + index=96, + label="S2s(RR)", + group=""" 1 * S2s u0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 97, - label = "S2s(CsR)", - group = -""" + index=97, + label="S2s(CsR)", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 [Cd,Cdd,Ct,Cb,Cbf,O2s,CO,H] u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 98, - label = "S2s(CsH)", - group = -""" + index=98, + label="S2s(CsH)", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 99, - label = "S2s(Cs(CsHH)H)", - group = -""" + index=99, + label="S2s(Cs(CsHH)H)", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 H u0 {1,S} @@ -3095,43 +2896,40 @@ 5 H u0 {2,S} 6 Cs u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.33,0.62,0.67,0.59,0.38,0.21,-0.01],'cal/(mol*K)'), - H298 = (-0.97,'kcal/mol'), - S298 = (-1.01,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.33, 0.62, 0.67, 0.59, 0.38, 0.21, -0.01], "cal/(mol*K)"), + H298=(-0.97, "kcal/mol"), + S298=(-1.01, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 100, - label = "S2s(CsCs)", - group = -""" + index=100, + label="S2s(CsCs)", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) tree( -""" + """ L1: CsOsCdSs L2: Cs(RRRR) L3: Cs(CsRRR) @@ -3235,4 +3033,3 @@ L3: S2s(CsCs) """ ) - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/group.py b/test/rmgpy/test_data/testing_database/thermo/groups/group.py index 1e05c6a704..1ff6ffa681 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/group.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/group.py @@ -7,101 +7,100 @@ """ entry( - index = -1, - label = "R", - group = -""" + index=-1, + label="R", + group=""" 1 * R u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1, - label = "C", - group = -""" + index=1, + label="C", + group=""" 1 * C u0 """, - thermo = 'Cs-CsCsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "Cbf", - group = -""" + index=2, + label="Cbf", + group=""" 1 * Cbf u0 """, - thermo = 'Cbf-CbCbCbf', - shortDesc = """""", - longDesc = -""" + thermo="Cbf-CbCbCbf", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "Cbf-CbCbCbf", - group = -""" + index=3, + label="Cbf-CbCbCbf", + group=""" 1 * Cbf u0 {2,B} {3,B} {4,B} 2 Cb u0 {1,B} 3 Cb u0 {1,B} 4 Cbf u0 {1,B} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.01,3.68,4.2,4.61,5.2,5.7,6.2],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (4.8,'kcal/mol','+|-',0.17), - S298 = (-5,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.01, 3.68, 4.2, 4.61, 5.2, 5.7, 6.2], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(4.8, "kcal/mol", "+|-", 0.17), + S298=(-5, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cbf-CbfCbCb STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Cbf-CbfCbCb STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 4, - label = "Cbf-CbCbfCbf", - group = -""" + index=4, + label="Cbf-CbCbfCbf", + group=""" 1 * Cbf u0 {2,B} {3,B} {4,B} 2 Cb u0 {1,B} 3 Cbf u0 {1,B} 4 Cbf u0 {1,B} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.01,3.68,4.2,4.61,5.2,5.7,6.2],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (3.7,'kcal/mol','+|-',0.3), - S298 = (-5,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.01, 3.68, 4.2, 4.61, 5.2, 5.7, 6.2], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(3.7, "kcal/mol", "+|-", 0.3), + S298=(-5, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cbf-CbfCbfCb STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Cbf-CbfCbfCb STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 5, - label = "Cbf-CbfCbfCbf", - group = -""" + index=5, + label="Cbf-CbfCbfCbf", + group=""" 1 * Cbf u0 p0 c0 {3,B} {6,B} {2,B} 2 Cbf u0 p0 c0 {4,B} {5,B} {1,B} 3 Cbf u0 p0 c0 {8,B} {9,B} {1,B} @@ -119,15 +118,19 @@ 15 C u0 p0 c0 {14,B} {6,B} 16 C u0 p0 c0 {7,B} {6,B} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2,3.11,3.9,4.42,5,5.3,5.7],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (1.5,'kcal/mol','+|-',0.3), - S298 = (1.8,'cal/(mol*K)','+|-',0.15), - ), - shortDesc = """Cbf-CbfCbfCbf STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2, 3.11, 3.9, 4.42, 5, 5.3, 5.7], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(1.5, "kcal/mol", "+|-", 0.3), + S298=(1.8, "cal/(mol*K)", "+|-", 0.15), + ), + shortDesc="""Cbf-CbfCbfCbf STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" The smallest PAH that can have Cbf-CbfCbfCbf is pyrene. Currently the database is restricted that any group with more three Cbf atoms must have all benzene rings explicitly written out. Previously, this node would also match one carbon on Benzo[c]phenanthrene and does not now. @@ -136,1544 +139,1488 @@ ) entry( - index = 6, - label = "Cb", - group = -""" + index=6, + label="Cb", + group=""" 1 * Cb u0 """, - thermo = 'Cb-Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cb-Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 7, - label = "Cb-H", - group = -""" + index=7, + label="Cb-H", + group=""" 1 * Cb u0 {2,S} 2 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.24,4.44,5.46,6.3,7.54,8.41,9.73],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (3.3,'kcal/mol','+|-',0.11), - S298 = (11.53,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.24, 4.44, 5.46, 6.3, 7.54, 8.41, 9.73], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(3.3, "kcal/mol", "+|-", 0.11), + S298=(11.53, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cb-H BENSON""", - longDesc = -""" + shortDesc="""Cb-H BENSON""", + longDesc=""" """, ) entry( - index = 8, - label = "Cb-O2s", - group = -""" + index=8, + label="Cb-O2s", + group=""" 1 * Cb u0 {2,S} 2 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.9,5.3,6.2,6.6,6.9,6.9,7.07],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-0.9,'kcal/mol','+|-',0.16), - S298 = (-10.2,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.9, 5.3, 6.2, 6.6, 6.9, 6.9, 7.07], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-0.9, "kcal/mol", "+|-", 0.16), + S298=(-10.2, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cb-O BENSON Cp1500=3D Cp1000*(Cp1500/Cp1000: Cb/Cd)""", - longDesc = -""" + shortDesc="""Cb-O BENSON Cp1500=3D Cp1000*(Cp1500/Cp1000: Cb/Cd)""", + longDesc=""" """, ) entry( - index = 1197, - label = "Cb-S2s", - group = -""" + index=1197, + label="Cb-S2s", + group=""" 1 * Cb u0 {2,S} 2 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.46,3.24,3.92,4.49,5.27,5.75,6.3],'cal/(mol*K)'), - H298 = (5.83,'kcal/mol'), - S298 = (-7.94,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.46, 3.24, 3.92, 4.49, 5.27, 5.75, 6.3], "cal/(mol*K)"), + H298=(5.83, "kcal/mol"), + S298=(-7.94, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 9, - label = "Cb-C", - group = -""" + index=9, + label="Cb-C", + group=""" 1 * Cb u0 {2,S} 2 C u0 {1,S} """, - thermo = 'Cb-Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cb-Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 10, - label = "Cb-Cs", - group = -""" + index=10, + label="Cb-Cs", + group=""" 1 * Cb u0 {2,S} 2 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.67,3.14,3.68,4.15,4.96,5.44,5.98],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (5.51,'kcal/mol','+|-',0.13), - S298 = (-7.69,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2.67, 3.14, 3.68, 4.15, 4.96, 5.44, 5.98], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(5.51, "kcal/mol", "+|-", 0.13), + S298=(-7.69, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cb-Cs BENSON""", - longDesc = -""" + shortDesc="""Cb-Cs BENSON""", + longDesc=""" """, ) entry( - index = 11, - label = "Cb-Cds", - group = -""" + index=11, + label="Cb-Cds", + group=""" 1 * Cb u0 {2,S} 2 [Cd,CO] u0 {1,S} """, - thermo = 'Cb-(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cb-(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 12, - label = "Cb-(Cds-O2d)", - group = -""" + index=12, + label="Cb-(Cds-O2d)", + group=""" 1 * Cb u0 {2,S} 2 CO u0 {1,S} {3,D} 3 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.59,3.97,4.38,4.72,5.28,5.61,5.75],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (3.69,'kcal/mol','+|-',0.2), - S298 = (-7.8,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.59, 3.97, 4.38, 4.72, 5.28, 5.61, 5.75], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(3.69, "kcal/mol", "+|-", 0.2), + S298=(-7.8, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Enthalpy from Cb-CO, entropies and heat capacities assigned value of Cb-Cd""", - longDesc = -""" + shortDesc="""Enthalpy from Cb-CO, entropies and heat capacities assigned value of Cb-Cd""", + longDesc=""" """, ) entry( - index = 13, - label = "Cb-(Cds-Cd)", - group = -""" + index=13, + label="Cb-(Cds-Cd)", + group=""" 1 * Cb u0 {2,S} 2 Cd u0 {1,S} {3,D} 3 C u0 {2,D} """, - thermo = 'Cb-(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cb-(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 14, - label = "Cb-(Cds-Cds)", - group = -""" + index=14, + label="Cb-(Cds-Cds)", + group=""" 1 * Cb u0 {2,S} 2 Cd u0 {1,S} {3,D} 3 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.59,3.97,4.38,4.72,5.28,5.61,5.75],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (5.69,'kcal/mol','+|-',0.2), - S298 = (-7.8,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.59, 3.97, 4.38, 4.72, 5.28, 5.61, 5.75], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(5.69, "kcal/mol", "+|-", 0.2), + S298=(-7.8, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cb-Cd STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Cb-Cd STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 15, - label = "Cb-(Cds-Cdd)", - group = -""" + index=15, + label="Cb-(Cds-Cdd)", + group=""" 1 * Cb u0 {2,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} """, - thermo = 'Cb-(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cb-(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 16, - label = "Cb-(Cds-Cdd-O2d)", - group = -""" + index=16, + label="Cb-(Cds-Cdd-O2d)", + group=""" 1 * Cb u0 {2,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {4,D} 4 O2d u0 {3,D} """, - thermo = 'Cb-(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cb-(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cb-(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cb-(Cds-Cdd-S2d)", + group=""" 1 * Cb u0 {2,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {4,D} 4 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 17, - label = "Cb-(Cds-Cdd-Cd)", - group = -""" + index=17, + label="Cb-(Cds-Cdd-Cd)", + group=""" 1 * Cb u0 {2,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {4,D} 4 C u0 {3,D} """, - thermo = 'Cb-(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cb-(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 18, - label = "Cb-Ct", - group = -""" + index=18, + label="Cb-Ct", + group=""" 1 * Cb u0 {2,S} 2 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.59,3.97,4.38,4.72,5.28,5.61,5.75],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (5.69,'kcal/mol','+|-',0.3), - S298 = (-7.8,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.59, 3.97, 4.38, 4.72, 5.28, 5.61, 5.75], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(5.69, "kcal/mol", "+|-", 0.3), + S298=(-7.8, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cb-Ct STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Cb-Ct STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 1839, - label = "Cb-(CtN3t)", - group = -""" + index=1839, + label="Cb-(CtN3t)", + group=""" 1 * Cb u0 {2,S} 2 Ct u0 {1,S} {3,T} 3 N3t u0 {2,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([9.8,11.2,12.3,13.1,14.2,14.9,16.65],'cal/(mol*K)'), - H298 = (35.8,'kcal/mol'), - S298 = (20.5,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([9.8, 11.2, 12.3, 13.1, 14.2, 14.9, 16.65], "cal/(mol*K)"), + H298=(35.8, "kcal/mol"), + S298=(20.5, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 19, - label = "Cb-Cb", - group = -""" + index=19, + label="Cb-Cb", + group=""" 1 * Cb u0 {2,S} 2 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.33,4.22,4.89,5.27,5.76,5.95,6.05],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (4.96,'kcal/mol','+|-',0.3), - S298 = (-8.64,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.33, 4.22, 4.89, 5.27, 5.76, 5.95, 6.05], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(4.96, "kcal/mol", "+|-", 0.3), + S298=(-8.64, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cb-Cb BENSON""", - longDesc = -""" + shortDesc="""Cb-Cb BENSON""", + longDesc=""" """, ) entry( - index = 1821, - label = "Cb-N3s", - group = -""" + index=1821, + label="Cb-N3s", + group=""" 1 * Cb u0 {2,S} 2 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.95,5.21,5.94,6.32,6.53,6.56,6.635],'cal/(mol*K)'), - H298 = (-0.5,'kcal/mol'), - S298 = (-9.69,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.95, 5.21, 5.94, 6.32, 6.53, 6.56, 6.635], "cal/(mol*K)"), + H298=(-0.5, "kcal/mol"), + S298=(-9.69, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1198, - label = "Cb-C=S", - group = -""" + index=1198, + label="Cb-C=S", + group=""" 1 * Cb u0 {2,S} 2 CS u0 {1,S} {3,D} 3 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.46,3.24,3.92,4.49,5.27,5.75,6.3],'cal/(mol*K)'), - H298 = (5.83,'kcal/mol'), - S298 = (-7.94,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.46, 3.24, 3.92, 4.49, 5.27, 5.75, 6.3], "cal/(mol*K)"), + H298=(5.83, "kcal/mol"), + S298=(-7.94, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 20, - label = "Ct", - group = -""" + index=20, + label="Ct", + group=""" 1 * Ct u0 """, - thermo = 'Ct-CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Ct-CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1849, - label = "Ct-CtN3s", - group = -""" + index=1849, + label="Ct-CtN3s", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 N3s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1853, - label = "Ct-N3tN3s", - group = -""" + index=1853, + label="Ct-N3tN3s", + group=""" 1 * Ct u0 {2,T} {3,S} 2 N3t u0 {1,T} 3 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 21, - label = "Ct-CtH", - group = -""" + index=21, + label="Ct-CtH", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.28,5.99,6.49,6.87,7.47,7.96,8.85],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (26.93,'kcal/mol','+|-',0.05), - S298 = (24.7,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.28, 5.99, 6.49, 6.87, 7.47, 7.96, 8.85], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(26.93, "kcal/mol", "+|-", 0.05), + S298=(24.7, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Ct-H STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Ct-H STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 22, - label = "Ct-CtOs", - group = -""" + index=22, + label="Ct-CtOs", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.64,4.39,4.85,5.63,5.66,5.73,5.73],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (31.4,'kcal/mol','+|-',0.27), - S298 = (4.91,'cal/(mol*K)','+|-',0.09), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.64, 4.39, 4.85, 5.63, 5.66, 5.73, 5.73], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(31.4, "kcal/mol", "+|-", 0.27), + S298=(4.91, "cal/(mol*K)", "+|-", 0.09), ), - shortDesc = """Ct-O MELIUS / hc#coh !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Ct-O MELIUS / hc#coh !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1852, - label = "Ct-N3tOs", - group = -""" + index=1852, + label="Ct-N3tOs", + group=""" 1 * Ct u0 {2,T} {3,S} 2 N3t u0 {1,T} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1195, - label = "Ct-CtSs", - group = -""" + index=1195, + label="Ct-CtSs", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.29,3.67,4,4.29,4.74,5.05,5.49],'cal/(mol*K)'), - H298 = (27.63,'kcal/mol'), - S298 = (6.32,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.29, 3.67, 4, 4.29, 4.74, 5.05, 5.49], "cal/(mol*K)"), + H298=(27.63, "kcal/mol"), + S298=(6.32, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1942, - label = "Ct-N3tC", - group = -""" + index=1942, + label="Ct-N3tC", + group=""" 1 * Ct u0 {2,T} {3,S} 2 N3t u0 {1,T} 3 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1850, - label = "Ct-N3tCs", - group = -""" + index=1850, + label="Ct-N3tCs", + group=""" 1 * Ct u0 {2,T} {3,S} 2 N3t u0 {1,T} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1851, - label = "Ct-N3tCd", - group = -""" + index=1851, + label="Ct-N3tCd", + group=""" 1 * Ct u0 {2,T} {3,S} 2 N3t u0 {1,T} 3 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 23, - label = "Ct-CtC", - group = -""" + index=23, + label="Ct-CtC", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 C u0 {1,S} """, - thermo = 'Ct-CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Ct-CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 24, - label = "Ct-CtCs", - group = -""" + index=24, + label="Ct-CtCs", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.13,3.48,3.81,4.09,4.6,4.92,6.35],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (27.55,'kcal/mol','+|-',0.27), - S298 = (6.35,'cal/(mol*K)','+|-',0.09), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.13, 3.48, 3.81, 4.09, 4.6, 4.92, 6.35], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(27.55, "kcal/mol", "+|-", 0.27), + S298=(6.35, "cal/(mol*K)", "+|-", 0.09), ), - shortDesc = """Ct-Cs STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Ct-Cs STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 25, - label = "Ct-CtCds", - group = -""" + index=25, + label="Ct-CtCds", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 [Cd,CO] u0 {1,S} """, - thermo = 'Ct-Ct(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Ct-Ct(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 26, - label = "Ct-Ct(Cds-O2d)", - group = -""" + index=26, + label="Ct-Ct(Cds-O2d)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 CO u0 {1,S} {4,D} 4 O2d u0 {3,D} """, - thermo = 'Ct-CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Ct-CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 27, - label = "Ct-Ct(Cds-Cd)", - group = -""" + index=27, + label="Ct-Ct(Cds-Cd)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cd u0 {1,S} {4,D} 4 C u0 {3,D} """, - thermo = 'Ct-Ct(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Ct-Ct(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 28, - label = "Ct-Ct(Cds-Cds)", - group = -""" + index=28, + label="Ct-Ct(Cds-Cds)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cd u0 {1,S} {4,D} 4 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.57,3.54,3.5,4.92,5.34,5.5,5.8],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (28.2,'kcal/mol','+|-',0.27), - S298 = (6.43,'cal/(mol*K)','+|-',0.09), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2.57, 3.54, 3.5, 4.92, 5.34, 5.5, 5.8], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(28.2, "kcal/mol", "+|-", 0.27), + S298=(6.43, "cal/(mol*K)", "+|-", 0.09), ), - shortDesc = """Ct-Cd STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Ct-Cd STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 29, - label = "Ct-Ct(Cds-Cdd)", - group = -""" + index=29, + label="Ct-Ct(Cds-Cdd)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cd u0 {1,S} {4,D} 4 Cdd u0 {3,D} """, - thermo = 'Ct-Ct(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Ct-Ct(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 30, - label = "Ct-Ct(Cds-Cdd-O2d)", - group = -""" + index=30, + label="Ct-Ct(Cds-Cdd-O2d)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cd u0 {1,S} {4,D} 4 Cdd u0 {3,D} {5,D} 5 O2d u0 {4,D} """, - thermo = 'Ct-Ct(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Ct-Ct(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Ct-Ct(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Ct-Ct(Cds-Cdd-S2d)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cd u0 {1,S} {4,D} 4 Cdd u0 {3,D} {5,D} 5 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 31, - label = "Ct-Ct(Cds-Cdd-Cd)", - group = -""" + index=31, + label="Ct-Ct(Cds-Cdd-Cd)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cd u0 {1,S} {4,D} 4 Cdd u0 {3,D} {5,D} 5 C u0 {4,D} """, - thermo = 'Ct-Ct(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Ct-Ct(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 32, - label = "Ct-CtCt", - group = -""" + index=32, + label="Ct-CtCt", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.54,4.06,4.4,4.64,5,5.23,5.57],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (25.6,'kcal/mol','+|-',0.27), - S298 = (5.88,'cal/(mol*K)','+|-',0.09), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.54, 4.06, 4.4, 4.64, 5, 5.23, 5.57], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(25.6, "kcal/mol", "+|-", 0.27), + S298=(5.88, "cal/(mol*K)", "+|-", 0.09), ), - shortDesc = """Ct-Ct STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Ct-Ct STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 1840, - label = "Ct-Ct(CtN3t)", - group = -""" + index=1840, + label="Ct-Ct(CtN3t)", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Ct u0 {1,S} {4,T} 4 N3t u0 {3,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.3,11.3,12.1,12.7,13.6,14.3,15.3],'cal/(mol*K)'), - H298 = (63.8,'kcal/mol'), - S298 = (35.4,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([10.3, 11.3, 12.1, 12.7, 13.6, 14.3, 15.3], "cal/(mol*K)"), + H298=(63.8, "kcal/mol"), + S298=(35.4, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 33, - label = "Ct-CtCb", - group = -""" + index=33, + label="Ct-CtCb", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.57,3.54,4.5,4.92,5.34,5.5,5.8],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (24.67,'kcal/mol','+|-',0.27), - S298 = (6.43,'cal/(mol*K)','+|-',0.09), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2.57, 3.54, 4.5, 4.92, 5.34, 5.5, 5.8], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(24.67, "kcal/mol", "+|-", 0.27), + S298=(6.43, "cal/(mol*K)", "+|-", 0.09), ), - shortDesc = """Ct-Cb STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", - longDesc = -""" + shortDesc="""Ct-Cb STEIN and FAHR; J. PHYS. CHEM. 1985, 89, 17, 3714""", + longDesc=""" """, ) entry( - index = 1196, - label = "Ct-CtC=S", - group = -""" + index=1196, + label="Ct-CtC=S", + group=""" 1 * Ct u0 {2,T} {3,S} 2 Ct u0 {1,T} 3 CS u0 {1,S} {4,D} 4 S2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.29,3.67,4,4.29,4.74,5.05,5.49],'cal/(mol*K)'), - H298 = (27.63,'kcal/mol'), - S298 = (6.32,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.29, 3.67, 4, 4.29, 4.74, 5.05, 5.49], "cal/(mol*K)"), + H298=(27.63, "kcal/mol"), + S298=(6.32, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 34, - label = "Cdd", - group = -""" + index=34, + label="Cdd", + group=""" 1 * Cdd u0 """, - thermo = 'Cdd-CdsCds', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-CdsCds", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1854, - label = "Cdd-N3dCd", - group = -""" + index=1854, + label="Cdd-N3dCd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 N3d u0 {1,D} 3 Cd u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.5,5.1,5.6,6,6.5,6.9,7.4],'cal/(mol*K)','+|-',[1.1,1.1,1.1,1.1,1.1,1.1,1.1]), - H298 = (25.9,'kcal/mol','+|-',1.5), - S298 = (19.7,'cal/(mol*K)','+|-',1.4), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.5, 5.1, 5.6, 6, 6.5, 6.9, 7.4], + "cal/(mol*K)", + "+|-", + [1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1], + ), + H298=(25.9, "kcal/mol", "+|-", 1.5), + S298=(19.7, "cal/(mol*K)", "+|-", 1.4), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 35, - label = "Cdd-OdOd", - group = -""" + index=35, + label="Cdd-OdOd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 O2d u0 {1,D} 3 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.91,9.86,10.65,11.31,12.32,12.99,13.93],'cal/(mol*K)'), - H298 = (-94.05,'kcal/mol','+|-',0.03), - S298 = (52.46,'cal/(mol*K)','+|-',0.002), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.91, 9.86, 10.65, 11.31, 12.32, 12.99, 13.93], "cal/(mol*K)"), + H298=(-94.05, "kcal/mol", "+|-", 0.03), + S298=(52.46, "cal/(mol*K)", "+|-", 0.002), ), - shortDesc = """CHEMKIN DATABASE: S(group) = S(CO2) + Rln(2)""", - longDesc = -""" + shortDesc="""CHEMKIN DATABASE: S(group) = S(CO2) + Rln(2)""", + longDesc=""" """, ) entry( - index = 1466, - label = "Cdd-OdSd", - group = -""" + index=1466, + label="Cdd-OdSd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 O2d u0 {1,D} 3 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([9.81,10.8,11.6,12.21,13.03,13.51,14.12],'cal/(mol*K)'), - H298 = (-35.96,'kcal/mol'), - S298 = (55.34,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([9.81, 10.8, 11.6, 12.21, 13.03, 13.51, 14.12], "cal/(mol*K)"), + H298=(-35.96, "kcal/mol"), + S298=(55.34, "cal/(mol*K)"), ), - shortDesc = """CAC calc 1D-HR""", - longDesc = -""" + shortDesc="""CAC calc 1D-HR""", + longDesc=""" """, ) entry( - index = 1199, - label = "Cdd-SdSd", - group = -""" + index=1199, + label="Cdd-SdSd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 S2d u0 {1,D} 3 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.91,11.83,12.49,12.98,13.63,14.01,14.47],'cal/(mol*K)'), - H298 = (24.5,'kcal/mol'), - S298 = (58.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([10.91, 11.83, 12.49, 12.98, 13.63, 14.01, 14.47], "cal/(mol*K)"), + H298=(24.5, "kcal/mol"), + S298=(58.24, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", + longDesc=""" """, ) entry( - index = 36, - label = "Cdd-CdOd", - group = -""" + index=36, + label="Cdd-CdOd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 C u0 {1,D} 3 O2d u0 {1,D} """, - thermo = 'Cdd-CdsOd', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-CdsOd", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 37, - label = "Cdd-CdsOd", - group = -""" + index=37, + label="Cdd-CdsOd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cd u0 {1,D} 3 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """O=C*=C< currently treat the adjacent C as Ck""", - longDesc = -""" + shortDesc="""O=C*=C< currently treat the adjacent C as Ck""", + longDesc=""" """, ) entry( - index = 38, - label = "Cdd-CddOd", - group = -""" + index=38, + label="Cdd-CddOd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} 3 O2d u0 {1,D} """, - thermo = 'Cdd-(Cdd-Cd)O2d', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-(Cdd-Cd)O2d", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 40, - label = "Cdd-(Cdd-O2d)O2d", - group = -""" + index=40, + label="Cdd-(Cdd-O2d)O2d", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 O2d u0 {1,D} 4 O2d u0 {2,D} """, - thermo = 'Cdd-CdsOd', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-CdsOd", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 39, - label = "Cdd-(Cdd-Cd)O2d", - group = -""" + index=39, + label="Cdd-(Cdd-Cd)O2d", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 O2d u0 {1,D} 4 C u0 {2,D} """, - thermo = 'Cdd-CdsOd', - shortDesc = """O=C*=C= currently not defined. Assigned same value as Ca""", - longDesc = -""" + thermo="Cdd-CdsOd", + shortDesc="""O=C*=C= currently not defined. Assigned same value as Ca""", + longDesc=""" """, ) entry( - index = 1200, - label = "Cdd-CdSd", - group = -""" + index=1200, + label="Cdd-CdSd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 C u0 {1,D} 3 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.88,8.48,8.8,8.99,9.23,9.37,9.58],'cal/(mol*K)'), - H298 = (40.33,'kcal/mol'), - S298 = (34.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.88, 8.48, 8.8, 8.99, 9.23, 9.37, 9.58], "cal/(mol*K)"), + H298=(40.33, "kcal/mol"), + S298=(34.24, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-CdsSd", - group = -""" + index=-1, + label="Cdd-CdsSd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cd u0 {1,D} 3 S2d u0 {1,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-CddSd", - group = -""" + index=-1, + label="Cdd-CddSd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} 3 S2d u0 {1,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-(Cdd-S2d)S2d", - group = -""" + index=-1, + label="Cdd-(Cdd-S2d)S2d", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 S2d u0 {1,D} 4 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-(Cdd-Cd)S2d", - group = -""" + index=-1, + label="Cdd-(Cdd-Cd)S2d", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 S2d u0 {1,D} 4 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 41, - label = "Cdd-CdCd", - group = -""" + index=41, + label="Cdd-CdCd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 C u0 {1,D} 3 C u0 {1,D} """, - thermo = 'Cdd-CdsCds', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-CdsCds", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 42, - label = "Cdd-CddCdd", - group = -""" + index=42, + label="Cdd-CddCdd", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} 3 Cdd u0 {1,D} """, - thermo = 'Cdd-(Cdd-Cd)(Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-(Cdd-Cd)(Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 43, - label = "Cdd-(Cdd-O2d)(Cdd-O2d)", - group = -""" + index=43, + label="Cdd-(Cdd-O2d)(Cdd-O2d)", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cdd u0 {1,D} {5,D} 4 O2d u0 {2,D} 5 O2d u0 {3,D} """, - thermo = 'Cdd-CdsCds', - shortDesc = """O=C=C*=C=O, currently not defined. Assigned same value as Ca""", - longDesc = -""" + thermo="Cdd-CdsCds", + shortDesc="""O=C=C*=C=O, currently not defined. Assigned same value as Ca""", + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-(Cdd-S2d)(Cdd-S2d)", - group = -""" + index=-1, + label="Cdd-(Cdd-S2d)(Cdd-S2d)", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cdd u0 {1,D} {5,D} 4 S2d u0 {2,D} 5 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 44, - label = "Cdd-(Cdd-O2d)(Cdd-Cd)", - group = -""" + index=44, + label="Cdd-(Cdd-O2d)(Cdd-Cd)", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cdd u0 {1,D} {5,D} 4 O2d u0 {2,D} 5 C u0 {3,D} """, - thermo = 'Cdd-(Cdd-O2d)Cds', - shortDesc = """O=C=C*=C=C, currently not defined. Assigned same value as Ca""", - longDesc = -""" + thermo="Cdd-(Cdd-O2d)Cds", + shortDesc="""O=C=C*=C=C, currently not defined. Assigned same value as Ca""", + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-(Cdd-S2d)(Cdd-Cd)", - group = -""" + index=-1, + label="Cdd-(Cdd-S2d)(Cdd-Cd)", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cdd u0 {1,D} {5,D} 4 S2d u0 {2,D} 5 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 45, - label = "Cdd-(Cdd-Cd)(Cdd-Cd)", - group = -""" + index=45, + label="Cdd-(Cdd-Cd)(Cdd-Cd)", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cdd u0 {1,D} {5,D} 4 C u0 {2,D} 5 C u0 {3,D} """, - thermo = 'Cdd-CdsCds', - shortDesc = """C=C=C*=C=C, currently not defined. Assigned same value as Ca""", - longDesc = -""" + thermo="Cdd-CdsCds", + shortDesc="""C=C=C*=C=C, currently not defined. Assigned same value as Ca""", + longDesc=""" """, ) entry( - index = 46, - label = "Cdd-CddCds", - group = -""" + index=46, + label="Cdd-CddCds", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} 3 Cd u0 {1,D} """, - thermo = 'Cdd-(Cdd-Cd)(Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cdd-(Cdd-Cd)(Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 47, - label = "Cdd-(Cdd-O2d)Cds", - group = -""" + index=47, + label="Cdd-(Cdd-O2d)Cds", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cd u0 {1,D} 4 O2d u0 {2,D} """, - thermo = 'Cdd-CdsCds', - shortDesc = """O=C=C*=C<, currently not defined. Assigned same value as Ca """, - longDesc = -""" + thermo="Cdd-CdsCds", + shortDesc="""O=C=C*=C<, currently not defined. Assigned same value as Ca """, + longDesc=""" """, ) entry( - index = -1, - label = "Cdd-(Cdd-S2d)Cds", - group = -""" + index=-1, + label="Cdd-(Cdd-S2d)Cds", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cd u0 {1,D} 4 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 48, - label = "Cdd-(Cdd-Cd)Cds", - group = -""" + index=48, + label="Cdd-(Cdd-Cd)Cds", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cdd u0 {1,D} {4,D} 3 Cd u0 {1,D} 4 C u0 {2,D} """, - thermo = 'Cdd-CdsCds', - shortDesc = """C=C=C*=C<, currently not defined. Assigned same value as Ca """, - longDesc = -""" + thermo="Cdd-CdsCds", + shortDesc="""C=C=C*=C<, currently not defined. Assigned same value as Ca """, + longDesc=""" """, ) entry( - index = 49, - label = "Cdd-CdsCds", - group = -""" + index=49, + label="Cdd-CdsCds", + group=""" 1 * Cdd u0 {2,D} {3,D} 2 Cd u0 {1,D} 3 Cd u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.9,4.4,4.7,5,5.3,5.5,5.7],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (34.2,'kcal/mol','+|-',0.2), - S298 = (6,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.9, 4.4, 4.7, 5, 5.3, 5.5, 5.7], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(34.2, "kcal/mol", "+|-", 0.2), + S298=(6, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Benson's Ca """, - longDesc = -""" + shortDesc="""Benson's Ca """, + longDesc=""" """, ) entry( - index = 50, - label = "Cds", - group = -""" + index=50, + label="Cds", + group=""" 1 * [Cd,CO,CS] u0 """, - thermo = 'Cds-CdsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1823, - label = "Cds-OdN3sH", - group = -""" + index=1823, + label="Cds-OdN3sH", + group=""" 1 * CO u0 {2,S} {3,S} {4,D} 2 N3s u0 {1,S} 3 H u0 {1,S} 4 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.03,7.87,8.82,9.68,11.16,12.2,14.8],'cal/(mol*K)'), - H298 = (-29.6,'kcal/mol'), - S298 = (34.93,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.03, 7.87, 8.82, 9.68, 11.16, 12.2, 14.8], "cal/(mol*K)"), + H298=(-29.6, "kcal/mol"), + S298=(34.93, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1824, - label = "Cds-OdN3sCs", - group = -""" + index=1824, + label="Cds-OdN3sCs", + group=""" 1 * CO u0 {2,S} {3,S} {4,D} 2 N3s u0 {1,S} 3 Cs u0 {1,S} 4 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.37,6.17,7.07,7.66,9.62,11.19,15.115],'cal/(mol*K)'), - H298 = (-32.8,'kcal/mol'), - S298 = (16.2,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.37, 6.17, 7.07, 7.66, 9.62, 11.19, 15.115], "cal/(mol*K)"), + H298=(-32.8, "kcal/mol"), + S298=(16.2, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1855, - label = "Cd-N3dCsCs", - group = -""" + index=1855, + label="Cd-N3dCsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 N3d u0 {1,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.5,4.2,5,5.6,6.6,7.2,7.9],'cal/(mol*K)','+|-',[0.9,0.9,0.9,0.9,0.9,0.9,0.9]), - H298 = (5.7,'kcal/mol','+|-',1.2), - S298 = (2,'cal/(mol*K)','+|-',1.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.5, 4.2, 5, 5.6, 6.6, 7.2, 7.9], + "cal/(mol*K)", + "+|-", + [0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9], + ), + H298=(5.7, "kcal/mol", "+|-", 1.2), + S298=(2, "cal/(mol*K)", "+|-", 1.1), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1856, - label = "Cd-N3dCsH", - group = -""" + index=1856, + label="Cd-N3dCsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 N3d u0 {1,D} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.5,6.3,7.2,8,9.3,10.2,11.6],'cal/(mol*K)','+|-',[0.9,0.9,0.9,0.9,0.9,0.9,0.9]), - H298 = (3.3,'kcal/mol','+|-',1.3), - S298 = (21.2,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.5, 6.3, 7.2, 8, 9.3, 10.2, 11.6], + "cal/(mol*K)", + "+|-", + [0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9], + ), + H298=(3.3, "kcal/mol", "+|-", 1.3), + S298=(21.2, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1857, - label = "Cd-N3dHH", - group = -""" + index=1857, + label="Cd-N3dHH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 N3d u0 {1,D} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.2,7.4,8.7,9.8,11.5,12.9,15],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (4.4,'kcal/mol','+|-',1.4), - S298 = (40.8,'cal/(mol*K)','+|-',1.3), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.2, 7.4, 8.7, 9.8, 11.5, 12.9, 15], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(4.4, "kcal/mol", "+|-", 1.4), + S298=(40.8, "cal/(mol*K)", "+|-", 1.3), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 51, - label = "Cds-OdHH", - group = -""" + index=51, + label="Cds-OdHH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.47,9.38,10.46,11.52,13.37,14.81,14.81],'cal/(mol*K)','+|-',[0.06,0.06,0.06,0.06,0.06,0.06,0.06]), - H298 = (-25.95,'kcal/mol','+|-',0.11), - S298 = (53.68,'cal/(mol*K)','+|-',0.06), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [8.47, 9.38, 10.46, 11.52, 13.37, 14.81, 14.81], + "cal/(mol*K)", + "+|-", + [0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06], + ), + H298=(-25.95, "kcal/mol", "+|-", 0.11), + S298=(53.68, "cal/(mol*K)", "+|-", 0.06), ), - shortDesc = """CO-HH BENSON !!!WARNING! Cp1500 value taken as Cp1000, S(group) = S(CH2O) + Rln(2)""", - longDesc = -""" + shortDesc="""CO-HH BENSON !!!WARNING! Cp1500 value taken as Cp1000, S(group) = S(CH2O) + Rln(2)""", + longDesc=""" """, ) entry( - index = 52, - label = "Cds-OdOsH", - group = -""" + index=52, + label="Cds-OdOsH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.88,34.56,42.08,48.16,56.57,61.38,65.84],'J/(mol*K)','+|-',[4.01,4.01,4.01,4.01,4.01,4.01,4.01]), - H298 = (-211.8,'kJ/mol','+|-',3.42), - S298 = (124.04,'J/(mol*K)','+|-',4.68), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [25.88, 34.56, 42.08, 48.16, 56.57, 61.38, 65.84], + "J/(mol*K)", + "+|-", + [4.01, 4.01, 4.01, 4.01, 4.01, 4.01, 4.01], + ), + H298=(-211.8, "kJ/mol", "+|-", 3.42), + S298=(124.04, "J/(mol*K)", "+|-", 4.68), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -1681,47 +1628,48 @@ ) entry( - index = 1454, - label = "CO-SsH", - group = -""" + index=1454, + label="CO-SsH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.51,6.16,6.7,7.17,8.06,8.79,9.83],'cal/(mol*K)'), - H298 = (-9.84,'kcal/mol'), - S298 = (29.36,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.51, 6.16, 6.7, 7.17, 8.06, 8.79, 9.83], "cal/(mol*K)"), + H298=(-9.84, "kcal/mol"), + S298=(29.36, "cal/(mol*K)"), ), - shortDesc = """CAC 1d-HR calc""", - longDesc = -""" + shortDesc="""CAC 1d-HR calc""", + longDesc=""" """, ) entry( - index = 53, - label = "Cds-OdOsOs", - group = -""" + index=53, + label="Cds-OdOsOs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([26.17,39.3,48.25,53.88,58.97,59.63,56.09],'J/(mol*K)','+|-',[6,6,6,6,6,6,6]), - H298 = (-281.4,'kJ/mol','+|-',5.11), - S298 = (22.66,'J/(mol*K)','+|-',7), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [26.17, 39.3, 48.25, 53.88, 58.97, 59.63, 56.09], + "J/(mol*K)", + "+|-", + [6, 6, 6, 6, 6, 6, 6], + ), + H298=(-281.4, "kJ/mol", "+|-", 5.11), + S298=(22.66, "J/(mol*K)", "+|-", 7), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -1729,88 +1677,85 @@ ) entry( - index = 1455, - label = "CO-CsSs", - group = -""" + index=1455, + label="CO-CsSs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 S2s u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,5.04,5.51,5.83,6.29,6.48,6.38],'cal/(mol*K)'), - H298 = (-14.02,'kcal/mol'), - S298 = (8.55,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.37, 5.04, 5.51, 5.83, 6.29, 6.48, 6.38], "cal/(mol*K)"), + H298=(-14.02, "kcal/mol"), + S298=(8.55, "cal/(mol*K)"), ), - shortDesc = """CAC 1d-HR calc""", - longDesc = -""" + shortDesc="""CAC 1d-HR calc""", + longDesc=""" """, ) entry( - index = 1456, - label = "CO-OsSs", - group = -""" + index=1456, + label="CO-OsSs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.94,5.63,6.35,6.99,7.59,7.76,8.18],'cal/(mol*K)'), - H298 = (-11.53,'kcal/mol'), - S298 = (9.61,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.94, 5.63, 6.35, 6.99, 7.59, 7.76, 8.18], "cal/(mol*K)"), + H298=(-11.53, "kcal/mol"), + S298=(9.61, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1Dhr calc""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1Dhr calc""", + longDesc=""" """, ) entry( - index = 54, - label = "Cds-OdCH", - group = -""" + index=54, + label="Cds-OdCH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-OdCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 55, - label = "Cds-OdCsH", - group = -""" + index=55, + label="Cds-OdCsH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([26.24,31.22,35.94,40.13,46.74,51.39,57.73],'J/(mol*K)','+|-',[2.08,2.08,2.08,2.08,2.08,2.08,2.08]), - H298 = (-123.4,'kJ/mol','+|-',1.77), - S298 = (145.46,'J/(mol*K)','+|-',2.42), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [26.24, 31.22, 35.94, 40.13, 46.74, 51.39, 57.73], + "J/(mol*K)", + "+|-", + [2.08, 2.08, 2.08, 2.08, 2.08, 2.08, 2.08], + ), + H298=(-123.4, "kJ/mol", "+|-", 1.77), + S298=(145.46, "J/(mol*K)", "+|-", 2.42), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -1818,43 +1763,44 @@ ) entry( - index = 56, - label = "Cds-OdCdsH", - group = -""" + index=56, + label="Cds-OdCdsH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 57, - label = "Cds-O2d(Cds-O2d)H", - group = -""" + index=57, + label="Cds-O2d(Cds-O2d)H", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 CO u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([29.76,34.63,39.25,43.32,49.57,53.77,59.32],'J/(mol*K)','+|-',[1.7,1.7,1.7,1.7,1.7,1.7,1.7]), - H298 = (-104.8,'kJ/mol','+|-',1.45), - S298 = (140.49,'J/(mol*K)','+|-',1.98), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [29.76, 34.63, 39.25, 43.32, 49.57, 53.77, 59.32], + "J/(mol*K)", + "+|-", + [1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7], + ), + H298=(-104.8, "kJ/mol", "+|-", 1.45), + S298=(140.49, "J/(mol*K)", "+|-", 1.98), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -1862,25 +1808,28 @@ ) entry( - index = 58, - label = "Cds-O2d(Cds-Cd)H", - group = -""" + index=58, + label="Cds-O2d(Cds-Cd)H", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.31,34,39.42,43.77,50.16,54.55,60.77],'J/(mol*K)','+|-',[4.9,4.9,4.9,4.9,4.9,4.9,4.9]), - H298 = (-128.3,'kJ/mol','+|-',5.9), - S298 = (129.26,'J/(mol*K)','+|-',5.71), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.31, 34, 39.42, 43.77, 50.16, 54.55, 60.77], + "J/(mol*K)", + "+|-", + [4.9, 4.9, 4.9, 4.9, 4.9, 4.9, 4.9], + ), + H298=(-128.3, "kJ/mol", "+|-", 5.9), + S298=(129.26, "J/(mol*K)", "+|-", 5.71), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -1888,53 +1837,53 @@ ) entry( - index = 59, - label = "Cds-O2d(Cds-Cds)H", - group = -""" + index=59, + label="Cds-O2d(Cds-Cds)H", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 H u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.45,8.77,9.82,10.7,12.14,12.9,12.9],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-30.9,'kcal/mol','+|-',0.3), - S298 = (33.4,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [7.45, 8.77, 9.82, 10.7, 12.14, 12.9, 12.9], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-30.9, "kcal/mol", "+|-", 0.3), + S298=(33.4, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """CO-CdH Hf BOZZELLI S,Cp =3D CO/C/H-del(cd syst) !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""CO-CdH Hf BOZZELLI S,Cp =3D CO/C/H-del(cd syst) !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 60, - label = "Cds-O2d(Cds-Cdd)H", - group = -""" + index=60, + label="Cds-O2d(Cds-Cdd)H", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 H u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-O2d(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 61, - label = "Cds-O2d(Cds-Cdd-O2d)H", - group = -""" + index=61, + label="Cds-O2d(Cds-Cdd-O2d)H", + group=""" 1 * CO u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -1942,19 +1891,17 @@ 5 H u0 {1,S} 6 O2d u0 {3,D} """, - thermo = 'Cds-O2d(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 62, - label = "Cds-O2d(Cds-Cdd-Cd)H", - group = -""" + index=62, + label="Cds-O2d(Cds-Cdd-Cd)H", + group=""" 1 * CO u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -1962,87 +1909,83 @@ 5 H u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-O2d(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 63, - label = "Cds-OdCtH", - group = -""" + index=63, + label="Cds-OdCtH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 64, - label = "Cds-OdCbH", - group = -""" + index=64, + label="Cds-OdCbH", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 65, - label = "Cds-OdCOs", - group = -""" + index=65, + label="Cds-OdCOs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 C u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-OdCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 66, - label = "Cds-OdCsOs", - group = -""" + index=66, + label="Cds-OdCsOs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cs u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([20.67,28.39,34.6,39.48,46.23,50.09,52.68],'J/(mol*K)','+|-',[2.85,2.85,2.85,2.85,2.85,2.85,2.85]), - H298 = (-222,'kJ/mol','+|-',2.43), - S298 = (43.52,'J/(mol*K)','+|-',3.33), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [20.67, 28.39, 34.6, 39.48, 46.23, 50.09, 52.68], + "J/(mol*K)", + "+|-", + [2.85, 2.85, 2.85, 2.85, 2.85, 2.85, 2.85], + ), + H298=(-222, "kJ/mol", "+|-", 2.43), + S298=(43.52, "J/(mol*K)", "+|-", 3.33), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2050,43 +1993,44 @@ ) entry( - index = 67, - label = "Cds-OdCdsOs", - group = -""" + index=67, + label="Cds-OdCdsOs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 68, - label = "Cds-O2d(Cds-O2d)O2s", - group = -""" + index=68, + label="Cds-O2d(Cds-O2d)O2s", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 CO u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 O2s u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.18,34.34,39.85,44.13,49.81,52.4,52.33],'J/(mol*K)','+|-',[3.36,3.36,3.36,3.36,3.36,3.36,3.36]), - H298 = (-196.2,'kJ/mol','+|-',2.86), - S298 = (39.37,'J/(mol*K)','+|-',3.92), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.18, 34.34, 39.85, 44.13, 49.81, 52.4, 52.33], + "J/(mol*K)", + "+|-", + [3.36, 3.36, 3.36, 3.36, 3.36, 3.36, 3.36], + ), + H298=(-196.2, "kJ/mol", "+|-", 2.86), + S298=(39.37, "J/(mol*K)", "+|-", 3.92), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2094,25 +2038,28 @@ ) entry( - index = 69, - label = "Cds-O2d(Cds-Cd)O2s", - group = -""" + index=69, + label="Cds-O2d(Cds-Cd)O2s", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 O2s u0 {1,S} 5 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([28.33,37.84,44.54,49.34,55.45,58.73,60.61],'J/(mol*K)','+|-',[7.46,7.46,7.46,7.46,7.46,7.46,7.46]), - H298 = (-218.6,'kJ/mol','+|-',6.36), - S298 = (33.44,'J/(mol*K)','+|-',8.7), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [28.33, 37.84, 44.54, 49.34, 55.45, 58.73, 60.61], + "J/(mol*K)", + "+|-", + [7.46, 7.46, 7.46, 7.46, 7.46, 7.46, 7.46], + ), + H298=(-218.6, "kJ/mol", "+|-", 6.36), + S298=(33.44, "J/(mol*K)", "+|-", 8.7), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2120,53 +2067,53 @@ ) entry( - index = 70, - label = "Cds-O2d(Cds-Cds)O2s", - group = -""" + index=70, + label="Cds-O2d(Cds-Cds)O2s", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 O2s u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.97,6.7,7.4,8.02,8.87,9.36,9.36],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-32.1,'kcal/mol','+|-',0.3), - S298 = (14.78,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.97, 6.7, 7.4, 8.02, 8.87, 9.36, 9.36], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-32.1, "kcal/mol", "+|-", 0.3), + S298=(14.78, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """CO-OCd RPS + S Coreected !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""CO-OCd RPS + S Coreected !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 71, - label = "Cds-O2d(Cds-Cdd)O2s", - group = -""" + index=71, + label="Cds-O2d(Cds-Cdd)O2s", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 O2s u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-O2d(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 72, - label = "Cds-O2d(Cds-Cdd-O2d)O2s", - group = -""" + index=72, + label="Cds-O2d(Cds-Cdd-O2d)O2s", + group=""" 1 * CO u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -2174,19 +2121,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {3,D} """, - thermo = 'Cds-O2d(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 73, - label = "Cds-O2d(Cds-Cdd-Cd)O2s", - group = -""" + index=73, + label="Cds-O2d(Cds-Cdd-Cd)O2s", + group=""" 1 * CO u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -2194,92 +2139,93 @@ 5 O2s u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-O2d(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 74, - label = "Cds-OdCtOs", - group = -""" + index=74, + label="Cds-OdCtOs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 75, - label = "Cds-OdCbOs", - group = -""" + index=75, + label="Cds-OdCbOs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.97,6.7,7.4,8.02,8.87,9.36,9.36],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-36.6,'kcal/mol','+|-',0.3), - S298 = (14.78,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.97, 6.7, 7.4, 8.02, 8.87, 9.36, 9.36], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-36.6, "kcal/mol", "+|-", 0.3), + S298=(14.78, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """CO-OCb RPS + S Coreected !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""CO-OCb RPS + S Coreected !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 76, - label = "Cds-OdCC", - group = -""" + index=76, + label="Cds-OdCC", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = 'Cds-OdCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 77, - label = "Cds-OdCsCs", - group = -""" + index=77, + label="Cds-OdCsCs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([23.82,27.7,31.22,34.19,38.37,40.85,43.26],'J/(mol*K)','+|-',[2.08,2.08,2.08,2.08,2.08,2.08,2.08]), - H298 = (-132.2,'kJ/mol','+|-',1.77), - S298 = (61.78,'J/(mol*K)','+|-',2.42), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [23.82, 27.7, 31.22, 34.19, 38.37, 40.85, 43.26], + "J/(mol*K)", + "+|-", + [2.08, 2.08, 2.08, 2.08, 2.08, 2.08, 2.08], + ), + H298=(-132.2, "kJ/mol", "+|-", 1.77), + S298=(61.78, "J/(mol*K)", "+|-", 2.42), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2287,43 +2233,44 @@ ) entry( - index = 78, - label = "Cds-OdCdsCs", - group = -""" + index=78, + label="Cds-OdCdsCs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 79, - label = "Cds-O2d(Cds-O2d)Cs", - group = -""" + index=79, + label="Cds-O2d(Cds-O2d)Cs", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 CO u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 Cs u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([26.77,30.83,34.36,37.27,41.27,43.45,45.25],'J/(mol*K)','+|-',[1.28,1.28,1.28,1.28,1.28,1.28,1.28]), - H298 = (-122,'kJ/mol','+|-',1.09), - S298 = (57.8,'J/(mol*K)','+|-',1.5), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [26.77, 30.83, 34.36, 37.27, 41.27, 43.45, 45.25], + "J/(mol*K)", + "+|-", + [1.28, 1.28, 1.28, 1.28, 1.28, 1.28, 1.28], + ), + H298=(-122, "kJ/mol", "+|-", 1.09), + S298=(57.8, "J/(mol*K)", "+|-", 1.5), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2331,25 +2278,28 @@ ) entry( - index = 80, - label = "Cds-O2d(Cds-Cd)Cs", - group = -""" + index=80, + label="Cds-O2d(Cds-Cd)Cs", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 Cs u0 {1,S} 5 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.26,30.66,34.68,37.69,41.62,43.93,46.69],'J/(mol*K)','+|-',[4.9,4.9,4.9,4.9,4.9,4.9,4.9]), - H298 = (-130.4,'kJ/mol','+|-',4.17), - S298 = (47.38,'J/(mol*K)','+|-',5.71), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [25.26, 30.66, 34.68, 37.69, 41.62, 43.93, 46.69], + "J/(mol*K)", + "+|-", + [4.9, 4.9, 4.9, 4.9, 4.9, 4.9, 4.9], + ), + H298=(-130.4, "kJ/mol", "+|-", 4.17), + S298=(47.38, "J/(mol*K)", "+|-", 5.71), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2357,53 +2307,53 @@ ) entry( - index = 81, - label = "Cds-O2d(Cds-Cds)Cs", - group = -""" + index=81, + label="Cds-O2d(Cds-Cds)Cs", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 Cs u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.46,6.32,7.17,7.88,9,9.77,9.77],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-30.9,'kcal/mol','+|-',0.3), - S298 = (14.6,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.46, 6.32, 7.17, 7.88, 9, 9.77, 9.77], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-30.9, "kcal/mol", "+|-", 0.3), + S298=(14.6, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """CO-CdCs Hf BENSON =3D CO/Cb/C S,Cp !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""CO-CdCs Hf BENSON =3D CO/Cb/C S,Cp !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 82, - label = "Cds-O2d(Cds-Cdd)Cs", - group = -""" + index=82, + label="Cds-O2d(Cds-Cdd)Cs", + group=""" 1 * CO u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2d u0 {1,D} 4 Cs u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-O2d(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 83, - label = "Cds-O2d(Cds-Cdd-O2d)Cs", - group = -""" + index=83, + label="Cds-O2d(Cds-Cdd-O2d)Cs", + group=""" 1 * CO u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -2411,19 +2361,17 @@ 5 Cs u0 {1,S} 6 O2d u0 {3,D} """, - thermo = 'Cds-O2d(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 84, - label = "Cds-O2d(Cds-Cdd-Cd)Cs", - group = -""" + index=84, + label="Cds-O2d(Cds-Cdd-Cd)Cs", + group=""" 1 * CO u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -2431,37 +2379,33 @@ 5 Cs u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-O2d(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 85, - label = "Cds-OdCdsCds", - group = -""" + index=85, + label="Cds-OdCdsCds", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 86, - label = "Cds-O2d(Cds-O2d)(Cds-O2d)", - group = -""" + index=86, + label="Cds-O2d(Cds-O2d)(Cds-O2d)", + group=""" 1 * CO u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -2469,15 +2413,19 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([31.75,33.35,34.1,34.51,35.19,36.06,38.14],'J/(mol*K)','+|-',[2.41,2.41,2.41,2.41,2.41,2.41,2.41]), - H298 = (-89.3,'kJ/mol','+|-',2.05), - S298 = (64.51,'J/(mol*K)','+|-',2.81), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [31.75, 33.35, 34.1, 34.51, 35.19, 36.06, 38.14], + "J/(mol*K)", + "+|-", + [2.41, 2.41, 2.41, 2.41, 2.41, 2.41, 2.41], + ), + H298=(-89.3, "kJ/mol", "+|-", 2.05), + S298=(64.51, "J/(mol*K)", "+|-", 2.81), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2485,10 +2433,9 @@ ) entry( - index = 87, - label = "Cds-O2d(Cds-Cd)(Cds-O2d)", - group = -""" + index=87, + label="Cds-O2d(Cds-Cd)(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2496,19 +2443,17 @@ 5 C u0 {3,D} 6 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 88, - label = "Cds-O2d(Cds-Cds)(Cds-O2d)", - group = -""" + index=88, + label="Cds-O2d(Cds-Cds)(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2516,19 +2461,17 @@ 5 Cd u0 {3,D} 6 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 89, - label = "Cds-O2d(Cds-Cdd)(Cds-O2d)", - group = -""" + index=89, + label="Cds-O2d(Cds-Cdd)(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2536,19 +2479,17 @@ 5 Cdd u0 {3,D} 6 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cdd-Cd)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-Cd)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 90, - label = "Cds-O2d(Cds-Cdd-O2d)(Cds-O2d)", - group = -""" + index=90, + label="Cds-O2d(Cds-Cdd-O2d)(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2557,19 +2498,17 @@ 6 O2d u0 {5,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 91, - label = "Cds-O2d(Cds-Cdd-Cd)(Cds-O2d)", - group = -""" + index=91, + label="Cds-O2d(Cds-Cdd-Cd)(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2578,19 +2517,17 @@ 6 C u0 {5,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 92, - label = "Cds-O2d(Cds-Cd)(Cds-Cd)", - group = -""" + index=92, + label="Cds-O2d(Cds-Cd)(Cds-Cd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2598,19 +2535,17 @@ 5 C u0 {3,D} 6 C u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 93, - label = "Cds-O2d(Cds-Cds)(Cds-Cds)", - group = -""" + index=93, + label="Cds-O2d(Cds-Cds)(Cds-Cds)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2618,24 +2553,27 @@ 5 Cd u0 {3,D} 6 Cd u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.46,6.32,7.17,7.88,9,9.77,9.77],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-30.9,'kcal/mol','+|-',0.3), - S298 = (14.6,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.46, 6.32, 7.17, 7.88, 9, 9.77, 9.77], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-30.9, "kcal/mol", "+|-", 0.3), + S298=(14.6, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """CO-CdCd Estimate BOZZELLI !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""CO-CdCd Estimate BOZZELLI !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 94, - label = "Cds-O2d(Cds-Cdd)(Cds-Cds)", - group = -""" + index=94, + label="Cds-O2d(Cds-Cdd)(Cds-Cds)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2643,19 +2581,17 @@ 5 Cdd u0 {3,D} 6 Cd u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cdd-Cd)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-Cd)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 95, - label = "Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)", - group = -""" + index=95, + label="Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2664,19 +2600,17 @@ 6 Cd u0 {4,D} 7 O2d u0 {5,D} """, - thermo = 'Cds-O2d(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 96, - label = "Cds-O2d(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=96, + label="Cds-O2d(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2685,19 +2619,17 @@ 6 Cd u0 {4,D} 7 C u0 {5,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 97, - label = "Cds-O2d(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=97, + label="Cds-O2d(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2705,19 +2637,17 @@ 5 Cdd u0 {3,D} 6 Cdd u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 98, - label = "Cds-O2d(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=98, + label="Cds-O2d(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2727,19 +2657,17 @@ 7 O2d u0 {5,D} 8 O2d u0 {6,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 99, - label = "Cds-O2d(Cds-Cdd-Cd)(Cds-Cdd-O2d)", - group = -""" + index=99, + label="Cds-O2d(Cds-Cdd-Cd)(Cds-Cdd-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2749,19 +2677,17 @@ 7 C u0 {5,D} 8 O2d u0 {6,D} """, - thermo = 'Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 100, - label = "Cds-O2d(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=100, + label="Cds-O2d(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cd u0 {1,S} {5,D} @@ -2771,131 +2697,117 @@ 7 C u0 {5,D} 8 C u0 {6,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 101, - label = "Cds-OdCtCs", - group = -""" + index=101, + label="Cds-OdCtCs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 102, - label = "Cds-OdCtCds", - group = -""" + index=102, + label="Cds-OdCtCds", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-OdCt(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCt(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 103, - label = "Cds-OdCt(Cds-O2d)", - group = -""" + index=103, + label="Cds-OdCt(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 CO u0 {1,S} {5,D} 5 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 104, - label = "Cds-OdCt(Cds-Cd)", - group = -""" + index=104, + label="Cds-OdCt(Cds-Cd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 C u0 {4,D} """, - thermo = 'Cds-OdCt(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCt(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 105, - label = "Cds-OdCt(Cds-Cds)", - group = -""" + index=105, + label="Cds-OdCt(Cds-Cds)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 Cd u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 106, - label = "Cds-OdCt(Cds-Cdd)", - group = -""" + index=106, + label="Cds-OdCt(Cds-Cdd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 Cdd u0 {4,D} """, - thermo = 'Cds-OdCt(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCt(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 107, - label = "Cds-OdCt(Cds-Cdd-O2d)", - group = -""" + index=107, + label="Cds-OdCt(Cds-Cdd-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} @@ -2903,19 +2815,17 @@ 5 Cdd u0 {4,D} {6,D} 6 O2d u0 {5,D} """, - thermo = 'Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 108, - label = "Cds-OdCt(Cds-Cdd-Cd)", - group = -""" + index=108, + label="Cds-OdCt(Cds-Cdd-Cd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} @@ -2923,149 +2833,133 @@ 5 Cdd u0 {4,D} {6,D} 6 C u0 {5,D} """, - thermo = 'Cds-OdCt(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCt(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 109, - label = "Cds-OdCtCt", - group = -""" + index=109, + label="Cds-OdCtCt", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 110, - label = "Cds-OdCbCs", - group = -""" + index=110, + label="Cds-OdCbCs", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 111, - label = "Cds-OdCbCds", - group = -""" + index=111, + label="Cds-OdCbCds", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-OdCb(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCb(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 112, - label = "Cds-OdCb(Cds-O2d)", - group = -""" + index=112, + label="Cds-OdCb(Cds-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 CO u0 {1,S} {5,D} 5 O2d u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 113, - label = "Cds-OdCb(Cds-Cd)", - group = -""" + index=113, + label="Cds-OdCb(Cds-Cd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 C u0 {4,D} """, - thermo = 'Cds-OdCb(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCb(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 114, - label = "Cds-OdCb(Cds-Cds)", - group = -""" + index=114, + label="Cds-OdCb(Cds-Cds)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 Cd u0 {4,D} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 115, - label = "Cds-OdCb(Cds-Cdd)", - group = -""" + index=115, + label="Cds-OdCb(Cds-Cdd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 Cd u0 {1,S} {5,D} 5 Cdd u0 {4,D} """, - thermo = 'Cds-OdCb(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCb(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 116, - label = "Cds-OdCb(Cds-Cdd-O2d)", - group = -""" + index=116, + label="Cds-OdCb(Cds-Cdd-O2d)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} @@ -3073,19 +2967,17 @@ 5 Cdd u0 {4,D} {6,D} 6 O2d u0 {5,D} """, - thermo = 'Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 117, - label = "Cds-OdCb(Cds-Cdd-Cd)", - group = -""" + index=117, + label="Cds-OdCb(Cds-Cdd-Cd)", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} @@ -3093,190 +2985,181 @@ 5 Cdd u0 {4,D} {6,D} 6 C u0 {5,D} """, - thermo = 'Cds-OdCb(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCb(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 118, - label = "Cds-OdCbCt", - group = -""" + index=118, + label="Cds-OdCbCt", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} """, - thermo = 'Cds-OdCt(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-OdCt(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 119, - label = "Cds-OdCbCb", - group = -""" + index=119, + label="Cds-OdCbCb", + group=""" 1 * CO u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} """, - thermo = 'Cds-O2d(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-O2d(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 120, - label = "Cds-CdHH", - group = -""" + index=120, + label="Cds-CdHH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-CdsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 121, - label = "Cds-CdsHH", - group = -""" + index=121, + label="Cds-CdsHH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.1,6.36,7.51,8.5,10.07,11.27,13.19],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (6.26,'kcal/mol','+|-',0.19), - S298 = (27.61,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.1, 6.36, 7.51, 8.5, 10.07, 11.27, 13.19], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(6.26, "kcal/mol", "+|-", 0.19), + S298=(27.61, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-HH BENSON""", - longDesc = -""" + shortDesc="""Cd-HH BENSON""", + longDesc=""" """, ) entry( - index = 122, - label = "Cds-CddHH", - group = -""" + index=122, + label="Cds-CddHH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 123, - label = "Cds-(Cdd-O2d)HH", - group = -""" + index=123, + label="Cds-(Cdd-O2d)HH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 H u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.08,13.91,15.4,16.64,18.61,20.1,22.47],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (-11.34,'kcal/mol','+|-',0.19), - S298 = (57.47,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.08, 13.91, 15.4, 16.64, 18.61, 20.1, 22.47], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(-11.34, "kcal/mol", "+|-", 0.19), + S298=(57.47, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{CCO/H2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/H2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)HH", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)HH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 H u0 {1,S} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 124, - label = "Cds-(Cdd-Cd)HH", - group = -""" + index=124, + label="Cds-(Cdd-Cd)HH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 H u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 125, - label = "Cds-CdOsH", - group = -""" + index=125, + label="Cds-CdOsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 O2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([18.08,21.17,24.43,27.41,32.22,35.73,40.97],'J/(mol*K)'), - H298 = (36.4,'kJ/mol'), - S298 = (33.51,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([18.08, 21.17, 24.43, 27.41, 32.22, 35.73, 40.97], "J/(mol*K)"), + H298=(36.4, "kJ/mol"), + S298=(33.51, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3284,205 +3167,200 @@ ) entry( - index = 126, - label = "Cds-CdsOsH", - group = -""" + index=126, + label="Cds-CdsOsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 O2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.75,6.46,7.64,8.35,9.1,9.56,10.46],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (2.03,'kcal/mol','+|-',0.19), - S298 = (6.2,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.75, 6.46, 7.64, 8.35, 9.1, 9.56, 10.46], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(2.03, "kcal/mol", "+|-", 0.19), + S298=(6.2, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-OH BOZZELLI Hf vin-oh RADOM + C/Cd/H, S&Cp LAY""", - longDesc = -""" + shortDesc="""Cd-OH BOZZELLI Hf vin-oh RADOM + C/Cd/H, S&Cp LAY""", + longDesc=""" """, ) entry( - index = 127, - label = "Cds-CddOsH", - group = -""" + index=127, + label="Cds-CddOsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 O2s u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 128, - label = "Cds-(Cdd-O2d)OsH", - group = -""" + index=128, + label="Cds-(Cdd-O2d)OsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.29,13.67,15.1,16.1,17.36,18.25,19.75],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (2.11,'kcal/mol','+|-',0.19), - S298 = (38.17,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.29, 13.67, 15.1, 16.1, 17.36, 18.25, 19.75], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(2.11, "kcal/mol", "+|-", 0.19), + S298=(38.17, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{CCO/O/H} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/O/H} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 129, - label = "Cds-(Cdd-Cd)OsH", - group = -""" + index=129, + label="Cds-(Cdd-Cd)OsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdSsH", - group = -""" + index=-1, + label="Cds-CdSsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1180, - label = "Cds-CdsSsH", - group = -""" + index=1180, + label="Cds-CdsSsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.41,5.2,5.98,6.68,7.8,8.62,9.84],'cal/(mol*K)'), - H298 = (8.87,'kcal/mol'), - S298 = (7.87,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.41, 5.2, 5.98, 6.68, 7.8, 8.62, 9.84], "cal/(mol*K)"), + H298=(8.87, "kcal/mol"), + S298=(7.87, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CddSsH", - group = -""" + index=-1, + label="Cds-CddSsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)SsH", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)SsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)SsH", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)SsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 130, - label = "Cds-CdOsOs", - group = -""" + index=130, + label="Cds-CdOsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.34,11.93,14.86,17.95,22.31,24.6,26.92],'J/(mol*K)','+|-',[7.4,7.4,7.4,7.4,7.4,7.4,7.4]), - H298 = (28.3,'kJ/mol','+|-',6.3), - S298 = (-42.69,'J/(mol*K)','+|-',8.63), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.34, 11.93, 14.86, 17.95, 22.31, 24.6, 26.92], + "J/(mol*K)", + "+|-", + [7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4], + ), + H298=(28.3, "kJ/mol", "+|-", 6.3), + S298=(-42.69, "J/(mol*K)", "+|-", 8.63), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3490,302 +3368,286 @@ ) entry( - index = 131, - label = "Cds-CdsOsOs", - group = -""" + index=131, + label="Cds-CdsOsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-CdsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 132, - label = "Cds-CddOsOs", - group = -""" + index=132, + label="Cds-CddOsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 133, - label = "Cds-(Cdd-O2d)OsOs", - group = -""" + index=133, + label="Cds-(Cdd-O2d)OsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.56,15.58,17.69,18.67,18.78,18.4,18.01],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (2.403,'kcal/mol','+|-',0.19), - S298 = (13.42,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.56, 15.58, 17.69, 18.67, 18.78, 18.4, 18.01], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(2.403, "kcal/mol", "+|-", 0.19), + S298=(13.42, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{CCO/O2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/O2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 134, - label = "Cds-(Cdd-Cd)OsOs", - group = -""" + index=134, + label="Cds-(Cdd-Cd)OsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdSsSs", - group = -""" + index=-1, + label="Cds-CdSsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsSsSs", - group = -""" + index=-1, + label="Cds-CdsSsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CddSsSs", - group = -""" + index=-1, + label="Cds-CddSsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)SsSs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)SsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)SsSs", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)SsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 135, - label = "Cds-CdCH", - group = -""" + index=135, + label="Cds-CdCH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-CdsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 136, - label = "Cds-CdsCsH", - group = -""" + index=136, + label="Cds-CdsCsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.16,5.03,5.81,6.5,7.65,8.45,9.62],'cal/(mol*K)','+|-',[0.06,0.06,0.06,0.06,0.06,0.06,0.06]), - H298 = (8.59,'kcal/mol','+|-',0.17), - S298 = (7.97,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.16, 5.03, 5.81, 6.5, 7.65, 8.45, 9.62], + "cal/(mol*K)", + "+|-", + [0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06], + ), + H298=(8.59, "kcal/mol", "+|-", 0.17), + S298=(7.97, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-CsH BENSON""", - longDesc = -""" + shortDesc="""Cd-CsH BENSON""", + longDesc=""" """, ) entry( - index = 137, - label = "Cds-CdsCdsH", - group = -""" + index=137, + label="Cds-CdsCdsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 139, - label = "Cds-Cds(Cds-Cd)H", - group = -""" + index=139, + label="Cds-Cds(Cds-Cd)H", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 140, - label = "Cds-Cds(Cds-Cds)H", - group = -""" + index=140, + label="Cds-Cds(Cds-Cds)H", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 H u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.46,5.79,6.75,7.42,8.35,8.99,9.98],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (6.78,'kcal/mol','+|-',0.2), - S298 = (6.38,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.46, 5.79, 6.75, 7.42, 8.35, 8.99, 9.98], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(6.78, "kcal/mol", "+|-", 0.2), + S298=(6.38, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-CdH BENSON""", - longDesc = -""" + shortDesc="""Cd-CdH BENSON""", + longDesc=""" """, ) entry( - index = 141, - label = "Cds-Cds(Cds-Cdd)H", - group = -""" + index=141, + label="Cds-Cds(Cds-Cdd)H", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 H u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)H", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -3793,19 +3655,17 @@ 5 H u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 143, - label = "Cds-Cds(Cds-Cdd-Cd)H", - group = -""" + index=143, + label="Cds-Cds(Cds-Cdd-Cd)H", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -3813,122 +3673,131 @@ 5 H u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 144, - label = "Cds-CdsCtH", - group = -""" + index=144, + label="Cds-CdsCtH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Ct u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.46,5.79,6.75,7.42,8.35,8.99,9.98],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (6.78,'kcal/mol','+|-',0.2), - S298 = (6.38,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.46, 5.79, 6.75, 7.42, 8.35, 8.99, 9.98], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(6.78, "kcal/mol", "+|-", 0.2), + S298=(6.38, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-CtH BENSON""", - longDesc = -""" + shortDesc="""Cd-CtH BENSON""", + longDesc=""" """, ) entry( - index = 1836, - label = "Cds-CdsH(CtN3t)", - group = -""" + index=1836, + label="Cds-CdsH(CtN3t)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Ct u0 {1,S} {5,T} 3 Cd u0 {1,D} 4 H u0 {1,S} 5 N3t u0 {2,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.3,12,13.4,14.6,16.3,17.5,19.4],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (38.5,'kcal/mol','+|-',1.3), - S298 = (37.6,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.3, 12, 13.4, 14.6, 16.3, 17.5, 19.4], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(38.5, "kcal/mol", "+|-", 1.3), + S298=(37.6, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 145, - label = "Cds-CdsCbH", - group = -""" + index=145, + label="Cds-CdsCbH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.46,5.79,6.75,7.42,8.35,8.99,9.98],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (6.78,'kcal/mol','+|-',0.2), - S298 = (6.38,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.46, 5.79, 6.75, 7.42, 8.35, 8.99, 9.98], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(6.78, "kcal/mol", "+|-", 0.2), + S298=(6.38, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-CbH BENSON""", - longDesc = -""" + shortDesc="""Cd-CbH BENSON""", + longDesc=""" """, ) entry( - index = 146, - label = "Cds-CddCsH", - group = -""" + index=146, + label="Cds-CddCsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 147, - label = "Cds-(Cdd-O2d)CsH", - group = -""" + index=147, + label="Cds-(Cdd-O2d)CsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([43.83,50.1,55.5,60.05,67.09,72.13,79.55],'J/(mol*K)','+|-',[4,4,4,4,4,4,4]), - H298 = (-17.6,'kJ/mol','+|-',3.41), - S298 = (169.15,'J/(mol*K)','+|-',4.67), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [43.83, 50.1, 55.5, 60.05, 67.09, 72.13, 79.55], + "J/(mol*K)", + "+|-", + [4, 4, 4, 4, 4, 4, 4], + ), + H298=(-17.6, "kJ/mol", "+|-", 3.41), + S298=(169.15, "J/(mol*K)", "+|-", 4.67), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3936,66 +3805,59 @@ ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CsH", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 148, - label = "Cds-(Cdd-Cd)CsH", - group = -""" + index=148, + label="Cds-(Cdd-Cd)CsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 149, - label = "Cds-CddCdsH", - group = -""" + index=149, + label="Cds-CddCdsH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 150, - label = "Cds-(Cdd-O2d)(Cds-O2d)H", - group = -""" + index=150, + label="Cds-(Cdd-O2d)(Cds-O2d)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -4003,19 +3865,17 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 151, - label = "Cds-(Cdd-O2d)(Cds-Cd)H", - group = -""" + index=151, + label="Cds-(Cdd-O2d)(Cds-Cd)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4023,15 +3883,19 @@ 5 O2d u0 {2,D} 6 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([43.67,52.95,59.65,64.67,71.81,76.72,83.92],'J/(mol*K)','+|-',[5.66,5.66,5.66,5.66,5.66,5.66,5.66]), - H298 = (-36,'kJ/mol','+|-',4.82), - S298 = (152.19,'J/(mol*K)','+|-',6.6), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [43.67, 52.95, 59.65, 64.67, 71.81, 76.72, 83.92], + "J/(mol*K)", + "+|-", + [5.66, 5.66, 5.66, 5.66, 5.66, 5.66, 5.66], + ), + H298=(-36, "kJ/mol", "+|-", 4.82), + S298=(152.19, "J/(mol*K)", "+|-", 6.6), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4039,10 +3903,9 @@ ) entry( - index = 152, - label = "Cds-(Cdd-O2d)(Cds-Cds)H", - group = -""" + index=152, + label="Cds-(Cdd-O2d)(Cds-Cds)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4050,19 +3913,17 @@ 5 O2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 153, - label = "Cds-(Cdd-O2d)(Cds-Cdd)H", - group = -""" + index=153, + label="Cds-(Cdd-O2d)(Cds-Cdd)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4070,19 +3931,17 @@ 5 O2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 154, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)H", - group = -""" + index=154, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4091,24 +3950,27 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.55,12.41,13.82,14.91,16.51,17.62,19.24],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-4.998,'kcal/mol','+|-',0.2), - S298 = (39.06,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.55, 12.41, 13.82, 14.91, 16.51, 17.62, 19.24], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-4.998, "kcal/mol", "+|-", 0.2), + S298=(39.06, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{CCO/H/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/H/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 155, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)H", - group = -""" + index=155, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4117,19 +3979,17 @@ 6 O2d u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)H", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4137,19 +3997,17 @@ 5 S2d u0 {2,D} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)H", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4157,19 +4015,17 @@ 5 S2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)H", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4177,19 +4033,17 @@ 5 S2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4198,19 +4052,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4219,19 +4071,17 @@ 6 S2d u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 156, - label = "Cds-(Cdd-Cd)(Cds-O2d)H", - group = -""" + index=156, + label="Cds-(Cdd-Cd)(Cds-O2d)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -4239,19 +4089,17 @@ 5 C u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cd-Cd(CO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cd-Cd(CO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 157, - label = "Cds-(Cdd-Cd)(Cds-Cd)H", - group = -""" + index=157, + label="Cds-(Cdd-Cd)(Cds-Cd)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4259,19 +4107,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 158, - label = "Cds-(Cdd-Cd)(Cds-Cds)H", - group = -""" + index=158, + label="Cds-(Cdd-Cd)(Cds-Cds)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4279,19 +4125,17 @@ 5 C u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 159, - label = "Cds-(Cdd-Cd)(Cds-Cdd)H", - group = -""" + index=159, + label="Cds-(Cdd-Cd)(Cds-Cdd)H", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4299,19 +4143,17 @@ 5 C u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 160, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)H", - group = -""" + index=160, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4320,19 +4162,17 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cd-Cd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cd-Cd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4341,19 +4181,17 @@ 6 C u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 161, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=161, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4362,169 +4200,151 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 162, - label = "Cds-CddCtH", - group = -""" + index=162, + label="Cds-CddCtH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Ct u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 163, - label = "Cds-(Cdd-O2d)CtH", - group = -""" + index=163, + label="Cds-(Cdd-O2d)CtH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CtH", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CtH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 164, - label = "Cds-(Cdd-Cd)CtH", - group = -""" + index=164, + label="Cds-(Cdd-Cd)CtH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCtH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 165, - label = "Cds-CddCbH", - group = -""" + index=165, + label="Cds-CddCbH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 166, - label = "Cds-(Cdd-O2d)CbH", - group = -""" + index=166, + label="Cds-(Cdd-O2d)CbH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CbH", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CbH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 167, - label = "Cds-(Cdd-Cd)CbH", - group = -""" + index=167, + label="Cds-(Cdd-Cd)CbH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCbH', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=SH", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=SH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -4532,19 +4352,17 @@ 5 C u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)C=SH", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)C=SH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -4552,58 +4370,53 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1182, - label = "Cds-CdsC=SH", - group = -""" + index=1182, + label="Cds-CdsC=SH", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.41,5.2,5.98,6.68,7.8,8.62,9.84],'cal/(mol*K)'), - H298 = (8.87,'kcal/mol'), - S298 = (7.87,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.41, 5.2, 5.98, 6.68, 7.8, 8.62, 9.84], "cal/(mol*K)"), + H298=(8.87, "kcal/mol"), + S298=(7.87, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1999, - label = "Cd-Cd(CO)H", - group = -""" + index=1999, + label="Cd-Cd(CO)H", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {5,D} 3 H u0 {1,S} 4 Cd u0 {1,D} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([18.08,21.17,24.43,27.41,32.22,35.73,40.97],'J/(mol*K)'), - H298 = (36.4,'kJ/mol'), - S298 = (33.51,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([18.08, 21.17, 24.43, 27.41, 32.22, 35.73, 40.97], "J/(mol*K)"), + H298=(36.4, "kJ/mol"), + S298=(33.51, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4611,10 +4424,9 @@ ) entry( - index = 2000, - label = "Cd-Cd(CCO)H", - group = -""" + index=2000, + label="Cd-Cd(CCO)H", + group=""" 1 * Cd u0 {2,S} {4,S} {5,D} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -4622,15 +4434,14 @@ 5 Cd u0 {1,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([18.08,21.17,24.43,27.41,32.22,35.73,40.97],'J/(mol*K)'), - H298 = (36.4,'kJ/mol'), - S298 = (33.51,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([18.08, 21.17, 24.43, 27.41, 32.22, 35.73, 40.97], "J/(mol*K)"), + H298=(36.4, "kJ/mol"), + S298=(33.51, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4638,132 +4449,129 @@ ) entry( - index = 168, - label = "Cds-CdCO", - group = -""" + index=168, + label="Cds-CdCO", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 C u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-CdsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 170, - label = "Cds-CdsCdsOs", - group = -""" + index=170, + label="Cds-CdsCdsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 171, - label = "Cds-Cds(Cds-O2d)O2s", - group = -""" + index=171, + label="Cds-Cds(Cds-O2d)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CO u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 O2s u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.4,5.37,5.93,6.18,6.5,6.62,6.72],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (5.13,'kcal/mol','+|-',0.2), - S298 = (-14.6,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.4, 5.37, 5.93, 6.18, 6.5, 6.62, 6.72], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(5.13, "kcal/mol", "+|-", 0.2), + S298=(-14.6, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-OCO adj BENSON for RADOM c*coh""", - longDesc = -""" + shortDesc="""Cd-OCO adj BENSON for RADOM c*coh""", + longDesc=""" """, ) entry( - index = 172, - label = "Cds-Cds(Cds-Cd)O2s", - group = -""" + index=172, + label="Cds-Cds(Cds-Cd)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 O2s u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 173, - label = "Cds-Cds(Cds-Cds)O2s", - group = -""" + index=173, + label="Cds-Cds(Cds-Cds)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 O2s u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.4,5.37,5.93,6.18,6.5,6.62,6.72],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (1.5,'kcal/mol','+|-',0.2), - S298 = (-14.4,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.4, 5.37, 5.93, 6.18, 6.5, 6.62, 6.72], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(1.5, "kcal/mol", "+|-", 0.2), + S298=(-14.4, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-OCd jwb need calc""", - longDesc = -""" + shortDesc="""Cd-OCd jwb need calc""", + longDesc=""" """, ) entry( - index = 174, - label = "Cds-Cds(Cds-Cdd)O2s", - group = -""" + index=174, + label="Cds-Cds(Cds-Cdd)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 O2s u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 175, - label = "Cds-Cds(Cds-Cdd-O2d)O2s", - group = -""" + index=175, + label="Cds-Cds(Cds-Cdd-O2d)O2s", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -4771,19 +4579,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 176, - label = "Cds-Cds(Cds-Cdd-Cd)O2s", - group = -""" + index=176, + label="Cds-Cds(Cds-Cdd-Cd)O2s", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -4791,78 +4597,75 @@ 5 O2s u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 177, - label = "Cds-CdsCtOs", - group = -""" + index=177, + label="Cds-CdsCtOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Ct u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 178, - label = "Cds-CdsCbOs", - group = -""" + index=178, + label="Cds-CdsCbOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.4,5.37,5.93,6.18,6.5,6.62,6.72],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (1.5,'kcal/mol','+|-',0.2), - S298 = (-14.4,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.4, 5.37, 5.93, 6.18, 6.5, 6.62, 6.72], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(1.5, "kcal/mol", "+|-", 0.2), + S298=(-14.4, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-OCb jwb need calc""", - longDesc = -""" + shortDesc="""Cd-OCb jwb need calc""", + longDesc=""" """, ) entry( - index = 182, - label = "Cds-CddCdsOs", - group = -""" + index=182, + label="Cds-CddCdsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 183, - label = "Cds-(Cdd-O2d)(Cds-O2d)O2s", - group = -""" + index=183, + label="Cds-(Cdd-O2d)(Cds-O2d)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -4870,19 +4673,17 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 184, - label = "Cds-(Cdd-O2d)(Cds-Cd)O2s", - group = -""" + index=184, + label="Cds-(Cdd-O2d)(Cds-Cd)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4890,19 +4691,17 @@ 5 O2d u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 185, - label = "Cds-(Cdd-O2d)(Cds-Cds)O2s", - group = -""" + index=185, + label="Cds-(Cdd-O2d)(Cds-Cds)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4910,19 +4709,17 @@ 5 O2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 186, - label = "Cds-(Cdd-O2d)(Cds-Cdd)O2s", - group = -""" + index=186, + label="Cds-(Cdd-O2d)(Cds-Cdd)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4930,19 +4727,17 @@ 5 O2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 187, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)O2s", - group = -""" + index=187, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4951,24 +4746,27 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.01,12.97,14.17,14.97,15.8,16.26,16.88],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (1.607,'kcal/mol','+|-',0.2), - S298 = (17.73,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.01, 12.97, 14.17, 14.97, 15.8, 16.26, 16.88], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(1.607, "kcal/mol", "+|-", 0.2), + S298=(17.73, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{CCO/O/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/O/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 188, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)O2s", - group = -""" + index=188, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -4977,19 +4775,17 @@ 6 O2d u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 189, - label = "Cds-(Cdd-Cd)(Cds-Cd)O2s", - group = -""" + index=189, + label="Cds-(Cdd-Cd)(Cds-Cd)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -4997,19 +4793,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 190, - label = "Cds-(Cdd-Cd)(Cds-Cds)O2s", - group = -""" + index=190, + label="Cds-(Cdd-Cd)(Cds-Cds)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5017,19 +4811,17 @@ 5 C u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 191, - label = "Cds-(Cdd-Cd)(Cds-Cdd)O2s", - group = -""" + index=191, + label="Cds-(Cdd-Cd)(Cds-Cdd)O2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5037,19 +4829,17 @@ 5 C u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 192, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)O2s", - group = -""" + index=192, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -5058,19 +4848,17 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-Cds(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 193, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)O2s", - group = -""" + index=193, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -5079,145 +4867,135 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 194, - label = "Cds-CddCtOs", - group = -""" + index=194, + label="Cds-CddCtOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Ct u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 195, - label = "Cds-(Cdd-O2d)CtOs", - group = -""" + index=195, + label="Cds-(Cdd-O2d)CtOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 O2s u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 196, - label = "Cds-(Cdd-Cd)CtOs", - group = -""" + index=196, + label="Cds-(Cdd-Cd)CtOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 O2s u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 197, - label = "Cds-CddCbOs", - group = -""" + index=197, + label="Cds-CddCbOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 198, - label = "Cds-(Cdd-O2d)CbOs", - group = -""" + index=198, + label="Cds-(Cdd-O2d)CbOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 O2s u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 199, - label = "Cds-(Cdd-Cd)CbOs", - group = -""" + index=199, + label="Cds-(Cdd-Cd)CbOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 O2s u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1995, - label = "Cd-CdCsOs", - group = -""" + index=1995, + label="Cd-CdCsOs", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cs u0 {1,S} 3 O2s u0 {1,S} 4 C u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.79,15.86,19.67,22.91,26.55,27.85,28.45],'J/(mol*K)','+|-',[5.1,5.1,5.1,5.1,5.1,5.1,5.1]), - H298 = (33,'kJ/mol','+|-',4.34), - S298 = (-50.89,'J/(mol*K)','+|-',5.94), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.79, 15.86, 19.67, 22.91, 26.55, 27.85, 28.45], + "J/(mol*K)", + "+|-", + [5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1], + ), + H298=(33, "kJ/mol", "+|-", 4.34), + S298=(-50.89, "J/(mol*K)", "+|-", 5.94), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5225,210 +5003,199 @@ ) entry( - index = 169, - label = "Cds-CdsCsOs", - group = -""" + index=169, + label="Cds-CdsCsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.59,4.56,5.04,5.3,5.84,6.07,6.16],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (3.03,'kcal/mol','+|-',0.2), - S298 = (-12.32,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.59, 4.56, 5.04, 5.3, 5.84, 6.07, 6.16], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(3.03, "kcal/mol", "+|-", 0.2), + S298=(-12.32, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cd-OCs BOZZELLI-RADOM vin-oh and del (ccoh-ccohc)""", - longDesc = -""" + shortDesc="""Cd-OCs BOZZELLI-RADOM vin-oh and del (ccoh-ccohc)""", + longDesc=""" """, ) entry( - index = 179, - label = "Cds-CddCsOs", - group = -""" + index=179, + label="Cds-CddCsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cs u0 {1,S} 4 O2s u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 180, - label = "Cds-(Cdd-O2d)CsOs", - group = -""" + index=180, + label="Cds-(Cdd-O2d)CsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.91,12.65,13.59,14.22,15,15.48,16.28],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (3.273,'kcal/mol','+|-',0.2), - S298 = (18.58,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.91, 12.65, 13.59, 14.22, 15, 15.48, 16.28], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(3.273, "kcal/mol", "+|-", 0.2), + S298=(18.58, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{CCO/O/C} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/O/C} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 181, - label = "Cds-(Cdd-Cd)CsOs", - group = -""" + index=181, + label="Cds-(Cdd-Cd)CsOs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdCS", - group = -""" + index=-1, + label="Cds-CdCS", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 C u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1181, - label = "Cds-CdsCsSs", - group = -""" + index=1181, + label="Cds-CdsCsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.23,4.63,4.97,5.29,5.83,6.17,6.53],'cal/(mol*K)'), - H298 = (10.63,'kcal/mol'), - S298 = (-12.76,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.23, 4.63, 4.97, 5.29, 5.83, 6.17, 6.53], "cal/(mol*K)"), + H298=(10.63, "kcal/mol"), + S298=(-12.76, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsCdsSs", - group = -""" + index=-1, + label="Cds-CdsCdsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cd u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cd)S2s", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cd)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cds)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 S2s u0 {1,S} 5 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 S2s u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)S2s", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -5436,19 +5203,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-Cd)S2s", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -5456,129 +5221,115 @@ 5 S2s u0 {1,S} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsCtSs", - group = -""" + index=-1, + label="Cds-CdsCtSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Ct u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsCbSs", - group = -""" + index=-1, + label="Cds-CdsCbSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CddCsSs", - group = -""" + index=-1, + label="Cds-CddCsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CsSs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)CsSs", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)CsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CddCdsSs", - group = -""" + index=-1, + label="Cds-CddCdsSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cd u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)S2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5586,19 +5337,17 @@ 5 S2d u0 {2,D} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)S2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5606,19 +5355,17 @@ 5 S2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)S2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5626,19 +5373,17 @@ 5 S2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -5647,19 +5392,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -5668,19 +5411,17 @@ 6 S2d u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cd)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cd)S2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5688,19 +5429,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cds)S2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5708,19 +5447,17 @@ 5 C u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd)S2s", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -5728,19 +5465,17 @@ 5 C u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -5749,19 +5484,17 @@ 6 C u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -5770,131 +5503,117 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CddCtSs", - group = -""" + index=-1, + label="Cds-CddCtSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Ct u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CtSs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CtSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)CtSs", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)CtSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CddCbSs", - group = -""" + index=-1, + label="Cds-CddCbSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CbSs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CbSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)CbSs", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)CbSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)C=SSs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)C=SSs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -5902,159 +5621,153 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=SSs", - group = -""" + index=-1, + label="Cds-CdsC=SSs", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 200, - label = "Cds-CdCC", - group = -""" + index=200, + label="Cds-CdCC", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = 'Cds-CdsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 201, - label = "Cds-CdsCsCs", - group = -""" + index=201, + label="Cds-CdsCsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.1,4.61,4.99,5.26,5.8,6.08,6.36],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (10.34,'kcal/mol','+|-',0.24), - S298 = (-12.7,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.1, 4.61, 4.99, 5.26, 5.8, 6.08, 6.36], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(10.34, "kcal/mol", "+|-", 0.24), + S298=(-12.7, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CsCs BENSON""", - longDesc = -""" + shortDesc="""Cd-CsCs BENSON""", + longDesc=""" """, ) entry( - index = 202, - label = "Cds-CdsCdsCs", - group = -""" + index=202, + label="Cds-CdsCdsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 204, - label = "Cds-Cds(Cds-Cd)Cs", - group = -""" + index=204, + label="Cds-Cds(Cds-Cd)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cs u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 205, - label = "Cds-Cds(Cds-Cds)Cs", - group = -""" + index=205, + label="Cds-Cds(Cds-Cds)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cs u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.4,5.37,5.93,6.18,6.5,6.62,6.72],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (8.88,'kcal/mol','+|-',0.24), - S298 = (-14.6,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.4, 5.37, 5.93, 6.18, 6.5, 6.62, 6.72], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(8.88, "kcal/mol", "+|-", 0.24), + S298=(-14.6, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CdCs BENSON""", - longDesc = -""" + shortDesc="""Cd-CdCs BENSON""", + longDesc=""" """, ) entry( - index = 206, - label = "Cds-Cds(Cds-Cdd)Cs", - group = -""" + index=206, + label="Cds-Cds(Cds-Cdd)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cs u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)Cs", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6062,19 +5775,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 208, - label = "Cds-Cds(Cds-Cdd-Cd)Cs", - group = -""" + index=208, + label="Cds-Cds(Cds-Cdd-Cd)Cs", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6082,37 +5793,33 @@ 5 Cs u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 209, - label = "Cds-CdsCdsCds", - group = -""" + index=209, + label="Cds-CdsCdsCds", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 210, - label = "Cds-Cds(Cds-O2d)(Cds-O2d)", - group = -""" + index=210, + label="Cds-Cds(Cds-O2d)(Cds-O2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -6120,19 +5827,17 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cds-CdsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 211, - label = "Cds-Cds(Cds-O2d)(Cds-Cd)", - group = -""" + index=211, + label="Cds-Cds(Cds-O2d)(Cds-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {6,D} 3 Cd u0 {1,S} {5,D} @@ -6140,19 +5845,17 @@ 5 C u0 {3,D} 6 O2d u0 {2,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 212, - label = "Cds-Cds(Cds-O2d)(Cds-Cds)", - group = -""" + index=212, + label="Cds-Cds(Cds-O2d)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {6,D} 3 Cd u0 {1,S} {5,D} @@ -6160,24 +5863,27 @@ 5 Cd u0 {3,D} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.7,6.13,6.87,7.1,7.2,7.16,7.06],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (11.6,'kcal/mol','+|-',0.24), - S298 = (-16.5,'cal/(mol*K)','+|-',0.12), - ), - shortDesc = """Cd-COCd from CD/CD2/ jwb est 6/97""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.7, 6.13, 6.87, 7.1, 7.2, 7.16, 7.06], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(11.6, "kcal/mol", "+|-", 0.24), + S298=(-16.5, "cal/(mol*K)", "+|-", 0.12), + ), + shortDesc="""Cd-COCd from CD/CD2/ jwb est 6/97""", + longDesc=""" AG Vandeputte, added 7 kcal/mol to the following value (see phd M Sabbe) """, ) entry( - index = 213, - label = "Cds-Cds(Cds-O2d)(Cds-Cdd)", - group = -""" + index=213, + label="Cds-Cds(Cds-O2d)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {6,D} 3 Cd u0 {1,S} {5,D} @@ -6185,19 +5891,17 @@ 5 Cdd u0 {3,D} 6 O2d u0 {2,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 214, - label = "Cds-Cds(Cds-O2d)(Cds-Cdd-O2d)", - group = -""" + index=214, + label="Cds-Cds(Cds-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {6,D} @@ -6206,19 +5910,17 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cd-CdCs(CCO)', - shortDesc = """""", - longDesc = -""" + thermo="Cd-CdCs(CCO)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 215, - label = "Cds-Cds(Cds-O2d)(Cds-Cdd-Cd)", - group = -""" + index=215, + label="Cds-Cds(Cds-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {6,D} @@ -6227,19 +5929,17 @@ 6 O2d u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 216, - label = "Cds-Cds(Cds-Cd)(Cds-Cd)", - group = -""" + index=216, + label="Cds-Cds(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -6247,19 +5947,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 217, - label = "Cds-Cds(Cds-Cds)(Cds-Cds)", - group = -""" + index=217, + label="Cds-Cds(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -6267,24 +5965,27 @@ 5 Cd u0 {2,D} 6 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.9,2.69,3.5,4.28,5.57,6.21,7.37],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (11.6,'kcal/mol','+|-',0.24), - S298 = (-15.67,'cal/(mol*K)','+|-',0.12), - ), - shortDesc = """Cd-CdCd Hf=3D est S,Cp mopac nov99""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [1.9, 2.69, 3.5, 4.28, 5.57, 6.21, 7.37], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(11.6, "kcal/mol", "+|-", 0.24), + S298=(-15.67, "cal/(mol*K)", "+|-", 0.12), + ), + shortDesc="""Cd-CdCd Hf=3D est S,Cp mopac nov99""", + longDesc=""" AG Vandeputte, added 7 kcal/mol to the following value (see phd M Sabbe) """, ) entry( - index = 218, - label = "Cds-Cds(Cds-Cds)(Cds-Cdd)", - group = -""" + index=218, + label="Cds-Cds(Cds-Cds)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -6292,19 +5993,17 @@ 5 Cd u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 219, - label = "Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)", - group = -""" + index=219, + label="Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -6313,19 +6012,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cd-CdCs(CCO)', - shortDesc = """""", - longDesc = -""" + thermo="Cd-CdCs(CCO)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cds)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cds)(Cds-Cdd-S2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -6334,19 +6031,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 220, - label = "Cds-Cds(Cds-Cds)(Cds-Cdd-Cd)", - group = -""" + index=220, + label="Cds-Cds(Cds-Cds)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -6355,19 +6050,17 @@ 6 Cd u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 221, - label = "Cds-Cds(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=221, + label="Cds-Cds(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -6375,19 +6068,17 @@ 5 Cdd u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 222, - label = "Cds-Cds(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=222, + label="Cds-Cds(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -6397,19 +6088,17 @@ 7 O2d u0 {4,D} 8 O2d u0 {5,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 223, - label = "Cds-Cds(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=223, + label="Cds-Cds(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -6419,19 +6108,17 @@ 7 O2d u0 {4,D} 8 C u0 {5,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -6441,19 +6128,17 @@ 7 S2d u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -6463,19 +6148,17 @@ 7 S2d u0 {4,D} 8 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 224, - label = "Cds-Cds(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=224, + label="Cds-Cds(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -6485,42 +6168,43 @@ 7 C u0 {4,D} 8 C u0 {5,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 225, - label = "Cds-CdsCtCs", - group = -""" + index=225, + label="Cds-CdsCtCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.5,3.88,4.88,4.18,4.86,5.4,6.01],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (8.11,'kcal/mol','+|-',0.24), - S298 = (-13.02,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.5, 3.88, 4.88, 4.18, 4.86, 5.4, 6.01], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(8.11, "kcal/mol", "+|-", 0.24), + S298=(-13.02, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CtCs RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cd-CtCs RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 1858, - label = "Cd-CdCs(CtN3t)", - group = -""" + index=1858, + label="Cd-CdCs(CtN3t)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} {5,S} {6,S} 3 Ct u0 {1,S} {7,T} @@ -6529,123 +6213,121 @@ 6 R u0 {2,S} 7 N3t u0 {3,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([9.2,10.6,11.7,12.5,13.8,14.7,15.9],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (40.2,'kcal/mol','+|-',1.3), - S298 = (17.9,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [9.2, 10.6, 11.7, 12.5, 13.8, 14.7, 15.9], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(40.2, "kcal/mol", "+|-", 1.3), + S298=(17.9, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 226, - label = "Cds-CdsCtCds", - group = -""" + index=226, + label="Cds-CdsCtCds", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 227, - label = "Cds-CdsCt(Cds-O2d)", - group = -""" + index=227, + label="Cds-CdsCt(Cds-O2d)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CO u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Ct u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 228, - label = "Cds-CdsCt(Cds-Cd)", - group = -""" + index=228, + label="Cds-CdsCt(Cds-Cd)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Ct u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 229, - label = "Cds-Cds(Cds-Cds)Ct", - group = -""" + index=229, + label="Cds-Cds(Cds-Cds)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Ct u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.89,5.26,5.98,6.37,6.67,6.78,6.89],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (7.54,'kcal/mol','+|-',0.24), - S298 = (-14.65,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.89, 5.26, 5.98, 6.37, 6.67, 6.78, 6.89], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(7.54, "kcal/mol", "+|-", 0.24), + S298=(-14.65, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CtCd RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cd-CtCd RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 230, - label = "Cds-Cds(Cds-Cdd)Ct", - group = -""" + index=230, + label="Cds-Cds(Cds-Cdd)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Ct u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 231, - label = "Cds-Cds(Cds-Cdd-O2d)Ct", - group = -""" + index=231, + label="Cds-Cds(Cds-Cdd-O2d)Ct", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6653,19 +6335,17 @@ 5 Ct u0 {1,S} 6 O2d u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)Ct", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6673,19 +6353,17 @@ 5 Ct u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 232, - label = "Cds-Cds(Cds-Cdd-Cd)Ct", - group = -""" + index=232, + label="Cds-Cds(Cds-Cdd-Cd)Ct", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6693,42 +6371,43 @@ 5 Ct u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 233, - label = "Cds-CdsCtCt", - group = -""" + index=233, + label="Cds-CdsCtCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.23,4.59,5.41,5.93,6.48,6.74,7.02],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (8.81,'kcal/mol','+|-',0.24), - S298 = (-13.51,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.23, 4.59, 5.41, 5.93, 6.48, 6.74, 7.02], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(8.81, "kcal/mol", "+|-", 0.24), + S298=(-13.51, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CtCt RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cd-CtCt RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 1837, - label = "Cds-Cd(CtN3t)(CtN3t)", - group = -""" + index=1837, + label="Cds-Cd(CtN3t)(CtN3t)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Ct u0 {1,S} {5,T} 3 Ct u0 {1,S} {6,T} @@ -6736,146 +6415,142 @@ 5 N3t u0 {2,T} 6 N3t u0 {3,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (84.1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(84.1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 234, - label = "Cds-CdsCbCs", - group = -""" + index=234, + label="Cds-CdsCbCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.4,5.37,5.93,6.18,6.5,6.62,6.72],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (8.64,'kcal/mol','+|-',0.24), - S298 = (-14.6,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.4, 5.37, 5.93, 6.18, 6.5, 6.62, 6.72], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(8.64, "kcal/mol", "+|-", 0.24), + S298=(-14.6, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CbCs BENSON""", - longDesc = -""" + shortDesc="""Cd-CbCs BENSON""", + longDesc=""" """, ) entry( - index = 235, - label = "Cds-CdsCbCds", - group = -""" + index=235, + label="Cds-CdsCbCds", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-Cds(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 236, - label = "Cds-CdsCb(Cds-O2d)", - group = -""" + index=236, + label="Cds-CdsCb(Cds-O2d)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CO u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cb u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 237, - label = "Cds-Cds(Cds-Cd)Cb", - group = -""" + index=237, + label="Cds-Cds(Cds-Cd)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cb u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 238, - label = "Cds-Cds(Cds-Cds)Cb", - group = -""" + index=238, + label="Cds-Cds(Cds-Cds)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cb u0 {1,S} 5 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.7,6.13,6.87,7.1,7.2,7.16,7.06],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (7.18,'kcal/mol','+|-',0.24), - S298 = (-16.5,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.7, 6.13, 6.87, 7.1, 7.2, 7.16, 7.06], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(7.18, "kcal/mol", "+|-", 0.24), + S298=(-16.5, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CbCd BOZZELLI =3D Cd/Cs/Cb + (Cd/Cs/Cd - Cd/Cs/Cs)""", - longDesc = -""" + shortDesc="""Cd-CbCd BOZZELLI =3D Cd/Cs/Cb + (Cd/Cs/Cd - Cd/Cs/Cs)""", + longDesc=""" """, ) entry( - index = 239, - label = "Cds-Cds(Cds-Cdd)Cb", - group = -""" + index=239, + label="Cds-Cds(Cds-Cdd)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cb u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = 'Cds-Cds(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 240, - label = "Cds-Cds(Cds-Cdd-O2d)Cb", - group = -""" + index=240, + label="Cds-Cds(Cds-Cdd-O2d)Cb", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6883,19 +6558,17 @@ 5 Cb u0 {1,S} 6 O2d u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-Cds(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cds-Cds(Cds-Cdd-S2d)Cb", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6903,19 +6576,17 @@ 5 Cb u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 241, - label = "Cds-Cds(Cds-Cdd-Cd)Cb", - group = -""" + index=241, + label="Cds-Cds(Cds-Cdd-Cd)Cb", + group=""" 1 * Cd u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6923,98 +6594,104 @@ 5 Cb u0 {1,S} 6 C u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 242, - label = "Cds-CdsCbCt", - group = -""" + index=242, + label="Cds-CdsCbCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.22,3.14,4.54,4.11,5.06,5.79,6.71],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (6.7,'kcal/mol','+|-',0.24), - S298 = (-17.04,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2.22, 3.14, 4.54, 4.11, 5.06, 5.79, 6.71], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(6.7, "kcal/mol", "+|-", 0.24), + S298=(-17.04, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CbCt Hf=3D est S,Cp mopac nov99""", - longDesc = -""" + shortDesc="""Cd-CbCt Hf=3D est S,Cp mopac nov99""", + longDesc=""" """, ) entry( - index = 243, - label = "Cds-CdsCbCb", - group = -""" + index=243, + label="Cds-CdsCbCb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.7,6.13,6.87,7.1,7.2,7.16,7.06],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (8,'kcal/mol','+|-',0.24), - S298 = (-16.5,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.7, 6.13, 6.87, 7.1, 7.2, 7.16, 7.06], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(8, "kcal/mol", "+|-", 0.24), + S298=(-16.5, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cd-CbCb BOZZELLI =3D Cd/Cs/Cb + (Cd/Cs/Cb - Cd/Cs/Cs)""", - longDesc = -""" + shortDesc="""Cd-CbCb BOZZELLI =3D Cd/Cs/Cb + (Cd/Cs/Cb - Cd/Cs/Cs)""", + longDesc=""" """, ) entry( - index = 244, - label = "Cds-CddCsCs", - group = -""" + index=244, + label="Cds-CddCsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 245, - label = "Cds-(Cdd-O2d)CsCs", - group = -""" + index=245, + label="Cds-(Cdd-O2d)CsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([42.55,46.42,50,53.24,58.3,61.71,66.01],'J/(mol*K)','+|-',[4.76,4.76,4.76,4.76,4.76,4.76,4.76]), - H298 = (0.5,'kJ/mol','+|-',4.06), - S298 = (84.72,'J/(mol*K)','+|-',5.55), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [42.55, 46.42, 50, 53.24, 58.3, 61.71, 66.01], + "J/(mol*K)", + "+|-", + [4.76, 4.76, 4.76, 4.76, 4.76, 4.76, 4.76], + ), + H298=(0.5, "kJ/mol", "+|-", 4.06), + S298=(84.72, "J/(mol*K)", "+|-", 5.55), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -7022,66 +6699,59 @@ ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CsCs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 246, - label = "Cds-(Cdd-Cd)CsCs", - group = -""" + index=246, + label="Cds-(Cdd-Cd)CsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 247, - label = "Cds-CddCdsCs", - group = -""" + index=247, + label="Cds-CddCdsCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 248, - label = "Cds-(Cdd-O2d)(Cds-O2d)Cs", - group = -""" + index=248, + label="Cds-(Cdd-O2d)(Cds-O2d)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -7089,19 +6759,17 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 249, - label = "Cds-(Cdd-O2d)(Cds-Cd)Cs", - group = -""" + index=249, + label="Cds-(Cdd-O2d)(Cds-Cd)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7109,19 +6777,17 @@ 5 O2d u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 250, - label = "Cds-(Cdd-O2d)(Cds-Cds)Cs", - group = -""" + index=250, + label="Cds-(Cdd-O2d)(Cds-Cds)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7129,19 +6795,17 @@ 5 O2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 251, - label = "Cds-(Cdd-O2d)(Cds-Cdd)Cs", - group = -""" + index=251, + label="Cds-(Cdd-O2d)(Cds-Cdd)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7149,19 +6813,17 @@ 5 O2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 252, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cs", - group = -""" + index=252, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7170,24 +6832,27 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.1,11.24,12.12,12.84,14,14.75,15.72],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-2.07,'kcal/mol','+|-',0.24), - S298 = (19.65,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.1, 11.24, 12.12, 12.84, 14, 14.75, 15.72], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-2.07, "kcal/mol", "+|-", 0.24), + S298=(19.65, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """{CCO/C/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{CCO/C/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 253, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=253, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7196,19 +6861,17 @@ 6 O2d u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)Cs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7216,19 +6879,17 @@ 5 S2d u0 {2,D} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)Cs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7236,19 +6897,17 @@ 5 S2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)Cs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7256,19 +6915,17 @@ 5 S2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7277,19 +6934,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7298,19 +6953,17 @@ 6 S2d u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 254, - label = "Cds-(Cdd-Cd)(Cds-Cd)Cs", - group = -""" + index=254, + label="Cds-(Cdd-Cd)(Cds-Cd)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7318,19 +6971,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 255, - label = "Cds-(Cdd-Cd)(Cds-Cds)Cs", - group = -""" + index=255, + label="Cds-(Cdd-Cd)(Cds-Cds)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7338,19 +6989,17 @@ 5 C u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 256, - label = "Cds-(Cdd-Cd)(Cds-Cdd)Cs", - group = -""" + index=256, + label="Cds-(Cdd-Cd)(Cds-Cdd)Cs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7358,19 +7007,17 @@ 5 C u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 257, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)Cs", - group = -""" + index=257, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7379,19 +7026,17 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cd-CdCs(CCO)', - shortDesc = """""", - longDesc = -""" + thermo="Cd-CdCs(CCO)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7400,19 +7045,17 @@ 6 C u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 258, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=258, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -7421,37 +7064,33 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 259, - label = "Cds-CddCdsCds", - group = -""" + index=259, + label="Cds-CddCdsCds", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 260, - label = "Cds-(Cdd-O2d)(Cds-O2d)(Cds-O2d)", - group = -""" + index=260, + label="Cds-(Cdd-O2d)(Cds-O2d)(Cds-O2d)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -7460,19 +7099,17 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 261, - label = "Cds-(Cdd-O2d)(Cds-Cd)(Cds-O2d)", - group = -""" + index=261, + label="Cds-(Cdd-O2d)(Cds-Cd)(Cds-O2d)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7481,19 +7118,17 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 262, - label = "Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)", - group = -""" + index=262, + label="Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7502,19 +7137,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 263, - label = "Cds-(Cdd-O2d)(Cds-Cdd)(Cds-O2d)", - group = -""" + index=263, + label="Cds-(Cdd-O2d)(Cds-Cdd)(Cds-O2d)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7523,19 +7156,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 264, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-O2d)", - group = -""" + index=264, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-O2d)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7545,19 +7176,17 @@ 7 O2d u0 {4,D} 8 O2d u0 {5,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 265, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-O2d)", - group = -""" + index=265, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-O2d)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7567,19 +7196,17 @@ 7 O2d u0 {4,D} 8 C u0 {5,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 266, - label = "Cds-(Cdd-O2d)(Cds-Cd)(Cds-Cd)", - group = -""" + index=266, + label="Cds-(Cdd-O2d)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7588,19 +7215,17 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 267, - label = "Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", - group = -""" + index=267, + label="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7609,19 +7234,17 @@ 6 Cd u0 {3,D} 7 Cd u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 268, - label = "Cds-(Cdd-O2d)(Cds-Cdd)(Cds-Cds)", - group = -""" + index=268, + label="Cds-(Cdd-O2d)(Cds-Cdd)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7630,19 +7253,17 @@ 6 Cdd u0 {3,D} 7 Cd u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 269, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)", - group = -""" + index=269, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7652,19 +7273,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {5,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 270, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=270, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7674,19 +7293,17 @@ 7 Cd u0 {4,D} 8 C u0 {5,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 271, - label = "Cds-(Cdd-O2d)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=271, + label="Cds-(Cdd-O2d)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7695,19 +7312,17 @@ 6 Cdd u0 {3,D} 7 Cdd u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 272, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=272, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7718,19 +7333,17 @@ 8 O2d u0 {5,D} 9 O2d u0 {6,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 273, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=273, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7741,19 +7354,17 @@ 8 O2d u0 {5,D} 9 C u0 {6,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 274, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=274, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7764,19 +7375,17 @@ 8 C u0 {5,D} 9 C u0 {6,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 275, - label = "Cds-(Cdd-Cd)(Cds-O2d)(Cds-O2d)", - group = -""" + index=275, + label="Cds-(Cdd-Cd)(Cds-O2d)(Cds-O2d)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -7785,19 +7394,17 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 276, - label = "Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cd)", - group = -""" + index=276, + label="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {7,D} @@ -7806,19 +7413,17 @@ 6 C u0 {4,D} 7 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 277, - label = "Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cds)", - group = -""" + index=277, + label="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {7,D} @@ -7827,19 +7432,17 @@ 6 Cd u0 {4,D} 7 O2d u0 {3,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 278, - label = "Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd)", - group = -""" + index=278, + label="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {7,D} @@ -7848,19 +7451,17 @@ 6 Cdd u0 {4,D} 7 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 279, - label = "Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd-O2d)", - group = -""" + index=279, + label="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7870,19 +7471,17 @@ 7 O2d u0 {4,D} 8 O2d u0 {5,D} """, - thermo = 'Cds-Cds(Cds-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 280, - label = "Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd-Cd)", - group = -""" + index=280, + label="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7892,19 +7491,17 @@ 7 O2d u0 {4,D} 8 C u0 {5,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)(Cds-Cd)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7913,19 +7510,17 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)(Cds-Cds)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7934,19 +7529,17 @@ 6 Cd u0 {3,D} 7 Cd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)(Cds-Cds)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -7955,19 +7548,17 @@ 6 Cdd u0 {3,D} 7 Cd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cds)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7977,19 +7568,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -7999,19 +7588,17 @@ 7 Cd u0 {4,D} 8 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8020,19 +7607,17 @@ 6 Cdd u0 {3,D} 7 Cdd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8043,19 +7628,17 @@ 8 S2d u0 {5,D} 9 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8066,19 +7649,17 @@ 8 S2d u0 {5,D} 9 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8089,19 +7670,17 @@ 8 C u0 {5,D} 9 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 281, - label = "Cds-(Cdd-Cd)(Cds-Cd)(Cds-Cd)", - group = -""" + index=281, + label="Cds-(Cdd-Cd)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8110,19 +7689,17 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 282, - label = "Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)", - group = -""" + index=282, + label="Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8131,19 +7708,17 @@ 6 Cd u0 {3,D} 7 Cd u0 {4,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 283, - label = "Cds-(Cdd-Cd)(Cds-Cdd)(Cds-Cds)", - group = -""" + index=283, + label="Cds-(Cdd-Cd)(Cds-Cdd)(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8152,19 +7727,17 @@ 6 Cdd u0 {3,D} 7 Cd u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 284, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cds)", - group = -""" + index=284, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -8174,19 +7747,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {5,D} """, - thermo = 'Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)(Cds-Cds)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -8196,19 +7767,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 285, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=285, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -8218,19 +7787,17 @@ 7 Cd u0 {4,D} 8 C u0 {5,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 286, - label = "Cds-(Cdd-Cd)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=286, + label="Cds-(Cdd-Cd)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8239,19 +7806,17 @@ 6 Cdd u0 {3,D} 7 Cdd u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 287, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=287, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8262,19 +7827,17 @@ 8 O2d u0 {5,D} 9 O2d u0 {6,D} """, - thermo = 'Cds-Cds(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 288, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=288, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8285,19 +7848,17 @@ 8 O2d u0 {5,D} 9 C u0 {6,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8308,19 +7869,17 @@ 8 S2d u0 {5,D} 9 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8331,19 +7890,17 @@ 8 S2d u0 {5,D} 9 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 289, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=289, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8354,112 +7911,100 @@ 8 C u0 {5,D} 9 C u0 {6,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 290, - label = "Cds-CddCtCs", - group = -""" + index=290, + label="Cds-CddCtCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 291, - label = "Cds-(Cdd-O2d)CtCs", - group = -""" + index=291, + label="Cds-(Cdd-O2d)CtCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CtCs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CtCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 292, - label = "Cds-(Cdd-Cd)CtCs", - group = -""" + index=292, + label="Cds-(Cdd-Cd)CtCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 293, - label = "Cds-CddCtCds", - group = -""" + index=293, + label="Cds-CddCtCds", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 294, - label = "Cds-(Cdd-O2d)(Cds-O2d)Ct", - group = -""" + index=294, + label="Cds-(Cdd-O2d)(Cds-O2d)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -8467,19 +8012,17 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 295, - label = "Cds-(Cdd-O2d)(Cds-Cd)Ct", - group = -""" + index=295, + label="Cds-(Cdd-O2d)(Cds-Cd)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8487,19 +8030,17 @@ 5 O2d u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 296, - label = "Cds-(Cdd-O2d)(Cds-Cds)Ct", - group = -""" + index=296, + label="Cds-(Cdd-O2d)(Cds-Cds)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8507,19 +8048,17 @@ 5 O2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 297, - label = "Cds-(Cdd-O2d)(Cds-Cdd)Ct", - group = -""" + index=297, + label="Cds-(Cdd-O2d)(Cds-Cdd)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8527,19 +8066,17 @@ 5 O2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 298, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)Ct", - group = -""" + index=298, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8548,19 +8085,17 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 299, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=299, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8569,19 +8104,17 @@ 6 O2d u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)Ct", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8589,19 +8122,17 @@ 5 S2d u0 {2,D} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)Ct", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8609,19 +8140,17 @@ 5 S2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)Ct", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8629,19 +8158,17 @@ 5 S2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8650,19 +8177,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8671,19 +8196,17 @@ 6 S2d u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 300, - label = "Cds-(Cdd-Cd)(Cds-Cd)Ct", - group = -""" + index=300, + label="Cds-(Cdd-Cd)(Cds-Cd)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8691,19 +8214,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 301, - label = "Cds-(Cdd-Cd)(Cds-Cds)Ct", - group = -""" + index=301, + label="Cds-(Cdd-Cd)(Cds-Cds)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8711,19 +8232,17 @@ 5 C u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 302, - label = "Cds-(Cdd-Cd)(Cds-Cdd)Ct", - group = -""" + index=302, + label="Cds-(Cdd-Cd)(Cds-Cdd)Ct", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -8731,19 +8250,17 @@ 5 C u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 303, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)Ct", - group = -""" + index=303, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8752,19 +8269,17 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-Cds(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8773,19 +8288,17 @@ 6 C u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 304, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=304, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -8794,187 +8307,167 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 305, - label = "Cds-CddCtCt", - group = -""" + index=305, + label="Cds-CddCtCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 306, - label = "Cds-(Cdd-O2d)CtCt", - group = -""" + index=306, + label="Cds-(Cdd-O2d)CtCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CtCt", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CtCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 307, - label = "Cds-(Cdd-Cd)CtCt", - group = -""" + index=307, + label="Cds-(Cdd-Cd)CtCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 308, - label = "Cds-CddCbCs", - group = -""" + index=308, + label="Cds-CddCbCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 309, - label = "Cds-(Cdd-O2d)CbCs", - group = -""" + index=309, + label="Cds-(Cdd-O2d)CbCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CbCs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CbCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 310, - label = "Cds-(Cdd-Cd)CbCs", - group = -""" + index=310, + label="Cds-(Cdd-Cd)CbCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 311, - label = "Cds-CddCbCds", - group = -""" + index=311, + label="Cds-CddCbCds", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 312, - label = "Cds-(Cdd-O2d)(Cds-O2d)Cb", - group = -""" + index=312, + label="Cds-(Cdd-O2d)(Cds-O2d)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CO u0 {1,S} {6,D} @@ -8982,19 +8475,17 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 313, - label = "Cds-(Cdd-O2d)(Cds-Cd)Cb", - group = -""" + index=313, + label="Cds-(Cdd-O2d)(Cds-Cd)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9002,19 +8493,17 @@ 5 O2d u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 314, - label = "Cds-(Cdd-O2d)(Cds-Cds)Cb", - group = -""" + index=314, + label="Cds-(Cdd-O2d)(Cds-Cds)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9022,19 +8511,17 @@ 5 O2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 315, - label = "Cds-(Cdd-O2d)(Cds-Cdd)Cb", - group = -""" + index=315, + label="Cds-(Cdd-O2d)(Cds-Cdd)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9042,19 +8529,17 @@ 5 O2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 316, - label = "Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cb", - group = -""" + index=316, + label="Cds-(Cdd-O2d)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9063,19 +8548,17 @@ 6 O2d u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 317, - label = "Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=317, + label="Cds-(Cdd-O2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9084,19 +8567,17 @@ 6 O2d u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)Cb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9104,19 +8585,17 @@ 5 S2d u0 {2,D} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)Cb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9124,19 +8603,17 @@ 5 S2d u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)Cb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9144,19 +8621,17 @@ 5 S2d u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9165,19 +8640,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9186,19 +8659,17 @@ 6 S2d u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 318, - label = "Cds-(Cdd-Cd)(Cds-Cd)Cb", - group = -""" + index=318, + label="Cds-(Cdd-Cd)(Cds-Cd)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9206,19 +8677,17 @@ 5 C u0 {2,D} 6 C u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 319, - label = "Cds-(Cdd-Cd)(Cds-Cds)Cb", - group = -""" + index=319, + label="Cds-(Cdd-Cd)(Cds-Cds)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9226,19 +8695,17 @@ 5 C u0 {2,D} 6 Cd u0 {3,D} """, - thermo = 'Cds-Cds(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 320, - label = "Cds-(Cdd-Cd)(Cds-Cdd)Cb", - group = -""" + index=320, + label="Cds-(Cdd-Cd)(Cds-Cdd)Cb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9246,19 +8713,17 @@ 5 C u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 321, - label = "Cds-(Cdd-Cd)(Cds-Cdd-O2d)Cb", - group = -""" + index=321, + label="Cds-(Cdd-Cd)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9267,19 +8732,17 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = 'Cds-Cds(Cds-Cdd-O2d)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-Cds(Cds-Cdd-O2d)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)(Cds-Cdd-S2d)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9288,19 +8751,17 @@ 6 C u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 322, - label = "Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=322, + label="Cds-(Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cd u0 {2,S} {3,D} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cdd u0 {1,D} {6,D} @@ -9309,169 +8770,151 @@ 6 C u0 {3,D} 7 C u0 {4,D} """, - thermo = 'Cds-(Cdd-Cd)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 323, - label = "Cds-CddCbCt", - group = -""" + index=323, + label="Cds-CddCbCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 324, - label = "Cds-(Cdd-O2d)CbCt", - group = -""" + index=324, + label="Cds-(Cdd-O2d)CbCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CbCt", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CbCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 325, - label = "Cds-(Cdd-Cd)CbCt", - group = -""" + index=325, + label="Cds-(Cdd-Cd)CbCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 326, - label = "Cds-CddCbCb", - group = -""" + index=326, + label="Cds-CddCbCb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} """, - thermo = 'Cds-(Cdd-Cd)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-Cd)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 327, - label = "Cds-(Cdd-O2d)CbCb", - group = -""" + index=327, + label="Cds-(Cdd-O2d)CbCb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 O2d u0 {2,D} """, - thermo = 'Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cds-(Cdd-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)CbCb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)CbCb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 328, - label = "Cds-(Cdd-Cd)CbCb", - group = -""" + index=328, + label="Cds-(Cdd-Cd)CbCb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 C u0 {2,D} """, - thermo = 'Cds-CdsCbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cds-CdsCbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=SC=S", - group = -""" + index=-1, + label="Cds-CdsC=SC=S", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CS u0 {1,S} {5,D} 3 CS u0 {1,S} {6,D} @@ -9479,19 +8922,17 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=S(Cds-Cd)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=S(Cds-Cd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {7,D} @@ -9500,19 +8941,17 @@ 6 C u0 {4,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=S(Cds-Cds)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=S(Cds-Cds)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {7,D} @@ -9521,19 +8960,17 @@ 6 Cd u0 {4,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=S(Cds-Cdd)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=S(Cds-Cdd)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {7,D} @@ -9542,19 +8979,17 @@ 6 Cdd u0 {4,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=S(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=S(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -9564,19 +8999,17 @@ 7 S2d u0 {4,D} 8 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=S(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=S(Cds-Cdd-S2d)", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -9586,19 +9019,17 @@ 7 S2d u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)C=SCs", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)C=SCs", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -9606,19 +9037,17 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)C=SCt", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)C=SCt", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -9626,19 +9055,17 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)C=SCb", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)C=SCb", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -9646,19 +9073,17 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-Cd)C=SC=S", - group = -""" + index=-1, + label="Cds-(Cdd-Cd)C=SC=S", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -9667,19 +9092,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cd)C=S", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cd)C=S", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9688,19 +9111,17 @@ 6 C u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cds)C=S", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cds)C=S", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9709,19 +9130,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd)C=S", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd)C=S", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 Cd u0 {1,S} {6,D} @@ -9730,19 +9149,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-S2d)C=S", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-S2d)C=S", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -9752,19 +9169,17 @@ 7 S2d u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)(Cds-Cdd-Cd)C=S", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)(Cds-Cdd-Cd)C=S", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cdd u0 {1,D} {6,D} @@ -9774,81 +9189,73 @@ 7 S2d u0 {4,D} 8 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsCbC=S", - group = -""" + index=-1, + label="Cds-CdsCbC=S", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cb u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsCtC=S", - group = -""" + index=-1, + label="Cds-CdsCtC=S", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Ct u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1204, - label = "Cds-CdsC=SCs", - group = -""" + index=1204, + label="Cds-CdsC=SCs", + group=""" 1 * Cd u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 Cd u0 {1,D} 4 Cs u0 {1,S} 5 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.44,4.73,4.94,5.14,5.48,5.75,6.24],'cal/(mol*K)'), - H298 = (10.34,'kcal/mol'), - S298 = (-11.67,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.44, 4.73, 4.94, 5.14, 5.48, 5.75, 6.24], "cal/(mol*K)"), + H298=(10.34, "kcal/mol"), + S298=(-11.67, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=S(Cds-Cd)", - group = -""" + index=-1, + label="Cds-CdsC=S(Cds-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CS u0 {1,S} {6,D} 3 Cd u0 {1,S} {5,D} @@ -9856,19 +9263,17 @@ 5 C u0 {3,D} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=S(Cds-Cds)", - group = -""" + index=-1, + label="Cds-CdsC=S(Cds-Cds)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CS u0 {1,S} {6,D} 3 Cd u0 {1,S} {5,D} @@ -9876,19 +9281,17 @@ 5 Cd u0 {3,D} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=S(Cds-Cdd)", - group = -""" + index=-1, + label="Cds-CdsC=S(Cds-Cdd)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CS u0 {1,S} {6,D} 3 Cd u0 {1,S} {5,D} @@ -9896,19 +9299,17 @@ 5 Cdd u0 {3,D} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=S(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cds-CdsC=S(Cds-Cdd-Cd)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {6,D} @@ -9917,19 +9318,17 @@ 6 S2d u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-CdsC=S(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cds-CdsC=S(Cds-Cdd-S2d)", + group=""" 1 * Cd u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {6,D} @@ -9938,19 +9337,17 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cds-(Cdd-S2d)C=SC=S", - group = -""" + index=-1, + label="Cds-(Cdd-S2d)C=SC=S", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cdd u0 {1,D} {5,D} 3 CS u0 {1,S} {6,D} @@ -9959,34 +9356,36 @@ 6 S2d u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1996, - label = "Cd-CdCs(CO)", - group = -""" + index=1996, + label="Cd-CdCs(CO)", + group=""" 1 * Cd u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {5,D} 3 Cs u0 {1,S} 4 Cd u0 {1,D} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([15.33,16.82,18.64,20.42,23.2,25,27.1],'J/(mol*K)','+|-',[5.66,5.66,5.66,5.66,5.66,5.66,5.66]), - H298 = (39,'kJ/mol','+|-',4.82), - S298 = (-51.26,'J/(mol*K)','+|-',6.6), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [15.33, 16.82, 18.64, 20.42, 23.2, 25, 27.1], + "J/(mol*K)", + "+|-", + [5.66, 5.66, 5.66, 5.66, 5.66, 5.66, 5.66], + ), + H298=(39, "kJ/mol", "+|-", 4.82), + S298=(-51.26, "J/(mol*K)", "+|-", 6.6), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -9994,10 +9393,9 @@ ) entry( - index = 2011, - label = "Cd-CdCs(CCO)", - group = -""" + index=2011, + label="Cd-CdCs(CCO)", + group=""" 1 * Cd u0 {2,S} {4,S} {5,D} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10005,15 +9403,19 @@ 5 Cd u0 {1,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([22.68,24.05,24.63,25.07,25.64,25.84,25.7],'J/(mol*K)','+|-',[8,8,8,8,8,8,8]), - H298 = (41.6,'kJ/mol','+|-',6.82), - S298 = (-48.01,'J/(mol*K)','+|-',9.33), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [22.68, 24.05, 24.63, 25.07, 25.64, 25.84, 25.7], + "J/(mol*K)", + "+|-", + [8, 8, 8, 8, 8, 8, 8], + ), + H298=(41.6, "kJ/mol", "+|-", 6.82), + S298=(-48.01, "J/(mol*K)", "+|-", 9.33), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -10021,33 +9423,30 @@ ) entry( - index = 1923, - label = "Cds-CNH", - group = -""" + index=1923, + label="Cds-CNH", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 N u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1860, - label = "Cd-CdHN3s", - group = -""" + index=1860, + label="Cd-CdHN3s", + group=""" 1 * Cd u0 {2,D} {5,S} {6,S} 2 Cd u0 {1,D} {3,S} {4,S} 3 R u0 {2,S} @@ -10055,24 +9454,27 @@ 5 H u0 {1,S} 6 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.7,6,7,7.7,8.8,9.5,10.6],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (2.2,'kcal/mol','+|-',1.4), - S298 = (7.1,'cal/(mol*K)','+|-',1.3), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.7, 6, 7, 7.7, 8.8, 9.5, 10.6], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(2.2, "kcal/mol", "+|-", 1.4), + S298=(7.1, "cal/(mol*K)", "+|-", 1.3), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1838, - label = "Cd-CdH(N5dOdOs)", - group = -""" + index=1838, + label="Cd-CdH(N5dOdOs)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} {5,S} {6,S} 3 N5dc u0 {1,S} {7,D} {8,S} @@ -10082,47 +9484,48 @@ 7 O2d u0 {3,D} 8 O2s u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.7,15.4,17.6,19.3,21.7,23.1,25],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (2,'kcal/mol','+|-',1.3), - S298 = (44.3,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.7, 15.4, 17.6, 19.3, 21.7, 23.1, 25], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(2, "kcal/mol", "+|-", 1.3), + S298=(44.3, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1924, - label = "Cds-CCN", - group = -""" + index=1924, + label="Cds-CCN", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} 3 C u0 {1,S} 4 N u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1859, - label = "Cd-CdCsN3s", - group = -""" + index=1859, + label="Cd-CdCsN3s", + group=""" 1 * Cd u0 {2,D} {5,S} {6,S} 2 Cd u0 {1,D} {3,S} {4,S} 3 R u0 {2,S} @@ -10130,24 +9533,27 @@ 5 Cs u0 {1,S} 6 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.8,5,5.9,6.4,6.9,7.1,7.2],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (3.5,'kcal/mol','+|-',1.4), - S298 = (-14.1,'cal/(mol*K)','+|-',1.3), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.8, 5, 5.9, 6.4, 6.9, 7.1, 7.2], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(3.5, "kcal/mol", "+|-", 1.4), + S298=(-14.1, "cal/(mol*K)", "+|-", 1.3), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1861, - label = "Cd-CdCs(N5dOdOs)", - group = -""" + index=1861, + label="Cd-CdCs(N5dOdOs)", + group=""" 1 * Cd u0 {2,D} {3,S} {4,S} 2 Cd u0 {1,D} {5,S} {6,S} 3 N5dc u0 {1,S} {7,D} {8,S} @@ -10157,144 +9563,135 @@ 7 O2d u0 {3,D} 8 O2s u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.1,14.3,16.1,17.5,19.3,20.3,21.4],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (2.3,'kcal/mol','+|-',1.3), - S298 = (24,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.1, 14.3, 16.1, 17.5, 19.3, 20.3, 21.4], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(2.3, "kcal/mol", "+|-", 1.3), + S298=(24, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-SsSs", - group = -""" + index=-1, + label="C=S-SsSs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CH", - group = -""" + index=-1, + label="C=S-CH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1184, - label = "C=S-CsH", - group = -""" + index=1184, + label="C=S-CsH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.11,9.03,9.88,10.61,11.74,12.55,13.82],'cal/(mol*K)'), - H298 = (27.32,'kcal/mol'), - S298 = (37.56,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.11, 9.03, 9.88, 10.61, 11.74, 12.55, 13.82], "cal/(mol*K)"), + H298=(27.32, "kcal/mol"), + S298=(37.56, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1185, - label = "C=S-CdsH", - group = -""" + index=1185, + label="C=S-CdsH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cd u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.59,9.38,10.81,11.85,13.18,13.95,14.81],'cal/(mol*K)'), - H298 = (24.05,'kcal/mol'), - S298 = (34.35,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.59, 9.38, 10.81, 11.85, 13.18, 13.95, 14.81], "cal/(mol*K)"), + H298=(24.05, "kcal/mol"), + S298=(34.35, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cd)H", - group = -""" + index=-1, + label="C=S-(Cds-Cd)H", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 H u0 {1,S} 5 [Cd,Cdd,CO] u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd)H", - group = -""" + index=-1, + label="C=S-(Cds-Cdd)H", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 H u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)H", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10302,19 +9699,17 @@ 5 H u0 {1,S} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-S2d)H", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10322,201 +9717,181 @@ 5 H u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cds)H", - group = -""" + index=-1, + label="C=S-(Cds-Cds)H", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 H u0 {1,S} 5 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1186, - label = "C=S-CtH", - group = -""" + index=1186, + label="C=S-CtH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Ct u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.46,8.91,10.01,10.83,11.98,12.74,13.87],'cal/(mol*K)'), - H298 = (30.83,'kcal/mol'), - S298 = (37.16,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.46, 8.91, 10.01, 10.83, 11.98, 12.74, 13.87], "cal/(mol*K)"), + H298=(30.83, "kcal/mol"), + S298=(37.16, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1187, - label = "C=S-CbH", - group = -""" + index=1187, + label="C=S-CbH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cb u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.45,9.84,10.94,11.78,12.97,13.76,14.77],'cal/(mol*K)'), - H298 = (24.71,'kcal/mol'), - S298 = (34.15,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.45, 9.84, 10.94, 11.78, 12.97, 13.76, 14.77], "cal/(mol*K)"), + H298=(24.71, "kcal/mol"), + S298=(34.15, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1188, - label = "C=S-C=SH", - group = -""" + index=1188, + label="C=S-C=SH", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.79,9.18,10.41,11.42,12.82,13.63,14.54],'cal/(mol*K)'), - H298 = (26.96,'kcal/mol'), - S298 = (35.65,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.79, 9.18, 10.41, 11.42, 12.82, 13.63, 14.54], "cal/(mol*K)"), + H298=(26.96, "kcal/mol"), + S298=(35.65, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CC", - group = -""" + index=-1, + label="C=S-CC", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CbCds", - group = -""" + index=-1, + label="C=S-CbCds", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cb u0 {1,S} 4 Cd u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Cb(Cds-Cd)", - group = -""" + index=-1, + label="C=S-Cb(Cds-Cd)", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cb u0 {1,S} 5 [Cd,Cdd,CO] u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Cb(Cds-Cds)", - group = -""" + index=-1, + label="C=S-Cb(Cds-Cds)", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cb u0 {1,S} 5 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Cb(Cds-Cdd)", - group = -""" + index=-1, + label="C=S-Cb(Cds-Cdd)", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cb u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Cb(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="C=S-Cb(Cds-Cdd-S2d)", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10524,19 +9899,17 @@ 5 Cb u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Cb(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="C=S-Cb(Cds-Cdd-Cd)", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10544,73 +9917,65 @@ 5 Cb u0 {1,S} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CtCt", - group = -""" + index=-1, + label="C=S-CtCt", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Ct u0 {1,S} 4 Ct u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CbCb", - group = -""" + index=-1, + label="C=S-CbCb", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cb u0 {1,S} 4 Cb u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CdsCds", - group = -""" + index=-1, + label="C=S-CdsCds", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cd u0 {1,S} 4 Cd u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cd)(Cds-Cd)", - group = -""" + index=-1, + label="C=S-(Cds-Cd)(Cds-Cd)", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -10618,19 +9983,17 @@ 5 [Cd,Cdd,CO] u0 {2,D} 6 [Cd,Cdd,CO] u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd)(Cds-Cds)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd)(Cds-Cds)", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -10638,19 +10001,17 @@ 5 Cdd u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * CS u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -10659,19 +10020,17 @@ 6 Cd u0 {3,D} 7 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-S2d)(Cds-Cds)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-S2d)(Cds-Cds)", + group=""" 1 * CS u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -10680,19 +10039,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cds)(Cds-Cds)", - group = -""" + index=-1, + label="C=S-(Cds-Cds)(Cds-Cds)", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -10700,19 +10057,17 @@ 5 Cd u0 {2,D} 6 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -10720,19 +10075,17 @@ 5 Cdd u0 {2,D} 6 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * CS u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -10742,19 +10095,17 @@ 7 C u0 {4,D} 8 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * CS u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -10764,19 +10115,17 @@ 7 S2d u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)(Cds-Cdd-S2d)", + group=""" 1 * CS u0 {2,S} {3,S} {6,D} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -10786,94 +10135,84 @@ 7 C u0 {4,D} 8 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CtCds", - group = -""" + index=-1, + label="C=S-CtCds", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Ct u0 {1,S} 4 Cd u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Ct(Cds-Cd)", - group = -""" + index=-1, + label="C=S-Ct(Cds-Cd)", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Ct u0 {1,S} 5 [Cd,Cdd,CO] u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Ct(Cds-Cds)", - group = -""" + index=-1, + label="C=S-Ct(Cds-Cds)", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Ct u0 {1,S} 5 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Ct(Cds-Cdd)", - group = -""" + index=-1, + label="C=S-Ct(Cds-Cdd)", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Ct u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Ct(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="C=S-Ct(Cds-Cdd-Cd)", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10881,19 +10220,17 @@ 5 Ct u0 {1,S} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-Ct(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="C=S-Ct(Cds-Cdd-S2d)", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -10901,140 +10238,126 @@ 5 Ct u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CbCt", - group = -""" + index=-1, + label="C=S-CbCt", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cb u0 {1,S} 4 Ct u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1190, - label = "C=S-CsCs", - group = -""" + index=1190, + label="C=S-CsCs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.7,7.44,8.14,8.72,9.52,9.98,10.51],'cal/(mol*K)'), - H298 = (27.2,'kcal/mol'), - S298 = (18,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.7, 7.44, 8.14, 8.72, 9.52, 9.98, 10.51], "cal/(mol*K)"), + H298=(27.2, "kcal/mol"), + S298=(18, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1191, - label = "C=S-CdsCs", - group = -""" + index=1191, + label="C=S-CdsCs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cd u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.79,9.21,10.13,10.71,11.25,11.42,11.35],'cal/(mol*K)'), - H298 = (26.19,'kcal/mol'), - S298 = (13.44,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.79, 9.21, 10.13, 10.71, 11.25, 11.42, 11.35], "cal/(mol*K)"), + H298=(26.19, "kcal/mol"), + S298=(13.44, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cd)Cs", - group = -""" + index=-1, + label="C=S-(Cds-Cd)Cs", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cs u0 {1,S} 5 [Cd,Cdd,CO] u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cds)Cs", - group = -""" + index=-1, + label="C=S-(Cds-Cds)Cs", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cs u0 {1,S} 5 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd)Cs", - group = -""" + index=-1, + label="C=S-(Cds-Cdd)Cs", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cs u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-S2d)Cs", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -11042,19 +10365,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)Cs", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -11062,127 +10383,115 @@ 5 Cs u0 {1,S} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1192, - label = "C=S-CtCs", - group = -""" + index=1192, + label="C=S-CtCs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Ct u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.87,7.88,8.6,9.13,9.8,10.17,10.59],'cal/(mol*K)'), - H298 = (30.12,'kcal/mol'), - S298 = (17.46,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.87, 7.88, 8.6, 9.13, 9.8, 10.17, 10.59], "cal/(mol*K)"), + H298=(30.12, "kcal/mol"), + S298=(17.46, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1193, - label = "C=S-CbCs", - group = -""" + index=1193, + label="C=S-CbCs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cb u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.02,9.02,9.75,10.23,10.75,10.96,11.04],'cal/(mol*K)'), - H298 = (26.6,'kcal/mol'), - S298 = (14.55,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.02, 9.02, 9.75, 10.23, 10.75, 10.96, 11.04], "cal/(mol*K)"), + H298=(26.6, "kcal/mol"), + S298=(14.55, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1194, - label = "C=S-C=SCs", - group = -""" + index=1194, + label="C=S-C=SCs", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cs u0 {1,S} 5 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.93,7.93,8.76,9.37,10.11,10.45,10.71],'cal/(mol*K)'), - H298 = (27.48,'kcal/mol'), - S298 = (16.58,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.93, 7.93, 8.76, 9.37, 10.11, 10.45, 10.71], "cal/(mol*K)"), + H298=(27.48, "kcal/mol"), + S298=(16.58, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CtC=S", - group = -""" + index=-1, + label="C=S-CtC=S", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Ct u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cd)C=S", - group = -""" + index=-1, + label="C=S-(Cds-Cd)C=S", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cd u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd)C=S", - group = -""" + index=-1, + label="C=S-(Cds-Cdd)C=S", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {6,D} @@ -11190,19 +10499,17 @@ 5 Cdd u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)C=S", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)C=S", + group=""" 1 * CS u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -11211,19 +10518,17 @@ 6 C u0 {4,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-S2d)C=S", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-S2d)C=S", + group=""" 1 * CS u0 {2,S} {3,S} {5,D} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -11232,19 +10537,17 @@ 6 S2d u0 {4,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cds)C=S", - group = -""" + index=-1, + label="C=S-(Cds-Cds)C=S", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {6,D} @@ -11252,19 +10555,17 @@ 5 Cd u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-C=SC=S", - group = -""" + index=-1, + label="C=S-C=SC=S", + group=""" 1 * CS u0 {2,S} {3,S} {4,D} 2 CS u0 {1,S} {5,D} 3 CS u0 {1,S} {6,D} @@ -11272,195 +10573,175 @@ 5 S2d u0 {2,D} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CbC=S", - group = -""" + index=-1, + label="C=S-CbC=S", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 Cb u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1183, - label = "C=S-HH", - group = -""" + index=1183, + label="C=S-HH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([9.08,10.34,11.51,12.5,14.07,15.25,17.14],'cal/(mol*K)'), - H298 = (27.71,'kcal/mol'), - S298 = (56.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([9.08, 10.34, 11.51, 12.5, 14.07, 15.25, 17.14], "cal/(mol*K)"), + H298=(27.71, "kcal/mol"), + S298=(56.51, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1189, - label = "C=S-SsH", - group = -""" + index=1189, + label="C=S-SsH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.38,9.78,10.83,11.66,12.86,13.71,14.87],'cal/(mol*K)'), - H298 = (21.55,'kcal/mol'), - S298 = (34.41,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.38, 9.78, 10.83, 11.66, 12.86, 13.71, 14.87], "cal/(mol*K)"), + H298=(21.55, "kcal/mol"), + S298=(34.41, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1205, - label = "C=S-CSs", - group = -""" + index=1205, + label="C=S-CSs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 C u0 {1,S} 4 S2s u0 {1,S} """, - thermo = 'C=S-CsSs', - shortDesc = """""", - longDesc = -""" + thermo="C=S-CsSs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CbSs", - group = -""" + index=-1, + label="C=S-CbSs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cb u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CdsSs", - group = -""" + index=-1, + label="C=S-CdsSs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cd u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cd)S2s", - group = -""" + index=-1, + label="C=S-(Cds-Cd)S2s", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 S2s u0 {1,S} 5 [Cd,Cdd,CO] u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cds)S2s", - group = -""" + index=-1, + label="C=S-(Cds-Cds)S2s", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 S2s u0 {1,S} 5 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd)S2s", - group = -""" + index=-1, + label="C=S-(Cds-Cdd)S2s", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 S2s u0 {1,S} 5 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-Cd)S2s", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -11468,19 +10749,17 @@ 5 S2s u0 {1,S} 6 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="C=S-(Cds-Cdd-S2d)S2s", + group=""" 1 * CS u0 {2,S} {4,D} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -11488,235 +10767,213 @@ 5 S2s u0 {1,S} 6 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-CtSs", - group = -""" + index=-1, + label="C=S-CtSs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Ct u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1206, - label = "C=S-CsSs", - group = -""" + index=1206, + label="C=S-CsSs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.4,8.38,9.16,9.8,10.72,11.25,11.66],'cal/(mol*K)'), - H298 = (21.35,'kcal/mol'), - S298 = (14.52,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.4, 8.38, 9.16, 9.8, 10.72, 11.25, 11.66], "cal/(mol*K)"), + H298=(21.35, "kcal/mol"), + S298=(14.52, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "C=S-C=SSs", - group = -""" + index=-1, + label="C=S-C=SSs", + group=""" 1 * CS u0 {2,S} {3,D} {4,S} 2 CS u0 {1,S} {5,D} 3 S2d u0 {1,D} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1457, - label = "CS-OsH", - group = -""" + index=1457, + label="CS-OsH", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 O2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.48,5.3,6.09,6.82,8.05,8.99,10.37],'cal/(mol*K)'), - H298 = (2.85,'kcal/mol'), - S298 = (30.14,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.48, 5.3, 6.09, 6.82, 8.05, 8.99, 10.37], "cal/(mol*K)"), + H298=(2.85, "kcal/mol"), + S298=(30.14, "cal/(mol*K)"), ), - shortDesc = """CAC 1d-HR calc""", - longDesc = -""" + shortDesc="""CAC 1d-HR calc""", + longDesc=""" """, ) entry( - index = 1458, - label = "CS-CsOs", - group = -""" + index=1458, + label="CS-CsOs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 O2s u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.9,4.17,4.6,5.1,6.08,6.76,7.44],'cal/(mol*K)'), - H298 = (-1.32,'kcal/mol'), - S298 = (8.62,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.9, 4.17, 4.6, 5.1, 6.08, 6.76, 7.44], "cal/(mol*K)"), + H298=(-1.32, "kcal/mol"), + S298=(8.62, "cal/(mol*K)"), ), - shortDesc = """CAC 1d-HR calc""", - longDesc = -""" + shortDesc="""CAC 1d-HR calc""", + longDesc=""" """, ) entry( - index = 1459, - label = "CS-OsOs", - group = -""" + index=1459, + label="CS-OsOs", + group=""" 1 * CS u0 {2,D} {3,S} {4,S} 2 S2d u0 {1,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.08,3.59,3.9,4.03,3.99,3.75,3.23],'cal/(mol*K)'), - H298 = (-22.72,'kcal/mol'), - S298 = (2.67,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.08, 3.59, 3.9, 4.03, 3.99, 3.75, 3.23], "cal/(mol*K)"), + H298=(-22.72, "kcal/mol"), + S298=(2.67, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1Dhr calc""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1Dhr calc""", + longDesc=""" """, ) entry( - index = 329, - label = "Cs", - group = -""" + index=329, + label="Cs", + group=""" 1 * Cs u0 """, - thermo = 'Cs-CsCsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1919, - label = "Cs-NHHH", - group = -""" + index=1919, + label="Cs-NHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1800, - label = "Cs-N3sHHH", - group = -""" + index=1800, + label="Cs-N3sHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3s u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.19,7.84,9.4,10.79,13.02,14.77,17.58],'cal/(mol*K)'), - H298 = (-10.08,'kcal/mol'), - S298 = (30.41,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.19, 7.84, 9.4, 10.79, 13.02, 14.77, 17.58], "cal/(mol*K)"), + H298=(-10.08, "kcal/mol"), + S298=(30.41, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1920, - label = "Cs-N3dHHH", - group = -""" + index=1920, + label="Cs-N3dHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1870, - label = "Cs-(N3dCd)HHH", - group = -""" + index=1870, + label="Cs-(N3dCd)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 H u0 {1,S} @@ -11724,24 +10981,27 @@ 5 H u0 {1,S} 6 [Cd,Cdd] u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6,7.7,9.3,10.7,13.1,14.8,17.7],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (-5.7,'kcal/mol','+|-',1.3), - S298 = (30.4,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6, 7.7, 9.3, 10.7, 13.1, 14.8, 17.7], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(-5.7, "kcal/mol", "+|-", 1.3), + S298=(30.4, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1801, - label = "Cs-(N3dN3d)HHH", - group = -""" + index=1801, + label="Cs-(N3dN3d)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 H u0 {1,S} @@ -11749,96 +11009,93 @@ 5 H u0 {1,S} 6 N3d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6,7.8,9.4,10.8,13.1,14.8,17.6],'cal/(mol*K)','+|-',[0.6,0.6,0.6,0.6,0.6,0.6,0.6]), - H298 = (-9,'kcal/mol','+|-',0.8), - S298 = (30.2,'cal/(mol*K)','+|-',0.8), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6, 7.8, 9.4, 10.8, 13.1, 14.8, 17.6], + "cal/(mol*K)", + "+|-", + [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6], + ), + H298=(-9, "kcal/mol", "+|-", 0.8), + S298=(30.2, "cal/(mol*K)", "+|-", 0.8), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1921, - label = "Cs-NCsHH", - group = -""" + index=1921, + label="Cs-NCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1802, - label = "Cs-N3sCsHH", - group = -""" + index=1802, + label="Cs-N3sCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3s u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.25,6.9,8.28,9.39,11.09,12.34,14.8],'cal/(mol*K)'), - H298 = (-6.6,'kcal/mol'), - S298 = (9.8,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.25, 6.9, 8.28, 9.39, 11.09, 12.34, 14.8], "cal/(mol*K)"), + H298=(-6.6, "kcal/mol"), + S298=(9.8, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1925, - label = "Cs-N3dCHH", - group = -""" + index=1925, + label="Cs-N3dCHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1805, - label = "Cs-(N3dN3d)CsHH", - group = -""" + index=1805, + label="Cs-(N3dN3d)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -11846,24 +11103,27 @@ 5 H u0 {1,S} 6 N3d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.3,6.9,8.3,9.4,11.1,12.3,14.2],'cal/(mol*K)','+|-',[0.6,0.6,0.6,0.6,0.6,0.6,0.6]), - H298 = (-5.5,'kcal/mol','+|-',0.8), - S298 = (9.4,'cal/(mol*K)','+|-',0.8), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.3, 6.9, 8.3, 9.4, 11.1, 12.3, 14.2], + "cal/(mol*K)", + "+|-", + [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6], + ), + H298=(-5.5, "kcal/mol", "+|-", 0.8), + S298=(9.4, "cal/(mol*K)", "+|-", 0.8), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1869, - label = "Cs-(N3dOd)CHH", - group = -""" + index=1869, + label="Cs-(N3dOd)CHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -11871,24 +11131,27 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.8,13.6,15.2,16.7,18.9,20.5,23],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (21.4,'kcal/mol','+|-',1.3), - S298 = (44.3,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.8, 13.6, 15.2, 16.7, 18.9, 20.5, 23], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(21.4, "kcal/mol", "+|-", 1.3), + S298=(44.3, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1871, - label = "Cs-(N3dCd)CsHH", - group = -""" + index=1871, + label="Cs-(N3dCd)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -11896,48 +11159,49 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.3,7.2,8.7,9.8,11.6,12.8,14.7],'cal/(mol*K)','+|-',[1.2,1.2,1.2,1.2,1.2,1.2,1.2]), - H298 = (-2.9,'kcal/mol','+|-',1.7), - S298 = (8.6,'cal/(mol*K)','+|-',1.6), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.3, 7.2, 8.7, 9.8, 11.6, 12.8, 14.7], + "cal/(mol*K)", + "+|-", + [1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2], + ), + H298=(-2.9, "kcal/mol", "+|-", 1.7), + S298=(8.6, "cal/(mol*K)", "+|-", 1.6), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1926, - label = "Cs-N5dCsHH", - group = -""" + index=1926, + label="Cs-N5dCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1841, - label = "Cs-(N5dOdOs)CsHH", - group = -""" + index=1841, + label="Cs-(N5dOdOs)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} {6,D} {7,S} 3 Cs u0 {1,S} @@ -11946,96 +11210,93 @@ 6 O2d u0 {2,D} 7 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.9,15.8,18.3,20.3,23.3,25.4,28.3],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (-14.8,'kcal/mol','+|-',1.3), - S298 = (48.9,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.9, 15.8, 18.3, 20.3, 23.3, 25.4, 28.3], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(-14.8, "kcal/mol", "+|-", 1.3), + S298=(48.9, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1927, - label = "Cs-NCsCsH", - group = -""" + index=1927, + label="Cs-NCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1803, - label = "Cs-N3sCsCsH", - group = -""" + index=1803, + label="Cs-N3sCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3s u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.67,6.32,7.64,8.39,9.56,10.23,11.905],'cal/(mol*K)'), - H298 = (-5.2,'kcal/mol'), - S298 = (-11.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.67, 6.32, 7.64, 8.39, 9.56, 10.23, 11.905], "cal/(mol*K)"), + H298=(-5.2, "kcal/mol"), + S298=(-11.7, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1928, - label = "Cs-N3dCsCsH", - group = -""" + index=1928, + label="Cs-N3dCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1868, - label = "Cs-(N3dOd)CsCsH", - group = -""" + index=1868, + label="Cs-(N3dOd)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -12043,48 +11304,49 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.2,12.7,14,15.1,16.8,17.9,19.5],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (23.4,'kcal/mol','+|-',1.3), - S298 = (23.1,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.2, 12.7, 14, 15.1, 16.8, 17.9, 19.5], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(23.4, "kcal/mol", "+|-", 1.3), + S298=(23.1, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1929, - label = "Cs-N5dCsCsH", - group = -""" + index=1929, + label="Cs-N5dCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1842, - label = "Cs-(N5dOdOs)CsCsH", - group = -""" + index=1842, + label="Cs-(N5dOdOs)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} {6,D} {7,S} 3 Cs u0 {1,S} @@ -12093,72 +11355,71 @@ 6 O2d u0 {2,D} 7 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([13.6,16.1,18.1,19.6,21.8,23.2,25.1],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (-13.9,'kcal/mol','+|-',1.3), - S298 = (27.5,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [13.6, 16.1, 18.1, 19.6, 21.8, 23.2, 25.1], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(-13.9, "kcal/mol", "+|-", 1.3), + S298=(27.5, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1930, - label = "Cs-NCsCsCs", - group = -""" + index=1930, + label="Cs-NCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1804, - label = "Cs-N3sCsCsCs", - group = -""" + index=1804, + label="Cs-N3sCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3s u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.35,6.16,7.31,7.91,8.49,8.5,8.525],'cal/(mol*K)'), - H298 = (-3.2,'kcal/mol'), - S298 = (-34.1,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.35, 6.16, 7.31, 7.91, 8.49, 8.5, 8.525], "cal/(mol*K)"), + H298=(-3.2, "kcal/mol"), + S298=(-34.1, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1806, - label = "Cs-(N3dN3d)CsCsH", - group = -""" + index=1806, + label="Cs-(N3dN3d)CsCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 N3d u0 {1,S} {3,D} 3 N3d u0 {2,D} @@ -12166,24 +11427,22 @@ 5 Cs u0 {1,S} 6 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-3.3,'kcal/mol'), - S298 = (-11.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-3.3, "kcal/mol"), + S298=(-11.7, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1807, - label = "Cs-(N3dN3d)CsCsCs", - group = -""" + index=1807, + label="Cs-(N3dN3d)CsCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 N3d u0 {1,S} {3,D} 3 N3d u0 {2,D} @@ -12191,48 +11450,44 @@ 5 Cs u0 {1,S} 6 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-1.9,'kcal/mol'), - S298 = (-34.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-1.9, "kcal/mol"), + S298=(-34.7, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1931, - label = "Cs-N3dCsCsCs", - group = -""" + index=1931, + label="Cs-N3dCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1867, - label = "Cs-(N3dOd)CsCsCs", - group = -""" + index=1867, + label="Cs-(N3dOd)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N3d u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -12240,48 +11495,49 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.2,13.3,14,14.5,15.3,15.7,16.2],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (24.1,'kcal/mol','+|-',1.3), - S298 = (1.2,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.2, 13.3, 14, 14.5, 15.3, 15.7, 16.2], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(24.1, "kcal/mol", "+|-", 1.3), + S298=(1.2, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1932, - label = "Cs-N5dCsCsCs", - group = -""" + index=1932, + label="Cs-N5dCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1843, - label = "Cs-(N5dOdOs)CsCsCs", - group = -""" + index=1843, + label="Cs-(N5dOdOs)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} {6,D} {7,S} 3 Cs u0 {1,S} @@ -12290,96 +11546,93 @@ 6 O2d u0 {2,D} 7 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([13.5,16,17.8,18.9,20.3,21.1,21.9],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (-12.7,'kcal/mol','+|-',1.3), - S298 = (5.2,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [13.5, 16, 17.8, 18.9, 20.3, 21.1, 21.9], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(-12.7, "kcal/mol", "+|-", 1.3), + S298=(5.2, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1933, - label = "Cs-NNCsCs", - group = -""" + index=1933, + label="Cs-NNCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N u0 {1,S} 3 N u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1934, - label = "Cs-N5dN5dCsCs", - group = -""" + index=1934, + label="Cs-N5dN5dCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} 3 N5dc u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1933, - label = "Cs-NNCsH", - group = -""" + index=1933, + label="Cs-NNCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N u0 {1,S} 3 N u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1846, - label = "Cs-(N5dOdOs)(N5dOdOs)CsH", - group = -""" + index=1846, + label="Cs-(N5dOdOs)(N5dOdOs)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 N5dc u0 {1,S} {6,D} {7,S} 3 N5dc u0 {1,S} {8,D} {9,S} @@ -12390,110 +11643,110 @@ 8 O2d u0 {3,D} 9 O2s u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-14.9,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-14.9, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 330, - label = "Cs-HHHH", - group = -""" + index=330, + label="Cs-HHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.43,9.84,11.14,12.41,15,17.25,20.63],'cal/(mol*K)','+|-',[0.06,0.06,0.06,0.06,0.06,0.06,0.06]), - H298 = (-17.9,'kcal/mol','+|-',0.1), - S298 = (49.41,'cal/(mol*K)','+|-',0.05), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [8.43, 9.84, 11.14, 12.41, 15, 17.25, 20.63], + "cal/(mol*K)", + "+|-", + [0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06], + ), + H298=(-17.9, "kcal/mol", "+|-", 0.1), + S298=(49.41, "cal/(mol*K)", "+|-", 0.05), ), - shortDesc = """CHEMKIN DATABASE S(group) = S(CH4) + Rln(12)""", - longDesc = -""" + shortDesc="""CHEMKIN DATABASE S(group) = S(CH4) + Rln(12)""", + longDesc=""" """, ) entry( - index = 331, - label = "Cs-CHHH", - group = -""" + index=331, + label="Cs-CHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CsHHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsHHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 332, - label = "Cs-CsHHH", - group = -""" + index=332, + label="Cs-CsHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.19,7.84,9.4,10.79,13.02,14.77,17.58],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-10.2,'kcal/mol','+|-',0.12), - S298 = (30.41,'cal/(mol*K)','+|-',0.08), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.19, 7.84, 9.4, 10.79, 13.02, 14.77, 17.58], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-10.2, "kcal/mol", "+|-", 0.12), + S298=(30.41, "cal/(mol*K)", "+|-", 0.08), ), - shortDesc = """Cs-CsHHH BENSON""", - longDesc = -""" + shortDesc="""Cs-CsHHH BENSON""", + longDesc=""" """, ) entry( - index = 333, - label = "Cs-CdsHHH", - group = -""" + index=333, + label="Cs-CdsHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)HHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)HHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 334, - label = "Cs-(Cds-O2d)HHH", - group = -""" + index=334, + label="Cs-(Cds-O2d)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 H u0 {1,S} @@ -12501,15 +11754,14 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.31,32.07,38.44,44.06,53.36,60.63,72.47],'J/(mol*K)'), - H298 = (-42.9,'kJ/mol'), - S298 = (127.12,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([25.31, 32.07, 38.44, 44.06, 53.36, 60.63, 72.47], "J/(mol*K)"), + H298=(-42.9, "kJ/mol"), + S298=(127.12, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -12517,10 +11769,9 @@ ) entry( - index = 335, - label = "Cs-(Cds-Cd)HHH", - group = -""" + index=335, + label="Cs-(Cds-Cd)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 H u0 {1,S} @@ -12528,19 +11779,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)HHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)HHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 336, - label = "Cs-(Cds-Cds)HHH", - group = -""" + index=336, + label="Cs-(Cds-Cds)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 H u0 {1,S} @@ -12548,24 +11797,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.19,7.84,9.4,10.79,13.02,14.77,17.58],'cal/(mol*K)','+|-',[0.04,0.04,0.04,0.04,0.04,0.04,0.04]), - H298 = (-10.2,'kcal/mol','+|-',0.08), - S298 = (30.41,'cal/(mol*K)','+|-',0.04), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.19, 7.84, 9.4, 10.79, 13.02, 14.77, 17.58], + "cal/(mol*K)", + "+|-", + [0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], + ), + H298=(-10.2, "kcal/mol", "+|-", 0.08), + S298=(30.41, "cal/(mol*K)", "+|-", 0.04), ), - shortDesc = """Cs-CdHHH BENSON (Assigned Cs-CsHHH)""", - longDesc = -""" + shortDesc="""Cs-CdHHH BENSON (Assigned Cs-CsHHH)""", + longDesc=""" """, ) entry( - index = 337, - label = "Cs-(Cds-Cdd)HHH", - group = -""" + index=337, + label="Cs-(Cds-Cdd)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 H u0 {1,S} @@ -12573,19 +11825,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)HHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)HHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 338, - label = "Cs-(Cds-Cdd-O2d)HHH", - group = -""" + index=338, + label="Cs-(Cds-Cdd-O2d)HHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -12594,15 +11844,14 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.31,32.07,38.44,44.06,53.36,60.63,72.47],'J/(mol*K)'), - H298 = (-42.9,'kJ/mol'), - S298 = (127.12,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([25.31, 32.07, 38.44, 44.06, 53.36, 60.63, 72.47], "J/(mol*K)"), + H298=(-42.9, "kJ/mol"), + S298=(127.12, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -12610,10 +11859,9 @@ ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)HHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)HHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -12622,19 +11870,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 339, - label = "Cs-(Cds-Cdd-Cd)HHH", - group = -""" + index=339, + label="Cs-(Cds-Cdd-Cd)HHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -12643,19 +11889,17 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)HHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)HHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1862, - label = "Cs-(CdN3d)HHH", - group = -""" + index=1862, + label="Cs-(CdN3d)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 H u0 {1,S} @@ -12663,48 +11907,49 @@ 5 H u0 {1,S} 6 N3d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.2,7.8,9.4,10.8,13,14.8,17.6],'cal/(mol*K)'), - H298 = (-10.2,'kcal/mol'), - S298 = (30.4,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.2, 7.8, 9.4, 10.8, 13, 14.8, 17.6], "cal/(mol*K)"), + H298=(-10.2, "kcal/mol"), + S298=(30.4, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 340, - label = "Cs-CtHHH", - group = -""" + index=340, + label="Cs-CtHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.19,7.84,9.4,10.79,13.02,14.77,17.58],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-10.2,'kcal/mol','+|-',0.15), - S298 = (30.41,'cal/(mol*K)','+|-',0.08), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.19, 7.84, 9.4, 10.79, 13.02, 14.77, 17.58], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-10.2, "kcal/mol", "+|-", 0.15), + S298=(30.41, "cal/(mol*K)", "+|-", 0.08), ), - shortDesc = """Cs-CtHHH BENSON (Assigned Cs-CsHHH)""", - longDesc = -""" + shortDesc="""Cs-CtHHH BENSON (Assigned Cs-CsHHH)""", + longDesc=""" """, ) entry( - index = 1863, - label = "Cs-(CtN3t)HHH", - group = -""" + index=1863, + label="Cs-(CtN3t)HHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} {6,T} 3 H u0 {1,S} @@ -12712,48 +11957,54 @@ 5 H u0 {1,S} 6 N3t u0 {2,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.5,14.6,16.6,18.3,21.1,23.4,26.9],'cal/(mol*K)','+|-',[1.3,1.3,1.3,1.3,1.3,1.3,1.3]), - H298 = (17.7,'kcal/mol','+|-',1.9), - S298 = (60.2,'cal/(mol*K)','+|-',1.7), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.5, 14.6, 16.6, 18.3, 21.1, 23.4, 26.9], + "cal/(mol*K)", + "+|-", + [1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3], + ), + H298=(17.7, "kcal/mol", "+|-", 1.9), + S298=(60.2, "cal/(mol*K)", "+|-", 1.7), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 341, - label = "Cs-CbHHH", - group = -""" + index=341, + label="Cs-CbHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.19,7.84,9.4,10.79,13.02,14.77,17.58],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-10.2,'kcal/mol','+|-',0.18), - S298 = (30.41,'cal/(mol*K)','+|-',0.14), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.19, 7.84, 9.4, 10.79, 13.02, 14.77, 17.58], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-10.2, "kcal/mol", "+|-", 0.18), + S298=(30.41, "cal/(mol*K)", "+|-", 0.14), ), - shortDesc = """Cs-CbHHH BENSON (Assigned Cs-CsHHH)""", - longDesc = -""" + shortDesc="""Cs-CbHHH BENSON (Assigned Cs-CsHHH)""", + longDesc=""" """, ) entry( - index = 1176, - label = "Cs-C=SHHH", - group = -""" + index=1176, + label="Cs-C=SHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 H u0 {1,S} @@ -12761,39 +12012,36 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.96,7.6,9.13,10.49,12.72,14.46,17.28],'cal/(mol*K)'), - H298 = (-10.25,'kcal/mol'), - S298 = (30.4,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.96, 7.6, 9.13, 10.49, 12.72, 14.46, 17.28], "cal/(mol*K)"), + H298=(-10.25, "kcal/mol"), + S298=(30.4, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 342, - label = "Cs-OsHHH", - group = -""" + index=342, + label="Cs-OsHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.31,32.07,38.44,44.06,53.36,60.63,72.47],'J/(mol*K)'), - H298 = (-42.9,'kJ/mol'), - S298 = (127.12,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([25.31, 32.07, 38.44, 44.06, 53.36, 60.63, 72.47], "J/(mol*K)"), + H298=(-42.9, "kJ/mol"), + S298=(127.12, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -12801,25 +12049,28 @@ ) entry( - index = 343, - label = "Cs-OsOsHH", - group = -""" + index=343, + label="Cs-OsOsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.35,43.68,53.55,58.15,60.86,61.66,63.53],'J/(mol*K)','+|-',[5.77,5.77,5.77,5.77,5.77,5.77,5.77]), - H298 = (-67.5,'kJ/mol','+|-',4.92), - S298 = (17.89,'J/(mol*K)','+|-',6.74), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.35, 43.68, 53.55, 58.15, 60.86, 61.66, 63.53], + "J/(mol*K)", + "+|-", + [5.77, 5.77, 5.77, 5.77, 5.77, 5.77, 5.77], + ), + H298=(-67.5, "kJ/mol", "+|-", 4.92), + S298=(17.89, "J/(mol*K)", "+|-", 6.74), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -12827,216 +12078,207 @@ ) entry( - index = 344, - label = "Cs-OsOsOsH", - group = -""" + index=344, + label="Cs-OsOsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.54,6,7.17,8.05,9.31,10.05,10.05],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-21.23,'kcal/mol','+|-',0.2), - S298 = (-12.07,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.54, 6, 7.17, 8.05, 9.31, 10.05, 10.05], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-21.23, "kcal/mol", "+|-", 0.2), + S298=(-12.07, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cs-OOOH BOZZELLI del C/C2/O - C/C3/O, series !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-OOOH BOZZELLI del C/C2/O - C/C3/O, series !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1451, - label = "Cs-OsSsHH", - group = -""" + index=1451, + label="Cs-OsSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.48,9.54,11,11.91,12.85,13.54,14.93],'cal/(mol*K)'), - H298 = (-11.58,'kcal/mol'), - S298 = (4.58,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.48, 9.54, 11, 11.91, 12.85, 13.54, 14.93], "cal/(mol*K)"), + H298=(-11.58, "kcal/mol"), + S298=(4.58, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1DHR CAC""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1DHR CAC""", + longDesc=""" """, ) entry( - index = 1464, - label = "Cs-OsOsSsH", - group = -""" + index=1464, + label="Cs-OsOsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.36,8.72,10.13,10.88,11.56,11.91,12.53],'cal/(mol*K)'), - H298 = (-19.72,'kcal/mol'), - S298 = (-13.26,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.36, 8.72, 10.13, 10.88, 11.56, 11.91, 12.53], "cal/(mol*K)"), + H298=(-19.72, "kcal/mol"), + S298=(-13.26, "cal/(mol*K)"), ), - shortDesc = """CAC calc 1D-HR""", - longDesc = -""" + shortDesc="""CAC calc 1D-HR""", + longDesc=""" """, ) entry( - index = 1162, - label = "Cs-SsHHH", - group = -""" + index=1162, + label="Cs-SsHHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 S2s u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.96,7.6,9.13,10.49,12.72,14.46,17.28],'cal/(mol*K)'), - H298 = (-10.25,'kcal/mol'), - S298 = (30.4,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.96, 7.6, 9.13, 10.49, 12.72, 14.46, 17.28], "cal/(mol*K)"), + H298=(-10.25, "kcal/mol"), + S298=(30.4, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1167, - label = "Cs-SsSsHH", - group = -""" + index=1167, + label="Cs-SsSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.37,9.7,10.52,11.13,12.16,13.01,14.43],'cal/(mol*K)'), - H298 = (-6.21,'kcal/mol'), - S298 = (6.14,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.37, 9.7, 10.52, 11.13, 12.16, 13.01, 14.43], "cal/(mol*K)"), + H298=(-6.21, "kcal/mol"), + S298=(6.14, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1201, - label = "Cs-SsSsSsH", - group = -""" + index=1201, + label="Cs-SsSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.84,9.14,10.24,10.73,11.12,11.33,11.57],'cal/(mol*K)'), - H298 = (-2.78,'kcal/mol'), - S298 = (-15.38,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.84, 9.14, 10.24, 10.73, 11.12, 11.33, 11.57], "cal/(mol*K)"), + H298=(-2.78, "kcal/mol"), + S298=(-15.38, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 345, - label = "Cs-CCHH", - group = -""" + index=345, + label="Cs-CCHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CsCsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 346, - label = "Cs-CsCsHH", - group = -""" + index=346, + label="Cs-CsCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.5,6.95,8.25,9.35,11.07,12.34,14.25],'cal/(mol*K)','+|-',[0.04,0.04,0.04,0.04,0.04,0.04,0.04]), - H298 = (-4.93,'kcal/mol','+|-',0.05), - S298 = (9.42,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.5, 6.95, 8.25, 9.35, 11.07, 12.34, 14.25], + "cal/(mol*K)", + "+|-", + [0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], + ), + H298=(-4.93, "kcal/mol", "+|-", 0.05), + S298=(9.42, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CsCsHH BENSON""", - longDesc = -""" + shortDesc="""Cs-CsCsHH BENSON""", + longDesc=""" """, ) entry( - index = 347, - label = "Cs-CdsCsHH", - group = -""" + index=347, + label="Cs-CdsCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 348, - label = "Cs-(Cds-O2d)CsHH", - group = -""" + index=348, + label="Cs-(Cds-O2d)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -13044,15 +12286,19 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([26.91,30.8,34.98,38.91,45.56,50.73,58.93],'J/(mol*K)','+|-',[1.53,1.53,1.53,1.53,1.53,1.53,1.53]), - H298 = (-21.5,'kJ/mol','+|-',1.3), - S298 = (40.32,'J/(mol*K)','+|-',1.78), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [26.91, 30.8, 34.98, 38.91, 45.56, 50.73, 58.93], + "J/(mol*K)", + "+|-", + [1.53, 1.53, 1.53, 1.53, 1.53, 1.53, 1.53], + ), + H298=(-21.5, "kJ/mol", "+|-", 1.3), + S298=(40.32, "J/(mol*K)", "+|-", 1.78), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -13060,10 +12306,9 @@ ) entry( - index = 349, - label = "Cs-(Cds-Cd)CsHH", - group = -""" + index=349, + label="Cs-(Cds-Cd)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -13071,19 +12316,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 350, - label = "Cs-(Cds-Cds)CsHH", - group = -""" + index=350, + label="Cs-(Cds-Cds)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -13091,24 +12334,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.12,6.86,8.32,9.49,11.22,12.48,14.36],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-4.76,'kcal/mol','+|-',0.16), - S298 = (9.8,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.12, 6.86, 8.32, 9.49, 11.22, 12.48, 14.36], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-4.76, "kcal/mol", "+|-", 0.16), + S298=(9.8, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cs-CdCsHH BENSON""", - longDesc = -""" + shortDesc="""Cs-CdCsHH BENSON""", + longDesc=""" """, ) entry( - index = 351, - label = "Cs-(Cds-Cdd)CsHH", - group = -""" + index=351, + label="Cs-(Cds-Cdd)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -13116,19 +12362,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 352, - label = "Cs-(Cds-Cdd-O2d)CsHH", - group = -""" + index=352, + label="Cs-(Cds-Cdd-O2d)CsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -13137,24 +12381,27 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.35,6.83,8.25,9.45,11.19,12.46,14.34],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-5.723,'kcal/mol','+|-',0.16), - S298 = (9.37,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.35, 6.83, 8.25, 9.45, 11.19, 12.46, 14.34], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-5.723, "kcal/mol", "+|-", 0.16), + S298=(9.37, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{C/C/H2/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{C/C/H2/CCO} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CsHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -13163,19 +12410,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 353, - label = "Cs-(Cds-Cdd-Cd)CsHH", - group = -""" + index=353, + label="Cs-(Cds-Cdd-Cd)CsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -13184,19 +12429,17 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1864, - label = "Cs-(CdN3d)CsHH", - group = -""" + index=1864, + label="Cs-(CdN3d)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} {7,S} 3 Cs u0 {1,S} @@ -13205,43 +12448,44 @@ 6 N3d u0 {2,D} 7 R u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.5,6.9,8.1,9.2,10.9,12.2,14.1],'cal/(mol*K)','+|-',[1.2,1.2,1.2,1.2,1.2,1.2,1.2]), - H298 = (-5.1,'kcal/mol','+|-',1.7), - S298 = (10.1,'cal/(mol*K)','+|-',1.6), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.5, 6.9, 8.1, 9.2, 10.9, 12.2, 14.1], + "cal/(mol*K)", + "+|-", + [1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2], + ), + H298=(-5.1, "kcal/mol", "+|-", 1.7), + S298=(10.1, "cal/(mol*K)", "+|-", 1.6), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 354, - label = "Cs-CdsCdsHH", - group = -""" + index=354, + label="Cs-CdsCdsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 355, - label = "Cs-(Cds-O2d)(Cds-O2d)HH", - group = -""" + index=355, + label="Cs-(Cds-O2d)(Cds-O2d)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -13250,15 +12494,19 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.77,32.81,37.1,40.67,46.39,50.85,58.25],'J/(mol*K)','+|-',[4.19,4.19,4.19,4.19,4.19,4.19,4.19]), - H298 = (-10,'kJ/mol','+|-',3.57), - S298 = (40.1,'J/(mol*K)','+|-',4.88), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.77, 32.81, 37.1, 40.67, 46.39, 50.85, 58.25], + "J/(mol*K)", + "+|-", + [4.19, 4.19, 4.19, 4.19, 4.19, 4.19, 4.19], + ), + H298=(-10, "kJ/mol", "+|-", 3.57), + S298=(40.1, "J/(mol*K)", "+|-", 4.88), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -13266,10 +12514,9 @@ ) entry( - index = 356, - label = "Cs-(Cds-O2d)(Cds-Cd)HH", - group = -""" + index=356, + label="Cs-(Cds-O2d)(Cds-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -13278,15 +12525,19 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([24.94,31.41,36.47,40.49,46.72,51.49,59.29],'J/(mol*K)','+|-',[3.34,3.34,3.34,3.34,3.34,3.34,3.34]), - H298 = (-16.9,'kJ/mol','+|-',2.85), - S298 = (40.18,'J/(mol*K)','+|-',3.9), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [24.94, 31.41, 36.47, 40.49, 46.72, 51.49, 59.29], + "J/(mol*K)", + "+|-", + [3.34, 3.34, 3.34, 3.34, 3.34, 3.34, 3.34], + ), + H298=(-16.9, "kJ/mol", "+|-", 2.85), + S298=(40.18, "J/(mol*K)", "+|-", 3.9), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -13294,10 +12545,9 @@ ) entry( - index = 357, - label = "Cs-(Cds-O2d)(Cds-Cds)HH", - group = -""" + index=357, + label="Cs-(Cds-O2d)(Cds-Cds)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -13306,24 +12556,27 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.75,7.11,8.92,10.32,12.16,13.61,13.61],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-3.8,'kcal/mol','+|-',0.16), - S298 = (6.31,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.75, 7.11, 8.92, 10.32, 12.16, 13.61, 13.61], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-3.8, "kcal/mol", "+|-", 0.16), + S298=(6.31, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cs-COCdHH BENSON Hf, Mopac =3D S,Cp nov99 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-COCdHH BENSON Hf, Mopac =3D S,Cp nov99 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 358, - label = "Cs-(Cds-O2d)(Cds-Cdd)HH", - group = -""" + index=358, + label="Cs-(Cds-O2d)(Cds-Cdd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -13332,19 +12585,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 359, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)HH", - group = -""" + index=359, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -13354,19 +12605,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 360, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)HH", - group = -""" + index=360, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -13376,19 +12625,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 361, - label = "Cs-(Cds-Cd)(Cds-Cd)HH", - group = -""" + index=361, + label="Cs-(Cds-Cd)(Cds-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -13397,19 +12644,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 362, - label = "Cs-(Cds-Cds)(Cds-Cds)HH", - group = -""" + index=362, + label="Cs-(Cds-Cds)(Cds-Cds)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -13418,24 +12663,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.7,6.8,8.4,9.6,11.3,12.6,14.4],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-4.29,'kcal/mol','+|-',0.16), - S298 = (10.2,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.7, 6.8, 8.4, 9.6, 11.3, 12.6, 14.4], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-4.29, "kcal/mol", "+|-", 0.16), + S298=(10.2, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cs-CdCdHH BENSON""", - longDesc = -""" + shortDesc="""Cs-CdCdHH BENSON""", + longDesc=""" """, ) entry( - index = 363, - label = "Cs-(Cds-Cdd)(Cds-Cds)HH", - group = -""" + index=363, + label="Cs-(Cds-Cdd)(Cds-Cds)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -13444,19 +12692,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)HH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -13466,19 +12712,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 365, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)HH", - group = -""" + index=365, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -13488,19 +12732,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 366, - label = "Cs-(Cds-Cdd)(Cds-Cdd)HH", - group = -""" + index=366, + label="Cs-(Cds-Cdd)(Cds-Cdd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -13509,19 +12751,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 367, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)HH", - group = -""" + index=367, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -13532,24 +12772,27 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.68,8.28,9.58,10.61,12.04,13.13,14.87],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-5.301,'kcal/mol','+|-',0.16), - S298 = (7.18,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.68, 8.28, 9.58, 10.61, 12.04, 13.13, 14.87], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-5.301, "kcal/mol", "+|-", 0.16), + S298=(7.18, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{C/H2/CCO2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{C/H2/CCO2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 368, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)HH", - group = -""" + index=368, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -13560,19 +12803,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-Cd(CCO)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-Cd(CCO)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)HH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -13583,19 +12824,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)HH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -13606,19 +12845,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 369, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)HH", - group = -""" + index=369, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -13629,19 +12866,17 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2010, - label = "Cs-Cd(CCO)HH", - group = -""" + index=2010, + label="Cs-Cd(CCO)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -13651,15 +12886,19 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.85,31.99,37.06,41.14,47.42,52.15,59.73],'J/(mol*K)','+|-',[6.93,6.93,6.93,6.93,6.93,6.93,6.93]), - H298 = (-22.2,'kJ/mol','+|-',5.9), - S298 = (37.92,'J/(mol*K)','+|-',8.08), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [25.85, 31.99, 37.06, 41.14, 47.42, 52.15, 59.73], + "J/(mol*K)", + "+|-", + [6.93, 6.93, 6.93, 6.93, 6.93, 6.93, 6.93], + ), + H298=(-22.2, "kJ/mol", "+|-", 5.9), + S298=(37.92, "J/(mol*K)", "+|-", 8.08), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -13667,34 +12906,36 @@ ) entry( - index = 370, - label = "Cs-CtCsHH", - group = -""" + index=370, + label="Cs-CtCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.95,6.56,7.93,9.08,10.86,12.19,14.2],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-4.73,'kcal/mol','+|-',0.28), - S298 = (10.3,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.95, 6.56, 7.93, 9.08, 10.86, 12.19, 14.2], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-4.73, "kcal/mol", "+|-", 0.28), + S298=(10.3, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Cs-CtCsHH BENSON""", - longDesc = -""" + shortDesc="""Cs-CtCsHH BENSON""", + longDesc=""" """, ) entry( - index = 1832, - label = "Cs-(CtN3t)CsHH", - group = -""" + index=1832, + label="Cs-(CtN3t)CsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} {6,T} 3 Cs u0 {1,S} @@ -13702,43 +12943,44 @@ 5 H u0 {1,S} 6 N3t u0 {2,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.3,13.5,15.3,16.8,19.2,20.9,23.5],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (22.9,'kcal/mol','+|-',1.3), - S298 = (39.8,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.3, 13.5, 15.3, 16.8, 19.2, 20.9, 23.5], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(22.9, "kcal/mol", "+|-", 1.3), + S298=(39.8, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 371, - label = "Cs-CtCdsHH", - group = -""" + index=371, + label="Cs-CtCdsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 372, - label = "Cs-(Cds-O2d)CtHH", - group = -""" + index=372, + label="Cs-(Cds-O2d)CtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -13746,24 +12988,27 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.85,6.22,8.01,9.43,11.29,12.76,12.76],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-5.4,'kcal/mol','+|-',0.28), - S298 = (7.68,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.85, 6.22, 8.01, 9.43, 11.29, 12.76, 12.76], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-5.4, "kcal/mol", "+|-", 0.28), + S298=(7.68, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Cs-COCtHH BENSON Hf, Mopac =3D S,Cp nov99 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-COCtHH BENSON Hf, Mopac =3D S,Cp nov99 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 373, - label = "Cs-(Cds-Cd)CtHH", - group = -""" + index=373, + label="Cs-(Cds-Cd)CtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -13771,19 +13016,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 374, - label = "Cs-(Cds-Cds)CtHH", - group = -""" + index=374, + label="Cs-(Cds-Cds)CtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -13791,24 +13034,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.4,6.33,7.9,9.16,10.93,12.29,13.43],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-3.49,'kcal/mol','+|-',0.28), - S298 = (9.31,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.4, 6.33, 7.9, 9.16, 10.93, 12.29, 13.43], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-3.49, "kcal/mol", "+|-", 0.28), + S298=(9.31, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Cs-CtCdHH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCdHH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 375, - label = "Cs-(Cds-Cdd)CtHH", - group = -""" + index=375, + label="Cs-(Cds-Cdd)CtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -13816,19 +13062,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 376, - label = "Cs-(Cds-Cdd-O2d)CtHH", - group = -""" + index=376, + label="Cs-(Cds-Cdd-O2d)CtHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -13837,19 +13081,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-Cd(CCO)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-Cd(CCO)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -13858,19 +13100,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 377, - label = "Cs-(Cds-Cdd-Cd)CtHH", - group = -""" + index=377, + label="Cs-(Cds-Cdd-Cd)CtHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -13879,86 +13119,88 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 378, - label = "Cs-CtCtHH", - group = -""" + index=378, + label="Cs-CtCtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4,6.07,7.71,9.03,10.88,12.3,12.48],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-0.82,'kcal/mol','+|-',0.28), - S298 = (10.04,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4, 6.07, 7.71, 9.03, 10.88, 12.3, 12.48], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-0.82, "kcal/mol", "+|-", 0.28), + S298=(10.04, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Cs-CtCtHH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCtHH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 379, - label = "Cs-CbCsHH", - group = -""" + index=379, + label="Cs-CbCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.84,7.61,8.98,10.01,11.49,12.54,13.76],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-4.86,'kcal/mol','+|-',0.2), - S298 = (9.34,'cal/(mol*K)','+|-',0.19), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.84, 7.61, 8.98, 10.01, 11.49, 12.54, 13.76], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-4.86, "kcal/mol", "+|-", 0.2), + S298=(9.34, "cal/(mol*K)", "+|-", 0.19), ), - shortDesc = """Cs-CbCsHH BENSON""", - longDesc = -""" + shortDesc="""Cs-CbCsHH BENSON""", + longDesc=""" """, ) entry( - index = 380, - label = "Cs-CbCdsHH", - group = -""" + index=380, + label="Cs-CbCdsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 381, - label = "Cs-(Cds-O2d)CbHH", - group = -""" + index=381, + label="Cs-(Cds-O2d)CbHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -13966,24 +13208,27 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.38,7.59,9.25,10.51,12.19,13.52,13.52],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-5.4,'kcal/mol','+|-',0.2), - S298 = (5.89,'cal/(mol*K)','+|-',0.19), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.38, 7.59, 9.25, 10.51, 12.19, 13.52, 13.52], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-5.4, "kcal/mol", "+|-", 0.2), + S298=(5.89, "cal/(mol*K)", "+|-", 0.19), ), - shortDesc = """Cs-COCbHH BENSON Hf, Mopac =3D S,Cp nov99 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-COCbHH BENSON Hf, Mopac =3D S,Cp nov99 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 382, - label = "Cs-(Cds-Cd)CbHH", - group = -""" + index=382, + label="Cs-(Cds-Cd)CbHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -13991,19 +13236,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 383, - label = "Cs-(Cds-Cds)CbHH", - group = -""" + index=383, + label="Cs-(Cds-Cds)CbHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -14011,24 +13254,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.51,6.76,8.61,10.01,11.97,13.4,15.47],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-4.29,'kcal/mol','+|-',0.2), - S298 = (2,'cal/(mol*K)','+|-',0.19), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.51, 6.76, 8.61, 10.01, 11.97, 13.4, 15.47], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-4.29, "kcal/mol", "+|-", 0.2), + S298=(2, "cal/(mol*K)", "+|-", 0.19), ), - shortDesc = """Cs-CbCdHH Hf=Stein S,Cp=3D mopac nov99""", - longDesc = -""" + shortDesc="""Cs-CbCdHH Hf=Stein S,Cp=3D mopac nov99""", + longDesc=""" """, ) entry( - index = 384, - label = "Cs-(Cds-Cdd)CbHH", - group = -""" + index=384, + label="Cs-(Cds-Cdd)CbHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -14036,19 +13282,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 385, - label = "Cs-(Cds-Cdd-O2d)CbHH", - group = -""" + index=385, + label="Cs-(Cds-Cdd-O2d)CbHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -14057,19 +13301,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-Cd(CCO)HH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-Cd(CCO)HH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -14078,19 +13320,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 386, - label = "Cs-(Cds-Cdd-Cd)CbHH", - group = -""" + index=386, + label="Cs-(Cds-Cdd-Cd)CbHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -14099,67 +13339,71 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 387, - label = "Cs-CbCtHH", - group = -""" + index=387, + label="Cs-CbCtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.28,6.43,8.16,9.5,11.36,12.74,13.7],'cal/(mol*K)','+|-',[0.08,0.08,0.08,0.08,0.08,0.08,0.08]), - H298 = (-4.29,'kcal/mol','+|-',0.28), - S298 = (9.84,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.28, 6.43, 8.16, 9.5, 11.36, 12.74, 13.7], + "cal/(mol*K)", + "+|-", + [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], + ), + H298=(-4.29, "kcal/mol", "+|-", 0.28), + S298=(9.84, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Cs-CbCtHH Hf=Stein S,Cp=3D mopac nov99""", - longDesc = -""" + shortDesc="""Cs-CbCtHH Hf=Stein S,Cp=3D mopac nov99""", + longDesc=""" """, ) entry( - index = 388, - label = "Cs-CbCbHH", - group = -""" + index=388, + label="Cs-CbCbHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.67,7.7,9.31,10.52,12.21,13.47,15.11],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-4.29,'kcal/mol','+|-',0.2), - S298 = (8.07,'cal/(mol*K)','+|-',0.19), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.67, 7.7, 9.31, 10.52, 12.21, 13.47, 15.11], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-4.29, "kcal/mol", "+|-", 0.2), + S298=(8.07, "cal/(mol*K)", "+|-", 0.19), ), - shortDesc = """Cs-CbCbHH Hf=3Dbsn/Cs/Cd2/H2 S,Cp=3D mopac nov99""", - longDesc = -""" + shortDesc="""Cs-CbCbHH Hf=3Dbsn/Cs/Cd2/H2 S,Cp=3D mopac nov99""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtHH", - group = -""" + index=-1, + label="Cs-C=SCtHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -14167,19 +13411,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1177, - label = "Cs-C=SCsHH", - group = -""" + index=1177, + label="Cs-C=SCsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -14187,24 +13429,22 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.23,6.82,8.16,9.27,10.96,12.2,14.13],'cal/(mol*K)'), - H298 = (-4.89,'kcal/mol'), - S298 = (9.83,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.23, 6.82, 8.16, 9.27, 10.96, 12.2, 14.13], "cal/(mol*K)"), + H298=(-4.89, "kcal/mol"), + S298=(9.83, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)HH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -14213,19 +13453,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)HH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -14234,19 +13472,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)HH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -14256,19 +13492,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)HH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -14278,19 +13512,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)HH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)HH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -14299,19 +13531,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SHH", - group = -""" + index=-1, + label="Cs-C=SC=SHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -14320,19 +13550,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbHH", - group = -""" + index=-1, + label="Cs-C=SCbHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -14340,81 +13568,78 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 389, - label = "Cs-CCCH", - group = -""" + index=389, + label="Cs-CCCH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CsCsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 390, - label = "Cs-CsCsCsH", - group = -""" + index=390, + label="Cs-CsCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.54,6,7.17,8.05,9.31,10.05,11.17],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (-1.9,'kcal/mol','+|-',0.15), - S298 = (-12.07,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.54, 6, 7.17, 8.05, 9.31, 10.05, 11.17], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(-1.9, "kcal/mol", "+|-", 0.15), + S298=(-12.07, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """Cs-CsCsCsH BENSON""", - longDesc = -""" + shortDesc="""Cs-CsCsCsH BENSON""", + longDesc=""" """, ) entry( - index = 391, - label = "Cs-CdsCsCsH", - group = -""" + index=391, + label="Cs-CdsCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 392, - label = "Cs-(Cds-O2d)CsCsH", - group = -""" + index=392, + label="Cs-(Cds-O2d)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -14422,15 +13647,19 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([23.68,27.86,31.26,34,38.07,41,45.46],'J/(mol*K)','+|-',[3.34,3.34,3.34,3.34,3.34,3.34,3.34]), - H298 = (-5.4,'kJ/mol','+|-',2.85), - S298 = (-47.41,'J/(mol*K)','+|-',3.9), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [23.68, 27.86, 31.26, 34, 38.07, 41, 45.46], + "J/(mol*K)", + "+|-", + [3.34, 3.34, 3.34, 3.34, 3.34, 3.34, 3.34], + ), + H298=(-5.4, "kJ/mol", "+|-", 2.85), + S298=(-47.41, "J/(mol*K)", "+|-", 3.9), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -14438,10 +13667,9 @@ ) entry( - index = 393, - label = "Cs-(Cds-Cd)CsCsH", - group = -""" + index=393, + label="Cs-(Cds-Cd)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -14449,19 +13677,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 394, - label = "Cs-(Cds-Cds)CsCsH", - group = -""" + index=394, + label="Cs-(Cds-Cds)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -14469,24 +13695,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.16,5.91,7.34,8.19,9.46,10.19,11.28],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.48,'kcal/mol','+|-',0.27), - S298 = (-11.69,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.16, 5.91, 7.34, 8.19, 9.46, 10.19, 11.28], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.48, "kcal/mol", "+|-", 0.27), + S298=(-11.69, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CdCsCsH BENSON""", - longDesc = -""" + shortDesc="""Cs-CdCsCsH BENSON""", + longDesc=""" """, ) entry( - index = 395, - label = "Cs-(Cds-Cdd)CsCsH", - group = -""" + index=395, + label="Cs-(Cds-Cdd)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -14494,19 +13723,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 396, - label = "Cs-(Cds-Cdd-O2d)CsCsH", - group = -""" + index=396, + label="Cs-(Cds-Cdd-O2d)CsCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -14515,15 +13742,19 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([21.23,27.55,32.36,35.85,40.37,43.16,46.94],'J/(mol*K)','+|-',[6.93,6.93,6.93,6.93,6.93,6.93,6.93]), - H298 = (-11.1,'kJ/mol','+|-',5.9), - S298 = (-47.59,'J/(mol*K)','+|-',8.08), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [21.23, 27.55, 32.36, 35.85, 40.37, 43.16, 46.94], + "J/(mol*K)", + "+|-", + [6.93, 6.93, 6.93, 6.93, 6.93, 6.93, 6.93], + ), + H298=(-11.1, "kJ/mol", "+|-", 5.9), + S298=(-47.59, "J/(mol*K)", "+|-", 8.08), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -14531,10 +13762,9 @@ ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CsCsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CsCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -14543,19 +13773,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 397, - label = "Cs-(Cds-Cdd-Cd)CsCsH", - group = -""" + index=397, + label="Cs-(Cds-Cdd-Cd)CsCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -14564,24 +13792,27 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.16,5.91,7.34,8.19,9.46,10.19,11.28],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.48,'kcal/mol','+|-',0.27), - S298 = (-11.69,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.16, 5.91, 7.34, 8.19, 9.46, 10.19, 11.28], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.48, "kcal/mol", "+|-", 0.27), + S298=(-11.69, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CdCsCsH BENSON""", - longDesc = -""" + shortDesc="""Cs-CdCsCsH BENSON""", + longDesc=""" """, ) entry( - index = 1865, - label = "Cs-(CdN3d)CsCsH", - group = -""" + index=1865, + label="Cs-(CdN3d)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} {7,S} 3 Cs u0 {1,S} @@ -14590,48 +13821,54 @@ 6 N3d u0 {2,D} 7 R u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5,6.5,7.5,8.2,9.3,9.9,10.9],'cal/(mol*K)','+|-',[1.2,1.2,1.2,1.2,1.2,1.2,1.2]), - H298 = (-1.6,'kcal/mol','+|-',1.7), - S298 = (-11.2,'cal/(mol*K)','+|-',1.6), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5, 6.5, 7.5, 8.2, 9.3, 9.9, 10.9], + "cal/(mol*K)", + "+|-", + [1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2], + ), + H298=(-1.6, "kcal/mol", "+|-", 1.7), + S298=(-11.2, "cal/(mol*K)", "+|-", 1.6), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 398, - label = "Cs-CtCsCsH", - group = -""" + index=398, + label="Cs-CtCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,5.61,6.85,7.78,9.1,9.9,11.12],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.72,'kcal/mol','+|-',0.27), - S298 = (-11.19,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 5.61, 6.85, 7.78, 9.1, 9.9, 11.12], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.72, "kcal/mol", "+|-", 0.27), + S298=(-11.19, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCsCsH BENSON""", - longDesc = -""" + shortDesc="""Cs-CtCsCsH BENSON""", + longDesc=""" """, ) entry( - index = 1833, - label = "Cs-(CtN3t)CsCsH", - group = -""" + index=1833, + label="Cs-(CtN3t)CsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} {6,T} 3 Cs u0 {1,S} @@ -14639,67 +13876,66 @@ 5 H u0 {1,S} 6 N3t u0 {2,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11,12.7,14.1,15.4,17.3,18.6,21.85],'cal/(mol*K)'), - H298 = (25.8,'kcal/mol'), - S298 = (19.8,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([11, 12.7, 14.1, 15.4, 17.3, 18.6, 21.85], "cal/(mol*K)"), + H298=(25.8, "kcal/mol"), + S298=(19.8, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 399, - label = "Cs-CbCsCsH", - group = -""" + index=399, + label="Cs-CbCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.88,6.66,7.9,8.75,9.73,10.25,10.68],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-0.98,'kcal/mol','+|-',0.27), - S298 = (-12.15,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.88, 6.66, 7.9, 8.75, 9.73, 10.25, 10.68], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-0.98, "kcal/mol", "+|-", 0.27), + S298=(-12.15, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CbCsCsH BENSON""", - longDesc = -""" + shortDesc="""Cs-CbCsCsH BENSON""", + longDesc=""" """, ) entry( - index = 400, - label = "Cs-CdsCdsCsH", - group = -""" + index=400, + label="Cs-CdsCdsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 401, - label = "Cs-(Cds-O2d)(Cds-O2d)CsH", - group = -""" + index=401, + label="Cs-(Cds-O2d)(Cds-O2d)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -14708,19 +13944,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 402, - label = "Cs-(Cds-O2d)(Cds-Cd)CsH", - group = -""" + index=402, + label="Cs-(Cds-O2d)(Cds-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -14729,15 +13963,19 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([29.32,32.99,35.49,37.28,39.75,41.6,44.96],'J/(mol*K)','+|-',[3.34,3.34,3.34,3.34,3.34,3.34,3.34]), - H298 = (-2.2,'kJ/mol','+|-',2.85), - S298 = (-50.47,'J/(mol*K)','+|-',3.9), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [29.32, 32.99, 35.49, 37.28, 39.75, 41.6, 44.96], + "J/(mol*K)", + "+|-", + [3.34, 3.34, 3.34, 3.34, 3.34, 3.34, 3.34], + ), + H298=(-2.2, "kJ/mol", "+|-", 2.85), + S298=(-50.47, "J/(mol*K)", "+|-", 3.9), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -14745,10 +13983,9 @@ ) entry( - index = 403, - label = "Cs-(Cds-O2d)(Cds-Cds)CsH", - group = -""" + index=403, + label="Cs-(Cds-O2d)(Cds-Cds)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -14757,19 +13994,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 404, - label = "Cs-(Cds-O2d)(Cds-Cdd)CsH", - group = -""" + index=404, + label="Cs-(Cds-O2d)(Cds-Cdd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -14778,19 +14013,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 405, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CsH", - group = -""" + index=405, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -14800,19 +14033,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 406, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CsH", - group = -""" + index=406, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -14822,19 +14053,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 407, - label = "Cs-(Cds-Cd)(Cds-Cd)CsH", - group = -""" + index=407, + label="Cs-(Cds-Cd)(Cds-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -14843,19 +14072,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 408, - label = "Cs-(Cds-Cds)(Cds-Cds)CsH", - group = -""" + index=408, + label="Cs-(Cds-Cds)(Cds-Cds)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -14864,24 +14091,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.28,6.54,7.67,8.48,9.45,10.18,11.24],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.1,'kcal/mol','+|-',0.27), - S298 = (-13.03,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.28, 6.54, 7.67, 8.48, 9.45, 10.18, 11.24], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.1, "kcal/mol", "+|-", 0.27), + S298=(-13.03, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CdCdCsH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CdCdCsH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 409, - label = "Cs-(Cds-Cdd)(Cds-Cds)CsH", - group = -""" + index=409, + label="Cs-(Cds-Cdd)(Cds-Cds)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -14890,19 +14120,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -14912,19 +14140,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 411, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CsH", - group = -""" + index=411, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -14934,19 +14160,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 412, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CsH", - group = -""" + index=412, + label="Cs-(Cds-Cdd)(Cds-Cdd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -14955,19 +14179,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 413, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsH", - group = -""" + index=413, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -14978,15 +14200,19 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([21.19,28,33.91,38.75,46.07,51.36,59.45],'J/(mol*K)','+|-',[3.46,3.46,3.46,3.46,3.46,3.46,3.46]), - H298 = (-21.1,'kJ/mol','+|-',2.95), - S298 = (40.95,'J/(mol*K)','+|-',4.04), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [21.19, 28, 33.91, 38.75, 46.07, 51.36, 59.45], + "J/(mol*K)", + "+|-", + [3.46, 3.46, 3.46, 3.46, 3.46, 3.46, 3.46], + ), + H298=(-21.1, "kJ/mol", "+|-", 2.95), + S298=(40.95, "J/(mol*K)", "+|-", 4.04), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -14994,10 +14220,9 @@ ) entry( - index = 414, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CsH", - group = -""" + index=414, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -15008,19 +14233,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-CsCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -15031,19 +14254,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -15054,19 +14275,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 415, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsH", - group = -""" + index=415, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -15077,19 +14296,17 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2008, - label = "Cs-CsCd(CCO)H", - group = -""" + index=2008, + label="Cs-CsCd(CCO)H", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -15099,15 +14316,19 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([24.45,31.59,36.01,38.8,42.13,44.21,47.25],'J/(mol*K)','+|-',[6.93,6.93,6.93,6.93,6.93,6.93,6.93]), - H298 = (-10.4,'kJ/mol','+|-',5.9), - S298 = (-54.03,'J/(mol*K)','+|-',8.08), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [24.45, 31.59, 36.01, 38.8, 42.13, 44.21, 47.25], + "J/(mol*K)", + "+|-", + [6.93, 6.93, 6.93, 6.93, 6.93, 6.93, 6.93], + ), + H298=(-10.4, "kJ/mol", "+|-", 5.9), + S298=(-54.03, "J/(mol*K)", "+|-", 8.08), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -15115,29 +14336,26 @@ ) entry( - index = 416, - label = "Cs-CtCdsCsH", - group = -""" + index=416, + label="Cs-CtCdsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 417, - label = "Cs-(Cds-O2d)CtCsH", - group = -""" + index=417, + label="Cs-(Cds-O2d)CtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -15145,19 +14363,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 418, - label = "Cs-(Cds-Cd)CtCsH", - group = -""" + index=418, + label="Cs-(Cds-Cd)CtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -15165,19 +14381,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 419, - label = "Cs-(Cds-Cds)CtCsH", - group = -""" + index=419, + label="Cs-(Cds-Cds)CtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -15185,24 +14399,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.55,7.21,8.39,9.17,10,10.61,10.51],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-6.9,'kcal/mol','+|-',0.27), - S298 = (-13.48,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.55, 7.21, 8.39, 9.17, 10, 10.61, 10.51], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-6.9, "kcal/mol", "+|-", 0.27), + S298=(-13.48, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCdCsH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCdCsH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 420, - label = "Cs-(Cds-Cdd)CtCsH", - group = -""" + index=420, + label="Cs-(Cds-Cdd)CtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -15210,19 +14427,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 421, - label = "Cs-(Cds-Cdd-O2d)CtCsH", - group = -""" + index=421, + label="Cs-(Cds-Cdd-O2d)CtCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -15231,19 +14446,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtCsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -15252,19 +14465,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 422, - label = "Cs-(Cds-Cdd-Cd)CtCsH", - group = -""" + index=422, + label="Cs-(Cds-Cdd-Cd)CtCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -15273,38 +14484,34 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 423, - label = "Cs-CbCdsCsH", - group = -""" + index=423, + label="Cs-CbCdsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 424, - label = "Cs-(Cds-O2d)CbCsH", - group = -""" + index=424, + label="Cs-(Cds-O2d)CbCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -15312,19 +14519,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 425, - label = "Cs-(Cds-Cd)CbCsH", - group = -""" + index=425, + label="Cs-(Cds-Cd)CbCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -15332,19 +14537,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 426, - label = "Cs-(Cds-Cds)CbCsH", - group = -""" + index=426, + label="Cs-(Cds-Cds)CbCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -15352,24 +14555,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.5,6.57,8.07,8.89,9.88,10.39,10.79],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.56,'kcal/mol','+|-',0.27), - S298 = (-11.77,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.5, 6.57, 8.07, 8.89, 9.88, 10.39, 10.79], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.56, "kcal/mol", "+|-", 0.27), + S298=(-11.77, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CbCdCsH BOZZELLI =3D Cs/Cs2/Cd/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", - longDesc = -""" + shortDesc="""Cs-CbCdCsH BOZZELLI =3D Cs/Cs2/Cd/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", + longDesc=""" """, ) entry( - index = 427, - label = "Cs-(Cds-Cdd)CbCsH", - group = -""" + index=427, + label="Cs-(Cds-Cdd)CbCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -15377,19 +14583,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 428, - label = "Cs-(Cds-Cdd-O2d)CbCsH", - group = -""" + index=428, + label="Cs-(Cds-Cdd-O2d)CbCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -15398,19 +14602,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 429, - label = "Cs-(Cds-Cdd-Cd)CbCsH", - group = -""" + index=429, + label="Cs-(Cds-Cdd-Cd)CbCsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -15419,110 +14621,115 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 430, - label = "Cs-CtCtCsH", - group = -""" + index=430, + label="Cs-CtCtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.27,5.32,6.9,8.03,9.33,10.21,9.38],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.72,'kcal/mol','+|-',0.27), - S298 = (-11.61,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.27, 5.32, 6.9, 8.03, 9.33, 10.21, 9.38], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.72, "kcal/mol", "+|-", 0.27), + S298=(-11.61, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCtCsH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCtCsH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 431, - label = "Cs-CbCtCsH", - group = -""" + index=431, + label="Cs-CbCtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.33,6.27,7.58,8.48,9.52,10.1,10.63],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.55,'kcal/mol','+|-',0.27), - S298 = (-11.65,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.33, 6.27, 7.58, 8.48, 9.52, 10.1, 10.63], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.55, "kcal/mol", "+|-", 0.27), + S298=(-11.65, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CbCtCsH BOZZELLI =3D Cs/Cs2/Cb/H + (Cs/Cs2/Ct/H - Cs/Cs3/H)""", - longDesc = -""" + shortDesc="""Cs-CbCtCsH BOZZELLI =3D Cs/Cs2/Cb/H + (Cs/Cs2/Ct/H - Cs/Cs3/H)""", + longDesc=""" """, ) entry( - index = 432, - label = "Cs-CbCbCsH", - group = -""" + index=432, + label="Cs-CbCbCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.22,7.32,8.63,8.45,10.15,10.45,10.89],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.06,'kcal/mol','+|-',0.27), - S298 = (-12.23,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.22, 7.32, 8.63, 8.45, 10.15, 10.45, 10.89], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.06, "kcal/mol", "+|-", 0.27), + S298=(-12.23, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CbCbCsCs BOZZELLI =3D Cs/Cs2/Cb/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", - longDesc = -""" + shortDesc="""Cs-CbCbCsCs BOZZELLI =3D Cs/Cs2/Cb/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", + longDesc=""" """, ) entry( - index = 433, - label = "Cs-CdsCdsCdsH", - group = -""" + index=433, + label="Cs-CdsCdsCdsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 434, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)H", - group = -""" + index=434, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -15532,19 +14739,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-CsCsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 435, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)H", - group = -""" + index=435, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -15554,19 +14759,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 436, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H", - group = -""" + index=436, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -15576,19 +14779,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 437, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)H", - group = -""" + index=437, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -15598,19 +14799,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 438, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)H", - group = -""" + index=438, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -15621,19 +14820,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 439, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)H", - group = -""" + index=439, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -15644,19 +14841,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 440, - label = "Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)H", - group = -""" + index=440, + label="Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -15666,15 +14861,19 @@ 7 C u0 {4,D} 8 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([29.26,34.41,37.4,39.22,41.43,43.04,46.12],'J/(mol*K)','+|-',[3.34,3.34,3.34,3.34,3.34,3.34,3.34]), - H298 = (2.9,'kJ/mol','+|-',2.85), - S298 = (-53.2,'J/(mol*K)','+|-',3.9), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [29.26, 34.41, 37.4, 39.22, 41.43, 43.04, 46.12], + "J/(mol*K)", + "+|-", + [3.34, 3.34, 3.34, 3.34, 3.34, 3.34, 3.34], + ), + H298=(2.9, "kJ/mol", "+|-", 2.85), + S298=(-53.2, "J/(mol*K)", "+|-", 3.9), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -15682,10 +14881,9 @@ ) entry( - index = 441, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", - group = -""" + index=441, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -15695,19 +14893,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 442, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)H", - group = -""" + index=442, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -15717,19 +14913,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 443, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H", - group = -""" + index=443, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -15740,19 +14934,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 444, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)H", - group = -""" + index=444, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -15763,19 +14955,17 @@ 8 O2d u0 {3,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 445, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)H", - group = -""" + index=445, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -15785,19 +14975,17 @@ 7 Cdd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 446, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", - group = -""" + index=446, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -15809,19 +14997,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 447, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)H", - group = -""" + index=447, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -15833,19 +15019,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 448, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=448, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -15857,19 +15041,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 449, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)H", - group = -""" + index=449, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -15879,19 +15061,17 @@ 7 C u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 450, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", - group = -""" + index=450, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -15901,24 +15081,27 @@ 7 Cd u0 {3,D} 8 Cd u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.51,5.96,7.13,7.98,9.06,9.9,11.23],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (0.41,'kcal/mol','+|-',0.27), - S298 = (-11.82,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.51, 5.96, 7.13, 7.98, 9.06, 9.9, 11.23], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(0.41, "kcal/mol", "+|-", 0.27), + S298=(-11.82, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CdCdCdH RAMAN & GREEN JPC 2002""", - longDesc = -""" + shortDesc="""Cs-CdCdCdH RAMAN & GREEN JPC 2002""", + longDesc=""" """, ) entry( - index = 451, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)H", - group = -""" + index=451, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -15928,19 +15111,17 @@ 7 Cd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -15951,19 +15132,17 @@ 8 Cd u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 453, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)H", - group = -""" + index=453, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -15974,19 +15153,17 @@ 8 Cd u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 454, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)H", - group = -""" + index=454, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -15996,19 +15173,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 455, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", - group = -""" + index=455, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16020,19 +15195,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 456, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)H", - group = -""" + index=456, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16044,19 +15217,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-CdCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CdCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16068,19 +15239,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16092,19 +15261,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 457, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=457, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16116,19 +15283,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 458, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)H", - group = -""" + index=458, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16138,19 +15303,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 459, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", - group = -""" + index=459, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16163,19 +15326,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 460, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)H", - group = -""" + index=460, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16188,19 +15349,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 461, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=461, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16213,19 +15372,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-CdCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CdCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16238,19 +15395,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16263,19 +15418,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16288,19 +15441,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 462, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=462, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -16313,19 +15464,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2009, - label = "Cs-CdCd(CCO)H", - group = -""" + index=2009, + label="Cs-CdCd(CCO)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -16336,15 +15485,19 @@ 8 Cd u0 {4,D} 9 O2d u0 {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.62,35.4,39.24,41.25,43.4,44.87,47.43],'J/(mol*K)','+|-',[6.93,6.93,6.93,6.93,6.93,6.93,6.93]), - H298 = (-6.8,'kJ/mol','+|-',5.9), - S298 = (-55.37,'J/(mol*K)','+|-',8.08), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.62, 35.4, 39.24, 41.25, 43.4, 44.87, 47.43], + "J/(mol*K)", + "+|-", + [6.93, 6.93, 6.93, 6.93, 6.93, 6.93, 6.93], + ), + H298=(-6.8, "kJ/mol", "+|-", 5.9), + S298=(-55.37, "J/(mol*K)", "+|-", 8.08), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -16352,29 +15505,26 @@ ) entry( - index = 463, - label = "Cs-CtCdsCdsH", - group = -""" + index=463, + label="Cs-CtCdsCdsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 464, - label = "Cs-(Cds-O2d)(Cds-O2d)CtH", - group = -""" + index=464, + label="Cs-(Cds-O2d)(Cds-O2d)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -16383,19 +15533,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 465, - label = "Cs-(Cds-O2d)(Cds-Cd)CtH", - group = -""" + index=465, + label="Cs-(Cds-O2d)(Cds-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -16404,19 +15552,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 466, - label = "Cs-(Cds-O2d)(Cds-Cds)CtH", - group = -""" + index=466, + label="Cs-(Cds-O2d)(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -16425,19 +15571,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 467, - label = "Cs-(Cds-O2d)(Cds-Cdd)CtH", - group = -""" + index=467, + label="Cs-(Cds-O2d)(Cds-Cdd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -16446,19 +15590,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 468, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CtH", - group = -""" + index=468, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -16468,19 +15610,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 469, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CtH", - group = -""" + index=469, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -16490,19 +15630,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 470, - label = "Cs-(Cds-Cd)(Cds-Cd)CtH", - group = -""" + index=470, + label="Cs-(Cds-Cd)(Cds-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16511,19 +15649,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 471, - label = "Cs-(Cds-Cds)(Cds-Cds)CtH", - group = -""" + index=471, + label="Cs-(Cds-Cds)(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16532,24 +15668,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.68,7.85,8.62,9.16,9.81,10.42,10.49],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.88,'kcal/mol','+|-',0.27), - S298 = (-13.75,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.68, 7.85, 8.62, 9.16, 9.81, 10.42, 10.49], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.88, "kcal/mol", "+|-", 0.27), + S298=(-13.75, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCdCdH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCdCdH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 472, - label = "Cs-(Cds-Cdd)(Cds-Cds)CtH", - group = -""" + index=472, + label="Cs-(Cds-Cdd)(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16558,19 +15697,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 473, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CtH", - group = -""" + index=473, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -16580,19 +15717,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-CdCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CdCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CtH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -16602,19 +15737,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 474, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CtH", - group = -""" + index=474, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -16624,19 +15757,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 475, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CtH", - group = -""" + index=475, + label="Cs-(Cds-Cdd)(Cds-Cdd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16645,19 +15776,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 476, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtH", - group = -""" + index=476, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -16668,19 +15797,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 477, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtH", - group = -""" + index=477, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -16691,19 +15818,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -16714,19 +15839,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -16737,19 +15860,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 478, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtH", - group = -""" + index=478, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -16760,38 +15881,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 479, - label = "Cs-CbCdsCdsH", - group = -""" + index=479, + label="Cs-CbCdsCdsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 480, - label = "Cs-(Cds-O2d)(Cds-O2d)CbH", - group = -""" + index=480, + label="Cs-(Cds-O2d)(Cds-O2d)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -16800,19 +15917,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 481, - label = "Cs-(Cds-O2d)(Cds-Cd)CbH", - group = -""" + index=481, + label="Cs-(Cds-O2d)(Cds-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -16821,19 +15936,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 482, - label = "Cs-(Cds-O2d)(Cds-Cds)CbH", - group = -""" + index=482, + label="Cs-(Cds-O2d)(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -16842,19 +15955,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 483, - label = "Cs-(Cds-O2d)(Cds-Cdd)CbH", - group = -""" + index=483, + label="Cs-(Cds-O2d)(Cds-Cdd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -16863,19 +15974,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 484, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CbH", - group = -""" + index=484, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -16885,19 +15994,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 485, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CbH", - group = -""" + index=485, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -16907,19 +16014,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 486, - label = "Cs-(Cds-Cd)(Cds-Cd)CbH", - group = -""" + index=486, + label="Cs-(Cds-Cd)(Cds-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16928,19 +16033,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 487, - label = "Cs-(Cds-Cds)(Cds-Cds)CbH", - group = -""" + index=487, + label="Cs-(Cds-Cds)(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16949,24 +16052,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.12,6.51,8.24,9,10.03,10.53,10.89],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-1.39,'kcal/mol','+|-',0.27), - S298 = (-11.39,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.12, 6.51, 8.24, 9, 10.03, 10.53, 10.89], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-1.39, "kcal/mol", "+|-", 0.27), + S298=(-11.39, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CbCdCdH BOZZELLI =3D Cs/Cs/Cd2/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", - longDesc = -""" + shortDesc="""Cs-CbCdCdH BOZZELLI =3D Cs/Cs/Cd2/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", + longDesc=""" """, ) entry( - index = 488, - label = "Cs-(Cds-Cdd)(Cds-Cds)CbH", - group = -""" + index=488, + label="Cs-(Cds-Cdd)(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -16975,19 +16081,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 489, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CbH", - group = -""" + index=489, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -16997,19 +16101,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-CdCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CdCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CbH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -17019,19 +16121,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 490, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CbH", - group = -""" + index=490, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -17041,19 +16141,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 491, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CbH", - group = -""" + index=491, + label="Cs-(Cds-Cdd)(Cds-Cdd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -17062,19 +16160,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 492, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbH", - group = -""" + index=492, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -17085,19 +16181,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 493, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbH", - group = -""" + index=493, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -17108,19 +16202,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -17131,19 +16223,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -17154,19 +16244,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 494, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbH", - group = -""" + index=494, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -17177,38 +16265,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 495, - label = "Cs-CtCtCdsH", - group = -""" + index=495, + label="Cs-CtCtCdsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CtCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CtCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 496, - label = "Cs-CtCt(Cds-O2d)H", - group = -""" + index=496, + label="Cs-CtCt(Cds-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -17216,19 +16300,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 497, - label = "Cs-CtCt(Cds-Cd)H", - group = -""" + index=497, + label="Cs-CtCt(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -17236,19 +16318,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-CtCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CtCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 498, - label = "Cs-CtCt(Cds-Cds)H", - group = -""" + index=498, + label="Cs-CtCt(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -17256,24 +16336,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.58,5.68,7.11,8.12,9.27,10.13,9.44],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (4.73,'kcal/mol','+|-',0.27), - S298 = (-11.46,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.58, 5.68, 7.11, 8.12, 9.27, 10.13, 9.44], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(4.73, "kcal/mol", "+|-", 0.27), + S298=(-11.46, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCtCdH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCtCdH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 499, - label = "Cs-CtCt(Cds-Cdd)H", - group = -""" + index=499, + label="Cs-CtCt(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -17281,19 +16364,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-CtCt(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CtCt(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 500, - label = "Cs-CtCt(Cds-Cdd-O2d)H", - group = -""" + index=500, + label="Cs-CtCt(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17302,19 +16383,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-CdCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CdCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCt(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-CtCt(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17323,19 +16402,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 501, - label = "Cs-CtCt(Cds-Cdd-Cd)H", - group = -""" + index=501, + label="Cs-CtCt(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17344,38 +16421,34 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-CtCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CtCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 502, - label = "Cs-CbCtCdsH", - group = -""" + index=502, + label="Cs-CbCtCdsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CbCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 503, - label = "Cs-CbCt(Cds-O2d)H", - group = -""" + index=503, + label="Cs-CbCt(Cds-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17383,19 +16456,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 504, - label = "Cs-CbCt(Cds-Cd)H", - group = -""" + index=504, + label="Cs-CbCt(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17403,19 +16474,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-CbCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 505, - label = "Cs-CbCt(Cds-Cds)H", - group = -""" + index=505, + label="Cs-CbCt(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17423,19 +16492,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 506, - label = "Cs-CbCt(Cds-Cdd)H", - group = -""" + index=506, + label="Cs-CbCt(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17443,19 +16510,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-CbCt(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCt(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 507, - label = "Cs-CbCt(Cds-Cdd-O2d)H", - group = -""" + index=507, + label="Cs-CbCt(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17464,19 +16529,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCt(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-CbCt(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17485,19 +16548,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 508, - label = "Cs-CbCt(Cds-Cdd-Cd)H", - group = -""" + index=508, + label="Cs-CbCt(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17506,38 +16567,34 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-CbCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 509, - label = "Cs-CbCbCdsH", - group = -""" + index=509, + label="Cs-CbCbCdsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CbCb(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCb(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 510, - label = "Cs-CbCb(Cds-O2d)H", - group = -""" + index=510, + label="Cs-CbCb(Cds-O2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17545,19 +16602,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCb(Cds-Cd)H", - group = -""" + index=-1, + label="Cs-CbCb(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17565,19 +16620,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 511, - label = "Cs-CbCb(Cds-Cds)H", - group = -""" + index=511, + label="Cs-CbCb(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17585,19 +16638,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 512, - label = "Cs-CbCb(Cds-Cdd)H", - group = -""" + index=512, + label="Cs-CbCb(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -17605,19 +16656,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-CbCb(Cds-Cdd-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCb(Cds-Cdd-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 513, - label = "Cs-CbCb(Cds-Cdd-O2d)H", - group = -""" + index=513, + label="Cs-CbCb(Cds-Cdd-O2d)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17626,19 +16675,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-CdCd(CCO)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CdCd(CCO)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCb(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-CbCb(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17647,19 +16694,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 514, - label = "Cs-CbCb(Cds-Cdd-Cd)H", - group = -""" + index=514, + label="Cs-CbCb(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -17668,105 +16713,105 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-CbCb(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CbCb(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 515, - label = "Cs-CtCtCtH", - group = -""" + index=515, + label="Cs-CtCtCtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.03,5.27,6.78,7.88,9.14,10.08,8.47],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (10.11,'kcal/mol','+|-',0.27), - S298 = (-10.46,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.03, 5.27, 6.78, 7.88, 9.14, 10.08, 8.47], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(10.11, "kcal/mol", "+|-", 0.27), + S298=(-10.46, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCtCtH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", - longDesc = -""" + shortDesc="""Cs-CtCtCtH RAMAN & GREEN JPCA 2002, 106, 11141-11149""", + longDesc=""" """, ) entry( - index = 516, - label = "Cs-CbCtCtH", - group = -""" + index=516, + label="Cs-CbCtCtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CtCt(Cds-Cds)H', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CtCt(Cds-Cds)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 517, - label = "Cs-CbCbCtH", - group = -""" + index=517, + label="Cs-CbCbCtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 518, - label = "Cs-CbCbCbH", - group = -""" + index=518, + label="Cs-CbCbCbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.56,7.98,9.36,10.15,10.57,10.65,9.7],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-0.34,'kcal/mol','+|-',0.27), - S298 = (-12.31,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.56, 7.98, 9.36, 10.15, 10.57, 10.65, 9.7], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-0.34, "kcal/mol", "+|-", 0.27), + S298=(-12.31, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CbCbCbH BOZZELLI =3D Cs/Cs/Cb2/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", - longDesc = -""" + shortDesc="""Cs-CbCbCbH BOZZELLI =3D Cs/Cs/Cb2/H + (Cs/Cs2/Cb/H - Cs/Cs3/H)""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCbH", - group = -""" + index=-1, + label="Cs-C=SC=SCbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -17775,19 +16820,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)(Cds-Cd)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -17797,19 +16840,17 @@ 7 C u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cds)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -17819,19 +16860,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -17842,19 +16881,17 @@ 8 S2d u0 {3,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -17865,19 +16902,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -17887,19 +16922,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cdd)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -17909,19 +16942,17 @@ 7 Cdd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -17933,19 +16964,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -17957,19 +16986,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -17981,19 +17008,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CtH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18002,19 +17027,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CtH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18023,19 +17046,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CtH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -18045,19 +17066,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CtH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -18067,19 +17086,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CtH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18088,19 +17105,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCtH", - group = -""" + index=-1, + label="Cs-C=SC=SCtH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -18109,19 +17124,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtCsH", - group = -""" + index=-1, + label="Cs-C=SCtCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -18129,19 +17142,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCsH", - group = -""" + index=-1, + label="Cs-C=SC=SCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -18150,19 +17161,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CbH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18171,19 +17180,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CbH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18192,19 +17199,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CbH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18213,19 +17218,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CbH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -18235,19 +17238,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CbH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CbH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -18257,19 +17258,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18278,19 +17277,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18299,19 +17296,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18320,19 +17315,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -18342,19 +17335,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -18364,19 +17355,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCtC=SH", - group = -""" + index=-1, + label="Cs-CbCtC=SH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -18384,19 +17373,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=SH", - group = -""" + index=-1, + label="Cs-C=SC=SC=SH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -18406,19 +17393,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1178, - label = "Cs-C=SCsCsH", - group = -""" + index=1178, + label="Cs-C=SCsCsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -18426,24 +17411,22 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.78,6.25,7.44,8.35,9.57,10.31,11.2],'cal/(mol*K)'), - H298 = (-0.78,'kcal/mol'), - S298 = (-11.46,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.78, 6.25, 7.44, 8.35, 9.57, 10.31, 11.2], "cal/(mol*K)"), + H298=(-0.78, "kcal/mol"), + S298=(-11.46, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCtC=SH", - group = -""" + index=-1, + label="Cs-CtCtC=SH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -18451,19 +17434,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbC=SH", - group = -""" + index=-1, + label="Cs-CbCbC=SH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -18471,19 +17452,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cd)H", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -18493,19 +17472,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cds)H", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cds)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -18515,19 +17492,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)H", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -18537,19 +17512,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)H", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -18560,19 +17533,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)H", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)H", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -18583,81 +17554,78 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 519, - label = "Cs-CCCC", - group = -""" + index=519, + label="Cs-CCCC", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 C u0 {1,S} """, - thermo = 'Cs-CsCsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 520, - label = "Cs-CsCsCsCs", - group = -""" + index=520, + label="Cs-CsCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,6.13,7.36,8.12,8.77,8.76,8.12],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (0.5,'kcal/mol','+|-',0.27), - S298 = (-35.1,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 6.13, 7.36, 8.12, 8.77, 8.76, 8.12], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(0.5, "kcal/mol", "+|-", 0.27), + S298=(-35.1, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CsCsCsCs BENSON""", - longDesc = -""" + shortDesc="""Cs-CsCsCsCs BENSON""", + longDesc=""" """, ) entry( - index = 521, - label = "Cs-CdsCsCsCs", - group = -""" + index=521, + label="Cs-CdsCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 522, - label = "Cs-(Cds-O2d)CsCsCs", - group = -""" + index=522, + label="Cs-(Cds-O2d)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -18665,15 +17633,19 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([22.68,27.48,30.12,31.51,32.36,32.39,32.42],'J/(mol*K)','+|-',[3.34,3.34,3.34,3.34,3.34,3.34,3.34]), - H298 = (4.6,'kJ/mol','+|-',2.85), - S298 = (-140.94,'J/(mol*K)','+|-',3.9), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [22.68, 27.48, 30.12, 31.51, 32.36, 32.39, 32.42], + "J/(mol*K)", + "+|-", + [3.34, 3.34, 3.34, 3.34, 3.34, 3.34, 3.34], + ), + H298=(4.6, "kJ/mol", "+|-", 2.85), + S298=(-140.94, "J/(mol*K)", "+|-", 3.9), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -18681,10 +17653,9 @@ ) entry( - index = 523, - label = "Cs-(Cds-Cd)CsCsCs", - group = -""" + index=523, + label="Cs-(Cds-Cd)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -18692,19 +17663,17 @@ 5 Cs u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 524, - label = "Cs-(Cds-Cds)CsCsCs", - group = -""" + index=524, + label="Cs-(Cds-Cds)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -18712,24 +17681,27 @@ 5 Cs u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,6.04,7.43,8.26,8.92,8.96,8.23],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.68,'kcal/mol','+|-',0.27), - S298 = (-34.72,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 6.04, 7.43, 8.26, 8.92, 8.96, 8.23], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.68, "kcal/mol", "+|-", 0.27), + S298=(-34.72, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CdCsCsCs BENSON""", - longDesc = -""" + shortDesc="""Cs-CdCsCsCs BENSON""", + longDesc=""" """, ) entry( - index = 525, - label = "Cs-(Cds-Cdd)CsCsCs", - group = -""" + index=525, + label="Cs-(Cds-Cdd)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -18737,19 +17709,17 @@ 5 Cs u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 526, - label = "Cs-(Cds-Cdd-O2d)CsCsCs", - group = -""" + index=526, + label="Cs-(Cds-Cdd-O2d)CsCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -18758,15 +17728,19 @@ 6 Cs u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([20.63,27.65,31.98,34.41,36.16,36.25,35.2],'J/(mol*K)','+|-',[6.93,6.93,6.93,6.93,6.93,6.93,6.93]), - H298 = (-4.5,'kJ/mol','+|-',5.9), - S298 = (-144.08,'J/(mol*K)','+|-',8.08), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [20.63, 27.65, 31.98, 34.41, 36.16, 36.25, 35.2], + "J/(mol*K)", + "+|-", + [6.93, 6.93, 6.93, 6.93, 6.93, 6.93, 6.93], + ), + H298=(-4.5, "kJ/mol", "+|-", 5.9), + S298=(-144.08, "J/(mol*K)", "+|-", 8.08), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -18774,10 +17748,9 @@ ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CsCsCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CsCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -18786,19 +17759,17 @@ 6 Cs u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 527, - label = "Cs-(Cds-Cdd-Cd)CsCsCs", - group = -""" + index=527, + label="Cs-(Cds-Cdd-Cd)CsCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -18807,19 +17778,17 @@ 6 Cs u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1866, - label = "Cs-(CdN3d)CsCsCs", - group = -""" + index=1866, + label="Cs-(CdN3d)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} {7,S} 3 Cs u0 {1,S} @@ -18828,48 +17797,54 @@ 6 N3d u0 {2,D} 7 R u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.3,6.6,7.3,7.5,7.8,7.8,7.7],'cal/(mol*K)','+|-',[1.2,1.2,1.2,1.2,1.2,1.2,1.2]), - H298 = (0.6,'kcal/mol','+|-',1.7), - S298 = (-33.5,'cal/(mol*K)','+|-',1.6), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.3, 6.6, 7.3, 7.5, 7.8, 7.8, 7.7], + "cal/(mol*K)", + "+|-", + [1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2], + ), + H298=(0.6, "kcal/mol", "+|-", 1.7), + S298=(-33.5, "cal/(mol*K)", "+|-", 1.6), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 528, - label = "Cs-CtCsCsCs", - group = -""" + index=528, + label="Cs-CtCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,6.79,8.09,8.78,9.19,8.96,7.63],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (2.81,'kcal/mol','+|-',0.27), - S298 = (-35.18,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 6.79, 8.09, 8.78, 9.19, 8.96, 7.63], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(2.81, "kcal/mol", "+|-", 0.27), + S298=(-35.18, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """Cs-CtCsCsCs BENSON""", - longDesc = -""" + shortDesc="""Cs-CtCsCsCs BENSON""", + longDesc=""" """, ) entry( - index = 1834, - label = "Cs-(CtN3t)CsCsCs", - group = -""" + index=1834, + label="Cs-(CtN3t)CsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} {6,T} 3 Cs u0 {1,S} @@ -18877,67 +17852,71 @@ 5 Cs u0 {1,S} 6 N3t u0 {2,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.4,13.4,14.6,15.3,16.3,16.7,17.2],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (28.3,'kcal/mol','+|-',1.3), - S298 = (-3,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.4, 13.4, 14.6, 15.3, 16.3, 16.7, 17.2], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(28.3, "kcal/mol", "+|-", 1.3), + S298=(-3, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 529, - label = "Cs-CbCsCsCs", - group = -""" + index=529, + label="Cs-CbCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,6.79,8.09,8.78,9.19,8.96,7.63],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (2.81,'kcal/mol','+|-',0.26), - S298 = (-35.18,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 6.79, 8.09, 8.78, 9.19, 8.96, 7.63], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(2.81, "kcal/mol", "+|-", 0.26), + S298=(-35.18, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCsCsCs BENSON""", - longDesc = -""" + shortDesc="""Cs-CbCsCsCs BENSON""", + longDesc=""" """, ) entry( - index = 530, - label = "Cs-CdsCdsCsCs", - group = -""" + index=530, + label="Cs-CdsCdsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 531, - label = "Cs-(Cds-O2d)(Cds-O2d)CsCs", - group = -""" + index=531, + label="Cs-(Cds-O2d)(Cds-O2d)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -18946,15 +17925,19 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([33.76,33.42,32.6,31.91,31.01,30.55,30.35],'J/(mol*K)','+|-',[5.08,5.08,5.08,5.08,5.08,5.08,5.08]), - H298 = (14.9,'kJ/mol','+|-',4.33), - S298 = (-146.69,'J/(mol*K)','+|-',5.92), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [33.76, 33.42, 32.6, 31.91, 31.01, 30.55, 30.35], + "J/(mol*K)", + "+|-", + [5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08], + ), + H298=(14.9, "kJ/mol", "+|-", 4.33), + S298=(-146.69, "J/(mol*K)", "+|-", 5.92), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -18962,10 +17945,9 @@ ) entry( - index = 532, - label = "Cs-(Cds-O2d)(Cds-Cd)CsCs", - group = -""" + index=532, + label="Cs-(Cds-O2d)(Cds-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -18974,15 +17956,19 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([26.01,30.13,32.44,33.51,33.75,33.26,32.55],'J/(mol*K)','+|-',[3.34,3.34,3.34,3.34,3.34,3.34,3.34]), - H298 = (9.8,'kJ/mol','+|-',2.85), - S298 = (-146.74,'J/(mol*K)','+|-',3.9), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [26.01, 30.13, 32.44, 33.51, 33.75, 33.26, 32.55], + "J/(mol*K)", + "+|-", + [3.34, 3.34, 3.34, 3.34, 3.34, 3.34, 3.34], + ), + H298=(9.8, "kJ/mol", "+|-", 2.85), + S298=(-146.74, "J/(mol*K)", "+|-", 3.9), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -18990,10 +17976,9 @@ ) entry( - index = 533, - label = "Cs-(Cds-O2d)(Cds-Cds)CsCs", - group = -""" + index=533, + label="Cs-(Cds-O2d)(Cds-Cds)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -19002,19 +17987,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 534, - label = "Cs-(Cds-O2d)(Cds-Cdd)CsCs", - group = -""" + index=534, + label="Cs-(Cds-O2d)(Cds-Cdd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -19023,19 +18006,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 535, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CsCs", - group = -""" + index=535, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -19045,19 +18026,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 536, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CsCs", - group = -""" + index=536, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -19067,19 +18046,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 537, - label = "Cs-(Cds-Cd)(Cds-Cd)CsCs", - group = -""" + index=537, + label="Cs-(Cds-Cd)(Cds-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -19088,19 +18065,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 538, - label = "Cs-(Cds-Cds)(Cds-Cds)CsCs", - group = -""" + index=538, + label="Cs-(Cds-Cds)(Cds-Cds)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -19109,24 +18084,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,6.04,7.43,8.26,8.92,8.96,8.23],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.68,'kcal/mol','+|-',0.26), - S298 = (-34.72,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 6.04, 7.43, 8.26, 8.92, 8.96, 8.23], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.68, "kcal/mol", "+|-", 0.26), + S298=(-34.72, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CdCdCsCs BENSON""", - longDesc = -""" + shortDesc="""Cs-CdCdCsCs BENSON""", + longDesc=""" """, ) entry( - index = 539, - label = "Cs-(Cds-Cdd)(Cds-Cds)CsCs", - group = -""" + index=539, + label="Cs-(Cds-Cdd)(Cds-Cds)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -19135,19 +18113,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CsCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -19157,19 +18133,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 541, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CsCs", - group = -""" + index=541, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -19179,19 +18153,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 542, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CsCs", - group = -""" + index=542, + label="Cs-(Cds-Cdd)(Cds-Cdd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -19200,19 +18172,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 543, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs", - group = -""" + index=543, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -19223,24 +18193,27 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.73,8.1,9.02,9.53,9.66,9.52,8.93],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (-2.987,'kcal/mol','+|-',0.26), - S298 = (-36.46,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [6.73, 8.1, 9.02, 9.53, 9.66, 9.52, 8.93], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(-2.987, "kcal/mol", "+|-", 0.26), + S298=(-36.46, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """{C/C2/CCO2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{C/C2/CCO2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 544, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CsCs", - group = -""" + index=544, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -19251,19 +18224,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-CsCsCd(CCO)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCd(CCO)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CsCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -19274,19 +18245,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CsCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -19297,19 +18266,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 545, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsCs", - group = -""" + index=545, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -19320,19 +18287,17 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2007, - label = "Cs-CsCsCd(CCO)", - group = -""" + index=2007, + label="Cs-CsCsCd(CCO)", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -19342,15 +18307,19 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.48,31.89,35.19,36.68,37.19,36.66,34.96],'J/(mol*K)','+|-',[6.93,6.93,6.93,6.93,6.93,6.93,6.93]), - H298 = (2.9,'kJ/mol','+|-',5.9), - S298 = (-144.6,'J/(mol*K)','+|-',8.08), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [25.48, 31.89, 35.19, 36.68, 37.19, 36.66, 34.96], + "J/(mol*K)", + "+|-", + [6.93, 6.93, 6.93, 6.93, 6.93, 6.93, 6.93], + ), + H298=(2.9, "kJ/mol", "+|-", 5.9), + S298=(-144.6, "J/(mol*K)", "+|-", 8.08), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -19358,29 +18327,26 @@ ) entry( - index = 546, - label = "Cs-CtCdsCsCs", - group = -""" + index=546, + label="Cs-CtCdsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 547, - label = "Cs-(Cds-O2d)CtCsCs", - group = -""" + index=547, + label="Cs-(Cds-O2d)CtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -19388,19 +18354,17 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 548, - label = "Cs-(Cds-Cd)CtCsCs", - group = -""" + index=548, + label="Cs-(Cds-Cd)CtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -19408,19 +18372,17 @@ 5 Cs u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 549, - label = "Cs-(Cds-Cds)CtCsCs", - group = -""" + index=549, + label="Cs-(Cds-Cds)CtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -19428,24 +18390,27 @@ 5 Cs u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,6.7,8.16,8.92,9.34,9.16,7.14],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (2.99,'kcal/mol','+|-',0.26), - S298 = (-34.8,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 6.7, 8.16, 8.92, 9.34, 9.16, 7.14], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(2.99, "kcal/mol", "+|-", 0.26), + S298=(-34.8, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CtCdCsCs BOZZELLI =3D Cs/Cs3/Cd + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CtCdCsCs BOZZELLI =3D Cs/Cs3/Cd + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 550, - label = "Cs-(Cds-Cdd)CtCsCs", - group = -""" + index=550, + label="Cs-(Cds-Cdd)CtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -19453,19 +18418,17 @@ 5 Cs u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 551, - label = "Cs-(Cds-Cdd-O2d)CtCsCs", - group = -""" + index=551, + label="Cs-(Cds-Cdd-O2d)CtCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -19474,19 +18437,17 @@ 6 Cs u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCsCd(CCO)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCd(CCO)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtCsCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -19495,19 +18456,17 @@ 6 Cs u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 552, - label = "Cs-(Cds-Cdd-Cd)CtCsCs", - group = -""" + index=552, + label="Cs-(Cds-Cdd-Cd)CtCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -19516,38 +18475,34 @@ 6 Cs u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 553, - label = "Cs-CbCdsCsCs", - group = -""" + index=553, + label="Cs-CbCdsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 554, - label = "Cs-(Cds-O2d)CbCsCs", - group = -""" + index=554, + label="Cs-(Cds-O2d)CbCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -19555,19 +18510,17 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 555, - label = "Cs-(Cds-Cd)CbCsCs", - group = -""" + index=555, + label="Cs-(Cds-Cd)CbCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -19575,19 +18528,17 @@ 5 Cs u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 556, - label = "Cs-(Cds-Cds)CbCsCs", - group = -""" + index=556, + label="Cs-(Cds-Cds)CbCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -19595,24 +18546,27 @@ 5 Cs u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,6.7,8.16,8.92,9.34,9.16,7.14],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (2.99,'kcal/mol','+|-',0.26), - S298 = (-34.8,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 6.7, 8.16, 8.92, 9.34, 9.16, 7.14], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(2.99, "kcal/mol", "+|-", 0.26), + S298=(-34.8, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCdCsCs BOZZELLI =3D Cs/Cs3/Cb + (Cs/Cs3/Cd - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCdCsCs BOZZELLI =3D Cs/Cs3/Cb + (Cs/Cs3/Cd - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 557, - label = "Cs-(Cds-Cdd)CbCsCs", - group = -""" + index=557, + label="Cs-(Cds-Cdd)CbCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -19620,19 +18574,17 @@ 5 Cs u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 558, - label = "Cs-(Cds-Cdd-O2d)CbCsCs", - group = -""" + index=558, + label="Cs-(Cds-Cdd-O2d)CbCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -19641,19 +18593,17 @@ 6 Cs u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCsCd(CCO)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCd(CCO)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCsCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -19662,19 +18612,17 @@ 6 Cs u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 559, - label = "Cs-(Cds-Cdd-Cd)CbCsCs", - group = -""" + index=559, + label="Cs-(Cds-Cdd-Cd)CbCsCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -19683,43 +18631,44 @@ 6 Cs u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 560, - label = "Cs-CtCtCsCs", - group = -""" + index=560, + label="Cs-CtCtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.57,5.98,7.51,8.37,9,9.02,8.34],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.16,'kcal/mol','+|-',0.26), - S298 = (-35.26,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.57, 5.98, 7.51, 8.37, 9, 9.02, 8.34], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.16, "kcal/mol", "+|-", 0.26), + S298=(-35.26, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CtCtCsCs BOZZELLI =3D Cs/Cs3/Ct + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CtCtCsCs BOZZELLI =3D Cs/Cs3/Ct + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 1835, - label = "Cs-(CtN3t)(CtN3t)CsCs", - group = -""" + index=1835, + label="Cs-(CtN3t)(CtN3t)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} {6,T} 3 Ct u0 {1,S} {7,T} @@ -19728,91 +18677,93 @@ 6 N3t u0 {2,T} 7 N3t u0 {3,T} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (28.4,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(28.4, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 561, - label = "Cs-CbCtCsCs", - group = -""" + index=561, + label="Cs-CbCtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.57,5.98,7.51,8.37,9,9.02,8.34],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.16,'kcal/mol','+|-',0.26), - S298 = (-35.26,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.57, 5.98, 7.51, 8.37, 9, 9.02, 8.34], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.16, "kcal/mol", "+|-", 0.26), + S298=(-35.26, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCtCsCs BOZZELLI =3D Cs/Cs3/Cb + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCtCsCs BOZZELLI =3D Cs/Cs3/Cb + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 562, - label = "Cs-CbCbCsCs", - group = -""" + index=562, + label="Cs-CbCbCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.57,5.98,7.51,8.37,9,9.02,8.34],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (1.16,'kcal/mol','+|-',0.26), - S298 = (-35.26,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.57, 5.98, 7.51, 8.37, 9, 9.02, 8.34], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(1.16, "kcal/mol", "+|-", 0.26), + S298=(-35.26, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCbCsCs BENSON""", - longDesc = -""" + shortDesc="""Cs-CbCbCsCs BENSON""", + longDesc=""" """, ) entry( - index = 563, - label = "Cs-CdsCdsCdsCs", - group = -""" + index=563, + label="Cs-CdsCdsCdsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 564, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Cs", - group = -""" + index=564, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -19822,19 +18773,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-CsCsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 565, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)Cs", - group = -""" + index=565, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -19844,15 +18793,19 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([35.99,39.53,39.94,39.09,36.71,34.8,32.51],'J/(mol*K)','+|-',[5.08,5.08,5.08,5.08,5.08,5.08,5.08]), - H298 = (19.9,'kJ/mol','+|-',4.33), - S298 = (-150.69,'J/(mol*K)','+|-',5.92), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [35.99, 39.53, 39.94, 39.09, 36.71, 34.8, 32.51], + "J/(mol*K)", + "+|-", + [5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08], + ), + H298=(19.9, "kJ/mol", "+|-", 4.33), + S298=(-150.69, "J/(mol*K)", "+|-", 5.92), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -19860,10 +18813,9 @@ ) entry( - index = 566, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs", - group = -""" + index=566, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -19873,19 +18825,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 567, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)Cs", - group = -""" + index=567, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -19895,19 +18845,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 568, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Cs", - group = -""" + index=568, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -19918,19 +18866,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 569, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=569, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -19941,19 +18887,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 570, - label = "Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)Cs", - group = -""" + index=570, + label="Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -19963,19 +18907,17 @@ 7 C u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 571, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", - group = -""" + index=571, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -19985,19 +18927,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 572, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)Cs", - group = -""" + index=572, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -20007,19 +18947,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 573, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs", - group = -""" + index=573, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -20030,19 +18968,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 574, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cs", - group = -""" + index=574, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -20053,19 +18989,17 @@ 8 O2d u0 {3,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 575, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)Cs", - group = -""" + index=575, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -20075,19 +19009,17 @@ 7 Cdd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 576, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", - group = -""" + index=576, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20099,19 +19031,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 577, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=577, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20123,19 +19053,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 578, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=578, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20147,19 +19075,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 579, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)Cs", - group = -""" + index=579, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20169,19 +19095,17 @@ 7 C u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 580, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", - group = -""" + index=580, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20191,24 +19115,27 @@ 7 Cd u0 {3,D} 8 Cd u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.32,5.86,7.57,8.54,9.22,9.36,8.45],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (2.54,'kcal/mol','+|-',0.26), - S298 = (-33.96,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.32, 5.86, 7.57, 8.54, 9.22, 9.36, 8.45], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(2.54, "kcal/mol", "+|-", 0.26), + S298=(-33.96, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CdCdCdCs BOZZELLI =3D Cs/Cs2/Cd2 + (Cs/Cs3/Cd - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CdCdCdCs BOZZELLI =3D Cs/Cs2/Cd2 + (Cs/Cs3/Cd - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 581, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Cs", - group = -""" + index=581, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20218,19 +19145,17 @@ 7 Cd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 582, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", - group = -""" + index=582, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -20241,19 +19166,17 @@ 8 Cd u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -20264,19 +19187,17 @@ 8 Cd u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 583, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cs", - group = -""" + index=583, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -20287,19 +19208,17 @@ 8 Cd u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 584, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)Cs", - group = -""" + index=584, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20309,19 +19228,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 585, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", - group = -""" + index=585, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20333,19 +19250,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 586, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=586, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20357,19 +19272,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20381,19 +19294,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20405,19 +19316,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 587, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=587, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20429,19 +19338,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 588, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)Cs", - group = -""" + index=588, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20451,19 +19358,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 589, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", - group = -""" + index=589, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20476,19 +19381,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 590, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=590, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20501,19 +19404,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 591, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=591, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20526,19 +19427,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20551,19 +19450,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20576,19 +19473,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20601,19 +19496,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 592, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=592, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -20626,38 +19519,34 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 593, - label = "Cs-CtCdsCdsCs", - group = -""" + index=593, + label="Cs-CtCdsCdsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 594, - label = "Cs-(Cds-O2d)(Cds-O2d)CtCs", - group = -""" + index=594, + label="Cs-(Cds-O2d)(Cds-O2d)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -20666,19 +19555,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 595, - label = "Cs-(Cds-O2d)(Cds-Cd)CtCs", - group = -""" + index=595, + label="Cs-(Cds-O2d)(Cds-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -20687,19 +19574,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 596, - label = "Cs-(Cds-O2d)(Cds-Cds)CtCs", - group = -""" + index=596, + label="Cs-(Cds-O2d)(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -20708,19 +19593,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 597, - label = "Cs-(Cds-O2d)(Cds-Cdd)CtCs", - group = -""" + index=597, + label="Cs-(Cds-O2d)(Cds-Cdd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -20729,19 +19612,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 598, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CtCs", - group = -""" + index=598, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -20751,19 +19632,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 599, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCs", - group = -""" + index=599, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -20773,19 +19652,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 600, - label = "Cs-(Cds-Cd)(Cds-Cd)CtCs", - group = -""" + index=600, + label="Cs-(Cds-Cd)(Cds-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20794,19 +19671,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 601, - label = "Cs-(Cds-Cds)(Cds-Cds)CtCs", - group = -""" + index=601, + label="Cs-(Cds-Cds)(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20815,19 +19690,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 602, - label = "Cs-(Cds-Cdd)(Cds-Cds)CtCs", - group = -""" + index=602, + label="Cs-(Cds-Cdd)(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20836,19 +19709,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 603, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCs", - group = -""" + index=603, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -20858,19 +19729,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CtCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -20880,19 +19749,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 604, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCs", - group = -""" + index=604, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -20902,19 +19769,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 605, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CtCs", - group = -""" + index=605, + label="Cs-(Cds-Cdd)(Cds-Cdd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -20923,19 +19788,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 606, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtCs", - group = -""" + index=606, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -20946,19 +19809,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 607, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtCs", - group = -""" + index=607, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -20969,19 +19830,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -20992,19 +19851,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21015,19 +19872,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 608, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCs", - group = -""" + index=608, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21038,38 +19893,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 609, - label = "Cs-CbCdsCdsCs", - group = -""" + index=609, + label="Cs-CbCdsCdsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 610, - label = "Cs-(Cds-O2d)(Cds-O2d)CbCs", - group = -""" + index=610, + label="Cs-(Cds-O2d)(Cds-O2d)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -21078,19 +19929,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 611, - label = "Cs-(Cds-O2d)(Cds-Cd)CbCs", - group = -""" + index=611, + label="Cs-(Cds-O2d)(Cds-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -21099,19 +19948,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 612, - label = "Cs-(Cds-O2d)(Cds-Cds)CbCs", - group = -""" + index=612, + label="Cs-(Cds-O2d)(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -21120,19 +19967,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 613, - label = "Cs-(Cds-O2d)(Cds-Cdd)CbCs", - group = -""" + index=613, + label="Cs-(Cds-O2d)(Cds-Cdd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -21141,19 +19986,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 614, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CbCs", - group = -""" + index=614, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -21163,19 +20006,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 615, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCs", - group = -""" + index=615, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -21185,19 +20026,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 616, - label = "Cs-(Cds-Cd)(Cds-Cd)CbCs", - group = -""" + index=616, + label="Cs-(Cds-Cd)(Cds-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -21206,19 +20045,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 617, - label = "Cs-(Cds-Cds)(Cds-Cds)CbCs", - group = -""" + index=617, + label="Cs-(Cds-Cds)(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -21227,19 +20064,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 618, - label = "Cs-(Cds-Cdd)(Cds-Cds)CbCs", - group = -""" + index=618, + label="Cs-(Cds-Cdd)(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -21248,19 +20083,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 619, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCs", - group = -""" + index=619, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -21270,19 +20103,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CbCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -21292,19 +20123,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 620, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCs", - group = -""" + index=620, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -21314,19 +20143,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 621, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CbCs", - group = -""" + index=621, + label="Cs-(Cds-Cdd)(Cds-Cdd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -21335,19 +20162,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 622, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbCs", - group = -""" + index=622, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21358,19 +20183,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 623, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbCs", - group = -""" + index=623, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21381,19 +20204,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21404,19 +20225,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21427,19 +20246,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 624, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCs", - group = -""" + index=624, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -21450,38 +20267,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 625, - label = "Cs-CtCtCdsCs", - group = -""" + index=625, + label="Cs-CtCtCdsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 626, - label = "Cs-(Cds-O2d)CtCtCs", - group = -""" + index=626, + label="Cs-(Cds-O2d)CtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -21489,19 +20302,17 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 627, - label = "Cs-(Cds-Cd)CtCtCs", - group = -""" + index=627, + label="Cs-(Cds-Cd)CtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -21509,19 +20320,17 @@ 5 Cs u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 628, - label = "Cs-(Cds-Cds)CtCtCs", - group = -""" + index=628, + label="Cs-(Cds-Cds)CtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -21529,24 +20338,27 @@ 5 Cs u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,7.36,8.89,9.58,9.76,9.16,7.25],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.1,'kcal/mol','+|-',0.26), - S298 = (-34.88,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 7.36, 8.89, 9.58, 9.76, 9.16, 7.25], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.1, "kcal/mol", "+|-", 0.26), + S298=(-34.88, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CtCtCdCs BOZZELLI =3D Cs/Cd2/Cs2 + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CtCtCdCs BOZZELLI =3D Cs/Cd2/Cs2 + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 629, - label = "Cs-(Cds-Cdd)CtCtCs", - group = -""" + index=629, + label="Cs-(Cds-Cdd)CtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -21554,19 +20366,17 @@ 5 Cs u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 630, - label = "Cs-(Cds-Cdd-O2d)CtCtCs", - group = -""" + index=630, + label="Cs-(Cds-Cdd-O2d)CtCtCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21575,19 +20385,17 @@ 6 Cs u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtCtCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtCtCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21596,19 +20404,17 @@ 6 Cs u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 631, - label = "Cs-(Cds-Cdd-Cd)CtCtCs", - group = -""" + index=631, + label="Cs-(Cds-Cdd-Cd)CtCtCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21617,38 +20423,34 @@ 6 Cs u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 632, - label = "Cs-CbCtCdsCs", - group = -""" + index=632, + label="Cs-CbCtCdsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 633, - label = "Cs-(Cds-O2d)CbCtCs", - group = -""" + index=633, + label="Cs-(Cds-O2d)CbCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21656,19 +20458,17 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 634, - label = "Cs-(Cds-Cd)CbCtCs", - group = -""" + index=634, + label="Cs-(Cds-Cd)CbCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21676,19 +20476,17 @@ 5 Cs u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 635, - label = "Cs-(Cds-Cds)CbCtCs", - group = -""" + index=635, + label="Cs-(Cds-Cds)CbCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21696,24 +20494,27 @@ 5 Cs u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,7.36,8.89,9.58,9.76,9.16,7.25],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.1,'kcal/mol','+|-',0.26), - S298 = (-34.88,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 7.36, 8.89, 9.58, 9.76, 9.16, 7.25], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.1, "kcal/mol", "+|-", 0.26), + S298=(-34.88, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCtCdCs BOZZELLI =3D Cs/Cb/Cd/Cs2 + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCtCdCs BOZZELLI =3D Cs/Cb/Cd/Cs2 + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 636, - label = "Cs-(Cds-Cdd)CbCtCs", - group = -""" + index=636, + label="Cs-(Cds-Cdd)CbCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21721,19 +20522,17 @@ 5 Cs u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 637, - label = "Cs-(Cds-Cdd-O2d)CbCtCs", - group = -""" + index=637, + label="Cs-(Cds-Cdd-O2d)CbCtCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21742,19 +20541,17 @@ 6 Cs u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCtCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCtCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21763,19 +20560,17 @@ 6 Cs u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 638, - label = "Cs-(Cds-Cdd-Cd)CbCtCs", - group = -""" + index=638, + label="Cs-(Cds-Cdd-Cd)CbCtCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21784,43 +20579,44 @@ 6 Cs u0 {1,S} 7 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,7.36,8.89,9.58,9.76,9.16,7.25],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.1,'kcal/mol','+|-',0.26), - S298 = (-34.88,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 7.36, 8.89, 9.58, 9.76, 9.16, 7.25], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.1, "kcal/mol", "+|-", 0.26), + S298=(-34.88, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCtCdCs BOZZELLI =3D Cs/Cb/Cd/Cs2 + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCtCdCs BOZZELLI =3D Cs/Cb/Cd/Cs2 + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 639, - label = "Cs-CbCbCdsCs", - group = -""" + index=639, + label="Cs-CbCbCdsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 640, - label = "Cs-(Cds-O2d)CbCbCs", - group = -""" + index=640, + label="Cs-(Cds-O2d)CbCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21828,19 +20624,17 @@ 5 Cs u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 641, - label = "Cs-(Cds-Cd)CbCbCs", - group = -""" + index=641, + label="Cs-(Cds-Cd)CbCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21848,19 +20642,17 @@ 5 Cs u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 642, - label = "Cs-(Cds-Cds)CbCbCs", - group = -""" + index=642, + label="Cs-(Cds-Cds)CbCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21868,24 +20660,27 @@ 5 Cs u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.99,7.36,8.89,9.58,9.76,9.16,7.25],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.1,'kcal/mol','+|-',0.26), - S298 = (-34.88,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.99, 7.36, 8.89, 9.58, 9.76, 9.16, 7.25], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.1, "kcal/mol", "+|-", 0.26), + S298=(-34.88, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCbCdCs BOZZELLI =3D Cs/Cs2/Cb2 + (Cs/Cs3/Cd - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCbCdCs BOZZELLI =3D Cs/Cs2/Cb2 + (Cs/Cs3/Cd - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 643, - label = "Cs-(Cds-Cdd)CbCbCs", - group = -""" + index=643, + label="Cs-(Cds-Cdd)CbCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -21893,19 +20688,17 @@ 5 Cs u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 644, - label = "Cs-(Cds-Cdd-O2d)CbCbCs", - group = -""" + index=644, + label="Cs-(Cds-Cdd-O2d)CbCbCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21914,19 +20707,17 @@ 6 Cs u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCbCs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCbCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21935,19 +20726,17 @@ 6 Cs u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 645, - label = "Cs-(Cds-Cdd-Cd)CbCbCs", - group = -""" + index=645, + label="Cs-(Cds-Cdd-Cd)CbCbCs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -21956,134 +20745,142 @@ 6 Cs u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCbCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 646, - label = "Cs-CtCtCtCs", - group = -""" + index=646, + label="Cs-CtCtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,8.11,9.55,10.1,10.03,9.36,6.65],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (6.23,'kcal/mol','+|-',0.26), - S298 = (-35.34,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 8.11, 9.55, 10.1, 10.03, 9.36, 6.65], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(6.23, "kcal/mol", "+|-", 0.26), + S298=(-35.34, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CtCtCtCs BOZZELLI =3D Cs/Cs2/Ct2 + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CtCtCtCs BOZZELLI =3D Cs/Cs2/Ct2 + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 647, - label = "Cs-CbCtCtCs", - group = -""" + index=647, + label="Cs-CbCtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,8.11,9.55,10.1,10.03,9.36,6.65],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (6.23,'kcal/mol','+|-',0.26), - S298 = (-35.34,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 8.11, 9.55, 10.1, 10.03, 9.36, 6.65], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(6.23, "kcal/mol", "+|-", 0.26), + S298=(-35.34, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCtCtCs BOZZELLI =3D Cs/Cs2/Cb/Ct + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCtCtCs BOZZELLI =3D Cs/Cs2/Cb/Ct + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 648, - label = "Cs-CbCbCtCs", - group = -""" + index=648, + label="Cs-CbCbCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,8.11,9.55,10.1,10.03,9.36,6.65],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (6.43,'kcal/mol','+|-',0.26), - S298 = (-35.34,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 8.11, 9.55, 10.1, 10.03, 9.36, 6.65], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(6.43, "kcal/mol", "+|-", 0.26), + S298=(-35.34, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCbCtCs BOZZELLI =3D Cs/Cs2/Cb2 + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCbCtCs BOZZELLI =3D Cs/Cs2/Cb2 + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 649, - label = "Cs-CbCbCbCs", - group = -""" + index=649, + label="Cs-CbCbCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.37,8.11,9.55,10.1,10.03,9.36,6.65],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (6.23,'kcal/mol','+|-',0.26), - S298 = (-35.34,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.37, 8.11, 9.55, 10.1, 10.03, 9.36, 6.65], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(6.23, "kcal/mol", "+|-", 0.26), + S298=(-35.34, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCbCbCs BOZZELLI =3D Cs/Cs2/Cb2 + (Cs/Cs3/Cb - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCbCbCs BOZZELLI =3D Cs/Cs2/Cb2 + (Cs/Cs3/Cb - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 650, - label = "Cs-CdsCdsCdsCds", - group = -""" + index=650, + label="Cs-CdsCdsCdsCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 651, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-O2d)", - group = -""" + index=651, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -22094,19 +20891,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-CsCsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 652, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cd)", - group = -""" + index=652, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -22117,19 +20912,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 653, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)", - group = -""" + index=653, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -22140,19 +20933,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 654, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd)", - group = -""" + index=654, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -22163,19 +20954,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 655, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)", - group = -""" + index=655, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -22187,19 +20976,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 656, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)", - group = -""" + index=656, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -22211,19 +20998,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 657, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)(Cds-Cd)", - group = -""" + index=657, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 CO u0 {1,S} {9,D} @@ -22234,15 +21019,19 @@ 8 O2d u0 {2,D} 9 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([42.49,50.96,52.27,50.54,45.33,41.1,35.7],'J/(mol*K)','+|-',[5.08,5.08,5.08,5.08,5.08,5.08,5.08]), - H298 = (25.2,'kJ/mol','+|-',4.33), - S298 = (-168.67,'J/(mol*K)','+|-',5.92), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [42.49, 50.96, 52.27, 50.54, 45.33, 41.1, 35.7], + "J/(mol*K)", + "+|-", + [5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08], + ), + H298=(25.2, "kJ/mol", "+|-", 4.33), + S298=(-168.67, "J/(mol*K)", "+|-", 5.92), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -22250,10 +21039,9 @@ ) entry( - index = 658, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", - group = -""" + index=658, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 CO u0 {1,S} {9,D} @@ -22264,19 +21052,17 @@ 8 O2d u0 {2,D} 9 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 659, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)(Cds-Cds)", - group = -""" + index=659, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 CO u0 {1,S} {9,D} @@ -22287,19 +21073,17 @@ 8 O2d u0 {2,D} 9 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 660, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)", - group = -""" + index=660, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CO u0 {1,S} {8,D} @@ -22311,19 +21095,17 @@ 9 O2d u0 {4,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 661, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=661, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CO u0 {1,S} {8,D} @@ -22335,19 +21117,17 @@ 9 O2d u0 {4,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 662, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=662, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 CO u0 {1,S} {9,D} @@ -22358,19 +21138,17 @@ 8 O2d u0 {2,D} 9 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 663, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=663, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22383,19 +21161,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 664, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=664, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22408,19 +21184,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 665, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=665, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22433,19 +21207,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 666, - label = "Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)(Cds-Cd)", - group = -""" + index=666, + label="Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -22456,19 +21228,17 @@ 8 C u0 {5,D} 9 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 667, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", - group = -""" + index=667, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -22479,19 +21249,17 @@ 8 Cd u0 {5,D} 9 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 668, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd)", - group = -""" + index=668, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -22502,19 +21270,17 @@ 8 Cdd u0 {5,D} 9 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 669, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", - group = -""" + index=669, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CO u0 {1,S} {9,D} @@ -22526,19 +21292,17 @@ 9 O2d u0 {3,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 670, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", - group = -""" + index=670, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CO u0 {1,S} {9,D} @@ -22550,19 +21314,17 @@ 9 O2d u0 {3,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 671, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=671, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -22573,19 +21335,17 @@ 8 Cdd u0 {5,D} 9 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 672, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=672, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22598,19 +21358,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 673, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=673, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22623,19 +21381,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 674, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=674, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22648,19 +21404,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 675, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=675, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -22671,19 +21425,17 @@ 8 Cdd u0 {5,D} 9 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 676, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=676, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22697,19 +21449,17 @@ 11 O2d u0 {7,D} 12 O2d u0 {8,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 677, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=677, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22723,19 +21473,17 @@ 11 O2d u0 {7,D} 12 C u0 {8,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 678, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=678, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22749,19 +21497,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 679, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=679, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22775,19 +21521,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 680, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)(Cds-Cd)", - group = -""" + index=680, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22798,19 +21542,17 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 681, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", - group = -""" + index=681, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22821,19 +21563,17 @@ 8 Cd u0 {4,D} 9 Cd u0 {5,D} """, - thermo = 'Cs-CsCsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 682, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd)", - group = -""" + index=682, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22844,19 +21584,17 @@ 8 Cd u0 {4,D} 9 Cdd u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 683, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", - group = -""" + index=683, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22868,19 +21606,17 @@ 9 Cd u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22892,19 +21628,17 @@ 9 Cd u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 684, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", - group = -""" + index=684, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22916,19 +21650,17 @@ 9 Cd u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 685, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=685, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22939,19 +21671,17 @@ 8 Cdd u0 {4,D} 9 Cdd u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 686, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=686, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22964,19 +21694,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 687, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=687, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -22989,19 +21717,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23014,19 +21740,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23039,19 +21763,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 688, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=688, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23064,19 +21786,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 689, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=689, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23087,19 +21807,17 @@ 8 Cdd u0 {4,D} 9 Cdd u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 690, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=690, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23113,19 +21831,17 @@ 11 O2d u0 {7,D} 12 O2d u0 {8,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 691, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=691, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23139,19 +21855,17 @@ 11 O2d u0 {7,D} 12 C u0 {8,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 692, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=692, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23165,19 +21879,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23191,19 +21903,17 @@ 11 S2d u0 {7,D} 12 S2d u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23217,19 +21927,17 @@ 11 S2d u0 {7,D} 12 C u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23243,19 +21951,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 693, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=693, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23269,19 +21975,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 694, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=694, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23292,19 +21996,17 @@ 8 Cdd u0 {4,D} 9 Cdd u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 695, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", - group = -""" + index=695, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23319,19 +22021,17 @@ 12 O2d u0 {8,D} 13 O2d u0 {9,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 696, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", - group = -""" + index=696, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23346,19 +22046,17 @@ 12 O2d u0 {8,D} 13 C u0 {9,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 697, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=697, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23373,19 +22071,17 @@ 12 C u0 {8,D} 13 C u0 {9,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 698, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=698, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23400,19 +22096,17 @@ 12 C u0 {8,D} 13 C u0 {9,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23427,19 +22121,17 @@ 12 S2d u0 {8,D} 13 S2d u0 {9,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23454,19 +22146,17 @@ 12 S2d u0 {8,D} 13 C u0 {9,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23481,19 +22171,17 @@ 12 C u0 {8,D} 13 C u0 {9,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23508,19 +22196,17 @@ 12 C u0 {8,D} 13 C u0 {9,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 699, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=699, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23535,38 +22221,34 @@ 12 C u0 {8,D} 13 C u0 {9,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 700, - label = "Cs-CtCdsCdsCds", - group = -""" + index=700, + label="Cs-CtCdsCdsCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 701, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Ct", - group = -""" + index=701, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -23576,19 +22258,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 702, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)Ct", - group = -""" + index=702, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -23598,19 +22278,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 703, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct", - group = -""" + index=703, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -23620,19 +22298,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 704, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)Ct", - group = -""" + index=704, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -23642,19 +22318,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 705, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Ct", - group = -""" + index=705, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -23665,19 +22339,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 706, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=706, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -23688,19 +22360,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 707, - label = "Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)Ct", - group = -""" + index=707, + label="Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -23710,19 +22380,17 @@ 7 C u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 708, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", - group = -""" + index=708, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -23732,19 +22400,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 709, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)Ct", - group = -""" + index=709, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -23754,19 +22420,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 710, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Ct", - group = -""" + index=710, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -23777,19 +22441,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 711, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Ct", - group = -""" + index=711, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -23800,19 +22462,17 @@ 8 O2d u0 {3,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 712, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)Ct", - group = -""" + index=712, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -23822,19 +22482,17 @@ 7 Cdd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 713, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", - group = -""" + index=713, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -23846,19 +22504,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 714, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=714, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -23870,19 +22526,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 715, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=715, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -23894,19 +22548,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 716, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)Ct", - group = -""" + index=716, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23916,19 +22568,17 @@ 7 C u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 717, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", - group = -""" + index=717, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23938,19 +22588,17 @@ 7 Cd u0 {3,D} 8 Cd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 718, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Ct", - group = -""" + index=718, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -23960,19 +22608,17 @@ 7 Cd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 719, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct", - group = -""" + index=719, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -23983,19 +22629,17 @@ 8 Cd u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -24006,19 +22650,17 @@ 8 Cd u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 720, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Ct", - group = -""" + index=720, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -24029,19 +22671,17 @@ 8 Cd u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 721, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)Ct", - group = -""" + index=721, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -24051,19 +22691,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 722, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", - group = -""" + index=722, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24075,19 +22713,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 723, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=723, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24099,19 +22735,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24123,19 +22757,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24147,19 +22779,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 724, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=724, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24171,19 +22801,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 725, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)Ct", - group = -""" + index=725, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -24193,19 +22821,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 726, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", - group = -""" + index=726, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24218,19 +22844,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 727, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=727, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24243,19 +22867,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 728, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=728, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24268,19 +22890,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24293,19 +22913,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24318,19 +22936,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24343,19 +22959,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 729, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=729, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24368,38 +22982,34 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 730, - label = "Cs-CbCdsCdsCds", - group = -""" + index=730, + label="Cs-CbCdsCdsCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 731, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Cb", - group = -""" + index=731, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -24409,19 +23019,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 732, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)Cb", - group = -""" + index=732, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -24431,19 +23039,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 733, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cb", - group = -""" + index=733, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -24453,19 +23059,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 734, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)Cb", - group = -""" + index=734, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -24475,19 +23079,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 735, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Cb", - group = -""" + index=735, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -24498,19 +23100,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 736, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=736, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -24521,19 +23121,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 737, - label = "Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)Cb", - group = -""" + index=737, + label="Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -24543,19 +23141,17 @@ 7 C u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 738, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb", - group = -""" + index=738, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -24565,19 +23161,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 739, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)Cb", - group = -""" + index=739, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -24587,19 +23181,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 740, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cb", - group = -""" + index=740, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -24610,19 +23202,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 741, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cb", - group = -""" + index=741, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -24633,19 +23223,17 @@ 8 O2d u0 {3,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 742, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)Cb", - group = -""" + index=742, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -24655,19 +23243,17 @@ 7 Cdd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 743, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", - group = -""" + index=743, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24679,19 +23265,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 744, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=744, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24703,19 +23287,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 745, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=745, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24727,19 +23309,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 746, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)Cb", - group = -""" + index=746, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -24749,19 +23329,17 @@ 7 C u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 747, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", - group = -""" + index=747, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -24771,19 +23349,17 @@ 7 Cd u0 {3,D} 8 Cd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 748, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Cb", - group = -""" + index=748, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -24793,19 +23369,17 @@ 7 Cd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 749, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cb", - group = -""" + index=749, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -24816,19 +23390,17 @@ 8 Cd u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -24839,19 +23411,17 @@ 8 Cd u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 750, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cb", - group = -""" + index=750, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -24862,19 +23432,17 @@ 8 Cd u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 751, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)Cb", - group = -""" + index=751, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -24884,19 +23452,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 752, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", - group = -""" + index=752, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24908,19 +23474,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 753, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=753, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24932,19 +23496,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24956,19 +23518,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -24980,19 +23540,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 754, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=754, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25004,19 +23562,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 755, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)Cb", - group = -""" + index=755, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25026,19 +23582,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 756, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", - group = -""" + index=756, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25051,19 +23605,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 757, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=757, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25076,19 +23628,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 758, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=758, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25101,19 +23651,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25126,19 +23674,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25151,19 +23697,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25176,19 +23720,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 759, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=759, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -25201,38 +23743,34 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Cb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 760, - label = "Cs-CtCtCdsCds", - group = -""" + index=760, + label="Cs-CtCtCdsCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 761, - label = "Cs-(Cds-O2d)(Cds-O2d)CtCt", - group = -""" + index=761, + label="Cs-(Cds-O2d)(Cds-O2d)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -25241,19 +23779,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 762, - label = "Cs-(Cds-O2d)(Cds-Cd)CtCt", - group = -""" + index=762, + label="Cs-(Cds-O2d)(Cds-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -25262,19 +23798,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 763, - label = "Cs-(Cds-O2d)(Cds-Cds)CtCt", - group = -""" + index=763, + label="Cs-(Cds-O2d)(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -25283,19 +23817,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 764, - label = "Cs-(Cds-O2d)(Cds-Cdd)CtCt", - group = -""" + index=764, + label="Cs-(Cds-O2d)(Cds-Cdd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -25304,19 +23836,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 765, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CtCt", - group = -""" + index=765, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -25326,19 +23856,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 766, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCt", - group = -""" + index=766, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -25348,19 +23876,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 767, - label = "Cs-(Cds-Cd)(Cds-Cd)CtCt", - group = -""" + index=767, + label="Cs-(Cds-Cd)(Cds-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25369,19 +23895,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 768, - label = "Cs-(Cds-Cds)(Cds-Cds)CtCt", - group = -""" + index=768, + label="Cs-(Cds-Cds)(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25390,24 +23914,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.61,7.3,8.97,9.69,9.84,9.42,7.36],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.48,'kcal/mol','+|-',0.26), - S298 = (-34.5,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.61, 7.3, 8.97, 9.69, 9.84, 9.42, 7.36], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.48, "kcal/mol", "+|-", 0.26), + S298=(-34.5, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CtCtCdCd BOZZELLI =3D Cs/Cs/Cd/Ct2 + (Cs/Cs3/Cd - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CtCtCdCd BOZZELLI =3D Cs/Cs/Cd/Ct2 + (Cs/Cs3/Cd - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 769, - label = "Cs-(Cds-Cdd)(Cds-Cds)CtCt", - group = -""" + index=769, + label="Cs-(Cds-Cdd)(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25416,19 +23943,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 770, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCt", - group = -""" + index=770, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -25438,19 +23963,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CtCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -25460,19 +23983,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 771, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCt", - group = -""" + index=771, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -25482,19 +24003,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 772, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CtCt", - group = -""" + index=772, + label="Cs-(Cds-Cdd)(Cds-Cdd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25503,19 +24022,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 773, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtCt", - group = -""" + index=773, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25526,19 +24043,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 774, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtCt", - group = -""" + index=774, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25549,19 +24064,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25572,19 +24085,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25595,19 +24106,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 775, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCt", - group = -""" + index=775, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25618,38 +24127,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 776, - label = "Cs-CbCtCdsCds", - group = -""" + index=776, + label="Cs-CbCtCdsCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 777, - label = "Cs-(Cds-O2d)(Cds-O2d)CbCt", - group = -""" + index=777, + label="Cs-(Cds-O2d)(Cds-O2d)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -25658,19 +24163,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 778, - label = "Cs-(Cds-O2d)(Cds-Cd)CbCt", - group = -""" + index=778, + label="Cs-(Cds-O2d)(Cds-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -25679,19 +24182,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 779, - label = "Cs-(Cds-O2d)(Cds-Cds)CbCt", - group = -""" + index=779, + label="Cs-(Cds-O2d)(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -25700,19 +24201,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 780, - label = "Cs-(Cds-O2d)(Cds-Cdd)CbCt", - group = -""" + index=780, + label="Cs-(Cds-O2d)(Cds-Cdd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -25721,19 +24220,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 781, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CbCt", - group = -""" + index=781, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -25743,19 +24240,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 782, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCt", - group = -""" + index=782, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -25765,19 +24260,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 783, - label = "Cs-(Cds-Cd)(Cds-Cd)CbCt", - group = -""" + index=783, + label="Cs-(Cds-Cd)(Cds-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25786,19 +24279,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 784, - label = "Cs-(Cds-Cds)(Cds-Cds)CbCt", - group = -""" + index=784, + label="Cs-(Cds-Cds)(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25807,24 +24298,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.61,7.3,8.97,9.69,9.84,9.42,7.36],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.48,'kcal/mol','+|-',0.26), - S298 = (-34.5,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.61, 7.3, 8.97, 9.69, 9.84, 9.42, 7.36], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.48, "kcal/mol", "+|-", 0.26), + S298=(-34.5, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCtCdCd BOZZELLI =3D Cs/Cs/Cb/Cd2 + (Cs/Cs3/Ct - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCtCdCd BOZZELLI =3D Cs/Cs/Cb/Cd2 + (Cs/Cs3/Ct - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 785, - label = "Cs-(Cds-Cdd)(Cds-Cds)CbCt", - group = -""" + index=785, + label="Cs-(Cds-Cdd)(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25833,19 +24327,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 786, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCt", - group = -""" + index=786, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -25855,19 +24347,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CbCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -25877,19 +24367,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 787, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCt", - group = -""" + index=787, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -25899,19 +24387,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 788, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CbCt", - group = -""" + index=788, + label="Cs-(Cds-Cdd)(Cds-Cdd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -25920,19 +24406,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 789, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbCt", - group = -""" + index=789, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25943,19 +24427,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 790, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbCt", - group = -""" + index=790, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25966,19 +24448,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -25989,19 +24469,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26012,19 +24490,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 791, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCt", - group = -""" + index=791, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26035,38 +24511,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 792, - label = "Cs-CbCbCdsCds", - group = -""" + index=792, + label="Cs-CbCbCdsCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 793, - label = "Cs-(Cds-O2d)(Cds-O2d)CbCb", - group = -""" + index=793, + label="Cs-(Cds-O2d)(Cds-O2d)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -26075,19 +24547,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 794, - label = "Cs-(Cds-O2d)(Cds-Cd)CbCb", - group = -""" + index=794, + label="Cs-(Cds-O2d)(Cds-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -26096,19 +24566,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 795, - label = "Cs-(Cds-O2d)(Cds-Cds)CbCb", - group = -""" + index=795, + label="Cs-(Cds-O2d)(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -26117,19 +24585,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 796, - label = "Cs-(Cds-O2d)(Cds-Cdd)CbCb", - group = -""" + index=796, + label="Cs-(Cds-O2d)(Cds-Cdd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -26138,19 +24604,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 797, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CbCb", - group = -""" + index=797, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -26160,19 +24624,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 798, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCb", - group = -""" + index=798, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -26182,19 +24644,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 799, - label = "Cs-(Cds-Cd)(Cds-Cd)CbCb", - group = -""" + index=799, + label="Cs-(Cds-Cd)(Cds-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -26203,19 +24663,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 800, - label = "Cs-(Cds-Cds)(Cds-Cds)CbCb", - group = -""" + index=800, + label="Cs-(Cds-Cds)(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -26224,24 +24682,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.61,7.3,8.97,9.69,9.84,9.42,7.36],'cal/(mol*K)','+|-',[0.13,0.13,0.13,0.13,0.13,0.13,0.13]), - H298 = (5.48,'kcal/mol','+|-',0.26), - S298 = (-34.5,'cal/(mol*K)','+|-',0.13), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.61, 7.3, 8.97, 9.69, 9.84, 9.42, 7.36], + "cal/(mol*K)", + "+|-", + [0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13], + ), + H298=(5.48, "kcal/mol", "+|-", 0.26), + S298=(-34.5, "cal/(mol*K)", "+|-", 0.13), ), - shortDesc = """Cs-CbCbCdCd BOZZELLI =3D Cs/Cs/Cb2/Cd + (Cs/Cs3/Cd - Cs/Cs4)""", - longDesc = -""" + shortDesc="""Cs-CbCbCdCd BOZZELLI =3D Cs/Cs/Cb2/Cd + (Cs/Cs3/Cd - Cs/Cs4)""", + longDesc=""" """, ) entry( - index = 801, - label = "Cs-(Cds-Cdd)(Cds-Cds)CbCb", - group = -""" + index=801, + label="Cs-(Cds-Cdd)(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -26250,19 +24711,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 802, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCb", - group = -""" + index=802, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -26272,19 +24731,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CbCb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -26294,19 +24751,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 803, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCb", - group = -""" + index=803, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -26316,19 +24771,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 804, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CbCb", - group = -""" + index=804, + label="Cs-(Cds-Cdd)(Cds-Cdd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -26337,19 +24790,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 805, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbCb", - group = -""" + index=805, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26360,19 +24811,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 806, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbCb", - group = -""" + index=806, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26383,19 +24832,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbCb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26406,19 +24853,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbCb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26429,19 +24874,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 807, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCb", - group = -""" + index=807, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -26452,38 +24895,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 808, - label = "Cs-CtCtCtCds", - group = -""" + index=808, + label="Cs-CtCtCtCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 809, - label = "Cs-(Cds-O2d)CtCtCt", - group = -""" + index=809, + label="Cs-(Cds-O2d)CtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -26491,19 +24930,17 @@ 5 Ct u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CtCtCt", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -26511,19 +24948,17 @@ 5 Ct u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 810, - label = "Cs-(Cds-Cds)CtCtCt", - group = -""" + index=810, + label="Cs-(Cds-Cds)CtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -26531,19 +24966,17 @@ 5 Ct u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 811, - label = "Cs-(Cds-Cdd)CtCtCt", - group = -""" + index=811, + label="Cs-(Cds-Cdd)CtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -26551,19 +24984,17 @@ 5 Ct u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 812, - label = "Cs-(Cds-Cdd-O2d)CtCtCt", - group = -""" + index=812, + label="Cs-(Cds-Cdd-O2d)CtCtCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26572,19 +25003,17 @@ 6 Ct u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtCtCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtCtCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26593,19 +25022,17 @@ 6 Ct u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 813, - label = "Cs-(Cds-Cdd-Cd)CtCtCt", - group = -""" + index=813, + label="Cs-(Cds-Cdd-Cd)CtCtCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26614,38 +25041,34 @@ 6 Ct u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 814, - label = "Cs-CbCtCtCds", - group = -""" + index=814, + label="Cs-CbCtCtCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 815, - label = "Cs-(Cds-O2d)CbCtCt", - group = -""" + index=815, + label="Cs-(Cds-O2d)CbCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26653,19 +25076,17 @@ 5 Ct u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 816, - label = "Cs-(Cds-Cd)CbCtCt", - group = -""" + index=816, + label="Cs-(Cds-Cd)CbCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26673,19 +25094,17 @@ 5 Ct u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 817, - label = "Cs-(Cds-Cds)CbCtCt", - group = -""" + index=817, + label="Cs-(Cds-Cds)CbCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26693,19 +25112,17 @@ 5 Ct u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 818, - label = "Cs-(Cds-Cdd)CbCtCt", - group = -""" + index=818, + label="Cs-(Cds-Cdd)CbCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26713,19 +25130,17 @@ 5 Ct u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 819, - label = "Cs-(Cds-Cdd-O2d)CbCtCt", - group = -""" + index=819, + label="Cs-(Cds-Cdd-O2d)CbCtCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26734,19 +25149,17 @@ 6 Ct u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCtCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCtCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26755,19 +25168,17 @@ 6 Ct u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 820, - label = "Cs-(Cds-Cdd-Cd)CbCtCt", - group = -""" + index=820, + label="Cs-(Cds-Cdd-Cd)CbCtCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26776,38 +25187,34 @@ 6 Ct u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 821, - label = "Cs-CbCbCtCds", - group = -""" + index=821, + label="Cs-CbCbCtCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 822, - label = "Cs-(Cds-O2d)CbCbCt", - group = -""" + index=822, + label="Cs-(Cds-O2d)CbCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26815,19 +25222,17 @@ 5 Ct u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 823, - label = "Cs-(Cds-Cd)CbCbCt", - group = -""" + index=823, + label="Cs-(Cds-Cd)CbCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26835,19 +25240,17 @@ 5 Ct u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 824, - label = "Cs-(Cds-Cds)CbCbCt", - group = -""" + index=824, + label="Cs-(Cds-Cds)CbCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26855,19 +25258,17 @@ 5 Ct u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 825, - label = "Cs-(Cds-Cdd)CbCbCt", - group = -""" + index=825, + label="Cs-(Cds-Cdd)CbCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26875,19 +25276,17 @@ 5 Ct u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 826, - label = "Cs-(Cds-Cdd-O2d)CbCbCt", - group = -""" + index=826, + label="Cs-(Cds-Cdd-O2d)CbCbCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26896,19 +25295,17 @@ 6 Ct u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCbCt", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCbCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26917,19 +25314,17 @@ 6 Ct u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 827, - label = "Cs-(Cds-Cdd-Cd)CbCbCt", - group = -""" + index=827, + label="Cs-(Cds-Cdd-Cd)CbCbCt", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -26938,38 +25333,34 @@ 6 Ct u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCbCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 828, - label = "Cs-CbCbCbCds", - group = -""" + index=828, + label="Cs-CbCbCbCds", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 [Cd,CO] u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 829, - label = "Cs-(Cds-O2d)CbCbCb", - group = -""" + index=829, + label="Cs-(Cds-O2d)CbCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26977,19 +25368,17 @@ 5 Cb u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 830, - label = "Cs-(Cds-Cd)CbCbCb", - group = -""" + index=830, + label="Cs-(Cds-Cd)CbCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -26997,19 +25386,17 @@ 5 Cb u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 831, - label = "Cs-(Cds-Cds)CbCbCb", - group = -""" + index=831, + label="Cs-(Cds-Cds)CbCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -27017,19 +25404,17 @@ 5 Cb u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 832, - label = "Cs-(Cds-Cdd)CbCbCb", - group = -""" + index=832, + label="Cs-(Cds-Cdd)CbCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -27037,19 +25422,17 @@ 5 Cb u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 833, - label = "Cs-(Cds-Cdd-O2d)CbCbCb", - group = -""" + index=833, + label="Cs-(Cds-Cdd-O2d)CbCbCb", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -27058,19 +25441,17 @@ 6 Cb u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCbCb", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCbCb", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -27079,19 +25460,17 @@ 6 Cb u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 834, - label = "Cs-(Cds-Cdd-Cd)CbCbCb", - group = -""" + index=834, + label="Cs-(Cds-Cdd-Cd)CbCbCb", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -27100,114 +25479,102 @@ 6 Cb u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCbCb', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbCb", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 835, - label = "Cs-CtCtCtCt", - group = -""" + index=835, + label="Cs-CtCtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 Ct u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 836, - label = "Cs-CbCtCtCt", - group = -""" + index=836, + label="Cs-CbCtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 Ct u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 837, - label = "Cs-CbCbCtCt", - group = -""" + index=837, + label="Cs-CbCbCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 Ct u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtCt', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtCt", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 838, - label = "Cs-CbCbCbCt", - group = -""" + index=838, + label="Cs-CbCbCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 Ct u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)Ct", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 839, - label = "Cs-CbCbCbCb", - group = -""" + index=839, + label="Cs-CbCbCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 Cb u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)(Cds-Cds)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCtCt", - group = -""" + index=-1, + label="Cs-C=SCbCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -27215,19 +25582,17 @@ 5 Ct u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)(Cds-Cd)(Cds-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -27238,19 +25603,17 @@ 8 C u0 {5,D} 9 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cdd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -27261,19 +25624,17 @@ 8 Cdd u0 {5,D} 9 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CS u0 {1,S} {9,D} @@ -27285,19 +25646,17 @@ 9 S2d u0 {3,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CS u0 {1,S} {9,D} @@ -27309,19 +25668,17 @@ 9 S2d u0 {3,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -27332,19 +25689,17 @@ 8 Cdd u0 {5,D} 9 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27358,19 +25713,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27384,19 +25737,17 @@ 11 C u0 {7,D} 12 C u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27410,19 +25761,17 @@ 11 S2d u0 {7,D} 12 S2d u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27436,19 +25785,17 @@ 11 S2d u0 {7,D} 12 C u0 {8,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cds)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -27459,19 +25806,17 @@ 8 Cd u0 {5,D} 9 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {9,D} 3 Cd u0 {1,S} {6,D} @@ -27482,19 +25827,17 @@ 8 Cdd u0 {5,D} 9 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27507,19 +25850,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27532,19 +25873,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -27557,19 +25896,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CtCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -27578,19 +25915,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CtCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -27599,19 +25934,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CtCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -27620,19 +25953,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CtCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -27642,19 +25973,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CtCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -27664,19 +25993,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CtCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -27685,19 +26012,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CtCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -27706,19 +26031,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CtCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -27727,19 +26050,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CtCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -27749,19 +26070,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CtCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -27771,19 +26090,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCbCt", - group = -""" + index=-1, + label="Cs-C=SCbCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -27791,19 +26108,17 @@ 5 Ct u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCsCs", - group = -""" + index=-1, + label="Cs-C=SCbCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -27811,19 +26126,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCbCs", - group = -""" + index=-1, + label="Cs-C=SCbCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -27831,19 +26144,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtCtCt", - group = -""" + index=-1, + label="Cs-C=SCtCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -27851,19 +26162,17 @@ 5 Ct u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)(Cds-Cd)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)(Cds-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -27873,19 +26182,17 @@ 7 C u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cdd)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -27895,19 +26202,17 @@ 7 Cdd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -27919,19 +26224,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -27943,19 +26246,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -27967,19 +26268,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -27989,19 +26288,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cds)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -28011,19 +26308,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -28034,19 +26329,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)Cs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -28057,19 +26350,17 @@ 8 S2d u0 {3,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCtCt", - group = -""" + index=-1, + label="Cs-C=SC=SCtCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28078,19 +26369,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1179, - label = "Cs-C=SCsCsCs", - group = -""" + index=1179, + label="Cs-C=SCsCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -28098,24 +26387,22 @@ 5 Cs u0 {1,S} 6 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.14,6.63,7.51,7.98,8.33,8.38,8.24],'cal/(mol*K)'), - H298 = (1.36,'kcal/mol'), - S298 = (-33.92,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.14, 6.63, 7.51, 7.98, 8.33, 8.38, 8.24], "cal/(mol*K)"), + H298=(1.36, "kcal/mol"), + S298=(-33.92, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtCtCs", - group = -""" + index=-1, + label="Cs-C=SCtCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -28123,19 +26410,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=SCt", - group = -""" + index=-1, + label="Cs-C=SC=SC=SCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28145,19 +26430,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=SCs", - group = -""" + index=-1, + label="Cs-C=SC=SC=SCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28167,19 +26450,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=SC=S", - group = -""" + index=-1, + label="Cs-C=SC=SC=SC=S", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28190,19 +26471,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtCsCs", - group = -""" + index=-1, + label="Cs-C=SCtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -28210,19 +26489,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=SCb", - group = -""" + index=-1, + label="Cs-C=SC=SC=SCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28232,19 +26509,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=S(Cds-Cd)", - group = -""" + index=-1, + label="Cs-C=SC=SC=S(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -28255,19 +26530,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=S(Cds-Cdd)", - group = -""" + index=-1, + label="Cs-C=SC=SC=S(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -28278,19 +26551,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=S(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=SC=SC=S(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28302,19 +26573,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=S(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-C=SC=SC=S(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28326,19 +26595,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=S(Cds-Cds)", - group = -""" + index=-1, + label="Cs-C=SC=SC=S(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -28349,19 +26616,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)(Cds-Cd)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)(Cds-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -28371,19 +26636,17 @@ 7 C u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cdd)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -28393,19 +26656,17 @@ 7 Cdd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -28417,19 +26678,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -28441,19 +26700,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -28465,19 +26722,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -28487,19 +26742,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cds)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -28509,19 +26762,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -28532,19 +26783,17 @@ 8 S2d u0 {3,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)Ct", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -28555,19 +26804,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCtCs", - group = -""" + index=-1, + label="Cs-C=SC=SCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28576,19 +26823,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCbCb", - group = -""" + index=-1, + label="Cs-C=SC=SCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28597,19 +26842,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CsCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28618,19 +26861,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CsCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28639,19 +26880,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CsCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28660,19 +26899,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CsCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -28682,19 +26919,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CsCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -28704,19 +26939,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCbCt", - group = -""" + index=-1, + label="Cs-C=SC=SCbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28725,19 +26958,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CbCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28746,19 +26977,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CbCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28767,19 +26996,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CbCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28788,19 +27015,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CbCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -28810,19 +27035,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CbCt", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CbCt", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -28832,19 +27055,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCsCs", - group = -""" + index=-1, + label="Cs-C=SC=SCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -28853,19 +27074,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CbCb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28874,19 +27093,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CbCb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28895,19 +27112,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CbCb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -28916,19 +27131,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CbCb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -28938,19 +27151,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CbCb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -28960,19 +27171,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cd)Ct", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -28982,19 +27191,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cds)Ct", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cds)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29004,19 +27211,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)Ct", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29026,19 +27231,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)Ct", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -29049,19 +27252,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)Ct", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)Ct", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -29072,19 +27273,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cd)Cs", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29094,19 +27293,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cds)Cs", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cds)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29116,19 +27313,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)Cs", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29138,19 +27333,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)Cs", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -29161,19 +27354,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)Cs", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)Cs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -29184,19 +27375,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cd)(Cds-Cd)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cd)(Cds-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 CS u0 {1,S} {9,D} @@ -29207,19 +27396,17 @@ 8 S2d u0 {2,D} 9 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)(Cds-Cds)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 CS u0 {1,S} {9,D} @@ -29230,19 +27417,17 @@ 8 S2d u0 {2,D} 9 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)(Cds-Cds)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CS u0 {1,S} {8,D} @@ -29254,19 +27439,17 @@ 9 S2d u0 {4,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)(Cds-Cds)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 CS u0 {1,S} {8,D} @@ -29278,19 +27461,17 @@ 9 S2d u0 {4,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)(Cds-Cdd)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)(Cds-Cdd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 CS u0 {1,S} {9,D} @@ -29301,19 +27482,17 @@ 8 S2d u0 {2,D} 9 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -29326,19 +27505,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -29351,19 +27528,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -29376,19 +27551,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cds)(Cds-Cds)", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cds)(Cds-Cds)", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 CS u0 {1,S} {9,D} @@ -29399,19 +27572,17 @@ 8 S2d u0 {2,D} 9 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cd)Cb", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29421,19 +27592,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)Cb", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29443,19 +27612,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -29466,19 +27633,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -29489,19 +27654,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cds)Cb", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -29511,19 +27674,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCtCs", - group = -""" + index=-1, + label="Cs-C=SCbCtCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -29531,19 +27692,17 @@ 5 Cs u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CbCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -29552,19 +27711,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CbCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -29573,19 +27730,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CbCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -29594,19 +27749,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CbCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -29616,19 +27769,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CbCs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -29638,19 +27789,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)(Cds-Cd)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)(Cds-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -29660,19 +27809,17 @@ 7 C u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cdd)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cdd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -29682,19 +27829,17 @@ 7 Cdd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -29706,19 +27851,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -29730,19 +27873,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -29754,19 +27895,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -29776,19 +27915,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cds)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -29798,19 +27935,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -29821,19 +27956,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)Cb", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)Cb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -29844,19 +27977,17 @@ 8 S2d u0 {3,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCbCb", - group = -""" + index=-1, + label="Cs-C=SCbCbCb", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -29864,19 +27995,17 @@ 5 Cb u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCbCs", - group = -""" + index=-1, + label="Cs-C=SC=SCbCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -29885,53 +28014,53 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 840, - label = "Cs-CCCOs", - group = -""" + index=840, + label="Cs-CCCOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-CsCsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 841, - label = "Cs-CsCsCsOs", - group = -""" + index=841, + label="Cs-CsCsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([23.99,31.2,34.89,36.47,36.78,36.05,34.4],'J/(mol*K)','+|-',[3.81,3.81,3.81,3.81,3.81,3.81,3.81]), - H298 = (-20.3,'kJ/mol','+|-',3.24), - S298 = (-144.38,'J/(mol*K)','+|-',4.44), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [23.99, 31.2, 34.89, 36.47, 36.78, 36.05, 34.4], + "J/(mol*K)", + "+|-", + [3.81, 3.81, 3.81, 3.81, 3.81, 3.81, 3.81], + ), + H298=(-20.3, "kJ/mol", "+|-", 3.24), + S298=(-144.38, "J/(mol*K)", "+|-", 4.44), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -29939,29 +28068,26 @@ ) entry( - index = 842, - label = "Cs-CdsCsCsOs", - group = -""" + index=842, + label="Cs-CdsCsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 843, - label = "Cs-(Cds-O2d)CsCsOs", - group = -""" + index=843, + label="Cs-(Cds-O2d)CsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -29969,15 +28095,19 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([28.15,35.17,38.11,38.72,37.49,35.88,33.45],'J/(mol*K)','+|-',[5.16,5.16,5.16,5.16,5.16,5.16,5.16]), - H298 = (-10.9,'kJ/mol','+|-',4.39), - S298 = (-148.7,'J/(mol*K)','+|-',6.02), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [28.15, 35.17, 38.11, 38.72, 37.49, 35.88, 33.45], + "J/(mol*K)", + "+|-", + [5.16, 5.16, 5.16, 5.16, 5.16, 5.16, 5.16], + ), + H298=(-10.9, "kJ/mol", "+|-", 4.39), + S298=(-148.7, "J/(mol*K)", "+|-", 6.02), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -29985,10 +28115,9 @@ ) entry( - index = 844, - label = "Cs-(Cds-Cd)CsCsOs", - group = -""" + index=844, + label="Cs-(Cds-Cd)CsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -29996,15 +28125,19 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([29.24,37.61,40.84,41.46,40.06,38.2,35.08],'J/(mol*K)','+|-',[3.81,3.81,3.81,3.81,3.81,3.81,3.81]), - H298 = (-14.6,'kJ/mol','+|-',3.24), - S298 = (-153.23,'J/(mol*K)','+|-',4.44), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [29.24, 37.61, 40.84, 41.46, 40.06, 38.2, 35.08], + "J/(mol*K)", + "+|-", + [3.81, 3.81, 3.81, 3.81, 3.81, 3.81, 3.81], + ), + H298=(-14.6, "kJ/mol", "+|-", 3.24), + S298=(-153.23, "J/(mol*K)", "+|-", 4.44), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -30012,10 +28145,9 @@ ) entry( - index = 845, - label = "Cs-(Cds-Cds)CsCsOs", - group = -""" + index=845, + label="Cs-(Cds-Cds)CsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -30023,24 +28155,27 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.63,6.79,7.95,8.4,8.8,8.44,8.44],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-6.6,'kcal/mol','+|-',0.4), - S298 = (-32.56,'cal/(mol*K)','+|-',0.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.63, 6.79, 7.95, 8.4, 8.8, 8.44, 8.44], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-6.6, "kcal/mol", "+|-", 0.4), + S298=(-32.56, "cal/(mol*K)", "+|-", 0.2), ), - shortDesc = """Cs-OCdCsCs BOZZELLI C/C3/O - (C/C3/H - C/Cb/C2/H), Hf-1 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-OCdCsCs BOZZELLI C/C3/O - (C/C3/H - C/Cb/C2/H), Hf-1 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 846, - label = "Cs-(Cds-Cdd)CsCsOs", - group = -""" + index=846, + label="Cs-(Cds-Cdd)CsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -30048,19 +28183,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 847, - label = "Cs-(Cds-Cdd-O2d)CsCsOs", - group = -""" + index=847, + label="Cs-(Cds-Cdd-O2d)CsCsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -30069,24 +28202,27 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.39,9.66,10.03,10.07,9.64,9.26,8.74],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-9.725,'kcal/mol','+|-',0.4), - S298 = (-36.5,'cal/(mol*K)','+|-',0.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [8.39, 9.66, 10.03, 10.07, 9.64, 9.26, 8.74], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-9.725, "kcal/mol", "+|-", 0.4), + S298=(-36.5, "cal/(mol*K)", "+|-", 0.2), ), - shortDesc = """{C/CCO/O/C2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{C/CCO/O/C2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 848, - label = "Cs-(Cds-Cdd-Cd)CsCsOs", - group = -""" + index=848, + label="Cs-(Cds-Cdd-Cd)CsCsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -30095,81 +28231,78 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 849, - label = "Cs-OsCtCsCs", - group = -""" + index=849, + label="Cs-OsCtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 850, - label = "Cs-CbCsCsOs", - group = -""" + index=850, + label="Cs-CbCsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.63,6.79,7.95,8.4,8.8,8.44,8.44],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-6.6,'kcal/mol','+|-',0.4), - S298 = (-32.56,'cal/(mol*K)','+|-',0.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.63, 6.79, 7.95, 8.4, 8.8, 8.44, 8.44], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-6.6, "kcal/mol", "+|-", 0.4), + S298=(-32.56, "cal/(mol*K)", "+|-", 0.2), ), - shortDesc = """Cs-OCbCsCs BOZZELLI C/C3/O - (C/C3/H - C/Cb/C2/H), Hf-1 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-OCbCsCs BOZZELLI C/C3/O - (C/C3/H - C/Cb/C2/H), Hf-1 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 851, - label = "Cs-CdsCdsCsOs", - group = -""" + index=851, + label="Cs-CdsCdsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 852, - label = "Cs-(Cds-O2d)(Cds-O2d)CsOs", - group = -""" + index=852, + label="Cs-(Cds-O2d)(Cds-O2d)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -30178,19 +28311,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 853, - label = "Cs-(Cds-O2d)(Cds-Cd)CsOs", - group = -""" + index=853, + label="Cs-(Cds-O2d)(Cds-Cd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -30199,15 +28330,19 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([33.75,42.15,45.09,44.95,41.74,38.55,34.46],'J/(mol*K)','+|-',[4.3,4.3,4.3,4.3,4.3,4.3,4.3]), - H298 = (-3.9,'kJ/mol','+|-',3.66), - S298 = (-158.3,'J/(mol*K)','+|-',5.02), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [33.75, 42.15, 45.09, 44.95, 41.74, 38.55, 34.46], + "J/(mol*K)", + "+|-", + [4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3], + ), + H298=(-3.9, "kJ/mol", "+|-", 3.66), + S298=(-158.3, "J/(mol*K)", "+|-", 5.02), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -30215,10 +28350,9 @@ ) entry( - index = 854, - label = "Cs-(Cds-O2d)(Cds-Cds)CsOs", - group = -""" + index=854, + label="Cs-(Cds-O2d)(Cds-Cds)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -30227,19 +28361,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 855, - label = "Cs-(Cds-O2d)(Cds-Cdd)CsOs", - group = -""" + index=855, + label="Cs-(Cds-O2d)(Cds-Cdd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -30248,19 +28380,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 856, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CsOs", - group = -""" + index=856, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -30270,19 +28400,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 857, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CsOs", - group = -""" + index=857, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -30292,19 +28420,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 858, - label = "Cs-(Cds-Cd)(Cds-Cd)CsOs", - group = -""" + index=858, + label="Cs-(Cds-Cd)(Cds-Cd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -30313,19 +28439,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 859, - label = "Cs-(Cds-Cds)(Cds-Cds)CsOs", - group = -""" + index=859, + label="Cs-(Cds-Cds)(Cds-Cds)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -30334,24 +28458,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.61,5.98,7.51,8.37,9,9.02,8.34],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-8.01,'kcal/mol','+|-',0.4), - S298 = (-34.34,'cal/(mol*K)','+|-',0.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.61, 5.98, 7.51, 8.37, 9, 9.02, 8.34], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-8.01, "kcal/mol", "+|-", 0.4), + S298=(-34.34, "cal/(mol*K)", "+|-", 0.2), ), - shortDesc = """Cs-OCdCdCs Hf jwb 697 S,Cp from C/Cd2/C2""", - longDesc = -""" + shortDesc="""Cs-OCdCdCs Hf jwb 697 S,Cp from C/Cd2/C2""", + longDesc=""" """, ) entry( - index = 860, - label = "Cs-(Cds-Cdd)(Cds-Cds)CsOs", - group = -""" + index=860, + label="Cs-(Cds-Cdd)(Cds-Cds)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -30360,19 +28487,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 861, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs", - group = -""" + index=861, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -30382,19 +28507,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 862, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CsOs", - group = -""" + index=862, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -30404,19 +28527,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 863, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CsOs", - group = -""" + index=863, + label="Cs-(Cds-Cdd)(Cds-Cdd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -30425,19 +28546,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 864, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsOs", - group = -""" + index=864, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -30448,19 +28567,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 865, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CsOs", - group = -""" + index=865, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -30471,19 +28588,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 866, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsOs", - group = -""" + index=866, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -30494,38 +28609,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 867, - label = "Cs-CtCdsCsOs", - group = -""" + index=867, + label="Cs-CtCdsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 868, - label = "Cs-(Cds-O2d)CtCsOs", - group = -""" + index=868, + label="Cs-(Cds-O2d)CtCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -30533,19 +28644,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 869, - label = "Cs-(Cds-Cd)CtCsOs", - group = -""" + index=869, + label="Cs-(Cds-Cd)CtCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -30553,19 +28662,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 870, - label = "Cs-(Cds-Cds)CtCsOs", - group = -""" + index=870, + label="Cs-(Cds-Cds)CtCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -30573,19 +28680,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 871, - label = "Cs-(Cds-Cdd)CtCsOs", - group = -""" + index=871, + label="Cs-(Cds-Cdd)CtCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -30593,19 +28698,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 872, - label = "Cs-(Cds-Cdd-O2d)CtCsOs", - group = -""" + index=872, + label="Cs-(Cds-Cdd-O2d)CtCsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -30614,19 +28717,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 873, - label = "Cs-(Cds-Cdd-Cd)CtCsOs", - group = -""" + index=873, + label="Cs-(Cds-Cdd-Cd)CtCsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -30635,38 +28736,34 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 874, - label = "Cs-CbCdsCsOs", - group = -""" + index=874, + label="Cs-CbCdsCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 875, - label = "Cs-(Cds-O2d)CbCsOs", - group = -""" + index=875, + label="Cs-(Cds-O2d)CbCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -30674,19 +28771,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 876, - label = "Cs-(Cds-Cd)CbCsOs", - group = -""" + index=876, + label="Cs-(Cds-Cd)CbCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -30694,19 +28789,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 877, - label = "Cs-(Cds-Cds)CbCsOs", - group = -""" + index=877, + label="Cs-(Cds-Cds)CbCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -30714,19 +28807,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 878, - label = "Cs-(Cds-Cdd)CbCsOs", - group = -""" + index=878, + label="Cs-(Cds-Cdd)CbCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -30734,19 +28825,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 879, - label = "Cs-(Cds-Cdd-O2d)CbCsOs", - group = -""" + index=879, + label="Cs-(Cds-Cdd-O2d)CbCsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -30755,19 +28844,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 880, - label = "Cs-(Cds-Cdd-Cd)CbCsOs", - group = -""" + index=880, + label="Cs-(Cds-Cdd-Cd)CbCsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -30776,95 +28863,85 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 881, - label = "Cs-CtCtCsOs", - group = -""" + index=881, + label="Cs-CtCtCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 882, - label = "Cs-CbCtCsOs", - group = -""" + index=882, + label="Cs-CbCtCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 883, - label = "Cs-CbCbCsOs", - group = -""" + index=883, + label="Cs-CbCbCsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 884, - label = "Cs-CdsCdsCdsOs", - group = -""" + index=884, + label="Cs-CdsCdsCdsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 885, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)O2s", - group = -""" + index=885, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-O2d)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -30874,19 +28951,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-CsCsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 886, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)O2s", - group = -""" + index=886, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -30896,19 +28971,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 887, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s", - group = -""" + index=887, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -30918,19 +28991,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 888, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)O2s", - group = -""" + index=888, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -30940,19 +29011,17 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 889, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)O2s", - group = -""" + index=889, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -30963,19 +29032,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 890, - label = "Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)O2s", - group = -""" + index=890, + label="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -30986,19 +29053,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 891, - label = "Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)O2s", - group = -""" + index=891, + label="Cs-(Cds-O2d)(Cds-Cd)(Cds-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -31008,15 +29073,19 @@ 7 C u0 {4,D} 8 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([36.85,46.04,49,48.85,45.61,42.23,37.25],'J/(mol*K)','+|-',[4.09,4.09,4.09,4.09,4.09,4.09,4.09]), - H298 = (3,'kJ/mol','+|-',3.49), - S298 = (-160.69,'J/(mol*K)','+|-',4.77), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [36.85, 46.04, 49, 48.85, 45.61, 42.23, 37.25], + "J/(mol*K)", + "+|-", + [4.09, 4.09, 4.09, 4.09, 4.09, 4.09, 4.09], + ), + H298=(3, "kJ/mol", "+|-", 3.49), + S298=(-160.69, "J/(mol*K)", "+|-", 4.77), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -31024,10 +29093,9 @@ ) entry( - index = 892, - label = "Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", - group = -""" + index=892, + label="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -31037,19 +29105,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 893, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)O2s", - group = -""" + index=893, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cds)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -31059,19 +29125,17 @@ 7 Cd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 894, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s", - group = -""" + index=894, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -31082,19 +29146,17 @@ 8 O2d u0 {3,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 895, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)O2s", - group = -""" + index=895, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cds)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {8,D} @@ -31105,19 +29167,17 @@ 8 O2d u0 {3,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 896, - label = "Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)O2s", - group = -""" + index=896, + label="Cs-(Cds-O2d)(Cds-Cdd)(Cds-Cdd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -31127,19 +29187,17 @@ 7 Cdd u0 {4,D} 8 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 897, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", - group = -""" + index=897, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31151,19 +29209,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 898, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)O2s", - group = -""" + index=898, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31175,19 +29231,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 899, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", - group = -""" + index=899, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31199,19 +29253,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 900, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)O2s", - group = -""" + index=900, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31221,19 +29273,17 @@ 7 C u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 901, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", - group = -""" + index=901, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31243,19 +29293,17 @@ 7 Cd u0 {3,D} 8 Cd u0 {4,D} """, - thermo = 'Cs-CsCsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 902, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)O2s", - group = -""" + index=902, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31265,19 +29313,17 @@ 7 Cd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 903, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", - group = -""" + index=903, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -31288,19 +29334,17 @@ 8 Cd u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsCsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsCsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 904, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)O2s", - group = -""" + index=904, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -31311,19 +29355,17 @@ 8 Cd u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 905, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)O2s", - group = -""" + index=905, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31333,19 +29375,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 906, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", - group = -""" + index=906, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31357,19 +29397,17 @@ 9 O2d u0 {5,D} 10 O2d u0 {6,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 907, - label = "Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)O2s", - group = -""" + index=907, + label="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31381,19 +29419,17 @@ 9 O2d u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 908, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", - group = -""" + index=908, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31405,19 +29441,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 909, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)O2s", - group = -""" + index=909, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31427,19 +29461,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 910, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", - group = -""" + index=910, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31452,19 +29484,17 @@ 10 O2d u0 {6,D} 11 O2d u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 911, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)O2s", - group = -""" + index=911, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31477,19 +29507,17 @@ 10 O2d u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 912, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", - group = -""" + index=912, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31502,19 +29530,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 913, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", - group = -""" + index=913, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)O2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -31527,38 +29553,34 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 914, - label = "Cs-CtCdsCdsOs", - group = -""" + index=914, + label="Cs-CtCdsCdsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 915, - label = "Cs-(Cds-O2d)(Cds-O2d)CtOs", - group = -""" + index=915, + label="Cs-(Cds-O2d)(Cds-O2d)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -31567,19 +29589,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 916, - label = "Cs-(Cds-O2d)(Cds-Cd)CtOs", - group = -""" + index=916, + label="Cs-(Cds-O2d)(Cds-Cd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -31588,19 +29608,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 917, - label = "Cs-(Cds-O2d)(Cds-Cds)CtOs", - group = -""" + index=917, + label="Cs-(Cds-O2d)(Cds-Cds)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -31609,19 +29627,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 918, - label = "Cs-(Cds-O2d)(Cds-Cdd)CtOs", - group = -""" + index=918, + label="Cs-(Cds-O2d)(Cds-Cdd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -31630,19 +29646,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 919, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CtOs", - group = -""" + index=919, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -31652,19 +29666,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 920, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CtOs", - group = -""" + index=920, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -31674,19 +29686,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 921, - label = "Cs-(Cds-Cd)(Cds-Cd)CtOs", - group = -""" + index=921, + label="Cs-(Cds-Cd)(Cds-Cd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31695,19 +29705,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 922, - label = "Cs-(Cds-Cds)(Cds-Cds)CtOs", - group = -""" + index=922, + label="Cs-(Cds-Cds)(Cds-Cds)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31716,19 +29724,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 923, - label = "Cs-(Cds-Cdd)(Cds-Cds)CtOs", - group = -""" + index=923, + label="Cs-(Cds-Cdd)(Cds-Cds)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31737,19 +29743,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 924, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CtOs", - group = -""" + index=924, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -31759,19 +29763,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 925, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CtOs", - group = -""" + index=925, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -31781,19 +29783,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 926, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CtOs", - group = -""" + index=926, + label="Cs-(Cds-Cdd)(Cds-Cdd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -31802,19 +29802,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 927, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtOs", - group = -""" + index=927, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -31825,19 +29823,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 928, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtOs", - group = -""" + index=928, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -31848,19 +29844,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 929, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtOs", - group = -""" + index=929, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -31871,38 +29865,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 930, - label = "Cs-CbCdsCdsOs", - group = -""" + index=930, + label="Cs-CbCdsCdsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 931, - label = "Cs-(Cds-O2d)(Cds-O2d)CbOs", - group = -""" + index=931, + label="Cs-(Cds-O2d)(Cds-O2d)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -31911,19 +29901,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 932, - label = "Cs-(Cds-O2d)(Cds-Cd)CbOs", - group = -""" + index=932, + label="Cs-(Cds-O2d)(Cds-Cd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -31932,19 +29920,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 933, - label = "Cs-(Cds-O2d)(Cds-Cds)CbOs", - group = -""" + index=933, + label="Cs-(Cds-O2d)(Cds-Cds)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -31953,19 +29939,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 934, - label = "Cs-(Cds-O2d)(Cds-Cdd)CbOs", - group = -""" + index=934, + label="Cs-(Cds-O2d)(Cds-Cdd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -31974,19 +29958,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 935, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)CbOs", - group = -""" + index=935, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -31996,19 +29978,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-O2d)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 936, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)CbOs", - group = -""" + index=936, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -32018,19 +29998,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 937, - label = "Cs-(Cds-Cd)(Cds-Cd)CbOs", - group = -""" + index=937, + label="Cs-(Cds-Cd)(Cds-Cd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -32039,19 +30017,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 938, - label = "Cs-(Cds-Cds)(Cds-Cds)CbOs", - group = -""" + index=938, + label="Cs-(Cds-Cds)(Cds-Cds)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -32060,19 +30036,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 939, - label = "Cs-(Cds-Cdd)(Cds-Cds)CbOs", - group = -""" + index=939, + label="Cs-(Cds-Cdd)(Cds-Cds)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -32081,19 +30055,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 940, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)CbOs", - group = -""" + index=940, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -32103,19 +30075,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 941, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CbOs", - group = -""" + index=941, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -32125,19 +30095,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 942, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CbOs", - group = -""" + index=942, + label="Cs-(Cds-Cdd)(Cds-Cdd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -32146,19 +30114,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 943, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbOs", - group = -""" + index=943, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -32169,19 +30135,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cdd-O2d)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 944, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbOs", - group = -""" + index=944, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -32192,19 +30156,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 945, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbOs", - group = -""" + index=945, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -32215,38 +30177,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 946, - label = "Cs-CtCtCdsOs", - group = -""" + index=946, + label="Cs-CtCtCdsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 947, - label = "Cs-(Cds-O2d)CtCtOs", - group = -""" + index=947, + label="Cs-(Cds-O2d)CtCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -32254,19 +30212,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 948, - label = "Cs-(Cds-Cd)CtCtOs", - group = -""" + index=948, + label="Cs-(Cds-Cd)CtCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -32274,19 +30230,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 949, - label = "Cs-(Cds-Cds)CtCtOs", - group = -""" + index=949, + label="Cs-(Cds-Cds)CtCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -32294,19 +30248,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 950, - label = "Cs-(Cds-Cdd)CtCtOs", - group = -""" + index=950, + label="Cs-(Cds-Cdd)CtCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -32314,19 +30266,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 951, - label = "Cs-(Cds-Cdd-O2d)CtCtOs", - group = -""" + index=951, + label="Cs-(Cds-Cdd-O2d)CtCtOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32335,19 +30285,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 952, - label = "Cs-(Cds-Cdd-Cd)CtCtOs", - group = -""" + index=952, + label="Cs-(Cds-Cdd-Cd)CtCtOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32356,38 +30304,34 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 953, - label = "Cs-CbCtCdsOs", - group = -""" + index=953, + label="Cs-CbCtCdsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 954, - label = "Cs-(Cds-O2d)CbCtOs", - group = -""" + index=954, + label="Cs-(Cds-O2d)CbCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32395,19 +30339,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 955, - label = "Cs-(Cds-Cd)CbCtOs", - group = -""" + index=955, + label="Cs-(Cds-Cd)CbCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32415,19 +30357,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 956, - label = "Cs-(Cds-Cds)CbCtOs", - group = -""" + index=956, + label="Cs-(Cds-Cds)CbCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32435,19 +30375,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 957, - label = "Cs-(Cds-Cdd)CbCtOs", - group = -""" + index=957, + label="Cs-(Cds-Cdd)CbCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32455,19 +30393,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 958, - label = "Cs-(Cds-Cdd-O2d)CbCtOs", - group = -""" + index=958, + label="Cs-(Cds-Cdd-O2d)CbCtOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32476,19 +30412,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 959, - label = "Cs-(Cds-Cdd-Cd)CbCtOs", - group = -""" + index=959, + label="Cs-(Cds-Cdd-Cd)CbCtOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32497,38 +30431,34 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 960, - label = "Cs-CbCbCdsOs", - group = -""" + index=960, + label="Cs-CbCbCdsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 [Cd,CO] u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbCbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 961, - label = "Cs-(Cds-O2d)CbCbOs", - group = -""" + index=961, + label="Cs-(Cds-O2d)CbCbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32536,19 +30466,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 962, - label = "Cs-(Cds-Cd)CbCbOs", - group = -""" + index=962, + label="Cs-(Cds-Cd)CbCbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32556,19 +30484,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbCbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 963, - label = "Cs-(Cds-Cds)CbCbOs", - group = -""" + index=963, + label="Cs-(Cds-Cds)CbCbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32576,19 +30502,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 964, - label = "Cs-(Cds-Cdd)CbCbOs", - group = -""" + index=964, + label="Cs-(Cds-Cdd)CbCbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -32596,19 +30520,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbCbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbCbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 965, - label = "Cs-(Cds-Cdd-O2d)CbCbOs", - group = -""" + index=965, + label="Cs-(Cds-Cdd-O2d)CbCbOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32617,19 +30539,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-O2d)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 966, - label = "Cs-(Cds-Cdd-Cd)CbCbOs", - group = -""" + index=966, + label="Cs-(Cds-Cdd-Cd)CbCbOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32638,129 +30558,121 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbCbOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbCbOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 967, - label = "Cs-CtCtCtOs", - group = -""" + index=967, + label="Cs-CtCtCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 968, - label = "Cs-CbCtCtOs", - group = -""" + index=968, + label="Cs-CbCtCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtCtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtCtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 969, - label = "Cs-CbCbCtOs", - group = -""" + index=969, + label="Cs-CbCbCtOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)CtOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)CtOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 970, - label = "Cs-CbCbCbOs", - group = -""" + index=970, + label="Cs-CbCbCbOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)O2s", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 971, - label = "Cs-CCOsOs", - group = -""" + index=971, + label="Cs-CCOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-CsCsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 972, - label = "Cs-CsCsOsOs", - group = -""" + index=972, + label="Cs-CsCsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.88,43.75,51.85,54,50.77,45.94,38.31],'J/(mol*K)','+|-',[5.77,5.77,5.77,5.77,5.77,5.77,5.77]), - H298 = (-69.2,'kJ/mol','+|-',4.92), - S298 = (-163.77,'J/(mol*K)','+|-',6.74), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.88, 43.75, 51.85, 54, 50.77, 45.94, 38.31], + "J/(mol*K)", + "+|-", + [5.77, 5.77, 5.77, 5.77, 5.77, 5.77, 5.77], + ), + H298=(-69.2, "kJ/mol", "+|-", 4.92), + S298=(-163.77, "J/(mol*K)", "+|-", 6.74), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -32768,29 +30680,26 @@ ) entry( - index = 973, - label = "Cs-CdsCsOsOs", - group = -""" + index=973, + label="Cs-CdsCsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 974, - label = "Cs-(Cds-O2d)CsOsOs", - group = -""" + index=974, + label="Cs-(Cds-O2d)CsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -32798,19 +30707,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-CsCsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 975, - label = "Cs-(Cds-Cd)CsOsOs", - group = -""" + index=975, + label="Cs-(Cds-Cd)CsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -32818,15 +30725,19 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([27.95,42.92,51.33,54.81,53.92,49.73,41.11],'J/(mol*K)','+|-',[5.77,5.77,5.77,5.77,5.77,5.77,5.77]), - H298 = (-62.8,'kJ/mol','+|-',4.92), - S298 = (-170.44,'J/(mol*K)','+|-',6.74), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [27.95, 42.92, 51.33, 54.81, 53.92, 49.73, 41.11], + "J/(mol*K)", + "+|-", + [5.77, 5.77, 5.77, 5.77, 5.77, 5.77, 5.77], + ), + H298=(-62.8, "kJ/mol", "+|-", 4.92), + S298=(-170.44, "J/(mol*K)", "+|-", 6.74), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -32834,10 +30745,9 @@ ) entry( - index = 976, - label = "Cs-(Cds-Cds)CsOsOs", - group = -""" + index=976, + label="Cs-(Cds-Cds)CsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -32845,19 +30755,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-CsCsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 977, - label = "Cs-(Cds-Cdd)CsOsOs", - group = -""" + index=977, + label="Cs-(Cds-Cdd)CsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -32865,19 +30773,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 978, - label = "Cs-(Cds-Cdd-O2d)CsOsOs", - group = -""" + index=978, + label="Cs-(Cds-Cdd-O2d)CsOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32886,19 +30792,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 979, - label = "Cs-(Cds-Cdd-Cd)CsOsOs", - group = -""" + index=979, + label="Cs-(Cds-Cdd-Cd)CsOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -32907,38 +30811,34 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 980, - label = "Cs-CdsCdsOsOs", - group = -""" + index=980, + label="Cs-CdsCdsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 981, - label = "Cs-(Cds-O2d)(Cds-O2d)OsOs", - group = -""" + index=981, + label="Cs-(Cds-O2d)(Cds-O2d)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -32947,19 +30847,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 982, - label = "Cs-(Cds-O2d)(Cds-Cd)OsOs", - group = -""" + index=982, + label="Cs-(Cds-O2d)(Cds-Cd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -32968,19 +30866,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 983, - label = "Cs-(Cds-O2d)(Cds-Cds)OsOs", - group = -""" + index=983, + label="Cs-(Cds-O2d)(Cds-Cds)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -32989,19 +30885,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 984, - label = "Cs-(Cds-O2d)(Cds-Cdd)OsOs", - group = -""" + index=984, + label="Cs-(Cds-O2d)(Cds-Cdd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -33010,19 +30904,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 985, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)OsOs", - group = -""" + index=985, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -33032,19 +30924,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 986, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)OsOs", - group = -""" + index=986, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -33054,19 +30944,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 987, - label = "Cs-(Cds-Cd)(Cds-Cd)OsOs", - group = -""" + index=987, + label="Cs-(Cds-Cd)(Cds-Cd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -33075,15 +30963,19 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([30.08,45.85,54.7,58.39,57.78,53.65,44.31],'J/(mol*K)','+|-',[5.77,5.77,5.77,5.77,5.77,5.77,5.77]), - H298 = (-55.7,'kJ/mol','+|-',4.92), - S298 = (-179.76,'J/(mol*K)','+|-',6.74), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [30.08, 45.85, 54.7, 58.39, 57.78, 53.65, 44.31], + "J/(mol*K)", + "+|-", + [5.77, 5.77, 5.77, 5.77, 5.77, 5.77, 5.77], + ), + H298=(-55.7, "kJ/mol", "+|-", 4.92), + S298=(-179.76, "J/(mol*K)", "+|-", 6.74), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -33091,10 +30983,9 @@ ) entry( - index = 988, - label = "Cs-(Cds-Cds)(Cds-Cds)OsOs", - group = -""" + index=988, + label="Cs-(Cds-Cds)(Cds-Cds)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -33103,19 +30994,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-CsCsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 989, - label = "Cs-(Cds-Cdd)(Cds-Cds)OsOs", - group = -""" + index=989, + label="Cs-(Cds-Cdd)(Cds-Cds)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -33124,19 +31013,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 990, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs", - group = -""" + index=990, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -33146,19 +31033,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 991, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)OsOs", - group = -""" + index=991, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -33168,19 +31053,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 992, - label = "Cs-(Cds-Cdd)(Cds-Cdd)OsOs", - group = -""" + index=992, + label="Cs-(Cds-Cdd)(Cds-Cdd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -33189,19 +31072,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 993, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)OsOs", - group = -""" + index=993, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -33212,19 +31093,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 994, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)OsOs", - group = -""" + index=994, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -33235,19 +31114,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 995, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsOs", - group = -""" + index=995, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -33258,57 +31135,51 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 996, - label = "Cs-CtCsOsOs", - group = -""" + index=996, + label="Cs-CtCsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 997, - label = "Cs-CtCdsOsOs", - group = -""" + index=997, + label="Cs-CtCdsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 998, - label = "Cs-(Cds-O2d)CtOsOs", - group = -""" + index=998, + label="Cs-(Cds-O2d)CtOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -33316,19 +31187,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 999, - label = "Cs-(Cds-Cd)CtOsOs", - group = -""" + index=999, + label="Cs-(Cds-Cd)CtOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -33336,19 +31205,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1000, - label = "Cs-(Cds-Cds)CtOsOs", - group = -""" + index=1000, + label="Cs-(Cds-Cds)CtOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -33356,19 +31223,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1001, - label = "Cs-(Cds-Cdd)CtOsOs", - group = -""" + index=1001, + label="Cs-(Cds-Cdd)CtOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -33376,19 +31241,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1002, - label = "Cs-(Cds-Cdd-O2d)CtOsOs", - group = -""" + index=1002, + label="Cs-(Cds-Cdd-O2d)CtOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -33397,19 +31260,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1003, - label = "Cs-(Cds-Cdd-Cd)CtOsOs", - group = -""" + index=1003, + label="Cs-(Cds-Cdd-Cd)CtOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -33418,76 +31279,68 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1004, - label = "Cs-CtCtOsOs", - group = -""" + index=1004, + label="Cs-CtCtOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1005, - label = "Cs-CbCsOsOs", - group = -""" + index=1005, + label="Cs-CbCsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1006, - label = "Cs-CbCdsOsOs", - group = -""" + index=1006, + label="Cs-CbCdsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1007, - label = "Cs-(Cds-O2d)CbOsOs", - group = -""" + index=1007, + label="Cs-(Cds-O2d)CbOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -33495,19 +31348,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1008, - label = "Cs-(Cds-Cd)CbOsOs", - group = -""" + index=1008, + label="Cs-(Cds-Cd)CbOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -33515,19 +31366,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1009, - label = "Cs-(Cds-Cds)CbOsOs", - group = -""" + index=1009, + label="Cs-(Cds-Cds)CbOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -33535,19 +31384,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1010, - label = "Cs-(Cds-Cdd)CbOsOs", - group = -""" + index=1010, + label="Cs-(Cds-Cdd)CbOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -33555,19 +31402,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1011, - label = "Cs-(Cds-Cdd-O2d)CbOsOs", - group = -""" + index=1011, + label="Cs-(Cds-Cdd-O2d)CbOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -33576,19 +31421,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1012, - label = "Cs-(Cds-Cdd-Cd)CbOsOs", - group = -""" + index=1012, + label="Cs-(Cds-Cdd-Cd)CbOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -33597,119 +31440,112 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1013, - label = "Cs-CbCtOsOs", - group = -""" + index=1013, + label="Cs-CbCtOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1014, - label = "Cs-CbCbOsOs", - group = -""" + index=1014, + label="Cs-CbCbOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1015, - label = "Cs-COsOsOs", - group = -""" + index=1015, + label="Cs-COsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-CsOsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1016, - label = "Cs-CsOsOsOs", - group = -""" + index=1016, + label="Cs-CsOsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.33,6.19,7.25,7.7,8.2,8.24,8.24],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-19,'kcal/mol','+|-',0.4), - S298 = (-33.56,'cal/(mol*K)','+|-',0.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.33, 6.19, 7.25, 7.7, 8.2, 8.24, 8.24], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-19, "kcal/mol", "+|-", 0.4), + S298=(-33.56, "cal/(mol*K)", "+|-", 0.2), ), - shortDesc = """Cs-OOOCs BOZZELLI est !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-OOOCs BOZZELLI est !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1017, - label = "Cs-CdsOsOsOs", - group = -""" + index=1017, + label="Cs-CdsOsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1018, - label = "Cs-(Cds-O2d)OsOsOs", - group = -""" + index=1018, + label="Cs-(Cds-O2d)OsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -33717,19 +31553,17 @@ 5 O2s u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-CsOsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1019, - label = "Cs-(Cds-Cd)OsOsOs", - group = -""" + index=1019, + label="Cs-(Cds-Cd)OsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -33737,19 +31571,17 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1020, - label = "Cs-(Cds-Cds)OsOsOs", - group = -""" + index=1020, + label="Cs-(Cds-Cds)OsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -33757,19 +31589,17 @@ 5 O2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-CsOsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1021, - label = "Cs-(Cds-Cdd)OsOsOs", - group = -""" + index=1021, + label="Cs-(Cds-Cdd)OsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -33777,19 +31607,17 @@ 5 O2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1022, - label = "Cs-(Cds-Cdd-O2d)OsOsOs", - group = -""" + index=1022, + label="Cs-(Cds-Cdd-O2d)OsOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -33798,19 +31626,17 @@ 6 O2s u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1023, - label = "Cs-(Cds-Cdd-Cd)OsOsOs", - group = -""" + index=1023, + label="Cs-(Cds-Cdd-Cd)OsOsOs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -33819,143 +31645,139 @@ 6 O2s u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1024, - label = "Cs-CtOsOsOs", - group = -""" + index=1024, + label="Cs-CtOsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1025, - label = "Cs-CbOsOsOs", - group = -""" + index=1025, + label="Cs-CbOsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsOsOs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsOs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1026, - label = "Cs-OsOsOsOs", - group = -""" + index=1026, + label="Cs-OsOsOsOs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.33,6.13,7.25,7.7,8.2,8.24,8.24],'cal/(mol*K)','+|-',[0.2,0.2,0.2,0.2,0.2,0.2,0.2]), - H298 = (-23,'kcal/mol','+|-',0.4), - S298 = (-35.56,'cal/(mol*K)','+|-',0.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.33, 6.13, 7.25, 7.7, 8.2, 8.24, 8.24], + "cal/(mol*K)", + "+|-", + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + ), + H298=(-23, "kcal/mol", "+|-", 0.4), + S298=(-35.56, "cal/(mol*K)", "+|-", 0.2), ), - shortDesc = """Cs-OOOO BOZZELLI est !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-OOOO BOZZELLI est !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1027, - label = "Cs-COsOsH", - group = -""" + index=1027, + label="Cs-COsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CsOsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1028, - label = "Cs-CsOsOsH", - group = -""" + index=1028, + label="Cs-CsOsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.25,7.1,8.81,9.55,10.31,11.05,11.05],'cal/(mol*K)','+|-',[0.12,0.12,0.12,0.12,0.12,0.12,0.12]), - H298 = (-16,'kcal/mol','+|-',0.24), - S298 = (-12.07,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.25, 7.1, 8.81, 9.55, 10.31, 11.05, 11.05], + "cal/(mol*K)", + "+|-", + [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12], + ), + H298=(-16, "kcal/mol", "+|-", 0.24), + S298=(-12.07, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cs-OOCsH BENSON Hf, BOZZELLI C/C3/H - C/C2/O/H !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""Cs-OOCsH BENSON Hf, BOZZELLI C/C3/H - C/C2/O/H !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1029, - label = "Cs-CdsOsOsH", - group = -""" + index=1029, + label="Cs-CdsOsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1030, - label = "Cs-(Cds-O2d)OsOsH", - group = -""" + index=1030, + label="Cs-(Cds-O2d)OsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -33963,19 +31785,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-CsOsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1031, - label = "Cs-(Cds-Cd)OsOsH", - group = -""" + index=1031, + label="Cs-(Cds-Cd)OsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -33983,19 +31803,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1032, - label = "Cs-(Cds-Cds)OsOsH", - group = -""" + index=1032, + label="Cs-(Cds-Cds)OsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -34003,19 +31821,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-CsOsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1033, - label = "Cs-(Cds-Cdd)OsOsH", - group = -""" + index=1033, + label="Cs-(Cds-Cdd)OsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -34023,19 +31839,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1034, - label = "Cs-(Cds-Cdd-O2d)OsOsH", - group = -""" + index=1034, + label="Cs-(Cds-Cdd-O2d)OsOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -34044,19 +31858,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1035, - label = "Cs-(Cds-Cdd-Cd)OsOsH", - group = -""" + index=1035, + label="Cs-(Cds-Cdd-Cd)OsOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -34065,277 +31877,255 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1036, - label = "Cs-CtOsOsH", - group = -""" + index=1036, + label="Cs-CtOsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1037, - label = "Cs-CbOsOsH", - group = -""" + index=1037, + label="Cs-CbOsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-COsSsH", - group = -""" + index=-1, + label="Cs-COsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1452, - label = "Cs-CsOsSsH", - group = -""" + index=1452, + label="Cs-CsOsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.37,10.32,11.1,11.3,11.3,11.21,11.6],'cal/(mol*K)'), - H298 = (-11.1,'kcal/mol'), - S298 = (-16.14,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.37, 10.32, 11.1, 11.3, 11.3, 11.21, 11.6], "cal/(mol*K)"), + H298=(-11.1, "kcal/mol"), + S298=(-16.14, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1DHR calc""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1DHR calc""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsOsSsH", - group = -""" + index=-1, + label="Cs-CdsOsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtOsSsH", - group = -""" + index=-1, + label="Cs-CtOsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbOsSsH", - group = -""" + index=-1, + label="Cs-CbOsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CCOsSs", - group = -""" + index=-1, + label="Cs-CCOsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 O2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1453, - label = "Cs-CsCsOsSs", - group = -""" + index=1453, + label="Cs-CsCsOsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.16,10.15,10.69,10.52,9.74,9.01,8.34],'cal/(mol*K)'), - H298 = (-11.26,'kcal/mol'), - S298 = (-39.73,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.16, 10.15, 10.69, 10.52, 9.74, 9.01, 8.34], "cal/(mol*K)"), + H298=(-11.26, "kcal/mol"), + S298=(-39.73, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1DHR calc""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1DHR calc""", + longDesc=""" """, ) entry( - index = 1467, - label = "Cs-COsOsSs", - group = -""" + index=1467, + label="Cs-COsOsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = 'Cs-CsOsOsSs', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsOsSs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1465, - label = "Cs-CsOsOsSs", - group = -""" + index=1465, + label="Cs-CsOsOsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 O2s u0 {1,S} 4 O2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.65,8.43,9.23,9.47,9.43,9.2,8.89],'cal/(mol*K)'), - H298 = (-21.41,'kcal/mol'), - S298 = (-36.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.65, 8.43, 9.23, 9.47, 9.43, 9.2, 8.89], "cal/(mol*K)"), + H298=(-21.41, "kcal/mol"), + S298=(-36.7, "cal/(mol*K)"), ), - shortDesc = """CAC calc 1D-HR""", - longDesc = -""" + shortDesc="""CAC calc 1D-HR""", + longDesc=""" """, ) entry( - index = 1038, - label = "Cs-CCOsH", - group = -""" + index=1038, + label="Cs-CCOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CsCsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1039, - label = "Cs-CsCsOsH", - group = -""" + index=1039, + label="Cs-CsCsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([21.99,29.03,34.22,37.78,41.96,44.27,47.11],'J/(mol*K)','+|-',[3.32,3.32,3.32,3.32,3.32,3.32,3.32]), - H298 = (-25.1,'kJ/mol','+|-',2.83), - S298 = (-52.05,'J/(mol*K)','+|-',3.88), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [21.99, 29.03, 34.22, 37.78, 41.96, 44.27, 47.11], + "J/(mol*K)", + "+|-", + [3.32, 3.32, 3.32, 3.32, 3.32, 3.32, 3.32], + ), + H298=(-25.1, "kJ/mol", "+|-", 2.83), + S298=(-52.05, "J/(mol*K)", "+|-", 3.88), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -34343,29 +32133,26 @@ ) entry( - index = 1040, - label = "Cs-CdsCsOsH", - group = -""" + index=1040, + label="Cs-CdsCsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1041, - label = "Cs-(Cds-O2d)CsOsH", - group = -""" + index=1041, + label="Cs-(Cds-O2d)CsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -34373,24 +32160,27 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.47,6.82,8.45,9.17,10.24,10.8,11.02],'cal/(mol*K)','+|-',[0.12,0.12,0.12,0.12,0.12,0.12,0.12]), - H298 = (-6,'kcal/mol','+|-',0.24), - S298 = (-11.1,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.47, 6.82, 8.45, 9.17, 10.24, 10.8, 11.02], + "cal/(mol*K)", + "+|-", + [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12], + ), + H298=(-6, "kcal/mol", "+|-", 0.24), + S298=(-11.1, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cs-OCOCsH BOZZELLI""", - longDesc = -""" + shortDesc="""Cs-OCOCsH BOZZELLI""", + longDesc=""" """, ) entry( - index = 1042, - label = "Cs-(Cds-Cd)CsOsH", - group = -""" + index=1042, + label="Cs-(Cds-Cd)CsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -34398,15 +32188,19 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([29.84,38.86,43.83,46.37,48.34,49.06,49.94],'J/(mol*K)','+|-',[3.74,3.74,3.74,3.74,3.74,3.74,3.74]), - H298 = (-24,'kJ/mol','+|-',3.19), - S298 = (-61.06,'J/(mol*K)','+|-',4.36), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [29.84, 38.86, 43.83, 46.37, 48.34, 49.06, 49.94], + "J/(mol*K)", + "+|-", + [3.74, 3.74, 3.74, 3.74, 3.74, 3.74, 3.74], + ), + H298=(-24, "kJ/mol", "+|-", 3.19), + S298=(-61.06, "J/(mol*K)", "+|-", 4.36), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -34414,10 +32208,9 @@ ) entry( - index = 1043, - label = "Cs-(Cds-Cds)CsOsH", - group = -""" + index=1043, + label="Cs-(Cds-Cds)CsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -34425,24 +32218,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.47,6.82,8.45,9.17,10.24,10.8,11.02],'cal/(mol*K)','+|-',[0.12,0.12,0.12,0.12,0.12,0.12,0.12]), - H298 = (-6,'kcal/mol','+|-',0.24), - S298 = (-11.1,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.47, 6.82, 8.45, 9.17, 10.24, 10.8, 11.02], + "cal/(mol*K)", + "+|-", + [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12], + ), + H298=(-6, "kcal/mol", "+|-", 0.24), + S298=(-11.1, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cs-OCdCsH BOZZELLI""", - longDesc = -""" + shortDesc="""Cs-OCdCsH BOZZELLI""", + longDesc=""" """, ) entry( - index = 1044, - label = "Cs-(Cds-Cdd)CsOsH", - group = -""" + index=1044, + label="Cs-(Cds-Cdd)CsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -34450,19 +32246,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1045, - label = "Cs-(Cds-Cdd-O2d)CsOsH", - group = -""" + index=1045, + label="Cs-(Cds-Cdd-O2d)CsOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -34471,24 +32265,27 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.2,8.49,9.33,9.92,10.5,10.92,11.71],'cal/(mol*K)','+|-',[0.12,0.12,0.12,0.12,0.12,0.12,0.12]), - H298 = (-8.37,'kcal/mol','+|-',0.24), - S298 = (-13.04,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [7.2, 8.49, 9.33, 9.92, 10.5, 10.92, 11.71], + "cal/(mol*K)", + "+|-", + [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12], + ), + H298=(-8.37, "kcal/mol", "+|-", 0.24), + S298=(-13.04, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """{C/CCO/O/C/H} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{C/CCO/O/C/H} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 1046, - label = "Cs-(Cds-Cdd-Cd)CsOsH", - group = -""" + index=1046, + label="Cs-(Cds-Cdd-Cd)CsOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -34497,38 +32294,34 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1047, - label = "Cs-CdsCdsOsH", - group = -""" + index=1047, + label="Cs-CdsCdsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1048, - label = "Cs-(Cds-O2d)(Cds-O2d)OsH", - group = -""" + index=1048, + label="Cs-(Cds-O2d)(Cds-O2d)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -34537,19 +32330,17 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = 'Cs-CsCsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsCsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1049, - label = "Cs-(Cds-O2d)(Cds-Cd)OsH", - group = -""" + index=1049, + label="Cs-(Cds-O2d)(Cds-Cd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -34558,19 +32349,17 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1050, - label = "Cs-(Cds-O2d)(Cds-Cds)OsH", - group = -""" + index=1050, + label="Cs-(Cds-O2d)(Cds-Cds)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -34579,19 +32368,17 @@ 6 Cd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1051, - label = "Cs-(Cds-O2d)(Cds-Cdd)OsH", - group = -""" + index=1051, + label="Cs-(Cds-O2d)(Cds-Cdd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -34600,19 +32387,17 @@ 6 Cdd u0 {3,D} 7 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cdd-Cd)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cdd-Cd)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1052, - label = "Cs-(Cds-O2d)(Cds-Cdd-O2d)OsH", - group = -""" + index=1052, + label="Cs-(Cds-O2d)(Cds-Cdd-O2d)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -34622,19 +32407,17 @@ 7 O2d u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1053, - label = "Cs-(Cds-O2d)(Cds-Cdd-Cd)OsH", - group = -""" + index=1053, + label="Cs-(Cds-O2d)(Cds-Cdd-Cd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CO u0 {1,S} {7,D} @@ -34644,19 +32427,17 @@ 7 O2d u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1054, - label = "Cs-(Cds-Cd)(Cds-Cd)OsH", - group = -""" + index=1054, + label="Cs-(Cds-Cd)(Cds-Cd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -34665,15 +32446,19 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([29.82,38.47,43.27,45.7,47.5,48.09,48.78],'J/(mol*K)','+|-',[3.64,3.64,3.64,3.64,3.64,3.64,3.64]), - H298 = (-17.4,'kJ/mol','+|-',3.1), - S298 = (-64.14,'J/(mol*K)','+|-',4.24), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [29.82, 38.47, 43.27, 45.7, 47.5, 48.09, 48.78], + "J/(mol*K)", + "+|-", + [3.64, 3.64, 3.64, 3.64, 3.64, 3.64, 3.64], + ), + H298=(-17.4, "kJ/mol", "+|-", 3.1), + S298=(-64.14, "J/(mol*K)", "+|-", 4.24), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -34681,10 +32466,9 @@ ) entry( - index = 1055, - label = "Cs-(Cds-Cds)(Cds-Cds)OsH", - group = -""" + index=1055, + label="Cs-(Cds-Cds)(Cds-Cds)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -34693,24 +32477,27 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.21,6.6,8.26,9.05,10.23,10.86,11.04],'cal/(mol*K)','+|-',[0.12,0.12,0.12,0.12,0.12,0.12,0.12]), - H298 = (-6.67,'kcal/mol','+|-',0.24), - S298 = (-10.42,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.21, 6.6, 8.26, 9.05, 10.23, 10.86, 11.04], + "cal/(mol*K)", + "+|-", + [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12], + ), + H298=(-6.67, "kcal/mol", "+|-", 0.24), + S298=(-10.42, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cs-OCdCdH BOZZELLI""", - longDesc = -""" + shortDesc="""Cs-OCdCdH BOZZELLI""", + longDesc=""" """, ) entry( - index = 1056, - label = "Cs-(Cds-Cdd)(Cds-Cds)OsH", - group = -""" + index=1056, + label="Cs-(Cds-Cdd)(Cds-Cds)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -34719,19 +32506,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1057, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH", - group = -""" + index=1057, + label="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -34741,19 +32526,17 @@ 7 Cd u0 {3,D} 8 O2d u0 {4,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1058, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)OsH", - group = -""" + index=1058, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -34763,19 +32546,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1059, - label = "Cs-(Cds-Cdd)(Cds-Cdd)OsH", - group = -""" + index=1059, + label="Cs-(Cds-Cdd)(Cds-Cdd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -34784,19 +32565,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1060, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)OsH", - group = -""" + index=1060, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-O2d)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -34807,19 +32586,17 @@ 8 O2d u0 {4,D} 9 O2d u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1061, - label = "Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)OsH", - group = -""" + index=1061, + label="Cs-(Cds-Cdd-O2d)(Cds-Cdd-Cd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -34830,19 +32607,17 @@ 8 O2d u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1062, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsH", - group = -""" + index=1062, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)OsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -34853,57 +32628,51 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1063, - label = "Cs-CtCsOsH", - group = -""" + index=1063, + label="Cs-CtCsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CsOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CsOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1064, - label = "Cs-CtCdsOsH", - group = -""" + index=1064, + label="Cs-CtCdsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1065, - label = "Cs-(Cds-O2d)CtOsH", - group = -""" + index=1065, + label="Cs-(Cds-O2d)CtOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -34911,19 +32680,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1066, - label = "Cs-(Cds-Cd)CtOsH", - group = -""" + index=1066, + label="Cs-(Cds-Cd)CtOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -34931,19 +32698,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CtOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1067, - label = "Cs-(Cds-Cds)CtOsH", - group = -""" + index=1067, + label="Cs-(Cds-Cds)CtOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -34951,19 +32716,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1068, - label = "Cs-(Cds-Cdd)CtOsH", - group = -""" + index=1068, + label="Cs-(Cds-Cdd)CtOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -34971,19 +32734,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CtOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CtOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1069, - label = "Cs-(Cds-Cdd-O2d)CtOsH", - group = -""" + index=1069, + label="Cs-(Cds-Cdd-O2d)CtOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -34992,19 +32753,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1070, - label = "Cs-(Cds-Cdd-Cd)CtOsH", - group = -""" + index=1070, + label="Cs-(Cds-Cdd-Cd)CtOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35013,81 +32772,78 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CtOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1071, - label = "Cs-CtCtOsH", - group = -""" + index=1071, + label="Cs-CtCtOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1072, - label = "Cs-CbCsOsH", - group = -""" + index=1072, + label="Cs-CbCsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.47,6.82,8.45,9.17,10.24,10.8,11.02],'cal/(mol*K)','+|-',[0.12,0.12,0.12,0.12,0.12,0.12,0.12]), - H298 = (-6,'kcal/mol','+|-',0.24), - S298 = (-11.1,'cal/(mol*K)','+|-',0.12), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.47, 6.82, 8.45, 9.17, 10.24, 10.8, 11.02], + "cal/(mol*K)", + "+|-", + [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12], + ), + H298=(-6, "kcal/mol", "+|-", 0.24), + S298=(-11.1, "cal/(mol*K)", "+|-", 0.12), ), - shortDesc = """Cs-OCbCsH BOZZELLI =3D C/Cd/C/H/O Jul 91""", - longDesc = -""" + shortDesc="""Cs-OCbCsH BOZZELLI =3D C/Cd/C/H/O Jul 91""", + longDesc=""" """, ) entry( - index = 1073, - label = "Cs-CbCdsOsH", - group = -""" + index=1073, + label="Cs-CbCdsOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 [Cd,CO] u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CbOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1074, - label = "Cs-(Cds-O2d)CbOsH", - group = -""" + index=1074, + label="Cs-(Cds-O2d)CbOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -35095,19 +32851,17 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = 'Cs-(Cds-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1075, - label = "Cs-(Cds-Cd)CbOsH", - group = -""" + index=1075, + label="Cs-(Cds-Cd)CbOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -35115,19 +32869,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)CbOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1076, - label = "Cs-(Cds-Cds)CbOsH", - group = -""" + index=1076, + label="Cs-(Cds-Cds)CbOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -35135,19 +32887,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1077, - label = "Cs-(Cds-Cdd)CbOsH", - group = -""" + index=1077, + label="Cs-(Cds-Cdd)CbOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -35155,19 +32905,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)CbOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)CbOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1078, - label = "Cs-(Cds-Cdd-O2d)CbOsH", - group = -""" + index=1078, + label="Cs-(Cds-Cdd-O2d)CbOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35176,19 +32924,17 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = 'Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-O2d)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1079, - label = "Cs-(Cds-Cdd-Cd)CbOsH", - group = -""" + index=1079, + label="Cs-(Cds-Cdd-Cd)CbOsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35197,91 +32943,87 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)CbOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CbOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1080, - label = "Cs-CbCtOsH", - group = -""" + index=1080, + label="Cs-CbCtOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)CtOsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)CtOsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1081, - label = "Cs-CbCbOsH", - group = -""" + index=1081, + label="Cs-CbCbOsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 O2s u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)(Cds-Cds)OsH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)(Cds-Cds)OsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1082, - label = "Cs-COsHH", - group = -""" + index=1082, + label="Cs-COsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-CsOsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-CsOsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1083, - label = "Cs-CsOsHH", - group = -""" + index=1083, + label="Cs-CsOsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([25.01,31.9,37.45,41.88,48.53,53.31,60.53],'J/(mol*K)','+|-',[1.43,1.43,1.43,1.43,1.43,1.43,1.43]), - H298 = (-34.3,'kJ/mol','+|-',1.22), - S298 = (37.65,'J/(mol*K)','+|-',1.67), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [25.01, 31.9, 37.45, 41.88, 48.53, 53.31, 60.53], + "J/(mol*K)", + "+|-", + [1.43, 1.43, 1.43, 1.43, 1.43, 1.43, 1.43], + ), + H298=(-34.3, "kJ/mol", "+|-", 1.22), + S298=(37.65, "J/(mol*K)", "+|-", 1.67), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -35289,29 +33031,26 @@ ) entry( - index = 1084, - label = "Cs-CdsOsHH", - group = -""" + index=1084, + label="Cs-CdsOsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 [Cd,CO] u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1085, - label = "Cs-(Cds-O2d)OsHH", - group = -""" + index=1085, + label="Cs-(Cds-O2d)OsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -35319,15 +33058,19 @@ 5 H u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([26.75,34.37,40.77,45.37,51.2,54.96,60.79],'J/(mol*K)','+|-',[4.34,4.34,4.34,4.34,4.34,4.34,4.34]), - H298 = (-19.8,'kJ/mol','+|-',3.7), - S298 = (31.54,'J/(mol*K)','+|-',5.06), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [26.75, 34.37, 40.77, 45.37, 51.2, 54.96, 60.79], + "J/(mol*K)", + "+|-", + [4.34, 4.34, 4.34, 4.34, 4.34, 4.34, 4.34], + ), + H298=(-19.8, "kJ/mol", "+|-", 3.7), + S298=(31.54, "J/(mol*K)", "+|-", 5.06), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -35335,10 +33078,9 @@ ) entry( - index = 1086, - label = "Cs-(Cds-Cd)OsHH", - group = -""" + index=1086, + label="Cs-(Cds-Cd)OsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -35346,15 +33088,19 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([28.42,35.65,40.62,44.31,49.79,53.92,60.6],'J/(mol*K)','+|-',[3.38,3.38,3.38,3.38,3.38,3.38,3.38]), - H298 = (-26.6,'kJ/mol','+|-',2.88), - S298 = (34.59,'J/(mol*K)','+|-',3.95), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [28.42, 35.65, 40.62, 44.31, 49.79, 53.92, 60.6], + "J/(mol*K)", + "+|-", + [3.38, 3.38, 3.38, 3.38, 3.38, 3.38, 3.38], + ), + H298=(-26.6, "kJ/mol", "+|-", 2.88), + S298=(34.59, "J/(mol*K)", "+|-", 3.95), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -35362,10 +33108,9 @@ ) entry( - index = 1087, - label = "Cs-(Cds-Cds)OsHH", - group = -""" + index=1087, + label="Cs-(Cds-Cds)OsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -35373,24 +33118,27 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.12,6.86,8.32,9.49,11.22,12.48,14.4],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-6.76,'kcal/mol','+|-',0.2), - S298 = (9.8,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.12, 6.86, 8.32, 9.49, 11.22, 12.48, 14.4], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-6.76, "kcal/mol", "+|-", 0.2), + S298=(9.8, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cs-OCdHH BOZZELLI Hf PEDLEY c*ccoh C/C/Cd/H2""", - longDesc = -""" + shortDesc="""Cs-OCdHH BOZZELLI Hf PEDLEY c*ccoh C/C/Cd/H2""", + longDesc=""" """, ) entry( - index = 1088, - label = "Cs-(Cds-Cdd)OsHH", - group = -""" + index=1088, + label="Cs-(Cds-Cdd)OsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 O2s u0 {1,S} @@ -35398,19 +33146,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = 'Cs-(Cds-Cdd-Cd)OsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cdd-Cd)OsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1089, - label = "Cs-(Cds-Cdd-O2d)OsHH", - group = -""" + index=1089, + label="Cs-(Cds-Cdd-O2d)OsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35419,24 +33165,27 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.15,8.67,9.75,10.65,11.93,12.97,14.86],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-8.68,'kcal/mol','+|-',0.2), - S298 = (8.43,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [7.15, 8.67, 9.75, 10.65, 11.93, 12.97, 14.86], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-8.68, "kcal/mol", "+|-", 0.2), + S298=(8.43, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """{C/CCO/O/H2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""{C/CCO/O/H2} RAMAN & GREEN JPCA 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 1090, - label = "Cs-(Cds-Cdd-Cd)OsHH", - group = -""" + index=1090, + label="Cs-(Cds-Cdd-Cd)OsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35445,124 +33194,117 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = 'Cs-(Cds-Cds)OsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1091, - label = "Cs-CtOsHH", - group = -""" + index=1091, + label="Cs-CtOsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.12,6.86,8.32,9.49,11.22,12.48,14.4],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-6.76,'kcal/mol','+|-',0.2), - S298 = (9.8,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.12, 6.86, 8.32, 9.49, 11.22, 12.48, 14.4], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-6.76, "kcal/mol", "+|-", 0.2), + S298=(9.8, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """Cs-OCtHH BOZZELLI assigned C/Cd/H2/O""", - longDesc = -""" + shortDesc="""Cs-OCtHH BOZZELLI assigned C/Cd/H2/O""", + longDesc=""" """, ) entry( - index = 1092, - label = "Cs-CbOsHH", - group = -""" + index=1092, + label="Cs-CbOsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = 'Cs-(Cds-Cds)OsHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-(Cds-Cds)OsHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CCCSs", - group = -""" + index=-1, + label="Cs-CCCSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1175, - label = "Cs-CsCsCsSs", - group = -""" + index=1175, + label="Cs-CsCsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.41,7.05,8.02,8.53,8.87,8.85,8.57],'cal/(mol*K)'), - H298 = (-0.49,'kcal/mol'), - S298 = (-34.44,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.41, 7.05, 8.02, 8.53, 8.87, 8.85, 8.57], "cal/(mol*K)"), + H298=(-0.49, "kcal/mol"), + S298=(-34.44, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsCsCsSs", - group = -""" + index=-1, + label="Cs-CdsCsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CsCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -35570,19 +33312,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CsCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -35590,19 +33330,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CsCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -35610,19 +33348,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CsCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CsCsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35631,19 +33367,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CsCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CsCsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -35652,76 +33386,68 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-SsCtCsCs", - group = -""" + index=-1, + label="Cs-SsCtCsCs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 S2s u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCsCsSs", - group = -""" + index=-1, + label="Cs-CbCsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsCdsCsSs", - group = -""" + index=-1, + label="Cs-CdsCdsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)(Cds-Cd)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)(Cds-Cd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -35730,19 +33456,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -35751,19 +33475,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cds)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cds)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -35772,19 +33494,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -35794,19 +33514,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -35816,19 +33534,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cdd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -35837,19 +33553,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -35860,19 +33574,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -35883,19 +33595,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -35906,38 +33616,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCdsCsSs", - group = -""" + index=-1, + label="Cs-CtCdsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cd u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CtCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CtCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -35945,19 +33651,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CtCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CtCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -35965,19 +33669,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CtCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CtCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -35985,19 +33687,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtCsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -36006,19 +33706,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CtCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CtCsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -36027,38 +33725,34 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCdsCsSs", - group = -""" + index=-1, + label="Cs-CbCdsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cd u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CbCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CbCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -36066,19 +33760,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CbCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CbCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -36086,19 +33778,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CbCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CbCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -36106,19 +33796,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -36127,19 +33815,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CbCsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CbCsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -36148,95 +33834,85 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCtCsSs", - group = -""" + index=-1, + label="Cs-CtCtCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCtCsSs", - group = -""" + index=-1, + label="Cs-CbCtCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbCsSs", - group = -""" + index=-1, + label="Cs-CbCbCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cs u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsCdsCdsSs", - group = -""" + index=-1, + label="Cs-CdsCdsCdsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} 4 Cd u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cd)(Cds-Cd)(Cds-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36246,19 +33922,17 @@ 7 C u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36268,19 +33942,17 @@ 7 Cd u0 {3,D} 8 Cd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36290,19 +33962,17 @@ 7 Cd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-S2d)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -36313,19 +33983,17 @@ 8 Cd u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {7,D} @@ -36336,19 +34004,17 @@ 8 Cd u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd)(Cds-Cdd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36358,19 +34024,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-S2d)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36382,19 +34046,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-S2d)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36406,19 +34068,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36430,19 +34090,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cdd)(Cds-Cdd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36452,19 +34110,17 @@ 7 Cdd u0 {3,D} 8 Cdd u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-S2d)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36477,19 +34133,17 @@ 10 S2d u0 {6,D} 11 S2d u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36502,19 +34156,17 @@ 10 S2d u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36527,19 +34179,17 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {8,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -36552,38 +34202,34 @@ 10 C u0 {6,D} 11 C u0 {7,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCdsCdsSs", - group = -""" + index=-1, + label="Cs-CtCdsCdsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cd u0 {1,S} 4 Cd u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)(Cds-Cd)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)(Cds-Cd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36592,19 +34238,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36613,19 +34257,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cds)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cds)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36634,19 +34276,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -36656,19 +34296,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -36678,19 +34316,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cdd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36699,19 +34335,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -36722,19 +34356,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -36745,19 +34377,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -36768,38 +34398,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCdsCdsSs", - group = -""" + index=-1, + label="Cs-CbCdsCdsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cd u0 {1,S} 4 Cd u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)(Cds-Cd)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)(Cds-Cd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36808,19 +34434,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36829,19 +34453,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cds)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cds)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36850,19 +34472,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -36872,19 +34492,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -36894,19 +34512,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cdd)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cdd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -36915,19 +34531,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -36938,19 +34552,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -36961,19 +34573,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -36984,38 +34594,34 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCtCdsSs", - group = -""" + index=-1, + label="Cs-CtCtCdsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Cd u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CtCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CtCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -37023,19 +34629,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CtCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CtCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -37043,19 +34647,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CtCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CtCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -37063,19 +34665,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtCtSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -37084,19 +34684,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CtCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CtCtSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -37105,38 +34703,34 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCtCdsSs", - group = -""" + index=-1, + label="Cs-CbCtCdsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Cd u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CbCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CbCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37144,19 +34738,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CbCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CbCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37164,19 +34756,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CbCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CbCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37184,19 +34774,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCtSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -37205,19 +34793,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CbCtSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CbCtSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -37226,38 +34812,34 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbCdsSs", - group = -""" + index=-1, + label="Cs-CbCbCdsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cd u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CbCbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CbCbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37265,19 +34847,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CbCbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CbCbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37285,19 +34865,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CbCbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CbCbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37305,19 +34883,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbCbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbCbSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -37326,19 +34902,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CbCbSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CbCbSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -37347,95 +34921,85 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCtCtSs", - group = -""" + index=-1, + label="Cs-CtCtCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCtCtSs", - group = -""" + index=-1, + label="Cs-CbCtCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 Ct u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbCtSs", - group = -""" + index=-1, + label="Cs-CbCbCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Ct u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbCbSs", - group = -""" + index=-1, + label="Cs-CbCbCbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 Cb u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCsSs", - group = -""" + index=-1, + label="Cs-C=SCbCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37443,19 +35007,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCsCsSs", - group = -""" + index=-1, + label="Cs-C=SCsCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -37463,19 +35025,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)(Cds-Cd)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)(Cds-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -37485,19 +35045,17 @@ 7 C u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cdd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -37507,19 +35065,17 @@ 7 Cdd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -37531,19 +35087,17 @@ 9 C u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -37555,19 +35109,17 @@ 9 S2d u0 {5,D} 10 C u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cdd-S2d)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {7,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -37579,19 +35131,17 @@ 9 S2d u0 {5,D} 10 S2d u0 {6,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)(Cds-Cds)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -37601,19 +35151,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)(Cds-Cds)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -37624,19 +35172,17 @@ 8 S2d u0 {3,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)(Cds-Cds)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {8,D} @@ -37647,19 +35193,17 @@ 8 S2d u0 {3,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)(Cds-Cds)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {8,D} 3 Cd u0 {1,S} {6,D} @@ -37669,19 +35213,17 @@ 7 Cd u0 {4,D} 8 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CtSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -37690,19 +35232,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CtSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -37711,19 +35251,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CtSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -37732,19 +35270,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CtSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -37754,19 +35290,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CtSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -37776,19 +35310,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtCsSs", - group = -""" + index=-1, + label="Cs-C=SCtCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -37796,19 +35328,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SC=SSs", - group = -""" + index=-1, + label="Cs-C=SC=SC=SSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -37818,19 +35348,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cd)S2s", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -37840,19 +35368,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cds)S2s", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cds)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -37862,19 +35388,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd)S2s", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 CS u0 {1,S} {8,D} @@ -37884,19 +35408,17 @@ 7 S2d u0 {2,D} 8 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-S2d)S2s", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-S2d)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -37907,19 +35429,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=S(Cds-Cdd-Cd)S2s", - group = -""" + index=-1, + label="Cs-C=SC=S(Cds-Cdd-Cd)S2s", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cd u0 {1,S} {5,D} 3 CS u0 {1,S} {7,D} @@ -37930,19 +35450,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCbSs", - group = -""" + index=-1, + label="Cs-C=SCbCbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -37950,19 +35468,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCbSs", - group = -""" + index=-1, + label="Cs-C=SC=SCbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -37971,19 +35487,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCsSs", - group = -""" + index=-1, + label="Cs-C=SC=SCsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -37992,19 +35506,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtCtSs", - group = -""" + index=-1, + label="Cs-C=SCtCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -38012,19 +35524,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CbSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -38033,19 +35543,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CbSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -38054,19 +35562,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CbSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -38076,19 +35582,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CbSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -38098,19 +35602,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CbSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CbSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -38119,19 +35621,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbCtSs", - group = -""" + index=-1, + label="Cs-C=SCbCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -38139,19 +35639,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SCtSs", - group = -""" + index=-1, + label="Cs-C=SC=SCtSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -38160,19 +35658,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)CsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -38181,19 +35677,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)CsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -38202,19 +35696,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)CsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -38223,19 +35715,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)CsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -38245,19 +35735,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)CsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)CsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -38267,81 +35755,73 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CCSsSs", - group = -""" + index=-1, + label="Cs-CCSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1202, - label = "Cs-CsCsSsSs", - group = -""" + index=1202, + label="Cs-CsCsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.17,8.72,9.4,9.63,9.55,9.29,8.67],'cal/(mol*K)'), - H298 = (-1.34,'kcal/mol'), - S298 = (-36.66,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.17, 8.72, 9.4, 9.63, 9.55, 9.29, 8.67], "cal/(mol*K)"), + H298=(-1.34, "kcal/mol"), + S298=(-36.66, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsCsSsSs", - group = -""" + index=-1, + label="Cs-CdsCsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -38349,19 +35829,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -38369,19 +35847,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -38389,19 +35865,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CsSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -38410,19 +35884,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CsSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -38431,38 +35903,34 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsCdsSsSs", - group = -""" + index=-1, + label="Cs-CdsCdsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)(Cds-Cd)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)(Cds-Cd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -38471,19 +35939,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -38492,19 +35958,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cds)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cds)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -38513,19 +35977,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -38535,19 +35997,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -38557,19 +36017,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cdd)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cdd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -38578,19 +36036,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -38601,19 +36057,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -38624,19 +36078,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)SsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -38647,57 +36099,51 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCsSsSs", - group = -""" + index=-1, + label="Cs-CtCsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCdsSsSs", - group = -""" + index=-1, + label="Cs-CtCdsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cd u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CtSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CtSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -38705,19 +36151,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CtSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CtSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -38725,19 +36169,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CtSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CtSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -38745,19 +36187,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -38766,19 +36206,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CtSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CtSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -38787,76 +36225,68 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCtSsSs", - group = -""" + index=-1, + label="Cs-CtCtSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCsSsSs", - group = -""" + index=-1, + label="Cs-CbCsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCdsSsSs", - group = -""" + index=-1, + label="Cs-CbCdsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cd u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CbSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CbSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -38864,19 +36294,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CbSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CbSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -38884,19 +36312,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CbSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CbSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -38904,19 +36330,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -38925,19 +36349,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CbSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CbSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -38946,57 +36368,51 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCtSsSs", - group = -""" + index=-1, + label="Cs-CbCtSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbSsSs", - group = -""" + index=-1, + label="Cs-CbCbSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCsSsSs", - group = -""" + index=-1, + label="Cs-C=SCsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -39004,19 +36420,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)SsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -39025,19 +36439,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)SsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -39046,19 +36458,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)SsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -39068,19 +36478,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)SsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -39090,19 +36498,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)SsSs", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)SsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -39111,19 +36517,17 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SSsSs", - group = -""" + index=-1, + label="Cs-C=SC=SSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -39132,19 +36536,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbSsSs", - group = -""" + index=-1, + label="Cs-C=SCbSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -39152,19 +36554,17 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtSsSs", - group = -""" + index=-1, + label="Cs-C=SCtSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -39172,81 +36572,73 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CSsSsSs", - group = -""" + index=-1, + label="Cs-CSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1203, - label = "Cs-CsSsSsSs", - group = -""" + index=1203, + label="Cs-CsSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.45,9.59,10.49,10.71,10.42,9.94,8.92],'cal/(mol*K)'), - H298 = (-1.8,'kcal/mol'), - S298 = (-38.19,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.45, 9.59, 10.49, 10.71, 10.42, 9.94, 8.92], "cal/(mol*K)"), + H298=(-1.8, "kcal/mol"), + S298=(-38.19, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsSsSsSs", - group = -""" + index=-1, + label="Cs-CdsSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)SsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cd)SsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39254,19 +36646,17 @@ 5 S2s u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)SsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cds)SsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39274,19 +36664,17 @@ 5 S2s u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)SsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)SsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39294,19 +36682,17 @@ 5 S2s u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)SsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)SsSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -39315,19 +36701,17 @@ 6 S2s u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)SsSsSs", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)SsSsSs", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -39336,57 +36720,51 @@ 6 S2s u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtSsSsSs", - group = -""" + index=-1, + label="Cs-CtSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbSsSsSs", - group = -""" + index=-1, + label="Cs-CbSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SSsSsSs", - group = -""" + index=-1, + label="Cs-C=SSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39394,100 +36772,90 @@ 5 S2s u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-SsSsSsSs", - group = -""" + index=-1, + label="Cs-SsSsSsSs", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CSsSsH", - group = -""" + index=-1, + label="Cs-CSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1173, - label = "Cs-CsSsSsH", - group = -""" + index=1173, + label="Cs-CsSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.82,9.05,9.73,10.14,10.63,10.97,11.44],'cal/(mol*K)'), - H298 = (-3.3,'kcal/mol'), - S298 = (-14.59,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.82, 9.05, 9.73, 10.14, 10.63, 10.97, 11.44], "cal/(mol*K)"), + H298=(-3.3, "kcal/mol"), + S298=(-14.59, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsSsSsH", - group = -""" + index=-1, + label="Cs-CdsSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)SsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cd)SsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39495,19 +36863,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)SsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cds)SsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39515,19 +36881,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)SsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)SsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39535,19 +36899,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)SsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)SsSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -39556,19 +36918,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)SsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)SsSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -39577,57 +36937,51 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtSsSsH", - group = -""" + index=-1, + label="Cs-CtSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbSsSsH", - group = -""" + index=-1, + label="Cs-CbSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SSsSsH", - group = -""" + index=-1, + label="Cs-C=SSsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -39635,86 +36989,78 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CCSsH", - group = -""" + index=-1, + label="Cs-CCSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1169, - label = "Cs-CsCsSsH", - group = -""" + index=1169, + label="Cs-CsCsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.01,6.7,7.96,8.83,9.89,10.51,11.27],'cal/(mol*K)'), - H298 = (-1.98,'kcal/mol'), - S298 = (-11.89,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.01, 6.7, 7.96, 8.83, 9.89, 10.51, 11.27], "cal/(mol*K)"), + H298=(-1.98, "kcal/mol"), + S298=(-11.89, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1170, - label = "Cs-CdsCsSsH", - group = -""" + index=1170, + label="Cs-CdsCsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.41,9.85,10.93,11.28,11.37,11.41,11.61],'cal/(mol*K)'), - H298 = (-2.15,'kcal/mol'), - S298 = (-15.26,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.41, 9.85, 10.93, 11.28, 11.37, 11.41, 11.61], "cal/(mol*K)"), + H298=(-2.15, "kcal/mol"), + S298=(-15.26, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -39722,19 +37068,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -39742,19 +37086,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -39762,19 +37104,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CsSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -39783,19 +37123,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CsSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CsSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -39804,38 +37142,34 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CdsCdsSsH", - group = -""" + index=-1, + label="Cs-CdsCdsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)(Cds-Cd)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cd)(Cds-Cd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -39844,19 +37178,17 @@ 6 C u0 {2,D} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)(Cds-Cds)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cds)(Cds-Cds)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -39865,19 +37197,17 @@ 6 Cd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cds)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cds)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -39886,19 +37216,17 @@ 6 Cdd u0 {2,D} 7 Cd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cds)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cds)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -39908,19 +37236,17 @@ 7 Cd u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cds)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cds)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {7,D} @@ -39930,19 +37256,17 @@ 7 Cd u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)(Cds-Cdd)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)(Cds-Cdd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cd u0 {1,S} {7,D} @@ -39951,19 +37275,17 @@ 6 Cdd u0 {2,D} 7 Cdd u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-S2d)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -39974,19 +37296,17 @@ 8 S2d u0 {4,D} 9 S2d u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)(Cds-Cdd-Cd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -39997,19 +37317,17 @@ 8 S2d u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)SsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)(Cds-Cdd-Cd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {6,S} {7,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -40020,62 +37338,56 @@ 8 C u0 {4,D} 9 C u0 {5,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1171, - label = "Cs-CtCsSsH", - group = -""" + index=1171, + label="Cs-CtCsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.08,6.78,7.93,8.72,9.73,10.35,11.19],'cal/(mol*K)'), - H298 = (0.72,'kcal/mol'), - S298 = (-11.64,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.08, 6.78, 7.93, 8.72, 9.73, 10.35, 11.19], "cal/(mol*K)"), + H298=(0.72, "kcal/mol"), + S298=(-11.64, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCdsSsH", - group = -""" + index=-1, + label="Cs-CtCdsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Cd u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CtSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CtSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -40083,19 +37395,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CtSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CtSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -40103,19 +37413,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CtSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CtSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -40123,19 +37431,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CtSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CtSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -40144,19 +37450,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CtSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CtSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -40165,81 +37469,73 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CtCtSsH", - group = -""" + index=-1, + label="Cs-CtCtSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1172, - label = "Cs-CbCsSsH", - group = -""" + index=1172, + label="Cs-CbCsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.38,7.96,9.03,9.69,10.45,10.89,11.47],'cal/(mol*K)'), - H298 = (-1.66,'kcal/mol'), - S298 = (-13.65,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.38, 7.96, 9.03, 9.69, 10.45, 10.89, 11.47], "cal/(mol*K)"), + H298=(-1.66, "kcal/mol"), + S298=(-13.65, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCdsSsH", - group = -""" + index=-1, + label="Cs-CbCdsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cd u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)CbSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cd)CbSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -40247,19 +37543,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)CbSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cds)CbSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -40267,19 +37561,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)CbSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)CbSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -40287,19 +37579,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)CbSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)CbSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -40308,19 +37598,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)CbSsH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)CbSsH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -40329,57 +37617,51 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCtSsH", - group = -""" + index=-1, + label="Cs-CbCtSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Ct u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CbCbSsH", - group = -""" + index=-1, + label="Cs-CbCbSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 S2s u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCbSsH", - group = -""" + index=-1, + label="Cs-C=SCbSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cb u0 {1,S} @@ -40387,19 +37669,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SC=SSsH", - group = -""" + index=-1, + label="Cs-C=SC=SSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 CS u0 {1,S} {7,D} @@ -40408,19 +37688,17 @@ 6 S2d u0 {2,D} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1174, - label = "Cs-C=SCsSsH", - group = -""" + index=1174, + label="Cs-C=SCsSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Cs u0 {1,S} @@ -40428,24 +37706,22 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.53,10.09,11.25,11.65,11.76,11.74,11.77],'cal/(mol*K)'), - H298 = (-3.49,'kcal/mol'), - S298 = (-15.86,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.53, 10.09, 11.25, 11.65, 11.76, 11.74, 11.77], "cal/(mol*K)"), + H298=(-3.49, "kcal/mol"), + S298=(-15.86, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=SCtSsH", - group = -""" + index=-1, + label="Cs-C=SCtSsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 Ct u0 {1,S} @@ -40453,19 +37729,17 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cd)SsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -40474,19 +37748,17 @@ 6 C u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd)SsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -40495,19 +37767,17 @@ 6 Cdd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-Cd)SsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-Cd)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -40517,19 +37787,17 @@ 7 S2d u0 {3,D} 8 C u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cdd-S2d)SsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cdd-S2d)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 CS u0 {1,S} {7,D} @@ -40539,19 +37807,17 @@ 7 S2d u0 {3,D} 8 S2d u0 {4,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-C=S(Cds-Cds)SsH", - group = -""" + index=-1, + label="Cs-C=S(Cds-Cds)SsH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -40560,86 +37826,78 @@ 6 Cd u0 {3,D} 7 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-CSsHH", - group = -""" + index=-1, + label="Cs-CSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1163, - label = "Cs-CsSsHH", - group = -""" + index=1163, + label="Cs-CsSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.11,6.59,7.97,9.15,10.99,12.33,14.32],'cal/(mol*K)'), - H298 = (-4.94,'kcal/mol'), - S298 = (9.92,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.11, 6.59, 7.97, 9.15, 10.99, 12.33, 14.32], "cal/(mol*K)"), + H298=(-4.94, "kcal/mol"), + S298=(9.92, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1164, - label = "Cs-CdsSsHH", - group = -""" + index=1164, + label="Cs-CdsSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.17,9.71,10.55,11.14,12.11,12.95,14.43],'cal/(mol*K)'), - H298 = (-5.07,'kcal/mol'), - S298 = (6.75,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.17, 9.71, 10.55, 11.14, 12.11, 12.95, 14.43], "cal/(mol*K)"), + H298=(-5.07, "kcal/mol"), + S298=(6.75, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cd)SsHH", - group = -""" + index=-1, + label="Cs-(Cds-Cd)SsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -40647,19 +37905,17 @@ 5 H u0 {1,S} 6 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cds)SsHH", - group = -""" + index=-1, + label="Cs-(Cds-Cds)SsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -40667,19 +37923,17 @@ 5 H u0 {1,S} 6 Cd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd)SsHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd)SsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -40687,19 +37941,17 @@ 5 H u0 {1,S} 6 Cdd u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-S2d)SsHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-S2d)SsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -40708,19 +37960,17 @@ 6 H u0 {1,S} 7 S2d u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "Cs-(Cds-Cdd-Cd)SsHH", - group = -""" + index=-1, + label="Cs-(Cds-Cdd-Cd)SsHH", + group=""" 1 * Cs u0 {2,S} {4,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {7,D} @@ -40729,67 +37979,61 @@ 6 H u0 {1,S} 7 C u0 {3,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1165, - label = "Cs-CtSsHH", - group = -""" + index=1165, + label="Cs-CtSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Ct u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.19,7.02,8.42,9.51,11.14,12.34,14.18],'cal/(mol*K)'), - H298 = (-2.69,'kcal/mol'), - S298 = (9.75,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.19, 7.02, 8.42, 9.51, 11.14, 12.34, 14.18], "cal/(mol*K)"), + H298=(-2.69, "kcal/mol"), + S298=(9.75, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1166, - label = "Cs-CbSsHH", - group = -""" + index=1166, + label="Cs-CbSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cb u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.3,7.96,9.19,10.12,11.53,12.59,14.26],'cal/(mol*K)'), - H298 = (-5.04,'kcal/mol'), - S298 = (8.26,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.3, 7.96, 9.19, 10.12, 11.53, 12.59, 14.26], "cal/(mol*K)"), + H298=(-5.04, "kcal/mol"), + S298=(8.26, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1168, - label = "Cs-C=SSsHH", - group = -""" + index=1168, + label="Cs-C=SSsHH", + group=""" 1 * Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CS u0 {1,S} {6,D} 3 S2s u0 {1,S} @@ -40797,275 +38041,257 @@ 5 H u0 {1,S} 6 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.23,10.43,11.42,11.97,12.76,13.43,14.63],'cal/(mol*K)'), - H298 = (-6.13,'kcal/mol'), - S298 = (5.73,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.23, 10.43, 11.42, 11.97, 12.76, 13.43, 14.63], "cal/(mol*K)"), + H298=(-6.13, "kcal/mol"), + S298=(5.73, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1093, - label = "O", - group = -""" + index=1093, + label="O", + group=""" 1 * O u0 """, - thermo = 'O2s-CsCs', - shortDesc = """""", - longDesc = -""" + thermo="O2s-CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1094, - label = "O2d", - group = -""" + index=1094, + label="O2d", + group=""" 1 * O2d u0 """, - thermo = 'O2d-Cd', - shortDesc = """""", - longDesc = -""" + thermo="O2d-Cd", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1095, - label = "O2d-Cd", - group = -""" + index=1095, + label="O2d-Cd", + group=""" 1 * O2d u0 {2,D} 2 CO u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """In this case the C is treated as the central atom""", - longDesc = -""" + shortDesc="""In this case the C is treated as the central atom""", + longDesc=""" """, ) entry( - index = 1096, - label = "O2d-O2d", - group = -""" + index=1096, + label="O2d-O2d", + group=""" 1 * O2d u0 {2,D} 2 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.5,3.575,3.685,3.8,3.99,4.12,4.29],'cal/(mol*K)'), - H298 = (14.01,'kcal/mol'), - S298 = (24.085,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.5, 3.575, 3.685, 3.8, 3.99, 4.12, 4.29], "cal/(mol*K)"), + H298=(14.01, "kcal/mol"), + S298=(24.085, "cal/(mol*K)"), ), - shortDesc = """A. Vandeputte""", - longDesc = -""" + shortDesc="""A. Vandeputte""", + longDesc=""" """, ) entry( - index = 1943, - label = "O2d-N3d", - group = -""" + index=1943, + label="O2d-N3d", + group=""" 1 * O2d u0 {2,D} 2 N3d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1944, - label = "O2d-N5dc", - group = -""" + index=1944, + label="O2d-N5dc", + group=""" 1 * O2d u0 {2,D} 2 N5dc u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1097, - label = "O2s", - group = -""" + index=1097, + label="O2s", + group=""" 1 * O2s u0 """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1945, - label = "O2s-N", - group = -""" + index=1945, + label="O2s-N", + group=""" 1 * O2s u0 {2,S} 2 N u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1935, - label = "O2s-CN", - group = -""" + index=1935, + label="O2s-CN", + group=""" 1 * O2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 N u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1874, - label = "O2s-CsN3s", - group = -""" + index=1874, + label="O2s-CsN3s", + group=""" 1 * O2s u0 {2,S} {3,S} 2 N3s u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.5,3.6,4,4.3,4.7,4.8,4.2],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (-9.2,'kcal/mol','+|-',1.3), - S298 = (7.2,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.5, 3.6, 4, 4.3, 4.7, 4.8, 4.2], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(-9.2, "kcal/mol", "+|-", 1.3), + S298=(7.2, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1875, - label = "O2s-CsN3d", - group = -""" + index=1875, + label="O2s-CsN3d", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 N3d u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1847, - label = "O2s-Cs(N3dOd)", - group = -""" + index=1847, + label="O2s-Cs(N3dOd)", + group=""" 1 * O2s u0 {2,S} {4,S} 2 N3d u0 {1,S} {3,D} 3 O2d u0 {2,D} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.6,11.3,11.9,12.6,13.6,14.3,14.8],'cal/(mol*K)','+|-',[0.8,0.8,0.8,0.8,0.8,0.8,0.8]), - H298 = (-4.8,'kcal/mol','+|-',1.1), - S298 = (40,'cal/(mol*K)','+|-',1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.6, 11.3, 11.9, 12.6, 13.6, 14.3, 14.8], + "cal/(mol*K)", + "+|-", + [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8], + ), + H298=(-4.8, "kcal/mol", "+|-", 1.1), + S298=(40, "cal/(mol*K)", "+|-", 1), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1877, - label = "O2s-CdN3d", - group = -""" + index=1877, + label="O2s-CdN3d", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 N3d u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1878, - label = "O2s-(Cd-Cd)(N3dOd)", - group = -""" + index=1878, + label="O2s-(Cd-Cd)(N3dOd)", + group=""" 1 Cd u0 {2,S} {4,D} {5,S} 2 * O2s u0 {1,S} {3,S} 3 N3d u0 {2,S} {6,D} @@ -41073,82 +38299,84 @@ 5 R u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.1,11.7,12.2,12.7,13.5,14.1,14.9],'cal/(mol*K)','+|-',[0.7,0.7,0.7,0.7,0.7,0.7,0.7]), - H298 = (-5.3,'kcal/mol','+|-',0.9), - S298 = (39.5,'cal/(mol*K)','+|-',0.9), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.1, 11.7, 12.2, 12.7, 13.5, 14.1, 14.9], + "cal/(mol*K)", + "+|-", + [0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7], + ), + H298=(-5.3, "kcal/mol", "+|-", 0.9), + S298=(39.5, "cal/(mol*K)", "+|-", 0.9), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1876, - label = "O2s-CsN5d", - group = -""" + index=1876, + label="O2s-CsN5d", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 N5dc u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1848, - label = "O2s-Cs(N5dOdOs)", - group = -""" + index=1848, + label="O2s-Cs(N5dOdOs)", + group=""" 1 N5dc u0 {2,S} {3,D} {4,S} 2 * O2s u0 {1,S} {5,S} 3 O2d u0 {1,D} 4 O2s u0 {1,S} 5 Cs u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.2,13.9,15.4,16.6,18.4,19.3,19.9],'cal/(mol*K)','+|-',[0.8,0.8,0.8,0.8,0.8,0.8,0.8]), - H298 = (-19.1,'kcal/mol','+|-',1.1), - S298 = (45.3,'cal/(mol*K)','+|-',1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.2, 13.9, 15.4, 16.6, 18.4, 19.3, 19.9], + "cal/(mol*K)", + "+|-", + [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8], + ), + H298=(-19.1, "kcal/mol", "+|-", 1.1), + S298=(45.3, "cal/(mol*K)", "+|-", 1), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1879, - label = "O2s-CdN5d", - group = -""" + index=1879, + label="O2s-CdN5d", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 N5dc u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1880, - label = "O2s-(Cd-CdHH)(N5dOdOs)", - group = -""" + index=1880, + label="O2s-(Cd-CdHH)(N5dOdOs)", + group=""" 1 N5dc u0 {3,S} {4,D} {5,S} 2 Cd u0 {3,S} {6,D} {7,S} 3 * O2s u0 {1,S} {2,S} @@ -41157,328 +38385,342 @@ 6 Cd u0 {2,D} 7 R u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.4,14.2,15.7,16.9,18.5,19.3,20.1],'cal/(mol*K)','+|-',[0.8,0.8,0.8,0.8,0.8,0.8,0.8]), - H298 = (-18.4,'kcal/mol','+|-',1.1), - S298 = (45.4,'cal/(mol*K)','+|-',1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [12.4, 14.2, 15.7, 16.9, 18.5, 19.3, 20.1], + "cal/(mol*K)", + "+|-", + [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8], + ), + H298=(-18.4, "kcal/mol", "+|-", 1.1), + S298=(45.4, "cal/(mol*K)", "+|-", 1), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1936, - label = "O2s-ON", - group = -""" + index=1936, + label="O2s-ON", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 N u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1881, - label = "O2s-OsN3s", - group = -""" + index=1881, + label="O2s-OsN3s", + group=""" 1 * O2s u0 {2,S} {3,S} 2 N3s u0 {1,S} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.3,4.9,5.6,6.3,7,7.1,6.5],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (5.3,'kcal/mol','+|-',1.3), - S298 = (6.9,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.3, 4.9, 5.6, 6.3, 7, 7.1, 6.5], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(5.3, "kcal/mol", "+|-", 1.3), + S298=(6.9, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1882, - label = "O2s-OsN3d", - group = -""" + index=1882, + label="O2s-OsN3d", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 N3d u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1883, - label = "O2s-O2s(N3dOd)", - group = -""" + index=1883, + label="O2s-O2s(N3dOd)", + group=""" 1 * O2s u0 {2,S} {4,S} 2 N3d u0 {1,S} {3,D} 3 O2d u0 {2,D} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.7,12.9,13.6,14.2,15,15.5,16],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (15.2,'kcal/mol','+|-',1.3), - S298 = (40.7,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.7, 12.9, 13.6, 14.2, 15, 15.5, 16], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(15.2, "kcal/mol", "+|-", 1.3), + S298=(40.7, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1937, - label = "O2s-NN", - group = -""" + index=1937, + label="O2s-NN", + group=""" 1 * O2s u0 {2,S} {3,S} 2 N u0 {1,S} 3 N u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1884, - label = "O2s-N3sN3s", - group = -""" + index=1884, + label="O2s-N3sN3s", + group=""" 1 * O2s u0 {2,S} {3,S} 2 N3s u0 {1,S} 3 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.8,4.6,5.1,5.2,5.2,4.9,4.3],'cal/(mol*K)','+|-',[1.6,1.6,1.6,1.6,1.6,1.6,1.6]), - H298 = (5.7,'kcal/mol','+|-',2.2), - S298 = (6.8,'cal/(mol*K)','+|-',2.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.8, 4.6, 5.1, 5.2, 5.2, 4.9, 4.3], + "cal/(mol*K)", + "+|-", + [1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6], + ), + H298=(5.7, "kcal/mol", "+|-", 2.2), + S298=(6.8, "cal/(mol*K)", "+|-", 2.1), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1885, - label = "O2s-N3sN3d", - group = -""" + index=1885, + label="O2s-N3sN3d", + group=""" 1 * O2s u0 {2,S} {3,S} 2 N3s u0 {1,S} 3 N3d u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1886, - label = "O2s-N3s(N3dOd)", - group = -""" + index=1886, + label="O2s-N3s(N3dOd)", + group=""" 1 * O2s u0 {2,S} {4,S} 2 N3d u0 {1,S} {3,D} 3 O2d u0 {2,D} 4 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.2,11.5,12.4,13,13.9,14.3,14.8],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (10.8,'kcal/mol','+|-',1.3), - S298 = (40.8,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.2, 11.5, 12.4, 13, 13.9, 14.3, 14.8], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(10.8, "kcal/mol", "+|-", 1.3), + S298=(40.8, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1098, - label = "O2s-HH", - group = -""" + index=1098, + label="O2s-HH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.03,8.19,8.42,8.68,9.26,9.86,11.26],'cal/(mol*K)'), - H298 = (-57.8,'kcal/mol','+|-',0.01), - S298 = (46.51,'cal/(mol*K)','+|-',0.002), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.03, 8.19, 8.42, 8.68, 9.26, 9.86, 11.26], "cal/(mol*K)"), + H298=(-57.8, "kcal/mol", "+|-", 0.01), + S298=(46.51, "cal/(mol*K)", "+|-", 0.002), ), - shortDesc = """O-HH WATER. !!!Using NIST value for H2O, S(group) = S(H2O) + Rln(2)""", - longDesc = -""" + shortDesc="""O-HH WATER. !!!Using NIST value for H2O, S(group) = S(H2O) + Rln(2)""", + longDesc=""" """, ) entry( - index = 1099, - label = "O2s-OsH", - group = -""" + index=1099, + label="O2s-OsH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.21,5.72,6.17,6.66,7.15,7.61,8.43],'cal/(mol*K)','+|-',[0.07,0.07,0.07,0.07,0.07,0.07,0.07]), - H298 = (-16.3,'kcal/mol','+|-',0.14), - S298 = (27.83,'cal/(mol*K)','+|-',0.07), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.21, 5.72, 6.17, 6.66, 7.15, 7.61, 8.43], + "cal/(mol*K)", + "+|-", + [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07], + ), + H298=(-16.3, "kcal/mol", "+|-", 0.14), + S298=(27.83, "cal/(mol*K)", "+|-", 0.07), ), - shortDesc = """O-OH SANDIA 1/2*H2O2""", - longDesc = -""" + shortDesc="""O-OH SANDIA 1/2*H2O2""", + longDesc=""" """, ) entry( - index = 1100, - label = "O2s-OsOs", - group = -""" + index=1100, + label="O2s-OsOs", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.2,3.64,4.2,4.34,4.62,4.9,4.9],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (8.85,'kcal/mol','+|-',0.16), - S298 = (9.4,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2.2, 3.64, 4.2, 4.34, 4.62, 4.9, 4.9], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(8.85, "kcal/mol", "+|-", 0.16), + S298=(9.4, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """O-OO LAY 1997=20 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""O-OO LAY 1997=20 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1101, - label = "O2s-CH", - group = -""" + index=1101, + label="O2s-CH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 H u0 {1,S} """, - thermo = 'O2s-CsH', - shortDesc = """""", - longDesc = -""" + thermo="O2s-CsH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1102, - label = "O2s-CtH", - group = -""" + index=1102, + label="O2s-CtH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.3,4.5,4.82,5.23,6.02,6.61,7.44],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-37.9,'kcal/mol','+|-',0.16), - S298 = (29.1,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.3, 4.5, 4.82, 5.23, 6.02, 6.61, 7.44], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-37.9, "kcal/mol", "+|-", 0.16), + S298=(29.1, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """O-CtH BENSON (Assigned O-CsH)""", - longDesc = -""" + shortDesc="""O-CtH BENSON (Assigned O-CsH)""", + longDesc=""" """, ) entry( - index = 1103, - label = "O2s-CdsH", - group = -""" + index=1103, + label="O2s-CdsH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 [Cd,CO] u0 {1,S} 3 H u0 {1,S} """, - thermo = 'O2s-(Cds-Cd)H', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)H", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1104, - label = "O2s-(Cds-O2d)H", - group = -""" + index=1104, + label="O2s-(Cds-O2d)H", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 H u0 {1,S} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([19.07,19.8,20.85,22.07,24.57,26.95,31.66],'J/(mol*K)','+|-',[2.54,2.54,2.54,2.54,2.54,2.54,2.54]), - H298 = (-165.2,'kJ/mol','+|-',2.16), - S298 = (125.32,'J/(mol*K)','+|-',2.96), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [19.07, 19.8, 20.85, 22.07, 24.57, 26.95, 31.66], + "J/(mol*K)", + "+|-", + [2.54, 2.54, 2.54, 2.54, 2.54, 2.54, 2.54], + ), + H298=(-165.2, "kJ/mol", "+|-", 2.16), + S298=(125.32, "J/(mol*K)", "+|-", 2.96), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -41486,24 +38728,27 @@ ) entry( - index = 1105, - label = "O2s-(Cds-Cd)H", - group = -""" + index=1105, + label="O2s-(Cds-Cd)H", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 H u0 {1,S} 4 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([24.6,30.3,32.52,33.15,33.29,33.55,34.97],'J/(mol*K)','+|-',[4.18,4.18,4.18,4.18,4.18,4.18,4.18]), - H298 = (-188.1,'kJ/mol','+|-',3.56), - S298 = (106.3,'J/(mol*K)','+|-',4.87), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [24.6, 30.3, 32.52, 33.15, 33.29, 33.55, 34.97], + "J/(mol*K)", + "+|-", + [4.18, 4.18, 4.18, 4.18, 4.18, 4.18, 4.18], + ), + H298=(-188.1, "kJ/mol", "+|-", 3.56), + S298=(106.3, "J/(mol*K)", "+|-", 4.87), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -41511,23 +38756,26 @@ ) entry( - index = 1106, - label = "O2s-CsH", - group = -""" + index=1106, + label="O2s-CsH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([19.07,19.8,20.85,22.07,24.57,26.95,31.66],'J/(mol*K)','+|-',[2.54,2.54,2.54,2.54,2.54,2.54,2.54]), - H298 = (-165.2,'kJ/mol','+|-',2.16), - S298 = (125.32,'J/(mol*K)','+|-',2.96), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [19.07, 19.8, 20.85, 22.07, 24.57, 26.95, 31.66], + "J/(mol*K)", + "+|-", + [2.54, 2.54, 2.54, 2.54, 2.54, 2.54, 2.54], + ), + H298=(-165.2, "kJ/mol", "+|-", 2.16), + S298=(125.32, "J/(mol*K)", "+|-", 2.96), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -41535,372 +38783,369 @@ ) entry( - index = 1107, - label = "O2s-CbH", - group = -""" + index=1107, + label="O2s-CbH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cb u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.3,4.5,4.82,5.23,6.02,6.61,7.44],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-37.9,'kcal/mol','+|-',0.16), - S298 = (29.1,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.3, 4.5, 4.82, 5.23, 6.02, 6.61, 7.44], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-37.9, "kcal/mol", "+|-", 0.16), + S298=(29.1, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """O-CbH BENSON (Assigned O-CsH)""", - longDesc = -""" + shortDesc="""O-CbH BENSON (Assigned O-CsH)""", + longDesc=""" """, ) entry( - index = 1460, - label = "O2s-CSH", - group = -""" + index=1460, + label="O2s-CSH", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CS u0 {1,S} {4,D} 3 H u0 {1,S} 4 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.98,8.35,9.48,10.38,11.59,12.26,12.99],'cal/(mol*K)'), - H298 = (-31.38,'kcal/mol'), - S298 = (32.08,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.98, 8.35, 9.48, 10.38, 11.59, 12.26, 12.99], "cal/(mol*K)"), + H298=(-31.38, "kcal/mol"), + S298=(32.08, "cal/(mol*K)"), ), - shortDesc = """CAC calc 1D-HR""", - longDesc = -""" + shortDesc="""CAC calc 1D-HR""", + longDesc=""" """, ) entry( - index = 1108, - label = "O2s-OsC", - group = -""" + index=1108, + label="O2s-OsC", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 C u0 {1,S} """, - thermo = 'O2s-OsCs', - shortDesc = """""", - longDesc = -""" + thermo="O2s-OsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1109, - label = "O2s-OsCt", - group = -""" + index=1109, + label="O2s-OsCt", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.9,4.31,4.6,4.84,5.32,5.8,5.8],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (7,'kcal/mol','+|-',0.3), - S298 = (10.8,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.9, 4.31, 4.6, 4.84, 5.32, 5.8, 5.8], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(7, "kcal/mol", "+|-", 0.3), + S298=(10.8, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """O-OCb Hf JWB plot S,Cp assigned O/O/Cd !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""O-OCb Hf JWB plot S,Cp assigned O/O/Cd !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1110, - label = "O2s-OsCds", - group = -""" + index=1110, + label="O2s-OsCds", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 [Cd,CO] u0 {1,S} """, - thermo = 'O2s-O2s(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-O2s(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1111, - label = "O2s-O2s(Cds-O2d)", - group = -""" + index=1111, + label="O2s-O2s(Cds-O2d)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 O2s u0 {1,S} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.53,5.02,5.79,6.08,6.54,6.49,6.49],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-23.22,'kcal/mol','+|-',0.3), - S298 = (9.11,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.53, 5.02, 5.79, 6.08, 6.54, 6.49, 6.49], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-23.22, "kcal/mol", "+|-", 0.3), + S298=(9.11, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """O-OCO jwl cbsQ 99 cqcho=20 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""O-OCO jwl cbsQ 99 cqcho=20 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1112, - label = "O2s-O2s(Cds-Cd)", - group = -""" + index=1112, + label="O2s-O2s(Cds-Cd)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 O2s u0 {1,S} 4 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.5,3.87,3.95,4.15,4.73,4.89,4.89],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (1.64,'kcal/mol','+|-',0.3), - S298 = (10.12,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.5, 3.87, 3.95, 4.15, 4.73, 4.89, 4.89], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(1.64, "kcal/mol", "+|-", 0.3), + S298=(10.12, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """O-OCd WESTMORELAND S,Cp LAY'9405 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""O-OCd WESTMORELAND S,Cp LAY'9405 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1113, - label = "O2s-OsCs", - group = -""" + index=1113, + label="O2s-OsCs", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.9,4.31,4.6,4.84,5.32,5.8,5.8],'cal/(mol*K)','+|-',[0.15,0.15,0.15,0.15,0.15,0.15,0.15]), - H298 = (-5.4,'kcal/mol','+|-',0.3), - S298 = (8.54,'cal/(mol*K)','+|-',0.15), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.9, 4.31, 4.6, 4.84, 5.32, 5.8, 5.8], + "cal/(mol*K)", + "+|-", + [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], + ), + H298=(-5.4, "kcal/mol", "+|-", 0.3), + S298=(8.54, "cal/(mol*K)", "+|-", 0.15), ), - shortDesc = """O-OCs LAY 1997 !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""O-OCs LAY 1997 !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1114, - label = "O2s-OsCb", - group = -""" + index=1114, + label="O2s-OsCb", + group=""" 1 * O2s u0 {2,S} {3,S} 2 O2s u0 {1,S} 3 Cb u0 {1,S} """, - thermo = 'O2s-O2s(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-O2s(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1115, - label = "O2s-CC", - group = -""" + index=1115, + label="O2s-CC", + group=""" 1 * O2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 C u0 {1,S} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1116, - label = "O2s-CtCt", - group = -""" + index=1116, + label="O2s-CtCt", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1117, - label = "O2s-CtCds", - group = -""" + index=1117, + label="O2s-CtCds", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 [Cd,CO] u0 {1,S} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1118, - label = "O2s-Ct(Cds-O2d)", - group = -""" + index=1118, + label="O2s-Ct(Cds-O2d)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 Ct u0 {1,S} 4 O2d u0 {2,D} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1119, - label = "O2s-Ct(Cds-Cd)", - group = -""" + index=1119, + label="O2s-Ct(Cds-Cd)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 Ct u0 {1,S} 4 C u0 {2,D} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1120, - label = "O2s-CtCs", - group = -""" + index=1120, + label="O2s-CtCs", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} """, - thermo = 'O2s-Cs(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-Cs(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1873, - label = "O2s-Cs(CtN3t)", - group = -""" + index=1873, + label="O2s-Cs(CtN3t)", + group=""" 1 * O2s u0 {2,S} {4,S} 2 Ct u0 {1,S} {3,T} 3 N3t u0 {2,T} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([9.1,9.8,10.6,11.2,12.3,13,13.8],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (10,'kcal/mol','+|-',1.3), - S298 = (39.1,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [9.1, 9.8, 10.6, 11.2, 12.3, 13, 13.8], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(10, "kcal/mol", "+|-", 1.3), + S298=(39.1, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1121, - label = "O2s-CtCb", - group = -""" + index=1121, + label="O2s-CtCb", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 Cb u0 {1,S} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1122, - label = "O2s-CdsCds", - group = -""" + index=1122, + label="O2s-CdsCds", + group=""" 1 * O2s u0 {2,S} {3,S} 2 [Cd,CO] u0 {1,S} 3 [Cd,CO] u0 {1,S} """, - thermo = 'O2s-(Cds-Cd)(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-(Cds-Cd)(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1123, - label = "O2s-(Cds-O2d)(Cds-O2d)", - group = -""" + index=1123, + label="O2s-(Cds-O2d)(Cds-O2d)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 CO u0 {1,S} {5,D} 4 O2d u0 {2,D} 5 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([18.4,11.55,6.97,3.72,-0.53,-2.57,-1.41],'J/(mol*K)','+|-',[6.51,6.51,6.51,6.51,6.51,6.51,6.51]), - H298 = (-46.4,'kJ/mol','+|-',5.54), - S298 = (80.8,'J/(mol*K)','+|-',7.59), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [18.4, 11.55, 6.97, 3.72, -0.53, -2.57, -1.41], + "J/(mol*K)", + "+|-", + [6.51, 6.51, 6.51, 6.51, 6.51, 6.51, 6.51], + ), + H298=(-46.4, "kJ/mol", "+|-", 5.54), + S298=(80.8, "J/(mol*K)", "+|-", 7.59), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -41908,25 +39153,28 @@ ) entry( - index = 1124, - label = "O2s-(Cds-O2d)(Cds-Cd)", - group = -""" + index=1124, + label="O2s-(Cds-O2d)(Cds-Cd)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {5,D} 3 Cd u0 {1,S} {4,D} 4 C u0 {3,D} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([20.02,19.61,18.5,17.71,17.02,16.49,15.33],'J/(mol*K)','+|-',[8.17,8.17,8.17,8.17,8.17,8.17,8.17]), - H298 = (-100.6,'kJ/mol','+|-',6.96), - S298 = (38.43,'J/(mol*K)','+|-',9.53), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [20.02, 19.61, 18.5, 17.71, 17.02, 16.49, 15.33], + "J/(mol*K)", + "+|-", + [8.17, 8.17, 8.17, 8.17, 8.17, 8.17, 8.17], + ), + H298=(-100.6, "kJ/mol", "+|-", 6.96), + S298=(38.43, "J/(mol*K)", "+|-", 9.53), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -41934,63 +39182,67 @@ ) entry( - index = 1125, - label = "O2s-(Cds-Cd)(Cds-Cd)", - group = -""" + index=1125, + label="O2s-(Cds-Cd)(Cds-Cd)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.4,3.7,3.7,3.8,4.4,4.6,4.8],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-19.61,'kcal/mol','+|-',0.19), - S298 = (10,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.4, 3.7, 3.7, 3.8, 4.4, 4.6, 4.8], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-19.61, "kcal/mol", "+|-", 0.19), + S298=(10, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """O-CdCd BOZZELLI""", - longDesc = -""" + shortDesc="""O-CdCd BOZZELLI""", + longDesc=""" """, ) entry( - index = 1126, - label = "O2s-CdsCs", - group = -""" + index=1126, + label="O2s-CdsCs", + group=""" 1 * O2s u0 {2,S} {3,S} 2 [Cd,CO] u0 {1,S} 3 Cs u0 {1,S} """, - thermo = 'O2s-Cs(Cds-Cd)', - shortDesc = """""", - longDesc = -""" + thermo="O2s-Cs(Cds-Cd)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1127, - label = "O2s-Cs(Cds-O2d)", - group = -""" + index=1127, + label="O2s-Cs(Cds-O2d)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 Cs u0 {1,S} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.49,9.94,9.96,10.7,12.71,14.71,18],'J/(mol*K)','+|-',[3.15,3.15,3.15,3.15,3.15,3.15,3.15]), - H298 = (-102.2,'kJ/mol','+|-',2.69), - S298 = (45.71,'J/(mol*K)','+|-',3.68), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.49, 9.94, 9.96, 10.7, 12.71, 14.71, 18], + "J/(mol*K)", + "+|-", + [3.15, 3.15, 3.15, 3.15, 3.15, 3.15, 3.15], + ), + H298=(-102.2, "kJ/mol", "+|-", 2.69), + S298=(45.71, "J/(mol*K)", "+|-", 3.68), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -41998,24 +39250,27 @@ ) entry( - index = 1128, - label = "O2s-Cs(Cds-Cd)", - group = -""" + index=1128, + label="O2s-Cs(Cds-Cd)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 Cs u0 {1,S} 4 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([19.07,23.32,25.26,25.92,25.5,24.52,22.72],'J/(mol*K)','+|-',[3.47,3.47,3.47,3.47,3.47,3.47,3.47]), - H298 = (-123.9,'kJ/mol','+|-',2.96), - S298 = (18.91,'J/(mol*K)','+|-',4.05), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [19.07, 23.32, 25.26, 25.92, 25.5, 24.52, 22.72], + "J/(mol*K)", + "+|-", + [3.47, 3.47, 3.47, 3.47, 3.47, 3.47, 3.47], + ), + H298=(-123.9, "kJ/mol", "+|-", 2.96), + S298=(18.91, "J/(mol*K)", "+|-", 4.05), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -42023,76 +39278,73 @@ ) entry( - index = -1, - label = "O2s-CdsCb", - group = -""" + index=-1, + label="O2s-CdsCb", + group=""" 1 * O2s u0 {2,S} {3,S} 2 [Cd,CO] u0 {1,S} 3 Cb u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "O2s-Cb(Cds-O2d)", - group = -""" + index=-1, + label="O2s-Cb(Cds-O2d)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 Cb u0 {1,S} 4 O2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "O2s-Cb(Cds-Cd)", - group = -""" + index=-1, + label="O2s-Cb(Cds-Cd)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 Cb u0 {1,S} 4 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1129, - label = "O2s-CsCs", - group = -""" + index=1129, + label="O2s-CsCs", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([14.7,13.4,13.58,14.54,16.71,18.29,20.17],'J/(mol*K)','+|-',[2.44,2.44,2.44,2.44,2.44,2.44,2.44]), - H298 = (-98.6,'kJ/mol','+|-',2.08), - S298 = (38.61,'J/(mol*K)','+|-',2.85), - ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [14.7, 13.4, 13.58, 14.54, 16.71, 18.29, 20.17], + "J/(mol*K)", + "+|-", + [2.44, 2.44, 2.44, 2.44, 2.44, 2.44, 2.44], + ), + H298=(-98.6, "kJ/mol", "+|-", 2.08), + S298=(38.61, "J/(mol*K)", "+|-", 2.85), + ), + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -42100,1211 +39352,1108 @@ ) entry( - index = 1130, - label = "O2s-CsCb", - group = -""" + index=1130, + label="O2s-CsCb", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.4,3.7,3.7,3.8,4.4,4.6,4.6],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-22.6,'kcal/mol','+|-',0.19), - S298 = (9.7,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.4, 3.7, 3.7, 3.8, 4.4, 4.6, 4.6], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-22.6, "kcal/mol", "+|-", 0.19), + S298=(9.7, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """O-CbCs REID, PRAUSNITZ and SHERWOOD !!!WARNING! Cp1500 value taken as Cp1000""", - longDesc = -""" + shortDesc="""O-CbCs REID, PRAUSNITZ and SHERWOOD !!!WARNING! Cp1500 value taken as Cp1000""", + longDesc=""" """, ) entry( - index = 1131, - label = "O2s-CbCb", - group = -""" + index=1131, + label="O2s-CbCb", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.19,-0.24,-0.72,-0.51,0.43,1.36,1.75],'cal/(mol*K)','+|-',[0.1,0.1,0.1,0.1,0.1,0.1,0.1]), - H298 = (-18.77,'kcal/mol','+|-',0.19), - S298 = (13.59,'cal/(mol*K)','+|-',0.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [1.19, -0.24, -0.72, -0.51, 0.43, 1.36, 1.75], + "cal/(mol*K)", + "+|-", + [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + ), + H298=(-18.77, "kcal/mol", "+|-", 0.19), + S298=(13.59, "cal/(mol*K)", "+|-", 0.1), ), - shortDesc = """O-CbCb CHERN 1/97 Hf PEDLEY, Mopac""", - longDesc = -""" + shortDesc="""O-CbCb CHERN 1/97 Hf PEDLEY, Mopac""", + longDesc=""" """, ) entry( - index = 1461, - label = "O2s-Cs(Cds-S2d)", - group = -""" + index=1461, + label="O2s-Cs(Cds-S2d)", + group=""" 1 * O2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 CS u0 {1,S} {4,D} 4 S2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.56,6.31,7,7.61,8.52,8.99,9.29],'cal/(mol*K)'), - H298 = (-14.54,'kcal/mol'), - S298 = (10.02,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.56, 6.31, 7, 7.61, 8.52, 8.99, 9.29], "cal/(mol*K)"), + H298=(-14.54, "kcal/mol"), + S298=(10.02, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1D-HR""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1D-HR""", + longDesc=""" """, ) entry( - index = 1600, - label = "Si", - group = -""" + index=1600, + label="Si", + group=""" 1 * Si u0 """, - thermo = 'Cs-HHHH', - shortDesc = """""", - longDesc = -""" + thermo="Cs-HHHH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1400, - label = "S", - group = -""" + index=1400, + label="S", + group=""" 1 * S u0 """, - thermo = 'S2s-CsCs', - shortDesc = """""", - longDesc = -""" + thermo="S2s-CsCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "S2d", - group = -""" + index=-1, + label="S2d", + group=""" 1 * S2d u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1160, - label = "S2d-Cd", - group = -""" + index=1160, + label="S2d-Cd", + group=""" 1 * S2d u0 {2,D} 2 CS u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1161, - label = "S2d-S2d", - group = -""" + index=1161, + label="S2d-S2d", + group=""" 1 * S2d u0 {2,D} 2 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.9,4.08,4.2,4.27,4.35,4.39,4.43],'cal/(mol*K)'), - H298 = (22.82,'kcal/mol'), - S298 = (26.89,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.9, 4.08, 4.2, 4.27, 4.35, 4.39, 4.43], "cal/(mol*K)"), + H298=(22.82, "kcal/mol"), + S298=(26.89, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", + longDesc=""" """, ) entry( - index = -1, - label = "S2s", - group = -""" + index=-1, + label="S2s", + group=""" 1 * S2s u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1132, - label = "S2s-HH", - group = -""" + index=1132, + label="S2s-HH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.15,8.48,8.85,9.26,10.08,10.82,12.1],'cal/(mol*K)'), - H298 = (-5.37,'kcal/mol'), - S298 = (50.52,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.15, 8.48, 8.85, 9.26, 10.08, 10.82, 12.1], "cal/(mol*K)"), + H298=(-5.37, "kcal/mol"), + S298=(50.52, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "S2s-CH", - group = -""" + index=-1, + label="S2s-CH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1133, - label = "S2s-CsH", - group = -""" + index=1133, + label="S2s-CsH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.17,6.22,6.4,6.65,7.18,7.65,8.45],'cal/(mol*K)'), - H298 = (5.05,'kcal/mol'), - S298 = (33.68,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.17, 6.22, 6.4, 6.65, 7.18, 7.65, 8.45], "cal/(mol*K)"), + H298=(5.05, "kcal/mol"), + S298=(33.68, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1134, - label = "S2s-CdH", - group = -""" + index=1134, + label="S2s-CdH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.01,6.82,7.28,7.55,7.9,8.18,8.7],'cal/(mol*K)'), - H298 = (4.19,'kcal/mol'), - S298 = (32.23,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.01, 6.82, 7.28, 7.55, 7.9, 8.18, 8.7], "cal/(mol*K)"), + H298=(4.19, "kcal/mol"), + S298=(32.23, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1135, - label = "S2s-CtH", - group = -""" + index=1135, + label="S2s-CtH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.22,6.87,7.26,7.55,7.94,8.24,8.73],'cal/(mol*K)'), - H298 = (6.27,'kcal/mol'), - S298 = (31.59,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.22, 6.87, 7.26, 7.55, 7.94, 8.24, 8.73], "cal/(mol*K)"), + H298=(6.27, "kcal/mol"), + S298=(31.59, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1136, - label = "S2s-CbH", - group = -""" + index=1136, + label="S2s-CbH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cb u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.65,7.07,7.33,7.5,7.79,8.05,8.53],'cal/(mol*K)'), - H298 = (3.91,'kcal/mol'), - S298 = (31.98,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.65, 7.07, 7.33, 7.5, 7.79, 8.05, 8.53], "cal/(mol*K)"), + H298=(3.91, "kcal/mol"), + S298=(31.98, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1462, - label = "S2s-COH", - group = -""" + index=1462, + label="S2s-COH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 H u0 {1,S} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.05,9.1,9.95,10.65,11.62,12.26,13.25],'cal/(mol*K)'), - H298 = (-21.06,'kcal/mol'), - S298 = (35.41,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.05, 9.1, 9.95, 10.65, 11.62, 12.26, 13.25], "cal/(mol*K)"), + H298=(-21.06, "kcal/mol"), + S298=(35.41, "cal/(mol*K)"), ), - shortDesc = """CAC calc 1D-HR""", - longDesc = -""" + shortDesc="""CAC calc 1D-HR""", + longDesc=""" """, ) entry( - index = 1153, - label = "S2s-C=SH", - group = -""" + index=1153, + label="S2s-C=SH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 CS u0 {1,S} {4,D} 3 H u0 {1,S} 4 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.01,6.82,7.28,7.55,7.9,8.18,8.7],'cal/(mol*K)'), - H298 = (4.19,'kcal/mol'), - S298 = (32.23,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.01, 6.82, 7.28, 7.55, 7.9, 8.18, 8.7], "cal/(mol*K)"), + H298=(4.19, "kcal/mol"), + S298=(32.23, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1147, - label = "S2s-SsH", - group = -""" + index=1147, + label="S2s-SsH", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.75,6.48,7.02,7.43,8.03,8.43,9],'cal/(mol*K)'), - H298 = (1.97,'kcal/mol'), - S298 = (31.73,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.75, 6.48, 7.02, 7.43, 8.03, 8.43, 9], "cal/(mol*K)"), + H298=(1.97, "kcal/mol"), + S298=(31.73, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1152, - label = "S2s-SsSs", - group = -""" + index=1152, + label="S2s-SsSs", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.19,6.32,6.38,6.44,6.47,6.39,5.95],'cal/(mol*K)'), - H298 = (3.03,'kcal/mol'), - S298 = (11.18,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.19, 6.32, 6.38, 6.44, 6.47, 6.39, 5.95], "cal/(mol*K)"), + H298=(3.03, "kcal/mol"), + S298=(11.18, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "S2s-SsC", - group = -""" + index=-1, + label="S2s-SsC", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 C u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1148, - label = "S2s-SsCs", - group = -""" + index=1148, + label="S2s-SsCs", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.59,5.73,5.79,5.8,5.74,5.65,5.43],'cal/(mol*K)'), - H298 = (6.99,'kcal/mol'), - S298 = (12.61,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.59, 5.73, 5.79, 5.8, 5.74, 5.65, 5.43], "cal/(mol*K)"), + H298=(6.99, "kcal/mol"), + S298=(12.61, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1149, - label = "S2s-SsCd", - group = -""" + index=1149, + label="S2s-SsCd", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.41,5.92,6.11,6.14,5.98,5.74,5.25],'cal/(mol*K)'), - H298 = (7.62,'kcal/mol'), - S298 = (12.13,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.41, 5.92, 6.11, 6.14, 5.98, 5.74, 5.25], "cal/(mol*K)"), + H298=(7.62, "kcal/mol"), + S298=(12.13, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1150, - label = "S2s-SsCt", - group = -""" + index=1150, + label="S2s-SsCt", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.3,5.8,5.94,5.94,5.77,5.57,5.24],'cal/(mol*K)'), - H298 = (11.93,'kcal/mol'), - S298 = (12.73,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.3, 5.8, 5.94, 5.94, 5.77, 5.57, 5.24], "cal/(mol*K)"), + H298=(11.93, "kcal/mol"), + S298=(12.73, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1151, - label = "S2s-SsCb", - group = -""" + index=1151, + label="S2s-SsCb", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.71,5.93,5.98,5.92,5.67,5.38,4.78],'cal/(mol*K)'), - H298 = (7.09,'kcal/mol'), - S298 = (11.38,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.71, 5.93, 5.98, 5.92, 5.67, 5.38, 4.78], "cal/(mol*K)"), + H298=(7.09, "kcal/mol"), + S298=(11.38, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1159, - label = "S2s-C=SSs", - group = -""" + index=1159, + label="S2s-C=SSs", + group=""" 1 * S2s u0 {2,S} {3,S} 2 S2s u0 {1,S} 3 CS u0 {1,S} {4,D} 4 S2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.25,5.49,5.65,5.74,5.74,5.65,5.37],'cal/(mol*K)'), - H298 = (7.9,'kcal/mol'), - S298 = (13.34,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.25, 5.49, 5.65, 5.74, 5.74, 5.65, 5.37], "cal/(mol*K)"), + H298=(7.9, "kcal/mol"), + S298=(13.34, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "S2s-CC", - group = -""" + index=-1, + label="S2s-CC", + group=""" 1 * S2s u0 {2,S} {3,S} 2 C u0 {1,S} 3 C u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1137, - label = "S2s-CsCs", - group = -""" + index=1137, + label="S2s-CsCs", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.8,5.76,5.63,5.51,5.3,5.18,5.07],'cal/(mol*K)'), - H298 = (11.41,'kcal/mol'), - S298 = (13.72,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.8, 5.76, 5.63, 5.51, 5.3, 5.18, 5.07], "cal/(mol*K)"), + H298=(11.41, "kcal/mol"), + S298=(13.72, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1138, - label = "S2s-CsCd", - group = -""" + index=1138, + label="S2s-CsCd", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.68,6.98,6.89,6.65,6.16,5.79,5.33],'cal/(mol*K)'), - H298 = (9.83,'kcal/mol'), - S298 = (11.01,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.68, 6.98, 6.89, 6.65, 6.16, 5.79, 5.33], "cal/(mol*K)"), + H298=(9.83, "kcal/mol"), + S298=(11.01, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1463, - label = "S2s-CsCO", - group = -""" + index=1463, + label="S2s-CsCO", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 CO u0 {1,S} {4,D} 4 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.78,6.73,7.6,8.34,9.31,9.77,10.14],'cal/(mol*K)'), - H298 = (-15.33,'kcal/mol'), - S298 = (11.11,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.78, 6.73, 7.6, 8.34, 9.31, 9.77, 10.14], "cal/(mol*K)"), + H298=(-15.33, "kcal/mol"), + S298=(11.11, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1dhr calc""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1dhr calc""", + longDesc=""" """, ) entry( - index = 1139, - label = "S2s-CsCt", - group = -""" + index=1139, + label="S2s-CsCt", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.45,5.71,5.77,5.73,5.57,5.42,5.2],'cal/(mol*K)'), - H298 = (12.03,'kcal/mol'), - S298 = (13.23,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.45, 5.71, 5.77, 5.73, 5.57, 5.42, 5.2], "cal/(mol*K)"), + H298=(12.03, "kcal/mol"), + S298=(13.23, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1140, - label = "S2s-CsCb", - group = -""" + index=1140, + label="S2s-CsCb", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.62,5.74,5.7,5.6,5.38,5.22,5],'cal/(mol*K)'), - H298 = (10.51,'kcal/mol'), - S298 = (12.6,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.62, 5.74, 5.7, 5.6, 5.38, 5.22, 5], "cal/(mol*K)"), + H298=(10.51, "kcal/mol"), + S298=(12.6, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1141, - label = "S2s-CdCd", - group = -""" + index=1141, + label="S2s-CdCd", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.82,6.48,6.62,6.51,6.09,5.74,5.25],'cal/(mol*K)'), - H298 = (10.56,'kcal/mol'), - S298 = (12.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.82, 6.48, 6.62, 6.51, 6.09, 5.74, 5.25], "cal/(mol*K)"), + H298=(10.56, "kcal/mol"), + S298=(12.24, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1142, - label = "S2s-CdCt", - group = -""" + index=1142, + label="S2s-CdCt", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.34,5.99,6.17,6.13,5.88,5.63,5.27],'cal/(mol*K)'), - H298 = (12.84,'kcal/mol'), - S298 = (12.07,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.34, 5.99, 6.17, 6.13, 5.88, 5.63, 5.27], "cal/(mol*K)"), + H298=(12.84, "kcal/mol"), + S298=(12.07, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1143, - label = "S2s-CdCb", - group = -""" + index=1143, + label="S2s-CdCb", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.91,6.42,6.51,6.38,6,5.65,5.07],'cal/(mol*K)'), - H298 = (10.23,'kcal/mol'), - S298 = (11.93,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.91, 6.42, 6.51, 6.38, 6, 5.65, 5.07], "cal/(mol*K)"), + H298=(10.23, "kcal/mol"), + S298=(11.93, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1144, - label = "S2s-CtCt", - group = -""" + index=1144, + label="S2s-CtCt", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.61,5.28,5.46,5.47,5.37,5.27,5.11],'cal/(mol*K)'), - H298 = (19.93,'kcal/mol'), - S298 = (13.38,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.61, 5.28, 5.46, 5.47, 5.37, 5.27, 5.11], "cal/(mol*K)"), + H298=(19.93, "kcal/mol"), + S298=(13.38, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1145, - label = "S2s-CtCb", - group = -""" + index=1145, + label="S2s-CtCb", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Ct u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.6,5.94,5.94,5.82,5.56,5.35,5.06],'cal/(mol*K)'), - H298 = (13.27,'kcal/mol'), - S298 = (11.87,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.6, 5.94, 5.94, 5.82, 5.56, 5.35, 5.06], "cal/(mol*K)"), + H298=(13.27, "kcal/mol"), + S298=(11.87, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1146, - label = "S2s-CbCb", - group = -""" + index=1146, + label="S2s-CbCb", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.27,5.7,5.8,5.74,5.53,5.35,5.09],'cal/(mol*K)'), - H298 = (10.52,'kcal/mol'), - S298 = (12.32,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.27, 5.7, 5.8, 5.74, 5.53, 5.35, 5.09], "cal/(mol*K)"), + H298=(10.52, "kcal/mol"), + S298=(12.32, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1154, - label = "S2s-C=SCs", - group = -""" + index=1154, + label="S2s-C=SCs", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cs u0 {1,S} 3 CS u0 {1,S} {4,D} 4 S2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.43,5.15,5.65,5.92,6.04,5.97,5.72],'cal/(mol*K)'), - H298 = (6.87,'kcal/mol'), - S298 = (11.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.43, 5.15, 5.65, 5.92, 6.04, 5.97, 5.72], "cal/(mol*K)"), + H298=(6.87, "kcal/mol"), + S298=(11.81, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1156, - label = "S2s-C=SCt", - group = -""" + index=1156, + label="S2s-C=SCt", + group=""" 1 * S2s u0 {2,S} {3,S} 2 CS u0 {1,S} {4,D} 3 Ct u0 {1,S} 4 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.39,4.92,5.17,5.28,5.33,5.29,5.19],'cal/(mol*K)'), - H298 = (15.16,'kcal/mol'), - S298 = (14.06,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.39, 4.92, 5.17, 5.28, 5.33, 5.29, 5.19], "cal/(mol*K)"), + H298=(15.16, "kcal/mol"), + S298=(14.06, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1158, - label = "S2s-C=SC=S", - group = -""" + index=1158, + label="S2s-C=SC=S", + group=""" 1 * S2s u0 {2,S} {3,S} 2 CS u0 {1,S} {4,D} 3 CS u0 {1,S} {5,D} 4 S2d u0 {2,D} 5 S2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.98,5.28,5.67,6.04,6.51,6.52,5.77],'cal/(mol*K)'), - H298 = (12.91,'kcal/mol'), - S298 = (12.96,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.98, 5.28, 5.67, 6.04, 6.51, 6.52, 5.77], "cal/(mol*K)"), + H298=(12.91, "kcal/mol"), + S298=(12.96, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1155, - label = "S2s-C=SCd", - group = -""" + index=1155, + label="S2s-C=SCd", + group=""" 1 * S2s u0 {2,S} {3,S} 2 Cd u0 {1,S} 3 CS u0 {1,S} {4,D} 4 S2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.13,6.41,7.01,7.14,6.87,6.48,5.84],'cal/(mol*K)'), - H298 = (7.78,'kcal/mol'), - S298 = (10.23,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.13, 6.41, 7.01, 7.14, 6.87, 6.48, 5.84], "cal/(mol*K)"), + H298=(7.78, "kcal/mol"), + S298=(10.23, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1157, - label = "S2s-C=SCb", - group = -""" + index=1157, + label="S2s-C=SCb", + group=""" 1 * S2s u0 {2,S} {3,S} 2 CS u0 {1,S} {4,D} 3 Cb u0 {1,S} 4 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.08,5.5,5.68,5.7,5.59,5.42,5.05],'cal/(mol*K)'), - H298 = (10.76,'kcal/mol'), - S298 = (13.05,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.08, 5.5, 5.68, 5.7, 5.59, 5.42, 5.05], "cal/(mol*K)"), + H298=(10.76, "kcal/mol"), + S298=(13.05, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 1887, - label = "N", - group = -""" + index=1887, + label="N", + group=""" 1 * [N1dc,N3s,N3d,N3t,N5sc,N5dc,N5ddc,N5tc] u0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1922, - label = "N1dc", - group = -""" + index=1922, + label="N1dc", + group=""" 1 * N1dc u0 p2 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1888, - label = "N3s", - group = -""" + index=1888, + label="N3s", + group=""" 1 * N3s u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1938, - label = "N3s-CHH", - group = -""" + index=1938, + label="N3s-CHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1808, - label = "N3s-CsHH", - group = -""" + index=1808, + label="N3s-CsHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.72,6.51,7.32,8.07,9.41,10.47,12.28],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (29.71,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.72, 6.51, 7.32, 8.07, 9.41, 10.47, 12.28], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(29.71, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1817, - label = "N3s-CbHH", - group = -""" + index=1817, + label="N3s-CbHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.72,6.51,7.32,8.07,9.41,10.47,12.28],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (29.71,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.72, 6.51, 7.32, 8.07, 9.41, 10.47, 12.28], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(29.71, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1825, - label = "N3s-(CO)HH", - group = -""" + index=1825, + label="N3s-(CO)HH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 H u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.07,5.74,7.13,8.29,9.96,11.22,14.37],'cal/(mol*K)'), - H298 = (-14.9,'kcal/mol'), - S298 = (-24.69,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.07, 5.74, 7.13, 8.29, 9.96, 11.22, 14.37], "cal/(mol*K)"), + H298=(-14.9, "kcal/mol"), + S298=(-24.69, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1889, - label = "N3s-CdHH", - group = -""" + index=1889, + label="N3s-CdHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.7,6.5,7.3,8.1,9.4,10.5,12.3],'cal/(mol*K)'), - H298 = (4.8,'kcal/mol'), - S298 = (29.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.7, 6.5, 7.3, 8.1, 9.4, 10.5, 12.3], "cal/(mol*K)"), + H298=(4.8, "kcal/mol"), + S298=(29.7, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1938, - label = "N3s-CCH", - group = -""" + index=1938, + label="N3s-CCH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1809, - label = "N3s-CsCsH", - group = -""" + index=1809, + label="N3s-CsCsH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.2,5.21,6.13,6.83,7.9,8.65,9.55],'cal/(mol*K)'), - H298 = (15.4,'kcal/mol'), - S298 = (8.94,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.2, 5.21, 6.13, 6.83, 7.9, 8.65, 9.55], "cal/(mol*K)"), + H298=(15.4, "kcal/mol"), + S298=(8.94, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1818, - label = "N3s-CbCsH", - group = -""" + index=1818, + label="N3s-CbCsH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (14.9,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(14.9, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1820, - label = "N3s-CbCbH", - group = -""" + index=1820, + label="N3s-CbCbH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 Cb u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (16.3,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(16.3, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1826, - label = "N3s-(CO)CsH", - group = -""" + index=1826, + label="N3s-(CO)CsH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 Cs u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-4.4,'kcal/mol'), - S298 = (3.9,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-4.4, "kcal/mol"), + S298=(3.9, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1828, - label = "N3s-(CO)CbH", - group = -""" + index=1828, + label="N3s-(CO)CbH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 Cb u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0.4,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0.4, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1829, - label = "N3s-(CO)(CO)H", - group = -""" + index=1829, + label="N3s-(CO)(CO)H", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -43312,48 +40461,49 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-18.5,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-18.5, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1894, - label = "N3s-(CtN3t)CsH", - group = -""" + index=1894, + label="N3s-(CtN3t)CsH", + group=""" 1 * N3s u0 {2,S} {4,S} {5,S} 2 Ct u0 {1,S} {3,T} 3 N3t u0 {2,T} 4 Cs u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.3,11.6,12.8,13.9,15.5,16.7,18.3],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (44.1,'kcal/mol','+|-',1.3), - S298 = (40.7,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.3, 11.6, 12.8, 13.9, 15.5, 16.7, 18.3], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(44.1, "kcal/mol", "+|-", 1.3), + S298=(40.7, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1899, - label = "N3s-(CdCd)CsH", - group = -""" + index=1899, + label="N3s-(CdCd)CsH", + group=""" 1 * N3s u0 {2,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} {4,S} 3 Cd u0 {2,D} @@ -43361,117 +40511,112 @@ 5 Cs u0 {1,S} 6 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.8,6.1,6.4,6.7,7.5,8.1,9.1],'cal/(mol*K)','+|-',[1.3,1.3,1.3,1.3,1.3,1.3,1.3]), - H298 = (15.3,'kcal/mol','+|-',1.9), - S298 = (8.7,'cal/(mol*K)','+|-',1.7), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.8, 6.1, 6.4, 6.7, 7.5, 8.1, 9.1], + "cal/(mol*K)", + "+|-", + [1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3], + ), + H298=(15.3, "kcal/mol", "+|-", 1.9), + S298=(8.7, "cal/(mol*K)", "+|-", 1.7), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1939, - label = "N3s-CCC", - group = -""" + index=1939, + label="N3s-CCC", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1810, - label = "N3s-CsCsCs", - group = -""" + index=1810, + label="N3s-CsCsCs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.48,4.56,5.43,5.97,6.56,6.67,6.5],'cal/(mol*K)'), - H298 = (24.4,'kcal/mol'), - S298 = (-13.46,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.48, 4.56, 5.43, 5.97, 6.56, 6.67, 6.5], "cal/(mol*K)"), + H298=(24.4, "kcal/mol"), + S298=(-13.46, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1819, - label = "N3s-CbCsCs", - group = -""" + index=1819, + label="N3s-CbCsCs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (26.2,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(26.2, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1827, - label = "N3s-(CO)CsCs", - group = -""" + index=1827, + label="N3s-(CO)CsCs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 Cs u0 {1,S} 4 Cs u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1830, - label = "N3s-(CO)(CO)Cs", - group = -""" + index=1830, + label="N3s-(CO)(CO)Cs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -43479,24 +40624,22 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-5.9,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-5.9, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1831, - label = "N3s-(CO)(CO)Cb", - group = -""" + index=1831, + label="N3s-(CO)(CO)Cb", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -43504,48 +40647,49 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-0.5,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-0.5, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1895, - label = "N3s-(CtN3t)CsCs", - group = -""" + index=1895, + label="N3s-(CtN3t)CsCs", + group=""" 1 * N3s u0 {2,S} {4,S} {5,S} 2 Ct u0 {1,S} {3,T} 3 N3t u0 {2,T} 4 Cs u0 {1,S} 5 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.6,9.6,10.5,11.4,12.9,13.8,14.8],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (53.3,'kcal/mol','+|-',1.3), - S298 = (21,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [8.6, 9.6, 10.5, 11.4, 12.9, 13.8, 14.8], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(53.3, "kcal/mol", "+|-", 1.3), + S298=(21, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1898, - label = "N3s-(CdCd)CsCs", - group = -""" + index=1898, + label="N3s-(CdCd)CsCs", + group=""" 1 * N3s u0 {2,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} {4,S} 3 Cd u0 {2,D} @@ -43553,140 +40697,138 @@ 5 Cs u0 {1,S} 6 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.8,2.9,3.3,3.7,4.6,5,5.5],'cal/(mol*K)','+|-',[1.3,1.3,1.3,1.3,1.3,1.3,1.3]), - H298 = (25.9,'kcal/mol','+|-',1.9), - S298 = (-11,'cal/(mol*K)','+|-',1.7), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [2.8, 2.9, 3.3, 3.7, 4.6, 5, 5.5], + "cal/(mol*K)", + "+|-", + [1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3], + ), + H298=(25.9, "kcal/mol", "+|-", 1.9), + S298=(-11, "cal/(mol*K)", "+|-", 1.7), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1811, - label = "N3s-N3sHH", - group = -""" + index=1811, + label="N3s-N3sHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.1,7.38,8.43,9.27,10.54,11.52,13.19],'cal/(mol*K)'), - H298 = (11.4,'kcal/mol'), - S298 = (29.13,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.1, 7.38, 8.43, 9.27, 10.54, 11.52, 13.19], "cal/(mol*K)"), + H298=(11.4, "kcal/mol"), + S298=(29.13, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1940, - label = "N3s-NCH", - group = -""" + index=1940, + label="N3s-NCH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1812, - label = "N3s-N3sCsH", - group = -""" + index=1812, + label="N3s-N3sCsH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 H u0 {1,S} 4 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.82,5.8,6.5,7,7.8,8.3,9],'cal/(mol*K)'), - H298 = (20.9,'kcal/mol'), - S298 = (9.61,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.82, 5.8, 6.5, 7, 7.8, 8.3, 9], "cal/(mol*K)"), + H298=(20.9, "kcal/mol"), + S298=(9.61, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1814, - label = "N3s-N3sCbH", - group = -""" + index=1814, + label="N3s-N3sCbH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 N3s u0 {1,S} 3 Cb u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (22.1,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(22.1, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1897, - label = "N3s-CsH(N3dOd)", - group = -""" + index=1897, + label="N3s-CsH(N3dOd)", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 H u0 {1,S} 4 N3d u0 {1,S} {5,D} 5 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.4,11.9,13.4,14.7,16.6,17.9,19.2],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (25.2,'kcal/mol','+|-',1.3), - S298 = (41.7,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [10.4, 11.9, 13.4, 14.7, 16.6, 17.9, 19.2], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(25.2, "kcal/mol", "+|-", 1.3), + S298=(41.7, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1902, - label = "N3s-CsH(N5dOdOs)", - group = -""" + index=1902, + label="N3s-CsH(N5dOdOs)", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 H u0 {1,S} @@ -43694,24 +40836,27 @@ 5 O2d u0 {4,D} 6 O2s u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([13.1,15.5,17.6,19.2,21.4,22.8,24.4],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (8.4,'kcal/mol','+|-',1.3), - S298 = (45.3,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [13.1, 15.5, 17.6, 19.2, 21.4, 22.8, 24.4], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(8.4, "kcal/mol", "+|-", 1.3), + S298=(45.3, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1901, - label = "N3s-(CdCd)HN3s", - group = -""" + index=1901, + label="N3s-(CdCd)HN3s", + group=""" 1 * N3s u0 {2,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} {4,S} 3 Cd u0 {2,D} @@ -43719,117 +40864,122 @@ 5 H u0 {1,S} 6 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.5,5.4,6.5,7.3,8.5,9.1,9.9],'cal/(mol*K)','+|-',[1.1,1.1,1.1,1.1,1.1,1.1,1.1]), - H298 = (20.5,'kcal/mol','+|-',1.5), - S298 = (6.6,'cal/(mol*K)','+|-',1.4), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.5, 5.4, 6.5, 7.3, 8.5, 9.1, 9.9], + "cal/(mol*K)", + "+|-", + [1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1], + ), + H298=(20.5, "kcal/mol", "+|-", 1.5), + S298=(6.6, "cal/(mol*K)", "+|-", 1.4), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1940, - label = "N3s-NCC", - group = -""" + index=1940, + label="N3s-NCC", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1893, - label = "N3s-NCsCs", - group = -""" + index=1893, + label="N3s-NCsCs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (29.2,'kcal/mol'), - S298 = (-13.8,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(29.2, "kcal/mol"), + S298=(-13.8, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1813, - label = "N3s-CsCsN3s", - group = -""" + index=1813, + label="N3s-CsCsN3s", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.7,4.9,5.8,6.3,6.8,6.8,6.7],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (26.8,'kcal/mol','+|-',1.3), - S298 = (-14.5,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [3.7, 4.9, 5.8, 6.3, 6.8, 6.8, 6.7], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(26.8, "kcal/mol", "+|-", 1.3), + S298=(-14.5, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1896, - label = "N3s-CsCs(N3dOd)", - group = -""" + index=1896, + label="N3s-CsCs(N3dOd)", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 N3d u0 {1,S} {5,D} 5 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([9.4,10.5,11.5,12.4,13.8,14.6,15.3],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (32.6,'kcal/mol','+|-',1.3), - S298 = (19.3,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [9.4, 10.5, 11.5, 12.4, 13.8, 14.6, 15.3], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(32.6, "kcal/mol", "+|-", 1.3), + S298=(19.3, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1903, - label = "N3s-CsCs(N5dOdOs)", - group = -""" + index=1903, + label="N3s-CsCs(N5dOdOs)", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} @@ -43837,47 +40987,48 @@ 5 O2d u0 {4,D} 6 O2s u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.5,13.4,15.2,16.7,18.8,20,21.1],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (16.7,'kcal/mol','+|-',1.3), - S298 = (25.8,'cal/(mol*K)','+|-',1.2), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [11.5, 13.4, 15.2, 16.7, 18.8, 20, 21.1], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(16.7, "kcal/mol", "+|-", 1.3), + S298=(25.8, "cal/(mol*K)", "+|-", 1.2), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1941, - label = "N3s-NCdCs", - group = -""" + index=1941, + label="N3s-NCdCs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 Cd u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1900, - label = "N3s-(CdCd)CsN3s", - group = -""" + index=1900, + label="N3s-(CdCd)CsN3s", + group=""" 1 * N3s u0 {2,S} {5,S} {6,S} 2 Cd u0 {1,S} {3,D} {4,S} 3 Cd u0 {2,D} @@ -43885,447 +41036,421 @@ 5 Cs u0 {1,S} 6 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.2,4.2,4.4,4.8,5.4,5.7,6],'cal/(mol*K)','+|-',[1.1,1.1,1.1,1.1,1.1,1.1,1.1]), - H298 = (30.3,'kcal/mol','+|-',1.5), - S298 = (-13.2,'cal/(mol*K)','+|-',1.4), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.2, 4.2, 4.4, 4.8, 5.4, 5.7, 6], + "cal/(mol*K)", + "+|-", + [1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1], + ), + H298=(30.3, "kcal/mol", "+|-", 1.5), + S298=(-13.2, "cal/(mol*K)", "+|-", 1.4), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1891, - label = "N3s-CsHOs", - group = -""" + index=1891, + label="N3s-CsHOs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 H u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.2,6.2,7,7.7,8.7,9.4,10.5],'cal/(mol*K)','+|-',[1,1,1,1,1,1,1]), - H298 = (20.4,'kcal/mol','+|-',1.4), - S298 = (8.1,'cal/(mol*K)','+|-',1.3), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [5.2, 6.2, 7, 7.7, 8.7, 9.4, 10.5], + "cal/(mol*K)", + "+|-", + [1, 1, 1, 1, 1, 1, 1], + ), + H298=(20.4, "kcal/mol", "+|-", 1.4), + S298=(8.1, "cal/(mol*K)", "+|-", 1.3), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1892, - label = "N3s-CsCsOs", - group = -""" + index=1892, + label="N3s-CsCsOs", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.3,5.1,5.7,6.2,7,7.3,7.5],'cal/(mol*K)','+|-',[0.8,0.8,0.8,0.8,0.8,0.8,0.8]), - H298 = (26.6,'kcal/mol','+|-',1.2), - S298 = (-12.7,'cal/(mol*K)','+|-',1.1), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [4.3, 5.1, 5.7, 6.2, 7, 7.3, 7.5], + "cal/(mol*K)", + "+|-", + [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8], + ), + H298=(26.6, "kcal/mol", "+|-", 1.2), + S298=(-12.7, "cal/(mol*K)", "+|-", 1.1), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1890, - label = "N3s-OsHH", - group = -""" + index=1890, + label="N3s-OsHH", + group=""" 1 * N3s u0 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.1,7.4,8.4,9.3,10.5,11.5,13.2],'cal/(mol*K)'), - H298 = (11.4,'kcal/mol'), - S298 = (29.1,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.1, 7.4, 8.4, 9.3, 10.5, 11.5, 13.2], "cal/(mol*K)"), + H298=(11.4, "kcal/mol"), + S298=(29.1, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1904, - label = "N3d", - group = -""" + index=1904, + label="N3d", + group=""" 1 * N3d u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1906, - label = "N3d-CdH", - group = -""" + index=1906, + label="N3d-CdH", + group=""" 1 * N3d u0 {2,D} {3,S} 2 [Cd,Cdd] u0 {1,D} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3,3.5,3.9,4.3,5,5.5,6.4],'cal/(mol*K)'), - H298 = (16.3,'kcal/mol'), - S298 = (13.3,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3, 3.5, 3.9, 4.3, 5, 5.5, 6.4], "cal/(mol*K)"), + H298=(16.3, "kcal/mol"), + S298=(13.3, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1815, - label = "N3d-N3dH", - group = -""" + index=1815, + label="N3d-N3dH", + group=""" 1 * N3d u0 {2,S} {3,D} 2 H u0 {1,S} 3 N3d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.38,4.89,5.44,5.94,6.77,7.42,8.44],'cal/(mol*K)'), - H298 = (25.1,'kcal/mol'), - S298 = (26.8,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.38, 4.89, 5.44, 5.94, 6.77, 7.42, 8.44], "cal/(mol*K)"), + H298=(25.1, "kcal/mol"), + S298=(26.8, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1822, - label = "N3d-N3dN3s", - group = -""" + index=1822, + label="N3d-N3dN3s", + group=""" 1 * N3d u0 {2,D} {3,S} 2 N3d u0 {1,D} 3 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (23,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(23, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1909, - label = "N3d-OdOs", - group = -""" + index=1909, + label="N3d-OdOs", + group=""" 1 * N3d u0 {2,D} {3,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1910, - label = "N3d-OdN3s", - group = -""" + index=1910, + label="N3d-OdN3s", + group=""" 1 * N3d u0 {2,D} {3,S} 2 O2d u0 {1,D} 3 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1911, - label = "N3d-CsR", - group = -""" + index=1911, + label="N3d-CsR", + group=""" 1 * N3d u0 {2,S} {3,D} 2 Cs u0 {1,S} 3 R!H u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (21.3,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(21.3, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1908, - label = "N3d-OdC", - group = -""" + index=1908, + label="N3d-OdC", + group=""" 1 * N3d u0 {2,D} {3,S} 2 O2d u0 {1,D} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1905, - label = "N3d-CdCs", - group = -""" + index=1905, + label="N3d-CdCs", + group=""" 1 * N3d u0 {2,D} {3,S} 2 [Cd,Cdd] u0 {1,D} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2,2.2,2.2,2.3,2.5,2.7,2.9],'cal/(mol*K)'), - H298 = (21.3,'kcal/mol'), - S298 = (-6.3,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2, 2.2, 2.2, 2.3, 2.5, 2.7, 2.9], "cal/(mol*K)"), + H298=(21.3, "kcal/mol"), + S298=(-6.3, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1907, - label = "N3d-N3dCs", - group = -""" + index=1907, + label="N3d-N3dCs", + group=""" 1 * N3d u0 {2,D} {3,S} 2 N3d u0 {1,D} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.4,3.6,3.7,3.9,4.3,4.6,4.9],'cal/(mol*K)'), - H298 = (27,'kcal/mol'), - S298 = (7.2,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.4, 3.6, 3.7, 3.9, 4.3, 4.6, 4.9], "cal/(mol*K)"), + H298=(27, "kcal/mol"), + S298=(7.2, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1912, - label = "N3d-CbR", - group = -""" + index=1912, + label="N3d-CbR", + group=""" 1 * N3d u0 {2,S} {3,D} 2 Cb u0 {1,S} 3 R!H u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (16.7,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(16.7, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1913, - label = "N5dc", - group = -""" + index=1913, + label="N5dc", + group=""" 1 * N5dc u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1914, - label = "N5dc-OdOsCs", - group = -""" + index=1914, + label="N5dc-OdOsCs", + group=""" 1 * N5dc u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1915, - label = "N5dc-OdOsCd", - group = -""" + index=1915, + label="N5dc-OdOsCd", + group=""" 1 * N5dc u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1916, - label = "N5dc-OdOsOs", - group = -""" + index=1916, + label="N5dc-OdOsOs", + group=""" 1 * N5dc u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1917, - label = "N5dc-OdOsN3s", - group = -""" + index=1917, + label="N5dc-OdOsN3s", + group=""" 1 * N5dc u0 {2,D} {3,S} {4,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} 4 N3s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1918, - label = "N5ddc", - group = -""" + index=1918, + label="N5ddc", + group=""" 1 * N5ddc u0 """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) tree( -""" + """ L1: R L2: C L3: Cbf @@ -46383,4 +43508,3 @@ L3: N5ddc """ ) - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py b/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py index 8dc6207886..43d799f12c 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_cyclic.py @@ -17,5 +17,3 @@ Jan-23-2017 PZ """ - - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py b/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py index e82cfd8548..48776c3473 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/longDistanceInteraction_noncyclic.py @@ -27,5 +27,3 @@ Sep-30-2016 PZ """ - - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/other.py b/test/rmgpy/test_data/testing_database/thermo/groups/other.py index 047b367ca6..93de02a521 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/other.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/other.py @@ -7,54 +7,49 @@ """ entry( - index = 0, - label = "R", - group = -""" + index=0, + label="R", + group=""" 1 * R u0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """dummy root""", - longDesc = -""" + shortDesc="""dummy root""", + longDesc=""" """, ) entry( - index = 10, - label = "ketene", - group = -""" + index=10, + label="ketene", + group=""" 1 * C u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} {5,D} 3 R u0 {1,S} 4 R u0 {1,S} 5 O u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """All the corrections from this family are from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""All the corrections from this family are from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 13, - label = "ketene_2C-C", - group = -""" + index=13, + label="ketene_2C-C", + group=""" 1 * C u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} {5,D} 3 [Cs,Cd] u0 {1,S} {6,S} @@ -63,24 +58,22 @@ 6 C u0 {3,S} 7 C u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-1.6,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-1.6, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """This is correction NN2 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""This is correction NN2 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 11, - label = "ketene_1C-C_1C-H", - group = -""" + index=11, + label="ketene_1C-C_1C-H", + group=""" 1 * C u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} {5,D} 3 [Cs,Cd] u0 {1,S} {6,S} @@ -91,24 +84,22 @@ 8 H u0 {4,S} 9 H u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-0.5,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-0.5, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """This is correction NN1 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""This is correction NN1 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 14, - label = "biketene", - group = -""" + index=14, + label="biketene", + group=""" 1 C u0 {2,S} {3,S} {4,S} {5,S} 2 C u0 {1,S} {6,D} 3 * C u0 {1,S} {7,D} {10,S} @@ -120,24 +111,22 @@ 9 O u0 {7,D} 10 R u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (-0.9,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(-0.9, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """This is correction NN3 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""This is correction NN3 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", + longDesc=""" """, ) entry( - index = 12, - label = "ketene_2C-H", - group = -""" + index=12, + label="ketene_2C-H", + group=""" 1 * C u0 {2,D} {3,S} {4,S} 2 C u0 {1,D} {5,D} 3 C u0 {1,S} {6,S} {7,S} {8,S} @@ -150,21 +139,20 @@ 10 H u0 {4,S} 11 H u0 {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """This is correction NN0 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", - longDesc = -""" + shortDesc="""This is correction NN0 from Sumathi & Green, J. Phys. Chem. A, 2002, 106, 7937-7949""", + longDesc=""" """, ) tree( -""" + """ L1: R L2: ketene L3: ketene_2C-C @@ -173,4 +161,3 @@ L3: ketene_2C-H """ ) - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py b/test/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py index 4a4228fc2a..648330bd04 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/polycyclic.py @@ -6,4 +6,3 @@ longDesc = """ """ - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/radical.py b/test/rmgpy/test_data/testing_database/thermo/groups/radical.py index e90856353f..3963403525 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/radical.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/radical.py @@ -7,131 +7,117 @@ """ entry( - index = 0, - label = "Radical", - group = "OR{RJ, RJ2_singlet, RJ2_triplet, RJ3}", - thermo = 'RJ', - shortDesc = """""", - longDesc = -""" + index=0, + label="Radical", + group="OR{RJ, RJ2_singlet, RJ2_triplet, RJ3}", + thermo="RJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 1, - label = "RJ", - group = -""" + index=1, + label="RJ", + group=""" 1 * R u1 """, - thermo = 'CJ', - shortDesc = """""", - longDesc = -""" + thermo="CJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 2, - label = "CJ", - group = -""" + index=2, + label="CJ", + group=""" 1 * C u1 """, - thermo = 'CsJ', - shortDesc = """""", - longDesc = -""" + thermo="CsJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3, - label = "CsJ", - group = -""" + index=3, + label="CsJ", + group=""" 1 * Cs u1 """, - thermo = 'Cs_P', - shortDesc = """""", - longDesc = -""" + thermo="Cs_P", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 4, - label = "CH3", - group = -""" + index=4, + label="CH3", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 H u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.71,0.34,-0.33,-1.07,-2.43,-3.54,-5.43],'cal/(mol*K)'), - H298 = (104.81,'kcal/mol','+|-',0.1), - S298 = (0.52,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.71, 0.34, -0.33, -1.07, -2.43, -3.54, -5.43], "cal/(mol*K)"), + H298=(104.81, "kcal/mol", "+|-", 0.1), + S298=(0.52, "cal/(mol*K)"), ), - shortDesc = """Calculated in relation to methane from NIST values""", - longDesc = -""" + shortDesc="""Calculated in relation to methane from NIST values""", + longDesc=""" """, ) entry( - index = 5, - label = "Cs_P", - group = -""" + index=5, + label="Cs_P", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.77,-1.36,-1.91,-2.4,-3.16,-3.74,-4.66],'cal/(mol*K)'), - H298 = (101.1,'kcal/mol'), - S298 = (2.61,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.77, -1.36, -1.91, -2.4, -3.16, -3.74, -4.66], "cal/(mol*K)"), + H298=(101.1, "kcal/mol"), + S298=(2.61, "cal/(mol*K)"), ), - shortDesc = """Generic primary radical. (CHEN & BOZZELLI) #""", - longDesc = -""" + shortDesc="""Generic primary radical. (CHEN & BOZZELLI) #""", + longDesc=""" """, ) entry( - index = 6, - label = "CsCsJ", - group = -""" + index=6, + label="CsCsJ", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cs_P', - shortDesc = """""", - longDesc = -""" + thermo="Cs_P", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 11, - label = "CJCOOH", - group = -""" + index=11, + label="CJCOOH", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cs u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -139,24 +125,22 @@ 5 H u0 {1,S} 6 O2s u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.25,-0.76,-1.34,-1.91,-2.87,-3.6,-4.69],'cal/(mol*K)'), - H298 = (103.26,'kcal/mol'), - S298 = (3.54,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.25, -0.76, -1.34, -1.91, -2.87, -3.6, -4.69], "cal/(mol*K)"), + H298=(103.26, "kcal/mol"), + S298=(3.54, "cal/(mol*K)"), ), - shortDesc = """WIJAYA et al.""", - longDesc = -""" + shortDesc="""WIJAYA et al.""", + longDesc=""" """, ) entry( - index = 7, - label = "CCJ", - group = -""" + index=7, + label="CCJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 H u0 {1,S} @@ -165,24 +149,22 @@ 6 H u0 {2,S} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.65,-1.21,-1.75,-2.24,-3.02,-3.63,-3.63],'cal/(mol*K)'), - H298 = (101.1,'kcal/mol','+|-',0.2), - S298 = (2.61,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.65, -1.21, -1.75, -2.24, -3.02, -3.63, -3.63], "cal/(mol*K)"), + H298=(101.1, "kcal/mol", "+|-", 0.2), + S298=(2.61, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 8, - label = "RCCJ", - group = -""" + index=8, + label="RCCJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 C u0 {1,S} @@ -191,24 +173,22 @@ 6 H u0 {2,S} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.77,-1.36,-1.91,-2.4,-3.16,-3.74,-4.66],'cal/(mol*K)'), - H298 = (101.1,'kcal/mol','+|-',0.2), - S298 = (2.61,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.77, -1.36, -1.91, -2.4, -3.16, -3.74, -4.66], "cal/(mol*K)"), + H298=(101.1, "kcal/mol", "+|-", 0.2), + S298=(2.61, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 9, - label = "Isobutyl", - group = -""" + index=9, + label="Isobutyl", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 C u0 {1,S} @@ -217,24 +197,22 @@ 6 H u0 {2,S} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.54,-1.26,-1.92,-2.46,-3.27,-3.84,-3.84],'cal/(mol*K)'), - H298 = (101.1,'kcal/mol'), - S298 = (2.91,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.54, -1.26, -1.92, -2.46, -3.27, -3.84, -3.84], "cal/(mol*K)"), + H298=(101.1, "kcal/mol"), + S298=(2.91, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 10, - label = "Neopentyl", - group = -""" + index=10, + label="Neopentyl", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 C u0 {1,S} @@ -243,24 +221,22 @@ 6 H u0 {2,S} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.59,-1.32,-2.05,-2.65,-3.5,-4.06,-4.87],'cal/(mol*K)'), - H298 = (101.1,'kcal/mol'), - S298 = (3.03,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.59, -1.32, -2.05, -2.65, -3.5, -4.06, -4.87], "cal/(mol*K)"), + H298=(101.1, "kcal/mol"), + S298=(3.03, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 3047, - label = "CJC(C)2C=O", - group = -""" + index=3047, + label="CJC(C)2C=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 CO u0 {1,S} {8,D} @@ -270,15 +246,14 @@ 7 H u0 {2,S} 8 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.9,2.5,-1.1,-4.4,-9.7,-13.6,-19],'J/(mol*K)'), - H298 = (429.5,'kJ/mol'), - S298 = (7.9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.9, 2.5, -1.1, -4.4, -9.7, -13.6, -19], "J/(mol*K)"), + H298=(429.5, "kJ/mol"), + S298=(7.9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -286,10 +261,9 @@ ) entry( - index = 3045, - label = "CJC(C=O)2C", - group = -""" + index=3045, + label="CJC(C=O)2C", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 CO u0 {1,S} {8,D} @@ -300,15 +274,14 @@ 8 O2d u0 {3,D} 9 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.8,2.5,0.6,-1.9,-6.9,-10.9,-17.1],'J/(mol*K)'), - H298 = (427,'kJ/mol'), - S298 = (8.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.8, 2.5, 0.6, -1.9, -6.9, -10.9, -17.1], "J/(mol*K)"), + H298=(427, "kJ/mol"), + S298=(8.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -316,10 +289,9 @@ ) entry( - index = 3067, - label = "C=CC(C=O)2CJ", - group = -""" + index=3067, + label="C=CC(C=O)2CJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 CO u0 {1,S} {9,D} @@ -331,15 +303,14 @@ 9 O2d u0 {3,D} 10 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.7,2.4,-0.6,-3.5,-8.4,-12.1,-17.6],'J/(mol*K)'), - H298 = (429.8,'kJ/mol'), - S298 = (5.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.7, 2.4, -0.6, -3.5, -8.4, -12.1, -17.6], "J/(mol*K)"), + H298=(429.8, "kJ/mol"), + S298=(5.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -347,10 +318,9 @@ ) entry( - index = 3066, - label = "C=CC(C)(C=O)CJ", - group = -""" + index=3066, + label="C=CC(C)(C=O)CJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 CO u0 {1,S} {9,D} @@ -361,15 +331,14 @@ 8 C u0 {4,D} 9 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.8,0.6,-2.7,-5.8,-10.8,-14.4,-19.3],'J/(mol*K)'), - H298 = (430.6,'kJ/mol'), - S298 = (9.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.8, 0.6, -2.7, -5.8, -10.8, -14.4, -19.3], "J/(mol*K)"), + H298=(430.6, "kJ/mol"), + S298=(9.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -377,10 +346,9 @@ ) entry( - index = 3017, - label = "CJC(C)OC", - group = -""" + index=3017, + label="CJC(C)OC", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 * Cs u1 {1,S} {5,S} {6,S} 3 O2s u0 {1,S} {7,S} @@ -389,15 +357,14 @@ 6 H u0 {2,S} 7 C u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.5,1.8,-2,-5.5,-11,-14.7,-19.8],'J/(mol*K)'), - H298 = (429.9,'kJ/mol'), - S298 = (7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.5, 1.8, -2, -5.5, -11, -14.7, -19.8], "J/(mol*K)"), + H298=(429.9, "kJ/mol"), + S298=(7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -405,10 +372,9 @@ ) entry( - index = 3018, - label = "CJC(C)2O", - group = -""" + index=3018, + label="CJC(C)2O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 C u0 {1,S} @@ -417,15 +383,14 @@ 6 H u0 {2,S} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.1,1.1,-2.1,-5.1,-9.7,-13.1,-18.5],'J/(mol*K)'), - H298 = (431.1,'kJ/mol'), - S298 = (5.1,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.1, 1.1, -2.1, -5.1, -9.7, -13.1, -18.5], "J/(mol*K)"), + H298=(431.1, "kJ/mol"), + S298=(5.1, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -433,10 +398,9 @@ ) entry( - index = 3031, - label = "C=CC(C)(O)CJ", - group = -""" + index=3031, + label="C=CC(C)(O)CJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 Cd u0 {1,S} {8,D} @@ -446,15 +410,14 @@ 7 H u0 {2,S} 8 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.5,-2.7,-5.5,-7.9,-11.8,-14.6,-19],'J/(mol*K)'), - H298 = (431.9,'kJ/mol'), - S298 = (9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.5, -2.7, -5.5, -7.9, -11.8, -14.6, -19], "J/(mol*K)"), + H298=(431.9, "kJ/mol"), + S298=(9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -462,10 +425,9 @@ ) entry( - index = 3065, - label = "C=CC(O)(C=O)CJ", - group = -""" + index=3065, + label="C=CC(O)(C=O)CJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 CO u0 {1,S} {9,D} @@ -476,15 +438,14 @@ 8 C u0 {4,D} 9 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4,0.9,-2.4,-5.2,-9.7,-13,-18.1],'J/(mol*K)'), - H298 = (432.3,'kJ/mol'), - S298 = (6.9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4, 0.9, -2.4, -5.2, -9.7, -13, -18.1], "J/(mol*K)"), + H298=(432.3, "kJ/mol"), + S298=(6.9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -492,10 +453,9 @@ ) entry( - index = 3046, - label = "CJC(C)(C=O)O", - group = -""" + index=3046, + label="CJC(C)(C=O)O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 CO u0 {1,S} {8,D} @@ -505,15 +465,14 @@ 7 H u0 {2,S} 8 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.6,5.1,2.3,-0.9,-6.8,-11.3,-17.8],'J/(mol*K)'), - H298 = (430.9,'kJ/mol'), - S298 = (3.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.6, 5.1, 2.3, -0.9, -6.8, -11.3, -17.8], "J/(mol*K)"), + H298=(430.9, "kJ/mol"), + S298=(3.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -521,10 +480,9 @@ ) entry( - index = 3019, - label = "CJC(O)2C", - group = -""" + index=3019, + label="CJC(O)2C", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 C u0 {1,S} @@ -533,15 +491,14 @@ 6 H u0 {2,S} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.4,-1.5,-5,-7.4,-10.8,-13.6,-18.2],'J/(mol*K)'), - H298 = (435.3,'kJ/mol'), - S298 = (8.1,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.4, -1.5, -5, -7.4, -10.8, -13.6, -18.2], "J/(mol*K)"), + H298=(435.3, "kJ/mol"), + S298=(8.1, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -549,10 +506,9 @@ ) entry( - index = 3032, - label = "C=CC(O)2CJ", - group = -""" + index=3032, + label="C=CC(O)2CJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 Cd u0 {1,S} {8,D} @@ -562,15 +518,14 @@ 7 H u0 {2,S} 8 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1,-0.2,-2,-4,-8.1,-11.6,-17.2],'J/(mol*K)'), - H298 = (431.8,'kJ/mol'), - S298 = (6.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1, -0.2, -2, -4, -8.1, -11.6, -17.2], "J/(mol*K)"), + H298=(431.8, "kJ/mol"), + S298=(6.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -578,10 +533,9 @@ ) entry( - index = 3044, - label = "CJC(C)C=O", - group = -""" + index=3044, + label="CJC(C)C=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 * Cs u1 {1,S} {5,S} {6,S} 3 CO u0 {1,S} {7,D} @@ -590,15 +544,14 @@ 6 H u0 {2,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.6,0.2,-3,-5.8,-10.5,-14.1,-19.3],'J/(mol*K)'), - H298 = (429.5,'kJ/mol'), - S298 = (8.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.6, 0.2, -3, -5.8, -10.5, -14.1, -19.3], "J/(mol*K)"), + H298=(429.5, "kJ/mol"), + S298=(8.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -606,10 +559,9 @@ ) entry( - index = 3076, - label = "CJC(C)C=C=O", - group = -""" + index=3076, + label="CJC(C)C=C=O", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 * Cs u1 {1,S} {6,S} {7,S} 3 Cd u0 {1,S} {4,D} @@ -619,15 +571,14 @@ 7 H u0 {2,S} 8 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3.2,-0.5,-4.1,-7.2,-11.8,-15,-19.5],'J/(mol*K)'), - H298 = (430.1,'kJ/mol'), - S298 = (9.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3.2, -0.5, -4.1, -7.2, -11.8, -15, -19.5], "J/(mol*K)"), + H298=(430.1, "kJ/mol"), + S298=(9.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -635,56 +586,51 @@ ) entry( - index = 12, - label = "Benzyl_P", - group = -""" + index=12, + label="Benzyl_P", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.75,0.6,0.13,-0.42,-1.41,-2.18,-2.18],'cal/(mol*K)'), - H298 = (88.5,'kcal/mol','+|-',0.1), - S298 = (-4.74,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.75, 0.6, 0.13, -0.42, -1.41, -2.18, -2.18], "cal/(mol*K)"), + H298=(88.5, "kcal/mol", "+|-", 0.1), + S298=(-4.74, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 13, - label = "Allyl_P", - group = -""" + index=13, + label="Allyl_P", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.62,-0.56,-0.78,-1.12,-1.84,-2.46,-3.49],'cal/(mol*K)'), - H298 = (88.2,'kcal/mol'), - S298 = (-2.56,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.62, -0.56, -0.78, -1.12, -1.84, -2.46, -3.49], "cal/(mol*K)"), + H298=(88.2, "kcal/mol"), + S298=(-2.56, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 14, - label = "C=CC=CCJ", - group = -""" + index=14, + label="C=CC=CCJ", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cd u0 {2,D} {6,S} @@ -692,24 +638,22 @@ 5 H u0 {1,S} 6 Cd u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.83,-1.86,-1.98,-1.99,-2.3,-2.5,-2.5],'cal/(mol*K)'), - H298 = (80,'kcal/mol'), - S298 = (-1.55,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.83, -1.86, -1.98, -1.99, -2.3, -2.5, -2.5], "cal/(mol*K)"), + H298=(80, "kcal/mol"), + S298=(-1.55, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 15, - label = "CTCC=CCJ", - group = -""" + index=15, + label="CTCC=CCJ", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cd u0 {2,D} {6,S} @@ -717,24 +661,22 @@ 5 H u0 {1,S} 6 Ct u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.09,-1.62,-2.01,-2.63,-3.07,-3.48,-3.48],'cal/(mol*K)'), - H298 = (81,'kcal/mol'), - S298 = (-3.55,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.09, -1.62, -2.01, -2.63, -3.07, -3.48, -3.48], "cal/(mol*K)"), + H298=(81, "kcal/mol"), + S298=(-3.55, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 3029, - label = "C=C(O)CJ", - group = -""" + index=3029, + label="C=C(O)CJ", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,S} {6,D} 3 H u0 {1,S} @@ -742,15 +684,14 @@ 5 O2s u0 {2,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.7,-2.3,-4.6,-7.1,-11,-13.5,-16.6],'J/(mol*K)'), - H298 = (376.8,'kJ/mol'), - S298 = (-3.9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.7, -2.3, -4.6, -7.1, -11, -13.5, -16.6], "J/(mol*K)"), + H298=(376.8, "kJ/mol"), + S298=(-3.9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -758,10 +699,9 @@ ) entry( - index = 3062, - label = "C=C(C=O)CJ", - group = -""" + index=3062, + label="C=C(C=O)CJ", + group=""" 1 Cd u0 {2,S} {3,S} {4,D} 2 * Cs u1 {1,S} {5,S} {6,S} 3 CO u0 {1,S} {7,D} @@ -770,15 +710,14 @@ 6 H u0 {2,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.8,-1.2,-2.4,-4.4,-8.2,-11.3,-15.9],'J/(mol*K)'), - H298 = (374,'kJ/mol'), - S298 = (-16.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.8, -1.2, -2.4, -4.4, -8.2, -11.3, -15.9], "J/(mol*K)"), + H298=(374, "kJ/mol"), + S298=(-16.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -786,10 +725,9 @@ ) entry( - index = 3074, - label = "CJC=C=O", - group = -""" + index=3074, + label="CJC=C=O", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -797,15 +735,14 @@ 5 H u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.2,-0.7,-2.6,-4.5,-8.1,-11,-15.6],'J/(mol*K)'), - H298 = (373.5,'kJ/mol'), - S298 = (-1.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.2, -0.7, -2.6, -4.5, -8.1, -11, -15.6], "J/(mol*K)"), + H298=(373.5, "kJ/mol"), + S298=(-1.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -813,10 +750,9 @@ ) entry( - index = 3082, - label = "C=C(CJ)C=C=O", - group = -""" + index=3082, + label="C=C(CJ)C=C=O", + group=""" 1 Cd u0 {2,S} {3,S} {5,D} 2 * Cs u1 {1,S} {6,S} {7,S} 3 Cd u0 {1,S} {4,D} @@ -826,15 +762,14 @@ 7 H u0 {2,S} 8 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.2,-5.6,-5.7,-6.4,-8.2,-10,-12.8],'J/(mol*K)'), - H298 = (374.9,'kJ/mol'), - S298 = (-8.1,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.2, -5.6, -5.7, -6.4, -8.2, -10, -12.8], "J/(mol*K)"), + H298=(374.9, "kJ/mol"), + S298=(-8.1, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -842,48 +777,44 @@ ) entry( - index = 17, - label = "Propargyl", - group = -""" + index=17, + label="Propargyl", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Ct u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.84,-1.17,-1.56,-1.95,-2.7,-3.31,-5.31],'cal/(mol*K)'), - H298 = (89.4,'kcal/mol'), - S298 = (-0.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.84, -1.17, -1.56, -1.95, -2.7, -3.31, -5.31], "cal/(mol*K)"), + H298=(89.4, "kcal/mol"), + S298=(-0.51, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 3010, - label = "CJCO", - group = -""" + index=3010, + label="CJCO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} {5,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.8,-1.5,-4.1,-6.7,-11.1,-14.3,-19.2],'J/(mol*K)'), - H298 = (430,'kJ/mol'), - S298 = (6.1,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.8, -1.5, -4.1, -6.7, -11.1, -14.3, -19.2], "J/(mol*K)"), + H298=(430, "kJ/mol"), + S298=(6.1, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -891,25 +822,23 @@ ) entry( - index = 3038, - label = "CJC=O", - group = -""" + index=3038, + label="CJC=O", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 H u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.5,1.1,-0.4,-2.3,-6.1,-9.2,-14.4],'J/(mol*K)'), - H298 = (402.4,'kJ/mol'), - S298 = (-7.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.5, 1.1, -0.4, -2.3, -6.1, -9.2, -14.4], "J/(mol*K)"), + H298=(402.4, "kJ/mol"), + S298=(-7.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -917,10 +846,9 @@ ) entry( - index = 16, - label = "C2JC=O", - group = -""" + index=16, + label="C2JC=O", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} {6,S} 3 H u0 {1,S} @@ -928,24 +856,22 @@ 5 O2d u0 {2,D} 6 C u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.32,0.19,-0.15,-0.57,-1.43,-2.22,-3.67],'cal/(mol*K)'), - H298 = (94.4,'kcal/mol'), - S298 = (-1.16,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.32, 0.19, -0.15, -0.57, -1.43, -2.22, -3.67], "cal/(mol*K)"), + H298=(94.4, "kcal/mol"), + S298=(-1.16, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI""", + longDesc=""" """, ) entry( - index = 3039, - label = "CJCC=O", - group = -""" + index=3039, + label="CJCC=O", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 C u0 {1,S} {3,S} 3 CO u0 {2,S} {6,D} @@ -953,15 +879,14 @@ 5 H u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.8,-1.5,-4.1,-6.7,-11.1,-14.3,-19.2],'J/(mol*K)'), - H298 = (430,'kJ/mol'), - S298 = (6.1,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.8, -1.5, -4.1, -6.7, -11.1, -14.3, -19.2], "J/(mol*K)"), + H298=(430, "kJ/mol"), + S298=(6.1, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -969,10 +894,9 @@ ) entry( - index = 3075, - label = "CJCC=C=O", - group = -""" + index=3075, + label="CJCC=C=O", + group=""" 1 * Cs u1 {2,S} {5,S} {6,S} 2 C u0 {1,S} {3,S} 3 Cd u0 {2,S} {4,D} @@ -981,15 +905,14 @@ 6 H u0 {1,S} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.3,-5.8,-8.1,-10.1,-13.4,-15.9,-19.9],'J/(mol*K)'), - H298 = (420.3,'kJ/mol'), - S298 = (16.4,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.3, -5.8, -8.1, -10.1, -13.4, -15.9, -19.9], "J/(mol*K)"), + H298=(420.3, "kJ/mol"), + S298=(16.4, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -997,98 +920,89 @@ ) entry( - index = 18, - label = "Cs_S", - group = -""" + index=18, + label="Cs_S", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.5,-2.33,-3.1,-3.39,-3.75,-4.45,-5.2],'cal/(mol*K)'), - H298 = (98.45,'kcal/mol'), - S298 = (4.44,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.5, -2.33, -3.1, -3.39, -3.75, -4.45, -5.2], "cal/(mol*K)"), + H298=(98.45, "kcal/mol"), + S298=(4.44, "cal/(mol*K)"), ), - shortDesc = """Generic secondary radical. (CHEN & BOZZELLI) #""", - longDesc = -""" + shortDesc="""Generic secondary radical. (CHEN & BOZZELLI) #""", + longDesc=""" """, ) entry( - index = 19, - label = "(Cs)2CsJ", - group = -""" + index=19, + label="(Cs)2CsJ", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = 'Cs_S', - shortDesc = """""", - longDesc = -""" + thermo="Cs_S", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 142, - label = "cyclopropane", - group = -""" + index=142, + label="cyclopropane", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {3,S} 3 Cs u0 {1,S} {2,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (106,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(106, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """D.F. McMillen, D.M. Golden, HYDROCARBON BOND-DISSOCIATION ENERGIES, Annual Review of Physical Chemistry, 33 (1982) 493-532.. S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""D.F. McMillen, D.M. Golden, HYDROCARBON BOND-DISSOCIATION ENERGIES, Annual Review of Physical Chemistry, 33 (1982) 493-532.. S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 152, - label = "bicyclo[1.1.0]butane-secondary", - group = -""" + index=152, + label="bicyclo[1.1.0]butane-secondary", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 * Cs u1 {1,S} {2,S} {5,S} 4 Cs u0 {1,S} {2,S} 5 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (101.1,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(101.1, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 151, - label = "spiro[2.2]pentane-secondary", - group = -""" + index=151, + label="spiro[2.2]pentane-secondary", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * Cs u1 {1,S} {3,S} {6,S} 3 Cs u0 {1,S} {2,S} @@ -1096,24 +1010,22 @@ 5 Cs u0 {1,S} {4,S} 6 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (107.3,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(107.3, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 154, - label = "bicyclo[2.1.0]pentane-secondary-C3", - group = -""" + index=154, + label="bicyclo[2.1.0]pentane-secondary-C3", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 * Cs u1 {1,S} {2,S} {6,S} @@ -1121,24 +1033,22 @@ 5 Cs u0 {1,S} {4,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (105.9,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(105.9, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 185, - label = "bicyclo[2.1.0]pent-2-ene-C5", - group = -""" + index=185, + label="bicyclo[2.1.0]pent-2-ene-C5", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 * Cs u1 {1,S} {2,S} {6,S} @@ -1146,24 +1056,22 @@ 5 Cd u0 {1,S} {4,D} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (106.9,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(106.9, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 190, - label = "tricyclo[2.1.1.0(1,4)]hex-2-ene-C5", - group = -""" + index=190, + label="tricyclo[2.1.1.0(1,4)]hex-2-ene-C5", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cs u0 {1,S} {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {7,S} @@ -1172,24 +1080,22 @@ 6 Cd u0 {1,S} {5,D} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (105.2,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(105.2, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 197, - label = "tricyclo[1.1.1.0(1,3)]pentane-C2", - group = -""" + index=197, + label="tricyclo[1.1.1.0(1,3)]pentane-C2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {6,S} @@ -1197,24 +1103,22 @@ 5 C u0 {1,S} {2,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (111.5,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(111.5, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 157, - label = "bicyclo[3.1.0]hexane-C3", - group = -""" + index=157, + label="bicyclo[3.1.0]hexane-C3", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 * Cs u1 {1,S} {2,S} {7,S} @@ -1223,24 +1127,22 @@ 6 Cs u0 {4,S} {5,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (108.3,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(108.3, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 202, - label = "tricyclo[2.1.1.0(1,4)]hexane-C5", - group = -""" + index=202, + label="tricyclo[2.1.1.0(1,4)]hexane-C5", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cs u0 {1,S} {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {7,S} @@ -1249,24 +1151,22 @@ 6 C u0 {1,S} {5,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (103.4,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(103.4, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 172, - label = "bicyclo[4.1.0]heptane-C3-7", - group = -""" + index=172, + label="bicyclo[4.1.0]heptane-C3-7", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 * Cs u1 {1,S} {2,S} {8,S} @@ -1276,24 +1176,22 @@ 7 C u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (108.1,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(108.1, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 172, - label = "bicyclo[4.1.0]heptane-C3-7", - group = -""" + index=172, + label="bicyclo[4.1.0]heptane-C3-7", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 * Cs u1 {1,S} {2,S} {8,S} @@ -1303,24 +1201,22 @@ 7 C u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (108.1,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(108.1, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 209, - label = "tricyclo[3.1.1.0(1,5)]heptane-C6", - group = -""" + index=209, + label="tricyclo[3.1.1.0(1,5)]heptane-C6", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cs u0 {1,S} {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {8,S} @@ -1330,24 +1226,22 @@ 7 C u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (100,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(100, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 211, - label = "tricyclo[2.2.1.0(1,4)]heptane-C7", - group = -""" + index=211, + label="tricyclo[2.2.1.0(1,4)]heptane-C7", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} {7,S} 2 Cs u0 {1,S} {3,S} {4,S} {6,S} 3 * Cs u1 {1,S} {2,S} {8,S} @@ -1357,48 +1251,44 @@ 7 C u0 {1,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (106.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(106.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 143, - label = "cyclobutane", - group = -""" + index=143, + label="cyclobutane", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {4,S} 3 Cs u0 {1,S} {4,S} 4 Cs u0 {2,S} {3,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (96.9,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(96.9, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Tian, Z.; Fattahi, A.; Lis, L.; Kass, S. R., "Cycloalkane and Cycloalkene C-H Bond Dissociation Energies," J. Am. Chem. Soc. 2006, 128, 17087-17092, DOI: 10.1021/ja065348u. S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Tian, Z.; Fattahi, A.; Lis, L.; Kass, S. R., "Cycloalkane and Cycloalkene C-H Bond Dissociation Energies," J. Am. Chem. Soc. 2006, 128, 17087-17092, DOI: 10.1021/ja065348u. S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 153, - label = "bicyclo[2.1.0]pentane-secondary-C4", - group = -""" + index=153, + label="bicyclo[2.1.0]pentane-secondary-C4", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 * Cs u1 {1,S} {5,S} {6,S} @@ -1406,24 +1296,22 @@ 5 Cs u0 {2,S} {3,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (99.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(99.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 158, - label = "bicyclo[2.2.0]hexane-secondary", - group = -""" + index=158, + label="bicyclo[2.2.0]hexane-secondary", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 * Cs u1 {1,S} {4,S} {7,S} @@ -1432,24 +1320,22 @@ 6 Cs u0 {2,S} {5,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (98.6,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(98.6, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 161, - label = "bicyclo[3.2.0]heptane-C5-6", - group = -""" + index=161, + label="bicyclo[3.2.0]heptane-C5-6", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 * Cs u1 {1,S} {4,S} {8,S} @@ -1459,24 +1345,22 @@ 7 Cs u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (99,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(99, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 210, - label = "tricyclo[2.2.1.0(1,4)]heptane-C2", - group = -""" + index=210, + label="tricyclo[2.2.1.0(1,4)]heptane-C2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cs u0 {1,S} {4,S} {5,S} {7,S} 3 * Cs u1 {1,S} {5,S} {8,S} @@ -1486,24 +1370,22 @@ 7 C u0 {2,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (96.8,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(96.8, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 177, - label = "bicyclo[4.2.0]octane-C4-7", - group = -""" + index=177, + label="bicyclo[4.2.0]octane-C4-7", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 * Cs u1 {1,S} {4,S} {9,S} @@ -1514,24 +1396,22 @@ 8 C u0 {5,S} {7,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (100.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(100.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 23, - label = "CCJCOOH", - group = -""" + index=23, + label="CCJCOOH", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cs u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -1539,24 +1419,22 @@ 5 H u0 {1,S} 6 O2s u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.65,-1.4,-2,-2.5,-3.27,-3.84,-4.73],'cal/(mol*K)'), - H298 = (99.98,'kcal/mol'), - S298 = (4.79,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.65, -1.4, -2, -2.5, -3.27, -3.84, -4.73], "cal/(mol*K)"), + H298=(99.98, "kcal/mol"), + S298=(4.79, "cal/(mol*K)"), ), - shortDesc = """WIJAYA et al.""", - longDesc = -""" + shortDesc="""WIJAYA et al.""", + longDesc=""" """, ) entry( - index = 179, - label = "cyclopentene-4", - group = -""" + index=179, + label="cyclopentene-4", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {5,S} 3 Cs u0 {1,S} {4,S} @@ -1564,24 +1442,22 @@ 5 Cd u0 {2,S} {4,D} 6 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (96.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(96.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Allyl_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Allyl_S""", + longDesc=""" """, ) entry( - index = 188, - label = "bicyclo[2.1.1]hex-2-ene-C5", - group = -""" + index=188, + label="bicyclo[2.1.1]hex-2-ene-C5", + group=""" 1 Cs u0 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {7,S} @@ -1590,24 +1466,22 @@ 6 Cd u0 {1,S} {5,D} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (104.8,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(104.8, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 196, - label = "bicyclo[1.1.1]pentane-C2", - group = -""" + index=196, + label="bicyclo[1.1.1]pentane-C2", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {6,S} @@ -1615,24 +1489,22 @@ 5 C u0 {1,S} {2,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (106.5,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(106.5, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 155, - label = "bicyclo[3.1.0]hexane-C5-2", - group = -""" + index=155, + label="bicyclo[3.1.0]hexane-C5-2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 * Cs u1 {1,S} {6,S} {7,S} @@ -1641,24 +1513,22 @@ 6 Cs u0 {3,S} {5,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (93.6,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(93.6, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 156, - label = "bicyclo[3.1.0]hexane-C5-3", - group = -""" + index=156, + label="bicyclo[3.1.0]hexane-C5-3", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} {7,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 * Cs u1 {5,S} {6,S} {8,S} @@ -1668,24 +1538,22 @@ 7 H u0 {1,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (94.1,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(94.1, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 199, - label = "bicyclo[2.1.1]hexane-C2", - group = -""" + index=199, + label="bicyclo[2.1.1]hexane-C2", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} 2 Cs u0 {4,S} {5,S} {6,S} 3 * Cs u1 {1,S} {6,S} {7,S} @@ -1694,24 +1562,22 @@ 6 Cs u0 {2,S} {3,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (100.8,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(100.8, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 201, - label = "tricyclo[2.1.1.0(1,4)]hexane-C2", - group = -""" + index=201, + label="tricyclo[2.1.1.0(1,4)]hexane-C2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 * Cs u1 {1,S} {6,S} {7,S} @@ -1720,24 +1586,22 @@ 6 Cs u0 {2,S} {3,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (100.1,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(100.1, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 200, - label = "bicyclo[2.1.1]hexane-C5", - group = -""" + index=200, + label="bicyclo[2.1.1]hexane-C5", + group=""" 1 Cs u0 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {7,S} @@ -1746,24 +1610,22 @@ 6 C u0 {1,S} {5,S} 7 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (105.4,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(105.4, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 140, - label = "7-norbornyl", - group = -""" + index=140, + label="7-norbornyl", + group=""" 1 Cs u0 {3,S} {4,S} {7,S} 2 Cs u0 {3,S} {5,S} {6,S} 3 * Cs u1 {1,S} {2,S} {8,S} @@ -1773,24 +1635,22 @@ 7 Cs u0 {1,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (98.8,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(98.8, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """P.M. Nunes, S.G. Estacio, G.T. Lopes, B.J. Costa Cabral, R.M. Borges dos Santos, J.A. Martinho Simoes, CH Bond Dissociation Enthalpies in Norbornane. An Experimental and Computational Study, Organic Letters, 10 (2008) 1613-1616. S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""P.M. Nunes, S.G. Estacio, G.T. Lopes, B.J. Costa Cabral, R.M. Borges dos Santos, J.A. Martinho Simoes, CH Bond Dissociation Enthalpies in Norbornane. An Experimental and Computational Study, Organic Letters, 10 (2008) 1613-1616. S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 141, - label = "2-norbornyl", - group = -""" + index=141, + label="2-norbornyl", + group=""" 1 Cs u0 {2,S} {4,S} {6,S} {8,S} 2 * Cs u1 {1,S} {5,S} {9,S} 3 Cs u0 {4,S} {5,S} {7,S} @@ -1801,24 +1661,22 @@ 8 H u0 {1,S} 9 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (105.02,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(105.02, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """P.M. Nunes, S.G. Estacio, G.T. Lopes, B.J. Costa Cabral, R.M. Borges dos Santos, J.A. Martinho Simoes, CH Bond Dissociation Enthalpies in Norbornane. An Experimental and Computational Study, Organic Letters, 10 (2008) 1613-1616. S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""P.M. Nunes, S.G. Estacio, G.T. Lopes, B.J. Costa Cabral, R.M. Borges dos Santos, J.A. Martinho Simoes, CH Bond Dissociation Enthalpies in Norbornane. An Experimental and Computational Study, Organic Letters, 10 (2008) 1613-1616. S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 150, - label = "cycloheptane", - group = -""" + index=150, + label="cycloheptane", + group=""" 1 * Cs u1 {2,S} {3,S} {8,S} 2 Cs u0 {1,S} {4,S} 3 Cs u0 {1,S} {5,S} @@ -1828,24 +1686,22 @@ 7 Cs u0 {5,S} {6,S} 8 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (92.5,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(92.5, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 159, - label = "bicyclo[3.2.0]heptane-C5-2", - group = -""" + index=159, + label="bicyclo[3.2.0]heptane-C5-2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {5,S} {6,S} 3 * Cs u1 {1,S} {7,S} {8,S} @@ -1855,24 +1711,22 @@ 7 Cs u0 {3,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.9,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.9, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 160, - label = "bicyclo[3.2.0]heptane-C5-3", - group = -""" + index=160, + label="bicyclo[3.2.0]heptane-C5-3", + group=""" 1 Cs u0 {2,S} {5,S} {6,S} 2 Cs u0 {1,S} {4,S} {7,S} 3 * Cs u1 {4,S} {5,S} {8,S} @@ -1882,24 +1736,22 @@ 7 Cs u0 {2,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (99.5,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(99.5, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 170, - label = "bicyclo[4.1.0]heptane-C6-2", - group = -""" + index=170, + label="bicyclo[4.1.0]heptane-C6-2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 * Cs u1 {1,S} {6,S} {8,S} @@ -1909,24 +1761,22 @@ 7 C u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (94.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(94.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 171, - label = "bicyclo[4.1.0]heptane-C6-3", - group = -""" + index=171, + label="bicyclo[4.1.0]heptane-C6-3", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 * Cs u1 {5,S} {7,S} {8,S} @@ -1936,24 +1786,22 @@ 7 Cs u0 {3,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.6,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.6, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 170, - label = "bicyclo[4.1.0]heptane-C6-2", - group = -""" + index=170, + label="bicyclo[4.1.0]heptane-C6-2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 * Cs u1 {1,S} {6,S} {8,S} @@ -1963,24 +1811,22 @@ 7 C u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (94.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(94.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 171, - label = "bicyclo[4.1.0]heptane-C6-3", - group = -""" + index=171, + label="bicyclo[4.1.0]heptane-C6-3", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 * Cs u1 {5,S} {7,S} {8,S} @@ -1990,24 +1836,22 @@ 7 Cs u0 {3,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.6,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.6, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 204, - label = "bicyclo[3.1.1]heptane-C2", - group = -""" + index=204, + label="bicyclo[3.1.1]heptane-C2", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} 2 Cs u0 {4,S} {5,S} {6,S} 3 * Cs u1 {1,S} {7,S} {8,S} @@ -2017,24 +1861,22 @@ 7 Cs u0 {3,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.6,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.6, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 207, - label = "tricyclo[3.1.1.0(1,5)]heptane-C2", - group = -""" + index=207, + label="tricyclo[3.1.1.0(1,5)]heptane-C2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 * Cs u1 {1,S} {7,S} {8,S} @@ -2044,24 +1886,22 @@ 7 Cs u0 {3,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (98.5,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(98.5, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 205, - label = "bicyclo[3.1.1]heptane-C3", - group = -""" + index=205, + label="bicyclo[3.1.1]heptane-C3", + group=""" 1 Cs u0 {4,S} {5,S} {7,S} 2 Cs u0 {4,S} {5,S} {6,S} 3 * Cs u1 {6,S} {7,S} {8,S} @@ -2071,24 +1911,22 @@ 7 Cs u0 {1,S} {3,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.3,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.3, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 208, - label = "tricyclo[3.1.1.0(1,5)]heptane-C3", - group = -""" + index=208, + label="tricyclo[3.1.1.0(1,5)]heptane-C3", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} {7,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 * Cs u1 {6,S} {7,S} {8,S} @@ -2098,24 +1936,22 @@ 7 Cs u0 {1,S} {3,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 206, - label = "bicyclo[3.1.1]heptane-C6", - group = -""" + index=206, + label="bicyclo[3.1.1]heptane-C6", + group=""" 1 Cs u0 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 * Cs u1 {1,S} {2,S} {8,S} @@ -2125,24 +1961,22 @@ 7 C u0 {5,S} {6,S} 8 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (103,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(103, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 173, - label = "octahydro-pentalene-C5-2", - group = -""" + index=173, + label="octahydro-pentalene-C5-2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {5,S} {6,S} 3 * Cs u1 {1,S} {7,S} {9,S} @@ -2153,24 +1987,22 @@ 8 C u0 {4,S} {6,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.8,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.8, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 174, - label = "octahydro-pentalene-C5-3", - group = -""" + index=174, + label="octahydro-pentalene-C5-3", + group=""" 1 Cs u0 {2,S} {4,S} {6,S} 2 Cs u0 {1,S} {5,S} {7,S} 3 * Cs u1 {4,S} {5,S} {9,S} @@ -2181,24 +2013,22 @@ 8 C u0 {6,S} {7,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (98.1,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(98.1, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 175, - label = "bicyclo[4.2.0]octane-C6-2", - group = -""" + index=175, + label="bicyclo[4.2.0]octane-C6-2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {5,S} {6,S} 3 * Cs u1 {1,S} {7,S} {9,S} @@ -2209,24 +2039,22 @@ 8 C u0 {6,S} {7,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (96.7,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(96.7, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 176, - label = "bicyclo[4.2.0]octane-C6-3", - group = -""" + index=176, + label="bicyclo[4.2.0]octane-C6-3", + group=""" 1 Cs u0 {2,S} {4,S} {6,S} 2 Cs u0 {1,S} {5,S} {7,S} 3 * Cs u1 {4,S} {8,S} {9,S} @@ -2237,24 +2065,22 @@ 8 Cs u0 {3,S} {7,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (99,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(99, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 213, - label = "bicyclo[2.2.2]octane-C2", - group = -""" + index=213, + label="bicyclo[2.2.2]octane-C2", + group=""" 1 Cs u0 {3,S} {5,S} {6,S} 2 Cs u0 {4,S} {7,S} {8,S} 3 * Cs u1 {1,S} {4,S} {9,S} @@ -2265,24 +2091,22 @@ 8 C u0 {2,S} {6,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (97.8,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(97.8, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 214, - label = "tricyclo[2.2.2.0(1,4)]octane-C2", - group = -""" + index=214, + label="tricyclo[2.2.2.0(1,4)]octane-C2", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} {6,S} 2 Cs u0 {1,S} {4,S} {7,S} {8,S} 3 * Cs u1 {1,S} {4,S} {9,S} @@ -2293,24 +2117,22 @@ 8 C u0 {2,S} {6,S} 9 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (99.3,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(99.3, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from CCJC entry""", + longDesc=""" """, ) entry( - index = 20, - label = "CCJC", - group = -""" + index=20, + label="CCJC", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 Cs u0 {3,S} {7,S} {8,S} {9,S} 3 * Cs u1 {1,S} {2,S} {10,S} @@ -2322,24 +2144,22 @@ 9 H u0 {2,S} 10 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-2.36,-3.02,-3.44,-3.98,-4.36,-4.99],'cal/(mol*K)'), - H298 = (98.45,'kcal/mol','+|-',0.2), - S298 = (4.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -2.36, -3.02, -3.44, -3.98, -4.36, -4.99], "cal/(mol*K)"), + H298=(98.45, "kcal/mol", "+|-", 0.2), + S298=(4.51, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 21, - label = "RCCJC", - group = -""" + index=21, + label="RCCJC", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 Cs u0 {3,S} {7,S} {8,S} {9,S} 3 * Cs u1 {1,S} {2,S} {10,S} @@ -2351,24 +2171,22 @@ 9 H u0 {2,S} 10 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.54,-2.77,-3.49,-3.9,-4.35,-4.64,-4.64],'cal/(mol*K)'), - H298 = (98.45,'kcal/mol'), - S298 = (5.13,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, -2.77, -3.49, -3.9, -4.35, -4.64, -4.64], "cal/(mol*K)"), + H298=(98.45, "kcal/mol"), + S298=(5.13, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 22, - label = "RCCJCC", - group = -""" + index=22, + label="RCCJCC", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 Cs u0 {3,S} {7,S} {8,S} {9,S} 3 * Cs u1 {1,S} {2,S} {10,S} @@ -2380,24 +2198,22 @@ 9 H u0 {2,S} 10 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.71,-3.14,-3.92,-4.33,-4.71,-4.92,-4.92],'cal/(mol*K)'), - H298 = (98.45,'kcal/mol'), - S298 = (4.9,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.71, -3.14, -3.92, -4.33, -4.71, -4.92, -4.92], "cal/(mol*K)"), + H298=(98.45, "kcal/mol"), + S298=(4.9, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 215, - label = "cyclopentane", - group = -""" + index=215, + label="cyclopentane", + group=""" 1 Cs u0 {3,S} {4,S} {6,S} {7,S} 2 Cs u0 {3,S} {5,S} {8,S} {9,S} 3 * Cs u1 {1,S} {2,S} {10,S} @@ -2409,24 +2225,22 @@ 9 H u0 {2,S} 10 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.71,-3.14,-3.92,-4.33,-4.71,-4.92,-4.92],'cal/(mol*K)'), - H298 = (96.4,'kcal/mol'), - S298 = (4.9,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.71, -3.14, -3.92, -4.33, -4.71, -4.92, -4.92], "cal/(mol*K)"), + H298=(96.4, "kcal/mol"), + S298=(4.9, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from RCCJCC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from RCCJCC entry""", + longDesc=""" """, ) entry( - index = 216, - label = "cyclohexane", - group = -""" + index=216, + label="cyclohexane", + group=""" 1 Cs u0 {3,S} {4,S} {7,S} {8,S} 2 Cs u0 {3,S} {5,S} {9,S} {10,S} 3 * Cs u1 {1,S} {2,S} {11,S} @@ -2439,47 +2253,43 @@ 10 H u0 {2,S} 11 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.71,-3.14,-3.92,-4.33,-4.71,-4.92,-4.92],'cal/(mol*K)'), - H298 = (95.5,'kcal/mol'), - S298 = (4.9,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.71, -3.14, -3.92, -4.33, -4.71, -4.92, -4.92], "cal/(mol*K)"), + H298=(95.5, "kcal/mol"), + S298=(4.9, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from RCCJCC entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from RCCJCC entry""", + longDesc=""" """, ) entry( - index = 24, - label = "Benzyl_S", - group = -""" + index=24, + label="Benzyl_S", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.87,0.09,-0.63,-1.21,-2.07,-2.69,-2.69],'cal/(mol*K)'), - H298 = (85.9,'kcal/mol'), - S298 = (-5.04,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.87, 0.09, -0.63, -1.21, -2.07, -2.69, -2.69], "cal/(mol*K)"), + H298=(85.9, "kcal/mol"), + S298=(-5.04, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 26, - label = "Indenyl", - group = -""" + index=26, + label="Indenyl", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cb u0 {1,S} {4,B} 3 Cd u0 {1,S} {5,D} @@ -2487,71 +2297,65 @@ 5 Cd u0 {3,D} {4,S} 6 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.36,-0.72,-1.23,-1.77,-2.7,-3.43,-4.54],'cal/(mol*K)'), - H298 = (81.62,'kcal/mol'), - S298 = (0.69,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.36, -0.72, -1.23, -1.77, -2.7, -3.43, -4.54], "cal/(mol*K)"), + H298=(81.62, "kcal/mol"), + S298=(0.69, "cal/(mol*K)"), ), - shortDesc = """A.G. Vandeputte CBS-QB3""", - longDesc = -""" + shortDesc="""A.G. Vandeputte CBS-QB3""", + longDesc=""" """, ) entry( - index = 25, - label = "Allyl_S", - group = -""" + index=25, + label="Allyl_S", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.54,-1.82,-2.08,-2.32,-2.75,-3.14,-3.85],'cal/(mol*K)'), - H298 = (85.6,'kcal/mol'), - S298 = (-3.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, -1.82, -2.08, -2.32, -2.75, -3.14, -3.85], "cal/(mol*K)"), + H298=(85.6, "kcal/mol"), + S298=(-3.81, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 147, - label = "cyclobutene-allyl", - group = -""" + index=147, + label="cyclobutene-allyl", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {4,S} 3 Cd u0 {1,S} {4,D} 4 Cd u0 {2,S} {3,D} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.54,-1.82,-2.08,-2.32,-2.75,-3.14,-3.85],'cal/(mol*K)'), - H298 = (91.2,'kcal/mol'), - S298 = (-3.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, -1.82, -2.08, -2.32, -2.75, -3.14, -3.85], "cal/(mol*K)"), + H298=(91.2, "kcal/mol"), + S298=(-3.81, "cal/(mol*K)"), ), - shortDesc = """Tian, Z.; Fattahi, A.; Lis, L.; Kass, S. R., "Cycloalkane and Cycloalkene C-H Bond Dissociation Energies," J. Am. Chem. Soc. 2006, 128, 17087-17092, DOI: 10.1021/ja065348u S, Cp copied from Allyl_S""", - longDesc = -""" + shortDesc="""Tian, Z.; Fattahi, A.; Lis, L.; Kass, S. R., "Cycloalkane and Cycloalkene C-H Bond Dissociation Energies," J. Am. Chem. Soc. 2006, 128, 17087-17092, DOI: 10.1021/ja065348u S, Cp copied from Allyl_S""", + longDesc=""" """, ) entry( - index = 148, - label = "cyclopentene-allyl", - group = -""" + index=148, + label="cyclopentene-allyl", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {4,S} 3 Cd u0 {1,S} {5,D} @@ -2559,24 +2363,22 @@ 5 Cd u0 {3,D} {4,S} 6 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.54,-1.82,-2.08,-2.32,-2.75,-3.14,-3.85],'cal/(mol*K)'), - H298 = (82.3,'kcal/mol'), - S298 = (-3.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, -1.82, -2.08, -2.32, -2.75, -3.14, -3.85], "cal/(mol*K)"), + H298=(82.3, "kcal/mol"), + S298=(-3.81, "cal/(mol*K)"), ), - shortDesc = """Furuyama, S.; Golden, D. M.; Benson, S. W., "Kinetic Study of the Gas-Phase Reaction c-C5H8+I2 c-C5H6+2HI. Heat of Formation and the Stabilization Energy of the Cyclopentenyl Radical,"Int. J. Chem. Kinet. 1970, 2, 93-99. S, Cp copied from Allyl_S""", - longDesc = -""" + shortDesc="""Furuyama, S.; Golden, D. M.; Benson, S. W., "Kinetic Study of the Gas-Phase Reaction c-C5H8+I2 c-C5H6+2HI. Heat of Formation and the Stabilization Energy of the Cyclopentenyl Radical,"Int. J. Chem. Kinet. 1970, 2, 93-99. S, Cp copied from Allyl_S""", + longDesc=""" """, ) entry( - index = 149, - label = "cyclohexene-allyl", - group = -""" + index=149, + label="cyclohexene-allyl", + group=""" 1 * Cs u1 {2,S} {3,S} {7,S} 2 Cs u0 {1,S} {4,S} 3 Cd u0 {1,S} {5,D} @@ -2585,24 +2387,22 @@ 6 C u0 {4,S} {5,S} 7 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.54,-1.82,-2.08,-2.32,-2.75,-3.14,-3.85],'cal/(mol*K)'), - H298 = (85,'kcal/mol'), - S298 = (-3.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, -1.82, -2.08, -2.32, -2.75, -3.14, -3.85], "cal/(mol*K)"), + H298=(85, "kcal/mol"), + S298=(-3.81, "cal/(mol*K)"), ), - shortDesc = """Alfassi, Z. B.; Feldman, L., "The Kinetics of Radiation-Induced Hydrogen Abstraction by Trichloromethyl Radicals in the Liquid Phase: Cyclohexene," Int. J. Chem. Kinet. 1981, 13, 771-783. S, Cp copied from Allyl_S""", - longDesc = -""" + shortDesc="""Alfassi, Z. B.; Feldman, L., "The Kinetics of Radiation-Induced Hydrogen Abstraction by Trichloromethyl Radicals in the Liquid Phase: Cyclohexene," Int. J. Chem. Kinet. 1981, 13, 771-783. S, Cp copied from Allyl_S""", + longDesc=""" """, ) entry( - index = 3033, - label = "C=CCJC(O)C=C", - group = -""" + index=3033, + label="C=CCJC(O)C=C", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {4,S} {6,S} 3 Cd u0 {1,S} {8,D} @@ -2612,15 +2412,14 @@ 7 C u0 {4,D} 8 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-8.3,-4.5,-3,-2.8,-3.9,-5.6,-10.2],'J/(mol*K)'), - H298 = (286.3,'kJ/mol'), - S298 = (-9.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-8.3, -4.5, -3, -2.8, -3.9, -5.6, -10.2], "J/(mol*K)"), + H298=(286.3, "kJ/mol"), + S298=(-9.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2628,56 +2427,51 @@ ) entry( - index = 27, - label = "C=CCJC=C", - group = -""" + index=27, + label="C=CCJC=C", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} 3 Cd u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.13,-1.96,-1.88,-1.89,-2.2,-2.6,-2.6],'cal/(mol*K)'), - H298 = (76,'kcal/mol'), - S298 = (-4.05,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.13, -1.96, -1.88, -1.89, -2.2, -2.6, -2.6], "cal/(mol*K)"), + H298=(76, "kcal/mol"), + S298=(-4.05, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 145, - label = "cyclopropenyl-allyl", - group = -""" + index=145, + label="cyclopropenyl-allyl", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {3,D} 3 Cd u0 {1,S} {2,D} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.13,-1.96,-1.88,-1.89,-2.2,-2.6,-2.6],'cal/(mol*K)'), - H298 = (90.6,'kcal/mol'), - S298 = (-4.05,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.13, -1.96, -1.88, -1.89, -2.2, -2.6, -2.6], "cal/(mol*K)"), + H298=(90.6, "kcal/mol"), + S298=(-4.05, "cal/(mol*K)"), ), - shortDesc = """DeFrees, D. J.; McIver, R. T., Jr.; Hehre, W. J., "Heats of Formation of Gaseous Free Radicals via Ion Cyclotron Double Resonance Spectroscopy," J. Am. Chem. Soc. 1980, 102, 3334-3338, DOI: 10.1021/ja00530a005 S, Cp copied from C=CCJC=C""", - longDesc = -""" + shortDesc="""DeFrees, D. J.; McIver, R. T., Jr.; Hehre, W. J., "Heats of Formation of Gaseous Free Radicals via Ion Cyclotron Double Resonance Spectroscopy," J. Am. Chem. Soc. 1980, 102, 3334-3338, DOI: 10.1021/ja00530a005 S, Cp copied from C=CCJC=C""", + longDesc=""" """, ) entry( - index = 182, - label = "1,3-cyclopentadiene-allyl", - group = -""" + index=182, + label="1,3-cyclopentadiene-allyl", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} @@ -2685,24 +2479,22 @@ 5 Cd u0 {3,D} {4,S} 6 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.54,-1.82,-2.08,-2.32,-2.75,-3.14,-3.85],'cal/(mol*K)'), - H298 = (82.6,'kcal/mol'), - S298 = (-3.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.54, -1.82, -2.08, -2.32, -2.75, -3.14, -3.85], "cal/(mol*K)"), + H298=(82.6, "kcal/mol"), + S298=(-3.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 3081, - label = "C=CCJC=C=O", - group = -""" + index=3081, + label="C=CCJC=C=O", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -2711,15 +2503,14 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-5.5,-3.8,-3.7,-4.3,-6.1,-8.1,-11.5],'J/(mol*K)'), - H298 = (318,'kJ/mol'), - S298 = (-22,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-5.5, -3.8, -3.7, -4.3, -6.1, -8.1, -11.5], "J/(mol*K)"), + H298=(318, "kJ/mol"), + S298=(-22, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2727,48 +2518,44 @@ ) entry( - index = 28, - label = "Sec_Propargyl", - group = -""" + index=28, + label="Sec_Propargyl", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.59,-1.2,-1.75,-2.19,-2.91,-3.49,-3.49],'cal/(mol*K)'), - H298 = (87,'kcal/mol'), - S298 = (-0.45,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.59, -1.2, -1.75, -2.19, -2.91, -3.49, -3.49], "cal/(mol*K)"), + H298=(87, "kcal/mol"), + S298=(-0.45, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 3013, - label = "CCJCO", - group = -""" + index=3013, + label="CCJCO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} {5,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.9,-8.3,-10,-11.6,-14.5,-16.8,-20.3],'J/(mol*K)'), - H298 = (416.9,'kJ/mol'), - S298 = (13.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.9, -8.3, -10, -11.6, -14.5, -16.8, -20.3], "J/(mol*K)"), + H298=(416.9, "kJ/mol"), + S298=(13.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2776,10 +2563,9 @@ ) entry( - index = 3028, - label = "C=CCJCO", - group = -""" + index=3028, + label="C=CCJCO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} {5,S} 3 Cd u0 {1,S} {6,D} @@ -2787,15 +2573,14 @@ 5 O2s u0 {2,S} 6 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([3,3.2,2.4,1,-1.8,-4.5,-9.8],'J/(mol*K)'), - H298 = (335.4,'kJ/mol'), - S298 = (-19.9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([3, 3.2, 2.4, 1, -1.8, -4.5, -9.8], "J/(mol*K)"), + H298=(335.4, "kJ/mol"), + S298=(-19.9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2803,25 +2588,23 @@ ) entry( - index = 3040, - label = "CCJC=O", - group = -""" + index=3040, + label="CCJC=O", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 C u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-4.9,-3.4,-3.4,-4.2,-6.7,-9.2,-13.9],'J/(mol*K)'), - H298 = (379.1,'kJ/mol'), - S298 = (-5.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-4.9, -3.4, -3.4, -4.2, -6.7, -9.2, -13.9], "J/(mol*K)"), + H298=(379.1, "kJ/mol"), + S298=(-5.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2829,10 +2612,9 @@ ) entry( - index = 26, - label = "CCJCHO", - group = -""" + index=26, + label="CCJCHO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} {6,S} 3 Cs u0 {1,S} @@ -2840,24 +2622,22 @@ 5 O2d u0 {2,D} 6 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.36,-1.57,-1.73,-1.89,-2.66,-3.11,-3.5],'cal/(mol*K)'), - H298 = (91.9,'kcal/mol'), - S298 = (-2.37,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.36, -1.57, -1.73, -1.89, -2.66, -3.11, -3.5], "cal/(mol*K)"), + H298=(91.9, "kcal/mol"), + S298=(-2.37, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 3043, - label = "C=OCJC=O", - group = -""" + index=3043, + label="C=OCJC=O", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -2865,15 +2645,14 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.9,1.5,0.9,0,-2.5,-5.1,-10.2],'J/(mol*K)'), - H298 = (382.7,'kJ/mol'), - S298 = (-13,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.9, 1.5, 0.9, 0, -2.5, -5.1, -10.2], "J/(mol*K)"), + H298=(382.7, "kJ/mol"), + S298=(-13, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2881,10 +2660,9 @@ ) entry( - index = 3042, - label = "CCJCC=O", - group = -""" + index=3042, + label="CCJCC=O", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 C u0 {1,S} {3,S} 3 CO u0 {2,S} {6,D} @@ -2892,15 +2670,14 @@ 5 H u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.9,-8.3,-10,-11.6,-14.5,-16.8,-20.3],'J/(mol*K)'), - H298 = (416.9,'kJ/mol'), - S298 = (13.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.9, -8.3, -10, -11.6, -14.5, -16.8, -20.3], "J/(mol*K)"), + H298=(416.9, "kJ/mol"), + S298=(13.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2908,10 +2685,9 @@ ) entry( - index = 3078, - label = "CCJC(C)=C=O", - group = -""" + index=3078, + label="CCJC(C)=C=O", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cd u0 {1,S} {4,D} 3 C u0 {1,S} {6,S} @@ -2920,15 +2696,14 @@ 6 C u0 {3,S} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-4,-6.2,-7.9,-10.8,-12.9,-16.9],'J/(mol*K)'), - H298 = (365.4,'kJ/mol'), - S298 = (8.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -4, -6.2, -7.9, -10.8, -12.9, -16.9], "J/(mol*K)"), + H298=(365.4, "kJ/mol"), + S298=(8.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -2936,122 +2711,111 @@ ) entry( - index = 29, - label = "Cs_T", - group = -""" + index=29, + label="Cs_T", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = 'Tertalkyl', - shortDesc = """""", - longDesc = -""" + thermo="Tertalkyl", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 30, - label = "Tertalkyl", - group = -""" + index=30, + label="Tertalkyl", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (96.5,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(96.5, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 162, - label = "bicyclo[1.1.0]butane-tertiary", - group = -""" + index=162, + label="bicyclo[1.1.0]butane-tertiary", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 * Cs u1 {1,S} {3,S} {4,S} 3 Cs u0 {1,S} {2,S} 4 Cs u0 {1,S} {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (113.8,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(113.8, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 163, - label = "bicyclo[2.1.0]pentane-tertiary", - group = -""" + index=163, + label="bicyclo[2.1.0]pentane-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 Cs u0 {1,S} {2,S} 4 Cs u0 {2,S} {5,S} 5 Cs u0 {1,S} {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (110.2,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(110.2, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 195, - label = "bicyclo[1.1.1]pentane-C1", - group = -""" + index=195, + label="bicyclo[1.1.1]pentane-C1", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 Cs u0 {1,S} {2,S} 4 Cs u0 {1,S} {2,S} 5 Cs u0 {1,S} {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (106.2,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(106.2, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 31, - label = "C2CJCOOH", - group = -""" + index=31, + label="C2CJCOOH", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cs u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -3059,24 +2823,22 @@ 5 Cs u0 {1,S} 6 O2s u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.54,-4.16,-4.44,-4.58,-4.74,-4.88,-5.23],'cal/(mol*K)'), - H298 = (97.2,'kcal/mol'), - S298 = (7.31,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.54, -4.16, -4.44, -4.58, -4.74, -4.88, -5.23], "cal/(mol*K)"), + H298=(97.2, "kcal/mol"), + S298=(7.31, "cal/(mol*K)"), ), - shortDesc = """WIJAYA et al.""", - longDesc = -""" + shortDesc="""WIJAYA et al.""", + longDesc=""" """, ) entry( - index = 164, - label = "bicyclo[3.1.0]hexane-tertiary", - group = -""" + index=164, + label="bicyclo[3.1.0]hexane-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 Cs u0 {1,S} {2,S} @@ -3084,24 +2846,22 @@ 5 Cs u0 {1,S} {6,S} 6 Cs u0 {4,S} {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (108.6,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(108.6, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 165, - label = "bicyclo[2.2.0]hexane-tertiary", - group = -""" + index=165, + label="bicyclo[2.2.0]hexane-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 Cs u0 {1,S} {4,S} @@ -3109,24 +2869,22 @@ 5 Cs u0 {2,S} {6,S} 6 Cs u0 {1,S} {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (104,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(104, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 198, - label = "bicyclo[2.1.1]hexane-C1", - group = -""" + index=198, + label="bicyclo[2.1.1]hexane-C1", + group=""" 1 * Cs u1 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 Cs u0 {1,S} {2,S} @@ -3134,24 +2892,22 @@ 5 C u0 {2,S} {6,S} 6 Cs u0 {1,S} {5,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (108.9,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(108.9, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 139, - label = "bridgehead_norbornyl", - group = -""" + index=139, + label="bridgehead_norbornyl", + group=""" 1 * Cs u1 {3,S} {4,S} {7,S} 2 Cs u0 {3,S} {5,S} {6,S} 3 Cs u0 {1,S} {2,S} @@ -3160,24 +2916,22 @@ 6 Cs u0 {2,S} {7,S} 7 Cs u0 {1,S} {6,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (107.42,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(107.42, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """P.M. Nunes, S.G. Estacio, G.T. Lopes, B.J. Costa Cabral, R.M. Borges dos Santos, J.A. Martinho Simoes, CH Bond Dissociation Enthalpies in Norbornane. An Experimental and Computational Study, Organic Letters, 10 (2008) 1613-1616. S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""P.M. Nunes, S.G. Estacio, G.T. Lopes, B.J. Costa Cabral, R.M. Borges dos Santos, J.A. Martinho Simoes, CH Bond Dissociation Enthalpies in Norbornane. An Experimental and Computational Study, Organic Letters, 10 (2008) 1613-1616. S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 166, - label = "bicyclo[3.2.0]heptane-tertiary", - group = -""" + index=166, + label="bicyclo[3.2.0]heptane-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 Cs u0 {1,S} {4,S} @@ -3186,24 +2940,22 @@ 6 Cs u0 {1,S} {7,S} 7 Cs u0 {5,S} {6,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (102.6,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(102.6, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 167, - label = "bicyclo[4.1.0]heptane-tertiary", - group = -""" + index=167, + label="bicyclo[4.1.0]heptane-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 Cs u0 {1,S} {2,S} @@ -3212,24 +2964,22 @@ 6 Cs u0 {4,S} {7,S} 7 Cs u0 {5,S} {6,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (105.4,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(105.4, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 203, - label = "bicyclo[3.1.1]heptane-C1", - group = -""" + index=203, + label="bicyclo[3.1.1]heptane-C1", + group=""" 1 * Cs u1 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 Cs u0 {1,S} {2,S} @@ -3238,24 +2988,22 @@ 6 Cs u0 {1,S} {7,S} 7 C u0 {5,S} {6,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (103.6,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(103.6, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 168, - label = "octahydro-pentalene-tertiary", - group = -""" + index=168, + label="octahydro-pentalene-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} {5,S} {6,S} 3 Cs u0 {1,S} {8,S} @@ -3265,24 +3013,22 @@ 7 C u0 {4,S} {5,S} 8 C u0 {3,S} {6,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (95.7,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(95.7, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 169, - label = "bicyclo[4.2.0]octane-tertiary", - group = -""" + index=169, + label="bicyclo[4.2.0]octane-tertiary", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 Cs u0 {1,S} {4,S} @@ -3292,24 +3038,22 @@ 7 C u0 {5,S} {8,S} 8 C u0 {6,S} {7,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (97,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(97, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 212, - label = "bicyclo[2.2.2]octane-C1", - group = -""" + index=212, + label="bicyclo[2.2.2]octane-C1", + group=""" 1 * Cs u1 {3,S} {6,S} {8,S} 2 Cs u0 {4,S} {5,S} {7,S} 3 Cs u0 {1,S} {4,S} @@ -3319,94 +3063,86 @@ 7 C u0 {2,S} {8,S} 8 Cs u0 {1,S} {7,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (101.9,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(101.9, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 32, - label = "Benzyl_T", - group = -""" + index=32, + label="Benzyl_T", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.27,-0.78,-1.54,-2.06,-2.74,-3.19,-3.19],'cal/(mol*K)'), - H298 = (83.8,'kcal/mol'), - S298 = (-5.34,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.27, -0.78, -1.54, -2.06, -2.74, -3.19, -3.19], "cal/(mol*K)"), + H298=(83.8, "kcal/mol"), + S298=(-5.34, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 33, - label = "Allyl_T", - group = -""" + index=33, + label="Allyl_T", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.79,-2.38,-2.74,-2.97,-3.28,-3.55,-3.55],'cal/(mol*K)'), - H298 = (83.4,'kcal/mol'), - S298 = (-3.69,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.79, -2.38, -2.74, -2.97, -3.28, -3.55, -3.55], "cal/(mol*K)"), + H298=(83.4, "kcal/mol"), + S298=(-3.69, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 183, - label = "bicyclo[2.1.0]pent-2-ene-C1", - group = -""" + index=183, + label="bicyclo[2.1.0]pent-2-ene-C1", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 Cs u0 {1,S} {2,S} 4 Cd u0 {2,S} {5,D} 5 Cd u0 {1,S} {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (112.1,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(112.1, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 186, - label = "bicyclo[2.1.1]hex-2-ene-C1", - group = -""" + index=186, + label="bicyclo[2.1.1]hex-2-ene-C1", + group=""" 1 * Cs u1 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 Cs u0 {1,S} {2,S} @@ -3414,47 +3150,43 @@ 5 Cd u0 {2,S} {6,D} 6 Cd u0 {1,S} {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (110.1,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(110.1, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 35, - label = "Tert_Propargyl", - group = -""" + index=35, + label="Tert_Propargyl", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Ct u0 {1,S} 3 Cs u0 {1,S} 4 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.04,-1.01,-1.74,-2.41,-3.19,-3.65,-3.65],'cal/(mol*K)'), - H298 = (84.5,'kcal/mol'), - S298 = (1.48,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.04, -1.01, -1.74, -2.41, -3.19, -3.65, -3.65], "cal/(mol*K)"), + H298=(84.5, "kcal/mol"), + S298=(1.48, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 501, - label = "C2CJCO", - group = -""" + index=501, + label="C2CJCO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} {6,S} 3 Cs u0 {1,S} @@ -3462,19 +3194,17 @@ 5 O2d u0 {2,D} 6 R u0 {2,S} """, - thermo = 'C2CJCHO', - shortDesc = """""", - longDesc = -""" + thermo="C2CJCHO", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 34, - label = "C2CJCHO", - group = -""" + index=34, + label="C2CJCHO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} {6,S} 3 Cs u0 {1,S} @@ -3482,24 +3212,22 @@ 5 O2d u0 {2,D} 6 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.62,-0.2,-1.23,-1.82,-2.87,-3.47,-3.47],'cal/(mol*K)'), - H298 = (89.8,'kcal/mol'), - S298 = (-1.71,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.62, -0.2, -1.23, -1.82, -2.87, -3.47, -3.47], "cal/(mol*K)"), + H298=(89.8, "kcal/mol"), + S298=(-1.71, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI #. Value for Cp1500 taken as equal to Cp1000""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI #. Value for Cp1500 taken as equal to Cp1000""", + longDesc=""" """, ) entry( - index = 191, - label = "bicyclo[2.2.0]hexa-2,5-diene-C1", - group = -""" + index=191, + label="bicyclo[2.2.0]hexa-2,5-diene-C1", + group=""" 1 * Cs u1 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 Cd u0 {1,S} {4,D} @@ -3507,39 +3235,36 @@ 5 Cd u0 {2,S} {6,D} 6 Cd u0 {1,S} {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.48,-3.55,-4.15,-4.75,-5.02,-5.39],'cal/(mol*K)'), - H298 = (102.8,'kcal/mol'), - S298 = (5.24,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.48, -3.55, -4.15, -4.75, -5.02, -5.39], "cal/(mol*K)"), + H298=(102.8, "kcal/mol"), + S298=(5.24, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from TertAlkyl entry""", + longDesc=""" """, ) entry( - index = 3016, - label = "CCJ(C)CO", - group = -""" + index=3016, + label="CCJ(C)CO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} {5,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-7.8,-9.3,-10.3,-11,-12.4,-13.7,-16.1],'J/(mol*K)'), - H298 = (369.4,'kJ/mol'), - S298 = (-0.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-7.8, -9.3, -10.3, -11, -12.4, -13.7, -16.1], "J/(mol*K)"), + H298=(369.4, "kJ/mol"), + S298=(-0.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3547,10 +3272,9 @@ ) entry( - index = 3063, - label = "C=CCJ(C)C=O", - group = -""" + index=3063, + label="C=CCJ(C)C=O", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -3558,15 +3282,14 @@ 5 C u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-12.2,-10.5,-9.4,-9,-9.1,-9.7,-11.5],'J/(mol*K)'), - H298 = (335.4,'kJ/mol'), - S298 = (-17.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-12.2, -10.5, -9.4, -9, -9.1, -9.7, -11.5], "J/(mol*K)"), + H298=(335.4, "kJ/mol"), + S298=(-17.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3574,10 +3297,9 @@ ) entry( - index = 3064, - label = "C=CCJ(C=O)C=C", - group = -""" + index=3064, + label="C=CCJ(C=O)C=C", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 CO u0 {1,S} {7,D} @@ -3586,15 +3308,14 @@ 6 C u0 {4,D} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-10,-7.5,-6.1,-5.5,-5.6,-6.4,-8.5],'J/(mol*K)'), - H298 = (307.4,'kJ/mol'), - S298 = (-27.9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-10, -7.5, -6.1, -5.5, -5.6, -6.4, -8.5], "J/(mol*K)"), + H298=(307.4, "kJ/mol"), + S298=(-27.9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3602,10 +3323,9 @@ ) entry( - index = 3077, - label = "CCJ(C)C=C=O", - group = -""" + index=3077, + label="CCJ(C)C=C=O", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 Cd u0 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -3613,15 +3333,14 @@ 5 C u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-7.1,-10,-11.8,-12.9,-14.1,-15.1,-16.9],'J/(mol*K)'), - H298 = (361.8,'kJ/mol'), - S298 = (3.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-7.1, -10, -11.8, -12.9, -14.1, -15.1, -16.9], "J/(mol*K)"), + H298=(361.8, "kJ/mol"), + S298=(3.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3629,10 +3348,9 @@ ) entry( - index = 3083, - label = "C=CCJ(C)C=C=O", - group = -""" + index=3083, + label="C=CCJ(C)C=C=O", + group=""" 1 * Cs u1 {2,S} {3,S} {5,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {6,D} @@ -3641,15 +3359,14 @@ 6 C u0 {3,D} 7 O2d u0 {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.8,-8.2,-8.9,-9.3,-10.1,-11,-12.9],'J/(mol*K)'), - H298 = (313.4,'kJ/mol'), - S298 = (0.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.8, -8.2, -8.9, -9.3, -10.1, -11, -12.9], "J/(mol*K)"), + H298=(313.4, "kJ/mol"), + S298=(0.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3657,10 +3374,9 @@ ) entry( - index = 3084, - label = "C=CCJ(C=C=O)C=C", - group = -""" + index=3084, + label="C=CCJ(C=C=O)C=C", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cd u0 {1,S} {6,D} @@ -3670,15 +3386,14 @@ 7 C u0 {4,D} 8 O2d u0 {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-10.7,-9.3,-8.1,-7.2,-6.8,-7.2,-8.8],'J/(mol*K)'), - H298 = (287.1,'kJ/mol'), - S298 = (-27.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-10.7, -9.3, -8.1, -7.2, -6.8, -7.2, -8.8], "J/(mol*K)"), + H298=(287.1, "kJ/mol"), + S298=(-27.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3686,24 +3401,22 @@ ) entry( - index = 36, - label = "CsJO", - group = -""" + index=36, + label="CsJO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.9,3.7,1.6,-0.9,-5.9,-10.3,-17.5],'J/(mol*K)'), - H298 = (413.3,'kJ/mol'), - S298 = (1.2,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.9, 3.7, 1.6, -0.9, -5.9, -10.3, -17.5], "J/(mol*K)"), + H298=(413.3, "kJ/mol"), + S298=(1.2, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -3711,72 +3424,65 @@ ) entry( - index = 37, - label = "CsJOH", - group = -""" + index=37, + label="CsJOH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.25,0.18,-0.26,-0.83,-1.95,-2.85,-4.22],'cal/(mol*K)'), - H298 = (96.51,'kcal/mol'), - S298 = (0.09,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.25, 0.18, -0.26, -0.83, -1.95, -2.85, -4.22], "cal/(mol*K)"), + H298=(96.51, "kcal/mol"), + S298=(0.09, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 38, - label = "CsJOC", - group = -""" + index=38, + label="CsJOC", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,S} """, - thermo = 'CsJOCs', - shortDesc = """""", - longDesc = -""" + thermo="CsJOCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 39, - label = "CsJOCs", - group = -""" + index=39, + label="CsJOCs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 Cs u0 {2,S} """, - thermo = 'CsJOCH3', - shortDesc = """""", - longDesc = -""" + thermo="CsJOCH3", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 40, - label = "CsJOCH3", - group = -""" + index=40, + label="CsJOCH3", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 * Cs u1 {3,S} {7,S} {8,S} 3 O2s u0 {1,S} {2,S} @@ -3786,24 +3492,22 @@ 7 H u0 {2,S} 8 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.16,-0.4,-0.82,-1.33,-2.32,-3.13,-4.37],'cal/(mol*K)'), - H298 = (97,'kcal/mol'), - S298 = (0.78,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.16, -0.4, -0.82, -1.33, -2.32, -3.13, -4.37], "cal/(mol*K)"), + H298=(97, "kcal/mol"), + S298=(0.78, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN #""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN #""", + longDesc=""" """, ) entry( - index = 41, - label = "CsJOCC", - group = -""" + index=41, + label="CsJOCC", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 * Cs u1 {3,S} {7,S} {8,S} 3 O2s u0 {1,S} {2,S} @@ -3813,24 +3517,22 @@ 7 H u0 {2,S} 8 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.01,-1.22,-1.4,-1.71,-3.5,-3.24,-4.42],'cal/(mol*K)'), - H298 = (96.83,'kcal/mol'), - S298 = (1.41,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.01, -1.22, -1.4, -1.71, -3.5, -3.24, -4.42], "cal/(mol*K)"), + H298=(96.83, "kcal/mol"), + S298=(1.41, "cal/(mol*K)"), ), - shortDesc = """Calculated from data in SUMATHI & GREEN. Values might have large error bars.""", - longDesc = -""" + shortDesc="""Calculated from data in SUMATHI & GREEN. Values might have large error bars.""", + longDesc=""" """, ) entry( - index = 42, - label = "CsJOCC2", - group = -""" + index=42, + label="CsJOCC2", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 * Cs u1 {3,S} {7,S} {8,S} 3 O2s u0 {1,S} {2,S} @@ -3840,24 +3542,22 @@ 7 H u0 {2,S} 8 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.95,0.75,0.23,-0.43,-1.71,-2.72,-4.19],'cal/(mol*K)'), - H298 = (96.16,'kcal/mol'), - S298 = (-0.59,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.95, 0.75, 0.23, -0.43, -1.71, -2.72, -4.19], "cal/(mol*K)"), + H298=(96.16, "kcal/mol"), + S298=(-0.59, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 43, - label = "CsJOCC3", - group = -""" + index=43, + label="CsJOCC3", + group=""" 1 Cs u0 {3,S} {4,S} {5,S} {6,S} 2 * Cs u1 {3,S} {7,S} {8,S} 3 O2s u0 {1,S} {2,S} @@ -3867,43 +3567,39 @@ 7 H u0 {2,S} 8 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.08,-0.09,-0.52,-1.06,-2.11,-2.96,-4.27],'cal/(mol*K)'), - H298 = (95.75,'kcal/mol'), - S298 = (0.27,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.08, -0.09, -0.52, -1.06, -2.11, -2.96, -4.27], "cal/(mol*K)"), + H298=(95.75, "kcal/mol"), + S298=(0.27, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 44, - label = "CsJOCds", - group = -""" + index=44, + label="CsJOCds", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 [Cd,CO] u0 {2,S} """, - thermo = 'CsJOC(O)', - shortDesc = """""", - longDesc = -""" + thermo="CsJOC(O)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 45, - label = "CsJOC(O)", - group = -""" + index=45, + label="CsJOC(O)", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 CO u0 {2,S} {6,D} @@ -3911,24 +3607,22 @@ 5 H u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.91,0.89,0.42,-0.21,-1.5,-2.62,-4.43],'cal/(mol*K)'), - H298 = (100.7,'kcal/mol'), - S298 = (-0.18,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.91, 0.89, 0.42, -0.21, -1.5, -2.62, -4.43], "cal/(mol*K)"), + H298=(100.7, "kcal/mol"), + S298=(-0.18, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 46, - label = "CsJOC(O)H", - group = -""" + index=46, + label="CsJOC(O)H", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 CO u0 {3,S} {6,D} {7,S} 3 O2s u0 {1,S} {2,S} @@ -3937,24 +3631,22 @@ 6 O2d u0 {2,D} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.95,0.97,0.53,-0.12,-1.54,-2.76,-4.53],'cal/(mol*K)'), - H298 = (100.88,'kcal/mol'), - S298 = (-0.18,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.95, 0.97, 0.53, -0.12, -1.54, -2.76, -4.53], "cal/(mol*K)"), + H298=(100.88, "kcal/mol"), + S298=(-0.18, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 47, - label = "CsJOC(O)C", - group = -""" + index=47, + label="CsJOC(O)C", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 CO u0 {3,S} {6,D} {7,S} 3 O2s u0 {1,S} {2,S} @@ -3963,24 +3655,22 @@ 6 O2d u0 {2,D} 7 C u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.88,0.81,0.31,-0.3,-1.45,-2.47,-4.33],'cal/(mol*K)'), - H298 = (100.48,'kcal/mol'), - S298 = (-0.17,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.88, 0.81, 0.31, -0.3, -1.45, -2.47, -4.33], "cal/(mol*K)"), + H298=(100.48, "kcal/mol"), + S298=(-0.17, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 3027, - label = "C=COCJ", - group = -""" + index=3027, + label="C=COCJ", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 Cd u0 {2,S} {6,D} @@ -3988,15 +3678,14 @@ 5 H u0 {1,S} 6 C u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-4.9,-7.2,-8.9,-10.6,-13.6,-15.9,-19.7],'J/(mol*K)'), - H298 = (409.4,'kJ/mol'), - S298 = (13.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-4.9, -7.2, -8.9, -10.6, -13.6, -15.9, -19.7], "J/(mol*K)"), + H298=(409.4, "kJ/mol"), + S298=(13.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4004,34 +3693,31 @@ ) entry( - index = 48, - label = "CsJOO", - group = -""" + index=48, + label="CsJOO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.18,-0.42,-0.79,-1.2,-1.99,-2.63,-3.65],'cal/(mol*K)'), - H298 = (98.5,'kcal/mol'), - S298 = (-1.57,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.18, -0.42, -0.79, -1.2, -1.99, -2.63, -3.65], "cal/(mol*K)"), + H298=(98.5, "kcal/mol"), + S298=(-1.57, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 49, - label = "CsJOOH", - group = -""" + index=49, + label="CsJOOH", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -4039,24 +3725,22 @@ 5 H u0 {1,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.06,-0.35,-0.76,-1.19,-1.99,-2.64,-3.68],'cal/(mol*K)'), - H298 = (98.91,'kcal/mol'), - S298 = (-1.52,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.06, -0.35, -0.76, -1.19, -1.99, -2.64, -3.68], "cal/(mol*K)"), + H298=(98.91, "kcal/mol"), + S298=(-1.52, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 50, - label = "CsJOOC", - group = -""" + index=50, + label="CsJOOC", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -4064,38 +3748,35 @@ 5 H u0 {1,S} 6 C u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.31,-0.48,-0.82,-1.22,-1.99,-2.62,-3.63],'cal/(mol*K)'), - H298 = (98.34,'kcal/mol'), - S298 = (-1.62,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.31, -0.48, -0.82, -1.22, -1.99, -2.62, -3.63], "cal/(mol*K)"), + H298=(98.34, "kcal/mol"), + S298=(-1.62, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 51, - label = "CCsJO", - group = -""" + index=51, + label="CCsJO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.2,0.4,-1.5,-3.9,-8.6,-12.5,-18.7],'J/(mol*K)'), - H298 = (402,'kJ/mol'), - S298 = (3.9,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.2, 0.4, -1.5, -3.9, -8.6, -12.5, -18.7], "J/(mol*K)"), + H298=(402, "kJ/mol"), + S298=(3.9, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4103,96 +3784,87 @@ ) entry( - index = 52, - label = "CCsJOH", - group = -""" + index=52, + label="CCsJOH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.65,-0.01,-0.75,-1.43,-2.52,-3.31,-4.47],'cal/(mol*K)'), - H298 = (95.39,'kcal/mol'), - S298 = (0.92,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.65, -0.01, -0.75, -1.43, -2.52, -3.31, -4.47], "cal/(mol*K)"), + H298=(95.39, "kcal/mol"), + S298=(0.92, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 53, - label = "CCsJOC", - group = -""" + index=53, + label="CCsJOC", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,S} """, - thermo = 'CCsJOCs', - shortDesc = """""", - longDesc = -""" + thermo="CCsJOCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 54, - label = "CCsJOCs", - group = -""" + index=54, + label="CCsJOCs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 Cs u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.82,0.53,-0.11,-0.86,-2.2,-3.18,-4.51],'cal/(mol*K)'), - H298 = (95.41,'kcal/mol'), - S298 = (0.33,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.82, 0.53, -0.11, -0.86, -2.2, -3.18, -4.51], "cal/(mol*K)"), + H298=(95.41, "kcal/mol"), + S298=(0.33, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 55, - label = "CCsJOCds", - group = -""" + index=55, + label="CCsJOCds", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 [CO,Cd] u0 {2,S} """, - thermo = 'CCsJOC(O)', - shortDesc = """""", - longDesc = -""" + thermo="CCsJOC(O)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 56, - label = "CCsJOC(O)", - group = -""" + index=56, + label="CCsJOC(O)", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 CO u0 {2,S} {6,D} @@ -4200,24 +3872,22 @@ 5 H u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.16,0.78,0.05,-0.73,-2.13,-3.24,-4.9],'cal/(mol*K)'), - H298 = (98.7,'kcal/mol'), - S298 = (0.98,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.16, 0.78, 0.05, -0.73, -2.13, -3.24, -4.9], "cal/(mol*K)"), + H298=(98.7, "kcal/mol"), + S298=(0.98, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 57, - label = "CCsJOC(O)H", - group = -""" + index=57, + label="CCsJOC(O)H", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 CO u0 {3,S} {6,D} {7,S} 3 O2s u0 {1,S} {2,S} @@ -4226,24 +3896,22 @@ 6 O2d u0 {2,D} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1.2,0.88,0.16,-0.67,-2.22,-3.43,-5],'cal/(mol*K)'), - H298 = (98.87,'kcal/mol'), - S298 = (0.98,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1.2, 0.88, 0.16, -0.67, -2.22, -3.43, -5], "cal/(mol*K)"), + H298=(98.87, "kcal/mol"), + S298=(0.98, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = -1, - label = "CCsJOC(O)C", - group = -""" + index=-1, + label="CCsJOC(O)C", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 CO u0 {3,S} {6,D} {7,S} 3 O2s u0 {1,S} {2,S} @@ -4252,19 +3920,17 @@ 6 O2d u0 {2,D} 7 C u0 {2,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3030, - label = "C=CCJ(O)C", - group = -""" + index=3030, + label="C=CCJ(O)C", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2s u0 {1,S} {6,S} @@ -4272,15 +3938,14 @@ 5 C u0 {2,D} 6 C u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-5.7,-8.4,-10,-11,-12.1,-13.1,-15.5],'J/(mol*K)'), - H298 = (328.3,'kJ/mol'), - S298 = (4.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-5.7, -8.4, -10, -11, -12.1, -13.1, -15.5], "J/(mol*K)"), + H298=(328.3, "kJ/mol"), + S298=(4.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4288,34 +3953,31 @@ ) entry( - index = 58, - label = "CCsJOO", - group = -""" + index=58, + label="CCsJOO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 H u0 {1,S} 5 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.48,-1.15,-1.68,-2.11,-2.77,-3.26,-4.02],'cal/(mol*K)'), - H298 = (96.9,'kcal/mol'), - S298 = (0.76,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.48, -1.15, -1.68, -2.11, -2.77, -3.26, -4.02], "cal/(mol*K)"), + H298=(96.9, "kcal/mol"), + S298=(0.76, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 59, - label = "CCsJOOH", - group = -""" + index=59, + label="CCsJOOH", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -4323,24 +3985,22 @@ 5 H u0 {1,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.39,-1.08,-1.64,-2.08,-2.75,-3.26,-4.03],'cal/(mol*K)'), - H298 = (97.19,'kcal/mol'), - S298 = (0.77,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.39, -1.08, -1.64, -2.08, -2.75, -3.26, -4.03], "cal/(mol*K)"), + H298=(97.19, "kcal/mol"), + S298=(0.77, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 60, - label = "CCsJOOC", - group = -""" + index=60, + label="CCsJOOC", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -4348,39 +4008,36 @@ 5 H u0 {1,S} 6 C u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.58,-1.21,-1.73,-2.15,-2.8,-3.27,-4.01],'cal/(mol*K)'), - H298 = (96.64,'kcal/mol'), - S298 = (0.74,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.58, -1.21, -1.73, -2.15, -2.8, -3.27, -4.01], "cal/(mol*K)"), + H298=(96.64, "kcal/mol"), + S298=(0.74, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 3026, - label = "C=CCJO", - group = -""" + index=3026, + label="C=CCJO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6,-3.9,-3,-3.2,-5.7,-8.6,-13.8],'J/(mol*K)'), - H298 = (333.9,'kJ/mol'), - S298 = (-7.4,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6, -3.9, -3, -3.2, -5.7, -8.6, -13.8], "J/(mol*K)"), + H298=(333.9, "kJ/mol"), + S298=(-7.4, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4388,25 +4045,23 @@ ) entry( - index = 3041, - label = "OCJC=O", - group = -""" + index=3041, + label="OCJC=O", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CO u0 {1,S} {5,D} 3 O2s u0 {1,S} 4 H u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-3.3,-5.6,-7.4,-9.8,-11.2,-14],'J/(mol*K)'), - H298 = (356.6,'kJ/mol'), - S298 = (0.2,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -3.3, -5.6, -7.4, -9.8, -11.2, -14], "J/(mol*K)"), + H298=(356.6, "kJ/mol"), + S298=(0.2, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4414,24 +4069,22 @@ ) entry( - index = 61, - label = "C2CsJO", - group = -""" + index=61, + label="C2CsJO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2,-7.1,-10.7,-13.4,-16.6,-18.5,-21.2],'J/(mol*K)'), - H298 = (398.4,'kJ/mol'), - S298 = (14.4,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2, -7.1, -10.7, -13.4, -16.6, -18.5, -21.2], "J/(mol*K)"), + H298=(398.4, "kJ/mol"), + S298=(14.4, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -4439,96 +4092,87 @@ ) entry( - index = 62, - label = "C2CsJOH", - group = -""" + index=62, + label="C2CsJOH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.31,-0.66,-1.54,-2.23,-3.17,-3.8,-4.72],'cal/(mol*K)'), - H298 = (94.5,'kcal/mol'), - S298 = (2.17,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.31, -0.66, -1.54, -2.23, -3.17, -3.8, -4.72], "cal/(mol*K)"), + H298=(94.5, "kcal/mol"), + S298=(2.17, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 63, - label = "C2CsJOC", - group = -""" + index=63, + label="C2CsJOC", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 C u0 {2,S} """, - thermo = 'C2CsJOCs', - shortDesc = """""", - longDesc = -""" + thermo="C2CsJOCs", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 64, - label = "C2CsJOCs", - group = -""" + index=64, + label="C2CsJOCs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 Cs u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.09,-1.37,-2.49,-3.26,-4.15,-4.63,-5.23],'cal/(mol*K)'), - H298 = (95.5,'kcal/mol'), - S298 = (3.71,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.09, -1.37, -2.49, -3.26, -4.15, -4.63, -5.23], "cal/(mol*K)"), + H298=(95.5, "kcal/mol"), + S298=(3.71, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 65, - label = "C2CsJOCds", - group = -""" + index=65, + label="C2CsJOCds", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 [Cd,CO] u0 {2,S} """, - thermo = 'C2CsJOC(O)', - shortDesc = """""", - longDesc = -""" + thermo="C2CsJOC(O)", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 66, - label = "C2CsJOC(O)", - group = -""" + index=66, + label="C2CsJOC(O)", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 CO u0 {2,S} {6,D} @@ -4536,24 +4180,22 @@ 5 C u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.04,-1.34,-2.3,-2.99,-3.99,-4.77,-5.98],'cal/(mol*K)'), - H298 = (100.1,'kcal/mol'), - S298 = (4.77,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.04, -1.34, -2.3, -2.99, -3.99, -4.77, -5.98], "cal/(mol*K)"), + H298=(100.1, "kcal/mol"), + S298=(4.77, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 67, - label = "C2CsJOC(O)H", - group = -""" + index=67, + label="C2CsJOC(O)H", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 CO u0 {3,S} {6,D} {7,S} 3 O2s u0 {1,S} {2,S} @@ -4562,24 +4204,22 @@ 6 O2d u0 {2,D} 7 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.03,-1.28,-2.28,-3.1,-4.35,-5.19,-6.06],'cal/(mol*K)'), - H298 = (99.97,'kcal/mol'), - S298 = (4.88,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.03, -1.28, -2.28, -3.1, -4.35, -5.19, -6.06], "cal/(mol*K)"), + H298=(99.97, "kcal/mol"), + S298=(4.88, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 68, - label = "C2CsJOC(O)C", - group = -""" + index=68, + label="C2CsJOC(O)C", + group=""" 1 * Cs u1 {3,S} {4,S} {5,S} 2 CO u0 {3,S} {6,D} {7,S} 3 O2s u0 {1,S} {2,S} @@ -4588,48 +4228,44 @@ 6 O2d u0 {2,D} 7 C u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.04,-1.4,-2.32,-2.89,-3.62,-4.36,-5.9],'cal/(mol*K)'), - H298 = (100.25,'kcal/mol'), - S298 = (4.66,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.04, -1.4, -2.32, -2.89, -3.62, -4.36, -5.9], "cal/(mol*K)"), + H298=(100.25, "kcal/mol"), + S298=(4.66, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 69, - label = "C2CsJOO", - group = -""" + index=69, + label="C2CsJOO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 O2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.89,-2.09,-2.81,-3.24,-3.69,-3.97,-4.43],'cal/(mol*K)'), - H298 = (96.7,'kcal/mol'), - S298 = (2.22,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.89, -2.09, -2.81, -3.24, -3.69, -3.97, -4.43], "cal/(mol*K)"), + H298=(96.7, "kcal/mol"), + S298=(2.22, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 70, - label = "C2CsJOOH", - group = -""" + index=70, + label="C2CsJOOH", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -4637,24 +4273,22 @@ 5 C u0 {1,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.01,-2.17,-2.87,-3.3,-3.77,-4.05,-4.49],'cal/(mol*K)'), - H298 = (96.74,'kcal/mol'), - S298 = (2.37,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.01, -2.17, -2.87, -3.3, -3.77, -4.05, -4.49], "cal/(mol*K)"), + H298=(96.74, "kcal/mol"), + S298=(2.37, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 71, - label = "C2CsJOOC", - group = -""" + index=71, + label="C2CsJOOC", + group=""" 1 * Cs u1 {2,S} {4,S} {5,S} 2 O2s u0 {1,S} {3,S} 3 O2s u0 {2,S} {6,S} @@ -4662,527 +4296,477 @@ 5 C u0 {1,S} 6 C u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.78,-2.02,-2.75,-3.18,-3.62,-3.88,-4.37],'cal/(mol*K)'), - H298 = (96.58,'kcal/mol'), - S298 = (2.08,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.78, -2.02, -2.75, -3.18, -3.62, -3.88, -4.37], "cal/(mol*K)"), + H298=(96.58, "kcal/mol"), + S298=(2.08, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-S", - group = -""" + index=-1, + label="CsJ-S", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 S2s u0 {1,S} 3 R u0 {1,S} 4 R u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 244, - label = "CsJ-SsHH", - group = -""" + index=244, + label="CsJ-SsHH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 S2s u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.07,-0.32,-0.73,-1.22,-2.18,-2.99,-4.27],'cal/(mol*K)'), - H298 = (95.34,'kcal/mol'), - S298 = (1.18,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.07, -0.32, -0.73, -1.22, -2.18, -2.99, -4.27], "cal/(mol*K)"), + H298=(95.34, "kcal/mol"), + S298=(1.18, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-CSH", - group = -""" + index=-1, + label="CsJ-CSH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 245, - label = "CsJ-CsSsH", - group = -""" + index=245, + label="CsJ-CsSsH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.25,-0.79,-1.36,-1.9,-2.82,-3.53,-4.64],'cal/(mol*K)'), - H298 = (92.87,'kcal/mol'), - S298 = (1.91,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.25, -0.79, -1.36, -1.9, -2.82, -3.53, -4.64], "cal/(mol*K)"), + H298=(92.87, "kcal/mol"), + S298=(1.91, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 247, - label = "CsJ-CtSsH", - group = -""" + index=247, + label="CsJ-CtSsH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Ct u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.26,-0.02,-0.47,-0.97,-1.95,-2.77,-4.12],'cal/(mol*K)'), - H298 = (83.48,'kcal/mol'), - S298 = (-0.16,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.26, -0.02, -0.47, -0.97, -1.95, -2.77, -4.12], "cal/(mol*K)"), + H298=(83.48, "kcal/mol"), + S298=(-0.16, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 248, - label = "CsJ-CbSsH", - group = -""" + index=248, + label="CsJ-CbSsH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.32,-0.38,-0.65,-1.01,-1.75,-2.4,-3.57],'cal/(mol*K)'), - H298 = (84.88,'kcal/mol'), - S298 = (-0.98,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.32, -0.38, -0.65, -1.01, -1.75, -2.4, -3.57], "cal/(mol*K)"), + H298=(84.88, "kcal/mol"), + S298=(-0.98, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 246, - label = "CsJ-CdSsH", - group = -""" + index=246, + label="CsJ-CdSsH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.21,-2.77,-2.39,-2.24,-2.39,-2.74,-3.56],'cal/(mol*K)'), - H298 = (81.92,'kcal/mol'), - S298 = (0.66,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.21, -2.77, -2.39, -2.24, -2.39, -2.74, -3.56], "cal/(mol*K)"), + H298=(81.92, "kcal/mol"), + S298=(0.66, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 249, - label = "CsJ-C=SSsH", - group = -""" + index=249, + label="CsJ-C=SSsH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CS u0 {1,S} {5,D} 3 S2s u0 {1,S} 4 H u0 {1,S} 5 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.75,-2.93,-2.07,-1.54,-1.2,-1.31,-2.01],'cal/(mol*K)'), - H298 = (71.51,'kcal/mol'), - S298 = (-3.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.75, -2.93, -2.07, -1.54, -1.2, -1.31, -2.01], "cal/(mol*K)"), + H298=(71.51, "kcal/mol"), + S298=(-3.81, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-CCS", - group = -""" + index=-1, + label="CsJ-CCS", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 C u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 251, - label = "CsJ-CsCsSs", - group = -""" + index=251, + label="CsJ-CsCsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cs u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.72,-2.04,-2.88,-3.4,-3.99,-4.36,-4.96],'cal/(mol*K)'), - H298 = (92.32,'kcal/mol'), - S298 = (3.87,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.72, -2.04, -2.88, -3.4, -3.99, -4.36, -4.96], "cal/(mol*K)"), + H298=(92.32, "kcal/mol"), + S298=(3.87, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 253, - label = "CsJ-CsCtSs", - group = -""" + index=253, + label="CsJ-CsCtSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Ct u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.99,-1.64,-2.18,-2.62,-3.3,-3.82,-4.65],'cal/(mol*K)'), - H298 = (81.17,'kcal/mol'), - S298 = (3.05,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.99, -1.64, -2.18, -2.62, -3.3, -3.82, -4.65], "cal/(mol*K)"), + H298=(81.17, "kcal/mol"), + S298=(3.05, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 254, - label = "CsJ-CsCbSs", - group = -""" + index=254, + label="CsJ-CsCbSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 Cb u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.99,-2.26,-2.53,-2.75,-3.12,-3.49,-4.43],'cal/(mol*K)'), - H298 = (84.1,'kcal/mol'), - S298 = (0.96,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.99, -2.26, -2.53, -2.75, -3.12, -3.49, -4.43], "cal/(mol*K)"), + H298=(84.1, "kcal/mol"), + S298=(0.96, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 252, - label = "CsJ-CsCdSs", - group = -""" + index=252, + label="CsJ-CsCdSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-4,-4.74,-4.81,-4.59,-4.17,-3.99,-4.12],'cal/(mol*K)'), - H298 = (80.07,'kcal/mol'), - S298 = (2.53,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-4, -4.74, -4.81, -4.59, -4.17, -3.99, -4.12], "cal/(mol*K)"), + H298=(80.07, "kcal/mol"), + S298=(2.53, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 255, - label = "CsJ-CsC=SSs", - group = -""" + index=255, + label="CsJ-CsC=SSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CS u0 {1,S} {5,D} 3 Cs u0 {1,S} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.86,-3.83,-3.41,-2.93,-2.28,-2.07,-2.36],'cal/(mol*K)'), - H298 = (69.17,'kcal/mol'), - S298 = (-1.97,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.86, -3.83, -3.41, -2.93, -2.28, -2.07, -2.36], "cal/(mol*K)"), + H298=(69.17, "kcal/mol"), + S298=(-1.97, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-SS", - group = -""" + index=-1, + label="CsJ-SS", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} 4 R u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 250, - label = "CsJ-SsSsH", - group = -""" + index=250, + label="CsJ-SsSsH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-4.52,-4,-3.64,-3.53,-3.68,-4,-4.72],'cal/(mol*K)'), - H298 = (90.16,'kcal/mol'), - S298 = (1.31,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-4.52, -4, -3.64, -3.53, -3.68, -4, -4.72], "cal/(mol*K)"), + H298=(90.16, "kcal/mol"), + S298=(1.31, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-CSS", - group = -""" + index=-1, + label="CsJ-CSS", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 256, - label = "CsJ-CsSsSs", - group = -""" + index=256, + label="CsJ-CsSsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cs u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.36,-4,-4.17,-4.24,-4.37,-4.55,-5],'cal/(mol*K)'), - H298 = (89.98,'kcal/mol'), - S298 = (5.5,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.36, -4, -4.17, -4.24, -4.37, -4.55, -5], "cal/(mol*K)"), + H298=(89.98, "kcal/mol"), + S298=(5.5, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-CtSsSs", - group = -""" + index=-1, + label="CsJ-CtSsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Ct u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-CbSsSs", - group = -""" + index=-1, + label="CsJ-CbSsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cb u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-CdSsSs", - group = -""" + index=-1, + label="CsJ-CdSsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 Cd u0 {1,S} {5,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 C u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-C=SSsSs", - group = -""" + index=-1, + label="CsJ-C=SSsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 CS u0 {1,S} {5,D} 3 S2s u0 {1,S} 4 S2s u0 {1,S} 5 S2d u0 {2,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "CsJ-SsSsSs", - group = -""" + index=-1, + label="CsJ-SsSsSs", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 S2s u0 {1,S} 3 S2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 264, - label = "CCsJOS", - group = -""" + index=264, + label="CCsJOS", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 C u0 {1,S} 3 O2s u0 {1,S} 4 S2s u0 {1,S} """, - thermo = 'CCsJOHSH', - shortDesc = """""", - longDesc = -""" + thermo="CCsJOHSH", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 265, - label = "CCsJOHSH", - group = -""" + index=265, + label="CCsJOHSH", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} {5,S} 3 S2s u0 {1,S} {6,S} @@ -5190,97 +4774,88 @@ 5 H u0 {2,S} 6 H u0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.21,-2.38,-2.47,-2.55,-2.89,-3.33,-4.54],'cal/(mol*K)'), - H298 = (92.6,'kcal/mol'), - S298 = (1.67,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.21, -2.38, -2.47, -2.55, -2.89, -3.33, -4.54], "cal/(mol*K)"), + H298=(92.6, "kcal/mol"), + S298=(1.67, "cal/(mol*K)"), ), - shortDesc = """CAC CBS-QB3 1d-hr""", - longDesc = -""" + shortDesc="""CAC CBS-QB3 1d-hr""", + longDesc=""" """, ) entry( - index = 300, - label = "CsJN", - group = -""" + index=300, + label="CsJN", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} """, - thermo = 'CCsJN', - shortDesc = """""", - longDesc = -""" + thermo="CCsJN", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 301, - label = "CCsJN", - group = -""" + index=301, + label="CCsJN", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 C u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.2,-0.7,-1.4,-1.9,-2.8,-3.4,-4.5],'cal/(mol*K)'), - H298 = (92.1,'kcal/mol'), - S298 = (2.5,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.2, -0.7, -1.4, -1.9, -2.8, -3.4, -4.5], "cal/(mol*K)"), + H298=(92.1, "kcal/mol"), + S298=(2.5, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" """, ) entry( - index = 302, - label = "C2CsJN", - group = -""" + index=302, + label="C2CsJN", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 N u0 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = 'CCsJN', - shortDesc = """""", - longDesc = -""" + thermo="CCsJN", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3012, - label = "OCJO", - group = -""" + index=3012, + label="OCJO", + group=""" 1 * Cs u1 {2,S} {3,S} {4,S} 2 O2s u0 {1,S} 3 O2s u0 {1,S} 4 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([1,-8.2,-14.4,-17.5,-19.4,-20.1,-21.5],'J/(mol*K)'), - H298 = (408.4,'kJ/mol'), - S298 = (15.1,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([1, -8.2, -14.4, -17.5, -19.4, -20.1, -21.5], "J/(mol*K)"), + H298=(408.4, "kJ/mol"), + S298=(15.1, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5288,117 +4863,105 @@ ) entry( - index = 72, - label = "CdsJ", - group = -""" + index=72, + label="CdsJ", + group=""" 1 * [Cd,CO] u1 """, - thermo = 'Cds_P', - shortDesc = """""", - longDesc = -""" + thermo="Cds_P", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 79, - label = "CdsJO", - group = -""" + index=79, + label="CdsJO", + group=""" 1 * CO u1 {2,D} 2 O2d u0 {1,D} """, - thermo = 'CCJ=O', - shortDesc = """""", - longDesc = -""" + thermo="CCJ=O", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 80, - label = "HCdsJO", - group = -""" + index=80, + label="HCdsJO", + group=""" 1 * CO u1 {2,D} {3,S} 2 O2d u0 {1,D} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.19,-0.65,-1.19,-1.73,-2.63,-3.32,-4.42],'cal/(mol*K)'), - H298 = (88.45,'kcal/mol'), - S298 = (-0.01,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.19, -0.65, -1.19, -1.73, -2.63, -3.32, -4.42], "cal/(mol*K)"), + H298=(88.45, "kcal/mol"), + S298=(-0.01, "cal/(mol*K)"), ), - shortDesc = """Calculated in relation to formaldehyde from NIST values""", - longDesc = -""" + shortDesc="""Calculated in relation to formaldehyde from NIST values""", + longDesc=""" """, ) entry( - index = 81, - label = "CCJ=O", - group = -""" + index=81, + label="CCJ=O", + group=""" 1 * CO u1 {2,D} {3,S} 2 O2d u0 {1,D} 3 C u0 {1,S} """, - thermo = 'CsCJ=O', - shortDesc = """""", - longDesc = -""" + thermo="CsCJ=O", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 82, - label = "CsCJ=O", - group = -""" + index=82, + label="CsCJ=O", + group=""" 1 * CO u1 {2,D} {3,S} 2 O2d u0 {1,D} 3 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.83,-1.43,-1.96,-2.42,-3.16,-3.73,-4.64],'cal/(mol*K)'), - H298 = (89,'kcal/mol'), - S298 = (1.12,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.83, -1.43, -1.96, -2.42, -3.16, -3.73, -4.64], "cal/(mol*K)"), + H298=(89, "kcal/mol"), + S298=(1.12, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 3057, - label = "CC(C)CJ=O", - group = -""" + index=3057, + label="CC(C)CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 * CO u1 {1,S} {5,D} 3 C u0 {1,S} 4 C u0 {1,S} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-4.1,-5.8,-7.9,-9.9,-13.5,-16.2,-20.3],'J/(mol*K)'), - H298 = (376.2,'kJ/mol'), - S298 = (6.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-4.1, -5.8, -7.9, -9.9, -13.5, -16.2, -20.3], "J/(mol*K)"), + H298=(376.2, "kJ/mol"), + S298=(6.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5406,10 +4969,9 @@ ) entry( - index = 3058, - label = "CC(C)2CJ=O", - group = -""" + index=3058, + label="CC(C)2CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * CO u1 {1,S} {6,D} 3 C u0 {1,S} @@ -5417,15 +4979,14 @@ 5 C u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.7,-5,-7.4,-9.6,-13.1,-15.6,-19.9],'J/(mol*K)'), - H298 = (373.3,'kJ/mol'), - S298 = (7.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.7, -5, -7.4, -9.6, -13.1, -15.6, -19.9], "J/(mol*K)"), + H298=(373.3, "kJ/mol"), + S298=(7.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5433,10 +4994,9 @@ ) entry( - index = 3060, - label = "CC(C)(C=O)CJ=O", - group = -""" + index=3060, + label="CC(C)(C=O)CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * CO u1 {1,S} {6,D} 3 CO u0 {1,S} {7,D} @@ -5445,15 +5005,14 @@ 6 O2d u0 {2,D} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.7,-4,-5.4,-7.2,-10.9,-13.9,-18.6],'J/(mol*K)'), - H298 = (375.2,'kJ/mol'), - S298 = (10.4,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.7, -4, -5.4, -7.2, -10.9, -13.9, -18.6], "J/(mol*K)"), + H298=(375.2, "kJ/mol"), + S298=(10.4, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5461,10 +5020,9 @@ ) entry( - index = 3073, - label = "C=CC(C)(C=O)CJ=O", - group = -""" + index=3073, + label="C=CC(C)(C=O)CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * CO u1 {1,S} {7,D} 3 CO u0 {1,S} {8,D} @@ -5474,15 +5032,14 @@ 7 O2d u0 {2,D} 8 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.5,2.6,-2.4,-6.5,-12,-15.3,-19.7],'J/(mol*K)'), - H298 = (373.6,'kJ/mol'), - S298 = (1.2,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.5, 2.6, -2.4, -6.5, -12, -15.3, -19.7], "J/(mol*K)"), + H298=(373.6, "kJ/mol"), + S298=(1.2, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5490,10 +5047,9 @@ ) entry( - index = 3071, - label = "C=CC(C)2CJ=O", - group = -""" + index=3071, + label="C=CC(C)2CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * CO u1 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -5502,15 +5058,14 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.5,-4.2,-7,-9.3,-12.8,-15.4,-19.4],'J/(mol*K)'), - H298 = (371.9,'kJ/mol'), - S298 = (10.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.5, -4.2, -7, -9.3, -12.8, -15.4, -19.4], "J/(mol*K)"), + H298=(371.9, "kJ/mol"), + S298=(10.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5518,10 +5073,9 @@ ) entry( - index = 3059, - label = "CC(C)(O)CJ=O", - group = -""" + index=3059, + label="CC(C)(O)CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * CO u1 {1,S} {6,D} 3 C u0 {1,S} @@ -5529,15 +5083,14 @@ 5 C u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.9,-2.6,-5.6,-8.1,-12,-14.9,-19.6],'J/(mol*K)'), - H298 = (374.9,'kJ/mol'), - S298 = (6.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.9, -2.6, -5.6, -8.1, -12, -14.9, -19.6], "J/(mol*K)"), + H298=(374.9, "kJ/mol"), + S298=(6.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5545,10 +5098,9 @@ ) entry( - index = 3072, - label = "C=CC(C)(O)CJ=O", - group = -""" + index=3072, + label="C=CC(C)(O)CJ=O", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * CO u1 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -5557,15 +5109,14 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1,-4.5,-7.4,-9.7,-12.7,-15.1,-19.5],'J/(mol*K)'), - H298 = (375.3,'kJ/mol'), - S298 = (8.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1, -4.5, -7.4, -9.7, -12.7, -15.1, -19.5], "J/(mol*K)"), + H298=(375.3, "kJ/mol"), + S298=(8.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5573,24 +5124,22 @@ ) entry( - index = 83, - label = "C=CCJ=O", - group = -""" + index=83, + label="C=CCJ=O", + group=""" 1 * CO u1 {2,S} {3,D} 2 Cd u0 {1,S} {4,D} 3 O2d u0 {1,D} 4 Cd u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.3,2.5,-1.1,-4.5,-9.9,-13.7,-18.9],'J/(mol*K)'), - H298 = (379.9,'kJ/mol'), - S298 = (7.2,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.3, 2.5, -1.1, -4.5, -9.9, -13.7, -18.9], "J/(mol*K)"), + H298=(379.9, "kJ/mol"), + S298=(7.2, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5598,24 +5147,22 @@ ) entry( - index = 3052, - label = "CCCJ=O", - group = -""" + index=3052, + label="CCCJ=O", + group=""" 1 * CO u1 {2,S} {4,D} 2 C u0 {1,S} {3,S} 3 C u0 {2,S} 4 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.7,-3.9,-7,-9.9,-14.5,-17.5,-21.4],'J/(mol*K)'), - H298 = (378,'kJ/mol'), - S298 = (8.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.7, -3.9, -7, -9.9, -14.5, -17.5, -21.4], "J/(mol*K)"), + H298=(378, "kJ/mol"), + S298=(8.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5623,25 +5170,23 @@ ) entry( - index = 3054, - label = "C=OCCJ=O", - group = -""" + index=3054, + label="C=OCCJ=O", + group=""" 1 C u0 {2,S} {3,S} 2 * CO u1 {1,S} {4,D} 3 CO u0 {1,S} {5,D} 4 O2d u0 {2,D} 5 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([5.2,1.4,-2.8,-6.4,-12,-15.8,-20.4],'J/(mol*K)'), - H298 = (379.4,'kJ/mol'), - S298 = (0.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([5.2, 1.4, -2.8, -6.4, -12, -15.8, -20.4], "J/(mol*K)"), + H298=(379.4, "kJ/mol"), + S298=(0.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5649,10 +5194,9 @@ ) entry( - index = 3056, - label = "C=OC=OCJ=O", - group = -""" + index=3056, + label="C=OC=OCJ=O", + group=""" 1 CO u0 {2,S} {3,S} {4,D} 2 * CO u1 {1,S} {5,D} 3 CO u0 {1,S} {6,D} @@ -5660,15 +5204,14 @@ 5 O2d u0 {2,D} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-5.2,-4.6,-4.4,-4.5,-4.9,-5.7,-7.8],'J/(mol*K)'), - H298 = (330.2,'kJ/mol'), - S298 = (-19.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-5.2, -4.6, -4.4, -4.5, -4.9, -5.7, -7.8], "J/(mol*K)"), + H298=(330.2, "kJ/mol"), + S298=(-19.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5676,25 +5219,23 @@ ) entry( - index = 3070, - label = "C=C(C)CJ=O", - group = -""" + index=3070, + label="C=C(C)CJ=O", + group=""" 1 Cd u0 {2,S} {3,S} {4,D} 2 * CO u1 {1,S} {5,D} 3 C u0 {1,S} 4 C u0 {1,D} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.3,-3.8,-6.4,-8.8,-12.5,-15.3,-19.5],'J/(mol*K)'), - H298 = (381.7,'kJ/mol'), - S298 = (6.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.3, -3.8, -6.4, -8.8, -12.5, -15.3, -19.5], "J/(mol*K)"), + H298=(381.7, "kJ/mol"), + S298=(6.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5702,25 +5243,23 @@ ) entry( - index = 3055, - label = "OC=OCJ=O", - group = -""" + index=3055, + label="OC=OCJ=O", + group=""" 1 CO u0 {2,S} {3,S} {4,D} 2 * CO u1 {1,S} {5,D} 3 O2s u0 {1,S} 4 O2d u0 {1,D} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3,-4.7,-7,-9.5,-14,-17.2,-21.1],'J/(mol*K)'), - H298 = (376.2,'kJ/mol'), - S298 = (4.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3, -4.7, -7, -9.5, -14, -17.2, -21.1], "J/(mol*K)"), + H298=(376.2, "kJ/mol"), + S298=(4.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5728,64 +5267,58 @@ ) entry( - index = 84, - label = "(O)CJO", - group = -""" + index=84, + label="(O)CJO", + group=""" 1 * CO u1 {2,D} {3,S} 2 O2d u0 {1,D} 3 O2s u0 {1,S} """, - thermo = '(O)CJOC', - shortDesc = """""", - longDesc = -""" + thermo="(O)CJOC", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 85, - label = "(O)CJOH", - group = -""" + index=85, + label="(O)CJOH", + group=""" 1 * CO u1 {2,S} {3,D} 2 O2s u0 {1,S} {4,S} 3 O2d u0 {1,D} 4 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.02,-0.66,-1.4,-2.12,-3.41,-4.44,-5.79],'cal/(mol*K)'), - H298 = (100.75,'kcal/mol'), - S298 = (0.78,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.02, -0.66, -1.4, -2.12, -3.41, -4.44, -5.79], "cal/(mol*K)"), + H298=(100.75, "kcal/mol"), + S298=(0.78, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN #""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN #""", + longDesc=""" """, ) entry( - index = 86, - label = "(O)CJOC", - group = -""" + index=86, + label="(O)CJOC", + group=""" 1 * CO u1 {2,S} {3,D} 2 O2s u0 {1,S} {4,S} 3 O2d u0 {1,D} 4 C u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([2.2,-0.2,-3.5,-6.5,-10.9,-13.6,-17],'J/(mol*K)'), - H298 = (415.2,'kJ/mol'), - S298 = (-4.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([2.2, -0.2, -3.5, -6.5, -10.9, -13.6, -17], "J/(mol*K)"), + H298=(415.2, "kJ/mol"), + S298=(-4.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -5793,10 +5326,9 @@ ) entry( - index = 87, - label = "(O)CJOCH3", - group = -""" + index=87, + label="(O)CJOCH3", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 O2s u0 {1,S} {3,S} 3 * CO u1 {2,S} {7,D} @@ -5805,24 +5337,22 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.51,-0.11,-0.94,-1.8,-3.34,-4.48,-5.79],'cal/(mol*K)'), - H298 = (100.1,'kcal/mol'), - S298 = (0.72,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.51, -0.11, -0.94, -1.8, -3.34, -4.48, -5.79], "cal/(mol*K)"), + H298=(100.1, "kcal/mol"), + S298=(0.72, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN""", + longDesc=""" """, ) entry( - index = 88, - label = "(O)CJOCC", - group = -""" + index=88, + label="(O)CJOCC", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 O2s u0 {1,S} {3,S} 3 * CO u1 {2,S} {7,D} @@ -5831,24 +5361,22 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.45,-0.13,-0.98,-1.86,-3.43,-4.56,-5.79],'cal/(mol*K)'), - H298 = (99.49,'kcal/mol'), - S298 = (0.55,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.45, -0.13, -0.98, -1.86, -3.43, -4.56, -5.79], "cal/(mol*K)"), + H298=(99.49, "kcal/mol"), + S298=(0.55, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN (values from (O)CJOCH2CH3)""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN (values from (O)CJOCH2CH3)""", + longDesc=""" """, ) entry( - index = 89, - label = "(O)CJOCC2", - group = -""" + index=89, + label="(O)CJOCC2", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 O2s u0 {1,S} {3,S} 3 * CO u1 {2,S} {7,D} @@ -5857,24 +5385,22 @@ 6 H u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.74,-0.06,-1.04,-2.01,-3.6,-4.66,-5.77],'cal/(mol*K)'), - H298 = (98.99,'kcal/mol'), - S298 = (0.82,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.74, -0.06, -1.04, -2.01, -3.6, -4.66, -5.77], "cal/(mol*K)"), + H298=(98.99, "kcal/mol"), + S298=(0.82, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN (values from (O)CJOCH(CH3)2)""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN (values from (O)CJOCH(CH3)2)""", + longDesc=""" """, ) entry( - index = 90, - label = "(O)CJOCC3", - group = -""" + index=90, + label="(O)CJOCC3", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} {6,S} 2 O2s u0 {1,S} {3,S} 3 * CO u1 {2,S} {7,D} @@ -5883,136 +5409,124 @@ 6 C u0 {1,S} 7 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.11,-0.79,-1.8,-2.73,-4.17,-5.06,-5.87],'cal/(mol*K)'), - H298 = (97.98,'kcal/mol'), - S298 = (0.76,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.11, -0.79, -1.8, -2.73, -4.17, -5.06, -5.87], "cal/(mol*K)"), + H298=(97.98, "kcal/mol"), + S298=(0.76, "cal/(mol*K)"), ), - shortDesc = """SUMATHI & GREEN (values from (O)CJOC(CH3)3)""", - longDesc = -""" + shortDesc="""SUMATHI & GREEN (values from (O)CJOC(CH3)3)""", + longDesc=""" """, ) entry( - index = 74, - label = "Cds_P", - group = -""" + index=74, + label="Cds_P", + group=""" 1 * Cd u1 {2,D} {3,S} 2 C u0 {1,D} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.19,-0.75,-1.36,-1.92,-2.82,-3.49,-4.53],'cal/(mol*K)'), - H298 = (111.2,'kcal/mol'), - S298 = (1.39,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.19, -0.75, -1.36, -1.92, -2.82, -3.49, -4.53], "cal/(mol*K)"), + H298=(111.2, "kcal/mol"), + S298=(1.39, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 75, - label = "C=C=CJ", - group = -""" + index=75, + label="C=C=CJ", + group=""" 1 * Cd u1 {2,D} {3,S} 2 Cdd u0 {1,D} {4,D} 3 H u0 {1,S} 4 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.45,-1.05,-1.64,-2.15,-2.98,-3.6,-3.6],'cal/(mol*K)'), - H298 = (89,'kcal/mol'), - S298 = (1.29,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.45, -1.05, -1.64, -2.15, -2.98, -3.6, -3.6], "cal/(mol*K)"), + H298=(89, "kcal/mol"), + S298=(1.29, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 77, - label = "Cds_S", - group = -""" + index=77, + label="Cds_S", + group=""" 1 * Cd u1 {2,D} {3,S} 2 C u0 {1,D} 3 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (109,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(109, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """LAY et al. CHEN & BOZZELLI #""", - longDesc = -""" + shortDesc="""LAY et al. CHEN & BOZZELLI #""", + longDesc=""" """, ) entry( - index = 78, - label = "C=CJC=C", - group = -""" + index=78, + label="C=CJC=C", + group=""" 1 * Cd u1 {2,D} {3,S} 2 Cd u0 {1,D} 3 [Cd,CO] u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.19,-0.76,-1.51,-2.01,-2.7,-3.17,-3.17],'cal/(mol*K)'), - H298 = (99.8,'kcal/mol'), - S298 = (0.71,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.19, -0.76, -1.51, -2.01, -2.7, -3.17, -3.17], "cal/(mol*K)"), + H298=(99.8, "kcal/mol"), + S298=(0.71, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 194, - label = "cyclobutadiene-C1", - group = -""" + index=194, + label="cyclobutadiene-C1", + group=""" 1 * Cd u1 {2,D} {4,S} 2 Cd u0 {1,D} {3,S} 3 Cd u0 {2,S} {4,D} 4 Cd u0 {1,S} {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (104.6,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(104.6, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 193, - label = "bicyclo[2.2.0]hexa-1(4),2,5-triene-C2", - group = -""" + index=193, + label="bicyclo[2.2.0]hexa-1(4),2,5-triene-C2", + group=""" 1 Cd u0 {2,D} {3,S} {6,S} 2 Cd u0 {1,D} {4,S} {5,S} 3 * Cd u1 {1,S} {4,D} @@ -6020,117 +5534,107 @@ 5 Cd u0 {2,S} {6,D} 6 Cd u0 {1,S} {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (102.9,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(102.9, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 181, - label = "1,3-cyclopentadiene-vinyl-2", - group = -""" + index=181, + label="1,3-cyclopentadiene-vinyl-2", + group=""" 1 C u0 {2,S} {3,S} 2 Cd u0 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} 4 * Cd u1 {2,D} {5,S} 5 Cd u0 {3,D} {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (116.2,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(116.2, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 144, - label = "cyclopropenyl-vinyl", - group = -""" + index=144, + label="cyclopropenyl-vinyl", + group=""" 1 C u0 {2,S} {3,S} 2 * Cd u1 {1,S} {3,D} 3 Cd u0 {1,S} {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (106.7,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(106.7, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Fattahi, A.; McCarthy, R. E.; Ahmad, M. R.; Kass, S. R., "Why Does Cyclopropene Have the Acidity of an Acetylene but the Bond Energy of Methane?," J. Am. Chem. Soc. 2003, 125, 11746-11750, DOI: 10.1021/ja035725s. S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Fattahi, A.; McCarthy, R. E.; Ahmad, M. R.; Kass, S. R., "Why Does Cyclopropene Have the Acidity of an Acetylene but the Bond Energy of Methane?," J. Am. Chem. Soc. 2003, 125, 11746-11750, DOI: 10.1021/ja035725s. S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 146, - label = "cyclobutene-vinyl", - group = -""" + index=146, + label="cyclobutene-vinyl", + group=""" 1 C u0 {2,S} {4,S} 2 C u0 {1,S} {3,S} 3 * Cd u1 {2,S} {4,D} 4 Cd u0 {1,S} {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (112.5,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(112.5, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Tian, Z.; Fattahi, A.; Lis, L.; Kass, S. R., "Cycloalkane and Cycloalkene C-H Bond Dissociation Energies," J. Am. Chem. Soc. 2006, 128, 17087-17092, DOI: 10.1021/ja065348u S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Tian, Z.; Fattahi, A.; Lis, L.; Kass, S. R., "Cycloalkane and Cycloalkene C-H Bond Dissociation Energies," J. Am. Chem. Soc. 2006, 128, 17087-17092, DOI: 10.1021/ja065348u S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 184, - label = "bicyclo[2.1.0]pent-2-ene-C2", - group = -""" + index=184, + label="bicyclo[2.1.0]pent-2-ene-C2", + group=""" 1 Cs u0 {2,S} {3,S} {5,S} 2 Cs u0 {1,S} {3,S} {4,S} 3 C u0 {1,S} {2,S} 4 * Cd u1 {2,S} {5,D} 5 Cd u0 {1,S} {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (109.8,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(109.8, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 189, - label = "tricyclo[2.1.1.0(1,4)]hex-2-ene-C2", - group = -""" + index=189, + label="tricyclo[2.1.1.0(1,4)]hex-2-ene-C2", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {6,S} 2 Cs u0 {1,S} {3,S} {4,S} {5,S} 3 C u0 {1,S} {2,S} @@ -6138,24 +5642,22 @@ 5 * Cd u1 {2,S} {6,D} 6 Cd u0 {1,S} {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (108.6,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(108.6, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 192, - label = "bicyclo[2.2.0]hexa-2,5-diene-C2", - group = -""" + index=192, + label="bicyclo[2.2.0]hexa-2,5-diene-C2", + group=""" 1 Cs u0 {2,S} {3,S} {6,S} 2 Cs u0 {1,S} {4,S} {5,S} 3 * Cd u1 {1,S} {4,D} @@ -6163,48 +5665,44 @@ 5 Cd u0 {2,S} {6,D} 6 Cd u0 {1,S} {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (111.6,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(111.6, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 178, - label = "cyclopentene-vinyl", - group = -""" + index=178, + label="cyclopentene-vinyl", + group=""" 1 C u0 {2,S} {3,S} 2 C u0 {1,S} {5,S} 3 C u0 {1,S} {4,S} 4 * Cd u1 {3,S} {5,D} 5 Cd u0 {2,S} {4,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (113.7,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(113.7, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 187, - label = "bicyclo[2.1.1]hex-2-ene-C2", - group = -""" + index=187, + label="bicyclo[2.1.1]hex-2-ene-C2", + group=""" 1 Cs u0 {3,S} {4,S} {6,S} 2 Cs u0 {3,S} {4,S} {5,S} 3 C u0 {1,S} {2,S} @@ -6212,62 +5710,57 @@ 5 * Cd u1 {2,S} {6,D} 6 Cd u0 {1,S} {5,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (115.9,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(115.9, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 180, - label = "1,3-cyclopentadiene-vinyl-1", - group = -""" + index=180, + label="1,3-cyclopentadiene-vinyl-1", + group=""" 1 C u0 {2,S} {3,S} 2 * Cd u1 {1,S} {4,D} 3 Cd u0 {1,S} {5,D} 4 Cd u0 {2,D} {5,S} 5 Cd u0 {3,D} {4,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.34,-1.21,-1.94,-2.52,-3.34,-3.91,-4.76],'cal/(mol*K)'), - H298 = (116.9,'kcal/mol'), - S298 = (1.81,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.34, -1.21, -1.94, -2.52, -3.34, -3.91, -4.76], "cal/(mol*K)"), + H298=(116.9, "kcal/mol"), + S298=(1.81, "cal/(mol*K)"), ), - shortDesc = """Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", - longDesc = -""" + shortDesc="""Homolytic C-H and N-H bond dissociation energies of strained organic compounds Feng et al. 2004S, Cp copied from Cds_S""", + longDesc=""" """, ) entry( - index = 3061, - label = "C=CJC=O", - group = -""" + index=3061, + label="C=CJC=O", + group=""" 1 * Cd u1 {2,S} {3,D} 2 CO u0 {1,S} {4,D} 3 C u0 {1,D} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.4,-2.2,-4.8,-7.2,-11.6,-15.5,-22],'J/(mol*K)'), - H298 = (462.3,'kJ/mol'), - S298 = (9.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.4, -2.2, -4.8, -7.2, -11.6, -15.5, -22], "J/(mol*K)"), + H298=(462.3, "kJ/mol"), + S298=(9.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6275,25 +5768,23 @@ ) entry( - index = 3079, - label = "CCCJ=C=O", - group = -""" + index=3079, + label="CCCJ=C=O", + group=""" 1 * Cd u1 {2,S} {3,D} 2 C u0 {1,S} {4,S} 3 Cdd u0 {1,D} {5,D} 4 C u0 {2,S} 5 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.6,-3,-4.9,-6.5,-9.4,-11.6,-15.1],'J/(mol*K)'), - H298 = (420.2,'kJ/mol'), - S298 = (-2.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.6, -3, -4.9, -6.5, -9.4, -11.6, -15.1], "J/(mol*K)"), + H298=(420.2, "kJ/mol"), + S298=(-2.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6301,10 +5792,9 @@ ) entry( - index = 3080, - label = "CC(C)CJ=C=O", - group = -""" + index=3080, + label="CC(C)CJ=C=O", + group=""" 1 Cs u0 {2,S} {4,S} {5,S} 2 * Cd u1 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6312,15 +5802,14 @@ 5 C u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.8,-3.6,-6,-7.8,-10.6,-12.6,-15.8],'J/(mol*K)'), - H298 = (424,'kJ/mol'), - S298 = (1.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.8, -3.6, -6, -7.8, -10.6, -12.6, -15.8], "J/(mol*K)"), + H298=(424, "kJ/mol"), + S298=(1.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6328,10 +5817,9 @@ ) entry( - index = 3085, - label = "C=C(C)CJ=C=O", - group = -""" + index=3085, + label="C=C(C)CJ=C=O", + group=""" 1 Cd u0 {2,S} {4,D} {5,S} 2 * Cd u1 {1,S} {3,D} 3 Cdd u0 {2,D} {6,D} @@ -6339,15 +5827,14 @@ 5 C u0 {1,S} 6 O2d u0 {3,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-11.5,-13.7,-14.6,-15,-15.7,-16.3,-17.8],'J/(mol*K)'), - H298 = (404,'kJ/mol'), - S298 = (5.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-11.5, -13.7, -14.6, -15, -15.7, -16.3, -17.8], "J/(mol*K)"), + H298=(404, "kJ/mol"), + S298=(5.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6355,45 +5842,41 @@ ) entry( - index = 257, - label = "CdsJ-S2s", - group = -""" + index=257, + label="CdsJ-S2s", + group=""" 1 * Cd u1 {2,S} {3,D} 2 S2s u0 {1,S} 3 C u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0.16,-0.48,-1.16,-1.76,-2.68,-3.35,-4.45],'cal/(mol*K)'), - H298 = (104.73,'kcal/mol'), - S298 = (0.37,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0.16, -0.48, -1.16, -1.76, -2.68, -3.35, -4.45], "cal/(mol*K)"), + H298=(104.73, "kcal/mol"), + S298=(0.37, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 3025, - label = "C=CJO", - group = -""" + index=3025, + label="C=CJO", + group=""" 1 * Cd u1 {2,D} {3,S} 2 C u0 {1,D} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.1,-11.8,-15.2,-17.2,-19.2,-20.3,-22],'J/(mol*K)'), - H298 = (457.4,'kJ/mol'), - S298 = (26.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.1, -11.8, -15.2, -17.2, -19.2, -20.3, -22], "J/(mol*K)"), + H298=(457.4, "kJ/mol"), + S298=(26.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6401,297 +5884,267 @@ ) entry( - index = 91, - label = "CtJ", - group = -""" + index=91, + label="CtJ", + group=""" 1 * Ct u1 {2,T} 2 Ct u0 {1,T} """, - thermo = 'Acetyl', - shortDesc = """""", - longDesc = -""" + thermo="Acetyl", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 92, - label = "Acetyl", - group = -""" + index=92, + label="Acetyl", + group=""" 1 * Ct u1 {2,T} 2 Ct u0 {1,T} {3,S} 3 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.51,-1.56,-2.27,-2.78,-3.47,-3.97,-3.97],'cal/(mol*K)'), - H298 = (132.7,'kcal/mol'), - S298 = (2.11,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.51, -1.56, -2.27, -2.78, -3.47, -3.97, -3.97], "cal/(mol*K)"), + H298=(132.7, "kcal/mol"), + S298=(2.11, "cal/(mol*K)"), ), - shortDesc = """LAY et al.""", - longDesc = -""" + shortDesc="""LAY et al.""", + longDesc=""" """, ) entry( - index = 93, - label = "CbJ", - group = -""" + index=93, + label="CbJ", + group=""" 1 * Cb u1 {2,B} {3,B} 2 C u0 {1,B} 3 C u0 {1,B} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.41,-1.18,-1.93,-2.69,-3.75,-4.48,-5.24],'cal/(mol*K)'), - H298 = (113,'kcal/mol'), - S298 = (1.48,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.41, -1.18, -1.93, -2.69, -3.75, -4.48, -5.24], "cal/(mol*K)"), + H298=(113, "kcal/mol"), + S298=(1.48, "cal/(mol*K)"), ), - shortDesc = """BDE from TSANG, S and Cp from THERM""", - longDesc = -""" + shortDesc="""BDE from TSANG, S and Cp from THERM""", + longDesc=""" """, ) entry( - index = -1, - label = "C=SJ", - group = -""" + index=-1, + label="C=SJ", + group=""" 1 * CS u1 {2,D} 2 S2d u0 {1,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = -1, - label = "C=SJ-S2s", - group = -""" + index=-1, + label="C=SJ-S2s", + group=""" 1 * CS u1 {2,S} {3,D} 2 S2s u0 {1,S} 3 S2d u0 {1,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 258, - label = "C=SJ-H", - group = -""" + index=258, + label="C=SJ-H", + group=""" 1 * CS u1 {2,S} {3,D} 2 H u0 {1,S} 3 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.31,-0.88,-1.47,-1.99,-2.85,-3.49,-4.52],'cal/(mol*K)'), - H298 = (92.39,'kcal/mol'), - S298 = (-0.14,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.31, -0.88, -1.47, -1.99, -2.85, -3.49, -4.52], "cal/(mol*K)"), + H298=(92.39, "kcal/mol"), + S298=(-0.14, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "C=SJ-C", - group = -""" + index=-1, + label="C=SJ-C", + group=""" 1 * CS u1 {2,S} {3,D} 2 C u0 {1,S} 3 S2d u0 {1,D} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 260, - label = "C=SJ-Cd", - group = -""" + index=260, + label="C=SJ-Cd", + group=""" 1 * CS u1 {2,S} {3,D} 2 Cd u0 {1,S} 3 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.21,-1.76,-2.24,-2.65,-3.3,-3.81,-4.67],'cal/(mol*K)'), - H298 = (77.87,'kcal/mol'), - S298 = (0.48,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.21, -1.76, -2.24, -2.65, -3.3, -3.81, -4.67], "cal/(mol*K)"), + H298=(77.87, "kcal/mol"), + S298=(0.48, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", + longDesc=""" """, ) entry( - index = 259, - label = "C=SJ-Cs", - group = -""" + index=259, + label="C=SJ-Cs", + group=""" 1 * CS u1 {2,S} {3,D} 2 Cs u0 {1,S} 3 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.2,-1.8,-2.25,-2.63,-3.24,-3.74,-4.64],'cal/(mol*K)'), - H298 = (91.94,'kcal/mol'), - S298 = (0.65,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.2, -1.8, -2.25, -2.63, -3.24, -3.74, -4.64], "cal/(mol*K)"), + H298=(91.94, "kcal/mol"), + S298=(0.65, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 94, - label = "OJ", - group = -""" + index=94, + label="OJ", + group=""" 1 * O u1 """, - thermo = 'COJ', - shortDesc = """""", - longDesc = -""" + thermo="COJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 95, - label = "HOJ", - group = -""" + index=95, + label="HOJ", + group=""" 1 * O2s u1 {2,S} 2 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.87,-1.1,-1.36,-1.62,-2.11,-2.53,-3.38],'cal/(mol*K)'), - H298 = (119.22,'kcal/mol'), - S298 = (-2.6,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.87, -1.1, -1.36, -1.62, -2.11, -2.53, -3.38], "cal/(mol*K)"), + H298=(119.22, "kcal/mol"), + S298=(-2.6, "cal/(mol*K)"), ), - shortDesc = """Calculated from NIST values for H2O, OH and H""", - longDesc = -""" + shortDesc="""Calculated from NIST values for H2O, OH and H""", + longDesc=""" """, ) entry( - index = 135, - label = "COJ", - group = -""" + index=135, + label="COJ", + group=""" 1 * O2s u1 {2,S} 2 C u0 {1,S} """, - thermo = 'CsOJ', - shortDesc = """""", - longDesc = -""" + thermo="CsOJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 96, - label = "CsOJ", - group = -""" + index=96, + label="CsOJ", + group=""" 1 * O2s u1 {2,S} 2 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.98,-1.3,-1.61,-1.89,-2.38,-2.8,-3.59],'cal/(mol*K)'), - H298 = (104.06,'kcal/mol'), - S298 = (-1.46,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.98, -1.3, -1.61, -1.89, -2.38, -2.8, -3.59], "cal/(mol*K)"), + H298=(104.06, "kcal/mol"), + S298=(-1.46, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI(ROJ)""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI(ROJ)""", + longDesc=""" """, ) entry( - index = 97, - label = "H3COJ", - group = -""" + index=97, + label="H3COJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * O2s u1 {1,S} 3 H u0 {1,S} 4 H u0 {1,S} 5 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.11,-1.29,-1.62,-1.97,-2.59,-3.07,-3.84],'cal/(mol*K)'), - H298 = (104.27,'kcal/mol'), - S298 = (0.51,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.11, -1.29, -1.62, -1.97, -2.59, -3.07, -3.84], "cal/(mol*K)"), + H298=(104.27, "kcal/mol"), + S298=(0.51, "cal/(mol*K)"), ), - shortDesc = """Enthalpy HBI calculated from NIST values, entropy and Cp from B3LYP/6-31G* for CH3OH, CH3O and H""", - longDesc = -""" + shortDesc="""Enthalpy HBI calculated from NIST values, entropy and Cp from B3LYP/6-31G* for CH3OH, CH3O and H""", + longDesc=""" """, ) entry( - index = 3022, - label = "CC(C)OJ", - group = -""" + index=3022, + label="CC(C)OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} 2 * O2s u1 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-5.3,-6.3,-7.3,-8.3,-9.8,-11.2,-14.2],'J/(mol*K)'), - H298 = (447.6,'kJ/mol'), - S298 = (-6.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-5.3, -6.3, -7.3, -8.3, -9.8, -11.2, -14.2], "J/(mol*K)"), + H298=(447.6, "kJ/mol"), + S298=(-6.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6699,25 +6152,23 @@ ) entry( - index = 3023, - label = "CC(C)2OJ", - group = -""" + index=3023, + label="CC(C)2OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * O2s u1 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.2,-7.9,-9,-9.9,-10.7,-11.7,-14.6],'J/(mol*K)'), - H298 = (446.1,'kJ/mol'), - S298 = (-4.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.2, -7.9, -9, -9.9, -10.7, -11.7, -14.6], "J/(mol*K)"), + H298=(446.1, "kJ/mol"), + S298=(-4.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6725,10 +6176,9 @@ ) entry( - index = 3036, - label = "C=CC(C)2OJ", - group = -""" + index=3036, + label="C=CC(C)2OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 * O2s u1 {1,S} @@ -6736,15 +6186,14 @@ 5 C u0 {1,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-8.9,-12.1,-12.9,-12.9,-12.6,-12.9,-14.8],'J/(mol*K)'), - H298 = (445.9,'kJ/mol'), - S298 = (2.7,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-8.9, -12.1, -12.9, -12.9, -12.6, -12.9, -14.8], "J/(mol*K)"), + H298=(445.9, "kJ/mol"), + S298=(2.7, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6752,10 +6201,9 @@ ) entry( - index = 3068, - label = "C=CC(C)(C=O)OJ", - group = -""" + index=3068, + label="C=CC(C)(C=O)OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {7,D} 3 Cd u0 {1,S} {6,D} @@ -6764,15 +6212,14 @@ 6 C u0 {3,D} 7 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-5.5,-11.3,-14.6,-16.2,-17.2,-17.4,-18.4],'J/(mol*K)'), - H298 = (462.1,'kJ/mol'), - S298 = (10.4,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-5.5, -11.3, -14.6, -16.2, -17.2, -17.4, -18.4], "J/(mol*K)"), + H298=(462.1, "kJ/mol"), + S298=(10.4, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6780,10 +6227,9 @@ ) entry( - index = 3051, - label = "CC(C)(C=O)OJ", - group = -""" + index=3051, + label="CC(C)(C=O)OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 CO u0 {1,S} {6,D} 3 * O2s u1 {1,S} @@ -6791,15 +6237,14 @@ 5 C u0 {1,S} 6 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-8.6,-13.9,-16.3,-17.5,-18.4,-18.8,-19.1],'J/(mol*K)'), - H298 = (459.1,'kJ/mol'), - S298 = (16.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-8.6, -13.9, -16.3, -17.5, -18.4, -18.8, -19.1], "J/(mol*K)"), + H298=(459.1, "kJ/mol"), + S298=(16.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6807,25 +6252,23 @@ ) entry( - index = 3024, - label = "CC(C)(O)OJ", - group = -""" + index=3024, + label="CC(C)(O)OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 * O2s u1 {1,S} 3 C u0 {1,S} 4 C u0 {1,S} 5 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-11.8,-18.8,-22.1,-22.3,-19.5,-17.2,-16],'J/(mol*K)'), - H298 = (449,'kJ/mol'), - S298 = (8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-11.8, -18.8, -22.1, -22.3, -19.5, -17.2, -16], "J/(mol*K)"), + H298=(449, "kJ/mol"), + S298=(8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6833,10 +6276,9 @@ ) entry( - index = 3037, - label = "C=CC(C)(O)OJ", - group = -""" + index=3037, + label="C=CC(C)(O)OJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 Cd u0 {1,S} {6,D} 3 * O2s u1 {1,S} @@ -6844,15 +6286,14 @@ 5 O2s u0 {1,S} 6 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-7.2,-12.5,-16.7,-19.1,-20.1,-19.4,-18.2],'J/(mol*K)'), - H298 = (450.7,'kJ/mol'), - S298 = (8.5,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-7.2, -12.5, -16.7, -19.1, -20.1, -19.4, -18.2], "J/(mol*K)"), + H298=(450.7, "kJ/mol"), + S298=(8.5, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6860,60 +6301,54 @@ ) entry( - index = 98, - label = "CdsOJ", - group = -""" + index=98, + label="CdsOJ", + group=""" 1 * O2s u1 {2,S} 2 [Cd,CO] u0 {1,S} """, - thermo = 'RC=COJ', - shortDesc = """""", - longDesc = -""" + thermo="RC=COJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 99, - label = "RC=COJ", - group = -""" + index=99, + label="RC=COJ", + group=""" 1 * O2s u1 {2,S} 2 Cd u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.34,-1.99,-2.48,-2.79,-3.13,-3.33,-3.79],'cal/(mol*K)'), - H298 = (88,'kcal/mol'), - S298 = (-1.11,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.34, -1.99, -2.48, -2.79, -3.13, -3.33, -3.79], "cal/(mol*K)"), + H298=(88, "kcal/mol"), + S298=(-1.11, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI""", + longDesc=""" """, ) entry( - index = 3034, - label = "C=COJ", - group = -""" + index=3034, + label="C=COJ", + group=""" 1 Cd u0 {2,S} {3,D} 2 * O2s u1 {1,S} 3 C u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-10.1,-13.5,-14.6,-14.6,-14.3,-14.5,-16],'J/(mol*K)'), - H298 = (358.1,'kJ/mol'), - S298 = (3.3,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-10.1, -13.5, -14.6, -14.6, -14.3, -14.5, -16], "J/(mol*K)"), + H298=(358.1, "kJ/mol"), + S298=(3.3, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6921,24 +6356,22 @@ ) entry( - index = 3035, - label = "C=C(C)OJ", - group = -""" + index=3035, + label="C=C(C)OJ", + group=""" 1 Cd u0 {2,S} {3,D} {4,S} 2 * O2s u1 {1,S} 3 C u0 {1,D} 4 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-9.2,-13.1,-15.6,-17,-17.7,-17.6,-17.6],'J/(mol*K)'), - H298 = (354.8,'kJ/mol'), - S298 = (7.4,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-9.2, -13.1, -15.6, -17, -17.7, -17.6, -17.6], "J/(mol*K)"), + H298=(354.8, "kJ/mol"), + S298=(7.4, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6946,46 +6379,42 @@ ) entry( - index = 100, - label = "OJC=O", - group = -""" + index=100, + label="OJC=O", + group=""" 1 CO u0 {2,S} {3,D} 2 * O2s u1 {1,S} 3 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.31,-1.87,-2.32,-2.69,-3.28,-3.74,-4.56],'cal/(mol*K)'), - H298 = (104,'kcal/mol'), - S298 = (0.79,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.31, -1.87, -2.32, -2.69, -3.28, -3.74, -4.56], "cal/(mol*K)"), + H298=(104, "kcal/mol"), + S298=(0.79, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI""", + longDesc=""" """, ) entry( - index = 3049, - label = "OC=OOJ", - group = -""" + index=3049, + label="OC=OOJ", + group=""" 1 CO u0 {2,S} {3,S} {4,D} 2 * O2s u1 {1,S} 3 O2s u0 {1,S} 4 O2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-8.5,-13.1,-16.3,-18.3,-20.4,-21.2,-21.4],'J/(mol*K)'), - H298 = (460.9,'kJ/mol'), - S298 = (6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-8.5, -13.1, -16.3, -18.3, -20.4, -21.2, -21.4], "J/(mol*K)"), + H298=(460.9, "kJ/mol"), + S298=(6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -6993,25 +6422,23 @@ ) entry( - index = 3050, - label = "C=OC=OOJ", - group = -""" + index=3050, + label="C=OC=OOJ", + group=""" 1 CO u0 {2,S} {3,S} {4,D} 2 CO u0 {1,S} {5,D} 3 * O2s u1 {1,S} 4 O2d u0 {1,D} 5 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.1,-6.8,-10.1,-13,-17.5,-20.9,-25.9],'J/(mol*K)'), - H298 = (479.5,'kJ/mol'), - S298 = (16,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.1, -6.8, -10.1, -13, -17.5, -20.9, -25.9], "J/(mol*K)"), + H298=(479.5, "kJ/mol"), + S298=(16, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -7019,39 +6446,35 @@ ) entry( - index = 217, - label = "CbOJ", - group = -""" + index=217, + label="CbOJ", + group=""" 1 * O2s u1 {2,S} 2 Cb u0 {1,S} """, - thermo = 'RC=COJ', - shortDesc = """""", - longDesc = -""" + thermo="RC=COJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3020, - label = "CCOJ", - group = -""" + index=3020, + label="CCOJ", + group=""" 1 C u0 {2,S} {3,S} 2 * O2s u1 {1,S} 3 C u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-8.1,-12.2,-14.4,-15.1,-14.7,-14.5,-15.6],'J/(mol*K)'), - H298 = (442.9,'kJ/mol'), - S298 = (3.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-8.1, -12.2, -14.4, -15.1, -14.7, -14.5, -15.6], "J/(mol*K)"), + H298=(442.9, "kJ/mol"), + S298=(3.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -7059,24 +6482,22 @@ ) entry( - index = 3048, - label = "C=OCOJ", - group = -""" + index=3048, + label="C=OCOJ", + group=""" 1 C u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 * O2s u1 {1,S} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-6.6,-9.3,-11.5,-13.2,-15,-16,-17.5],'J/(mol*K)'), - H298 = (461,'kJ/mol'), - S298 = (2.6,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-6.6, -9.3, -11.5, -13.2, -15, -16, -17.5], "J/(mol*K)"), + H298=(461, "kJ/mol"), + S298=(2.6, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -7084,23 +6505,21 @@ ) entry( - index = 3021, - label = "OCOJ", - group = -""" + index=3021, + label="OCOJ", + group=""" 1 C u0 {2,S} {3,S} 2 * O2s u1 {1,S} 3 O2s u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-10.9,-17.5,-19.8,-19.3,-16.2,-14.3,-14.3],'J/(mol*K)'), - H298 = (444.4,'kJ/mol'), - S298 = (0.8,'J/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-10.9, -17.5, -19.8, -19.3, -16.2, -14.3, -14.3], "J/(mol*K)"), + H298=(444.4, "kJ/mol"), + S298=(0.8, "J/(mol*K)"), ), - shortDesc = """\Derived from CBS-QB3 calculation with 1DHR treatment""", - longDesc = -""" + shortDesc="""\Derived from CBS-QB3 calculation with 1DHR treatment""", + longDesc=""" Derived using calculations at B3LYP/6-311G(d,p)/CBS-QB3 level of theory. 1DH-rotors optimized at the B3LYP/6-31G(d).Paraskevas et al, Chem. Eur. J. 2013, 19, 16431-16452, DOI: 10.1002/chem.201301381 @@ -7108,71 +6527,64 @@ ) entry( - index = 101, - label = "OOJ", - group = -""" + index=101, + label="OOJ", + group=""" 1 * O2s u1 {2,S} 2 O2s u0 {1,S} """, - thermo = 'ROOJ', - shortDesc = """""", - longDesc = -""" + thermo="ROOJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 102, - label = "ROOJ", - group = -""" + index=102, + label="ROOJ", + group=""" 1 O2s u0 {2,S} {3,S} 2 * O2s u1 {1,S} 3 R!H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.05,-2.84,-3.55,-4.09,-4.72,-4.97,-5.08],'cal/(mol*K)'), - H298 = (88.2,'kcal/mol'), - S298 = (0.22,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.05, -2.84, -3.55, -4.09, -4.72, -4.97, -5.08], "cal/(mol*K)"), + H298=(88.2, "kcal/mol"), + S298=(0.22, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI""", + longDesc=""" """, ) entry( - index = 104, - label = "C(=O)OOJ", - group = -""" + index=104, + label="C(=O)OOJ", + group=""" 1 O2s u0 {2,S} {3,S} 2 CO u0 {1,S} {4,D} 3 * O2s u1 {1,S} 4 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.05,-2.84,-3.55,-4.09,-4.72,-4.97,-5.08],'cal/(mol*K)'), - H298 = (98.33,'kcal/mol'), - S298 = (0.22,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.05, -2.84, -3.55, -4.09, -4.72, -4.97, -5.08], "cal/(mol*K)"), + H298=(98.33, "kcal/mol"), + S298=(0.22, "cal/(mol*K)"), ), - shortDesc = """HBI for enthalpy from CHEN & BOZZELLI. Cp and S values taken from ROOJ""", - longDesc = -""" + shortDesc="""HBI for enthalpy from CHEN & BOZZELLI. Cp and S values taken from ROOJ""", + longDesc=""" """, ) entry( - index = 103, - label = "C3COOJ", - group = -""" + index=103, + label="C3COOJ", + group=""" 1 Cs u0 {2,S} {3,S} {4,S} {5,S} 2 O2s u0 {1,S} {6,S} 3 C u0 {1,S} @@ -7180,425 +6592,381 @@ 5 C u0 {1,S} 6 * O2s u1 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.05,-2.84,-3.55,-4.09,-4.72,-4.97,-5.08],'cal/(mol*K)'), - H298 = (85.3,'kcal/mol'), - S298 = (0.22,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.05, -2.84, -3.55, -4.09, -4.72, -4.97, -5.08], "cal/(mol*K)"), + H298=(85.3, "kcal/mol"), + S298=(0.22, "cal/(mol*K)"), ), - shortDesc = """CHEN & BOZZELLI""", - longDesc = -""" + shortDesc="""CHEN & BOZZELLI""", + longDesc=""" """, ) entry( - index = 105, - label = "HOOJ", - group = -""" + index=105, + label="HOOJ", + group=""" 1 O2s u0 {2,S} {3,S} 2 * O2s u1 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.99,-2.68,-3.07,-3.3,-3.55,-3.66,-3.9],'cal/(mol*K)'), - H298 = (85.13,'kcal/mol'), - S298 = (-0.92,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.99, -2.68, -3.07, -3.3, -3.55, -3.66, -3.9], "cal/(mol*K)"), + H298=(85.13, "kcal/mol"), + S298=(-0.92, "cal/(mol*K)"), ), - shortDesc = """Calculated from NIST values for H2O2, O2H and H""", - longDesc = -""" + shortDesc="""Calculated from NIST values for H2O2, O2H and H""", + longDesc=""" """, ) entry( - index = 134, - label = "SiJ", - group = -""" + index=134, + label="SiJ", + group=""" 1 * Si u1 """, - thermo = 'CJ', - shortDesc = """""", - longDesc = -""" + thermo="CJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 137, - label = "SJ", - group = -""" + index=137, + label="SJ", + group=""" 1 * S2s u1 """, - thermo = 'OJ', - shortDesc = """""", - longDesc = -""" + thermo="OJ", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 235, - label = "SJ-H", - group = -""" + index=235, + label="SJ-H", + group=""" 1 * S2s u1 {2,S} 2 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.2,-1.52,-1.84,-2.17,-2.73,-3.2,-3.95],'cal/(mol*K)'), - H298 = (91.82,'kcal/mol'), - S298 = (-4.62,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.2, -1.52, -1.84, -2.17, -2.73, -3.2, -3.95], "cal/(mol*K)"), + H298=(91.82, "kcal/mol"), + S298=(-4.62, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = -1, - label = "SJ-C", - group = -""" + index=-1, + label="SJ-C", + group=""" 1 * S2s u1 {2,S} 2 C u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 236, - label = "SJ-Cs", - group = -""" + index=236, + label="SJ-Cs", + group=""" 1 * S2s u1 {2,S} 2 Cs u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.94,-2.78,-2.72,-2.78,-3.07,-3.41,-4.04],'cal/(mol*K)'), - H298 = (86.98,'kcal/mol'), - S298 = (-2.77,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.94, -2.78, -2.72, -2.78, -3.07, -3.41, -4.04], "cal/(mol*K)"), + H298=(86.98, "kcal/mol"), + S298=(-2.77, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 238, - label = "SJ-Ct", - group = -""" + index=238, + label="SJ-Ct", + group=""" 1 * S2s u1 {2,S} 2 Ct u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.18,-2.05,-2.66,-3.12,-3.76,-4.24,-4.99],'cal/(mol*K)'), - H298 = (77.56,'kcal/mol'), - S298 = (-4.6,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.18, -2.05, -2.66, -3.12, -3.76, -4.24, -4.99], "cal/(mol*K)"), + H298=(77.56, "kcal/mol"), + S298=(-4.6, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 239, - label = "SJ-Cb", - group = -""" + index=239, + label="SJ-Cb", + group=""" 1 * S2s u1 {2,S} 2 Cb u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.92,-2.1,-2.3,-2.51,-2.93,-3.32,-3.96],'cal/(mol*K)'), - H298 = (81.36,'kcal/mol'), - S298 = (-3.66,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.92, -2.1, -2.3, -2.51, -2.93, -3.32, -3.96], "cal/(mol*K)"), + H298=(81.36, "kcal/mol"), + S298=(-3.66, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 237, - label = "SJ-Cd", - group = -""" + index=237, + label="SJ-Cd", + group=""" 1 * S2s u1 {2,S} 2 Cd u0 {1,S} {3,D} 3 C u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.29,-2.56,-2.72,-2.87,-3.19,-3.52,-4.13],'cal/(mol*K)'), - H298 = (79.29,'kcal/mol'), - S298 = (-1.79,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.29, -2.56, -2.72, -2.87, -3.19, -3.52, -4.13], "cal/(mol*K)"), + H298=(79.29, "kcal/mol"), + S298=(-1.79, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 240, - label = "SJ-C=S", - group = -""" + index=240, + label="SJ-C=S", + group=""" 1 * S2s u1 {2,S} 2 CS u0 {1,S} {3,D} 3 S2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.93,-3.56,-3.88,-4.08,-4.41,-4.74,-5.25],'cal/(mol*K)'), - H298 = (80.07,'kcal/mol'), - S298 = (-0.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.93, -3.56, -3.88, -4.08, -4.41, -4.74, -5.25], "cal/(mol*K)"), + H298=(80.07, "kcal/mol"), + S298=(-0.7, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 266, - label = "SJ-CO", - group = -""" + index=266, + label="SJ-CO", + group=""" 1 * S2s u1 {2,S} 2 CO u0 {1,S} {3,D} 3 O2d u0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.26,-2.82,-3.17,-3.44,-3.89,-4.29,-4.95],'cal/(mol*K)'), - H298 = (89.6,'kcal/mol'), - S298 = (-0.42,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.26, -2.82, -3.17, -3.44, -3.89, -4.29, -4.95], "cal/(mol*K)"), + H298=(89.6, "kcal/mol"), + S298=(-0.42, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 CAC""", - longDesc = -""" + shortDesc="""CBS-QB3 CAC""", + longDesc=""" """, ) entry( - index = -1, - label = "SJ-S2s", - group = -""" + index=-1, + label="SJ-S2s", + group=""" 1 * S2s u1 {2,S} 2 S2s u0 {1,S} """, - thermo = None, - shortDesc = """""", - longDesc = -""" + thermo=None, + shortDesc="""""", + longDesc=""" """, ) entry( - index = 241, - label = "SJ-S2s-H", - group = -""" + index=241, + label="SJ-S2s-H", + group=""" 1 * S2s u1 {2,S} 2 S2s u0 {1,S} {3,S} 3 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.93,-2.7,-3.26,-3.67,-4.24,-4.59,-5],'cal/(mol*K)'), - H298 = (73.97,'kcal/mol'), - S298 = (-2.53,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.93, -2.7, -3.26, -3.67, -4.24, -4.59, -5], "cal/(mol*K)"), + H298=(73.97, "kcal/mol"), + S298=(-2.53, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 242, - label = "SJ-S2s-Cs", - group = -""" + index=242, + label="SJ-S2s-Cs", + group=""" 1 * S2s u1 {2,S} 2 S2s u0 {1,S} {3,S} 3 C u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.95,-3.43,-3.78,-4.06,-4.47,-4.74,-5.03],'cal/(mol*K)'), - H298 = (71.05,'kcal/mol'), - S298 = (-1.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.95, -3.43, -3.78, -4.06, -4.47, -4.74, -5.03], "cal/(mol*K)"), + H298=(71.05, "kcal/mol"), + S298=(-1.7, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 243, - label = "SJ-S2s-S2s", - group = -""" + index=243, + label="SJ-S2s-S2s", + group=""" 1 * S2s u1 {2,S} 2 S2s u0 {1,S} {3,S} 3 S2s u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.63,-4.32,-4.84,-5.26,-5.82,-6.07,-5.99],'cal/(mol*K)'), - H298 = (72.74,'kcal/mol'), - S298 = (0.6,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.63, -4.32, -4.84, -5.26, -5.82, -6.07, -5.99], "cal/(mol*K)"), + H298=(72.74, "kcal/mol"), + S298=(0.6, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2010""", + longDesc=""" """, ) entry( - index = 106, - label = "RJ2_triplet", - group = -""" + index=106, + label="RJ2_triplet", + group=""" 1 * R!H u2 """, - thermo = 'CJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CJ2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 107, - label = "CJ2_triplet", - group = -""" + index=107, + label="CJ2_triplet", + group=""" 1 * C u2 """, - thermo = 'CsJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CsJ2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 108, - label = "CsJ2_triplet", - group = -""" + index=108, + label="CsJ2_triplet", + group=""" 1 * Cs u2 """, - thermo = 'CH2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CH2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 110, - label = "CH2_triplet", - group = -""" + index=110, + label="CH2_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.27,-1.08,-2.14,-3.23,-5.18,-6.74,-9.47],'cal/(mol*K)'), - H298 = (214.44,'kcal/mol'), - S298 = (-1.73,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.27, -1.08, -2.14, -3.23, -5.18, -6.74, -9.47], "cal/(mol*K)"), + H298=(214.44, "kcal/mol"), + S298=(-1.73, "cal/(mol*K)"), ), - shortDesc = """Calculated for methylene in relation to methane from NIST values""", - longDesc = -""" + shortDesc="""Calculated for methylene in relation to methane from NIST values""", + longDesc=""" """, ) entry( - index = 112, - label = "CsJ2_P_triplet", - group = -""" + index=112, + label="CsJ2_P_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 C u0 {1,S} 3 H u0 {1,S} """, - thermo = 'CsCsJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CsCsJ2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 113, - label = "CsCsJ2_triplet", - group = -""" + index=113, + label="CsCsJ2_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - thermo = 'CCJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CCJ2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 115, - label = "CCJ2_triplet", - group = -""" + index=115, + label="CCJ2_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 H u0 {1,S} @@ -7606,290 +6974,259 @@ 5 H u0 {2,S} 6 H u0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.81,-1.74,-2.69,-3.61,-5.18,-6.42,-8.36],'cal/(mol*K)'), - H298 = (211.3,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.81, -1.74, -2.69, -3.61, -5.18, -6.42, -8.36], "cal/(mol*K)"), + H298=(211.3, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """BDE and Cp calculated from data in KIM et al.""", - longDesc = -""" + shortDesc="""BDE and Cp calculated from data in KIM et al.""", + longDesc=""" """, ) entry( - index = 118, - label = "PhCH_triplet", - group = -""" + index=118, + label="PhCH_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 Cb u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (195,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(195, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """BDE from PUTSMA et al.""", - longDesc = -""" + shortDesc="""BDE from PUTSMA et al.""", + longDesc=""" """, ) entry( - index = 121, - label = "AllylJ2_triplet", - group = -""" + index=121, + label="AllylJ2_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 Cd u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (192.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(192.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """BDE from PUTSMA et al.""", - longDesc = -""" + shortDesc="""BDE from PUTSMA et al.""", + longDesc=""" """, ) entry( - index = 123, - label = "CsJ2_S_triplet", - group = -""" + index=123, + label="CsJ2_S_triplet", + group=""" 1 * Cs u2 {2,S} {3,S} 2 C u0 {1,S} 3 C u0 {1,S} """, - thermo = 'CsJ2_P_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CsJ2_P_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 124, - label = "CdJ2_triplet", - group = -""" + index=124, + label="CdJ2_triplet", + group=""" 1 * [Cd,CO] u2 """, - thermo = 'CCdJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CCdJ2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 126, - label = "CCdJ2_triplet", - group = -""" + index=126, + label="CCdJ2_triplet", + group=""" 1 * Cd u2 {2,D} 2 C u0 {1,D} """, - thermo = 'CCdJ2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CCdJ2_singlet", + shortDesc="""""", + longDesc=""" Is this pointing toward the singlet a good idea? -nyee """, ) entry( - index = 262, - label = "CdJ2-Sd_triplet", - group = -""" + index=262, + label="CdJ2-Sd_triplet", + group=""" 1 * CS u2 {2,D} 2 S2d u0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.42,-2.3,-3.22,-4.04,-5.42,-6.5,-8.29],'cal/(mol*K)'), - H298 = (238.75,'kcal/mol'), - S298 = (-3.31,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.42, -2.3, -3.22, -4.04, -5.42, -6.5, -8.29], "cal/(mol*K)"), + H298=(238.75, "kcal/mol"), + S298=(-3.31, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", + longDesc=""" """, ) entry( - index = 130, - label = "Oa_triplet", - group = -""" + index=130, + label="Oa_triplet", + group=""" 1 * O u2 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.8,-3.05,-3.33,-3.62,-4.24,-4.86,-6.28],'cal/(mol*K)'), - H298 = (221.55,'kcal/mol'), - S298 = (-8.02,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.8, -3.05, -3.33, -3.62, -4.24, -4.86, -6.28], "cal/(mol*K)"), + H298=(221.55, "kcal/mol"), + S298=(-8.02, "cal/(mol*K)"), ), - shortDesc = """Calculated for atomic oxygen in relation to water from NIST values""", - longDesc = -""" + shortDesc="""Calculated for atomic oxygen in relation to water from NIST values""", + longDesc=""" """, ) entry( - index = 135, - label = "SiJ2_triplet", - group = -""" + index=135, + label="SiJ2_triplet", + group=""" 1 * Si u2 """, - thermo = 'CJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="CJ2_triplet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 263, - label = "SJ2_triplet", - group = -""" + index=263, + label="SJ2_triplet", + group=""" 1 * S u2 p2 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-3.19,-3.52,-3.89,-4.3,-5.12,-5.86,-7.14],'cal/(mol*K)'), - H298 = (176.42,'kcal/mol'), - S298 = (-12.02,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-3.19, -3.52, -3.89, -4.3, -5.12, -5.86, -7.14], "cal/(mol*K)"), + H298=(176.42, "kcal/mol"), + S298=(-12.02, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", + longDesc=""" """, ) entry( - index = 3000, - label = "RJ2_singlet", - group = "OR{CJ2_singlet, Oa_singlet, SiJ2_singlet, SJ2_singlet, NJ2_singlet, CO}", - thermo = 'CJ2_singlet', - shortDesc = """""", - longDesc = -""" + index=3000, + label="RJ2_singlet", + group="OR{CJ2_singlet, Oa_singlet, SiJ2_singlet, SJ2_singlet, NJ2_singlet, CO}", + thermo="CJ2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3001, - label = "CJ2_singlet", - group = -""" + index=3001, + label="CJ2_singlet", + group=""" 1 * C u0 p1 """, - thermo = 'CH2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CH2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3006, - label = "CsJ2_singlet", - group = -""" + index=3006, + label="CsJ2_singlet", + group=""" 1 * C2s u0 p1 """, - thermo = 'CH2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CH2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 111, - label = "CH2_singlet", - group = -""" + index=111, + label="CH2_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 H u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-0.27,-1.08,-2.14,-3.23,-5.18,-6.74,-9.47],'cal/(mol*K)'), - H298 = (223.7,'kcal/mol'), - S298 = (-1.73,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-0.27, -1.08, -2.14, -3.23, -5.18, -6.74, -9.47], "cal/(mol*K)"), + H298=(223.7, "kcal/mol"), + S298=(-1.73, "cal/(mol*K)"), ), - shortDesc = """BDE JANOSCHEK & ROSSI. S and Cp from CH2_t.""", - longDesc = -""" + shortDesc="""BDE JANOSCHEK & ROSSI. S and Cp from CH2_t.""", + longDesc=""" """, ) entry( - index = 3006, - label = "CsJ2_P_singlet", - group = -""" + index=3006, + label="CsJ2_P_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 C u0 {1,S} 3 H u0 {1,S} """, - thermo = 'CsCsJ2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CsCsJ2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3007, - label = "CsCsJ2_singlet", - group = -""" + index=3007, + label="CsCsJ2_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 Cs u0 {1,S} 3 H u0 {1,S} """, - thermo = 'CCJ2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CCJ2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 116, - label = "CCJ2_singlet", - group = -""" + index=116, + label="CCJ2_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 Cs u0 {1,S} {4,S} {5,S} {6,S} 3 H u0 {1,S} @@ -7897,266 +7234,237 @@ 5 H u0 {2,S} 6 H u0 {2,S} """, - thermo = 'CCJ2_t', - shortDesc = """""", - longDesc = -""" + thermo="CCJ2_t", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 119, - label = "PhCH_singlet", - group = -""" + index=119, + label="PhCH_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 Cb u0 {1,S} 3 H u0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (205.8,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(205.8, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """BDE from NGUYEN et al.""", - longDesc = -""" + shortDesc="""BDE from NGUYEN et al.""", + longDesc=""" """, ) entry( - index = 122, - label = "AllylJ2_singlet", - group = -""" + index=122, + label="AllylJ2_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 Cd u0 {1,S} 3 H u0 {1,S} """, - thermo = 'AllylJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="AllylJ2_triplet", + shortDesc="""""", + longDesc=""" This is pointing towards the triplet, which is probably not that similar -nyee """, ) entry( - index = 3005, - label = "CsJ2_S_singlet", - group = -""" + index=3005, + label="CsJ2_S_singlet", + group=""" 1 * C2s u0 p1 {2,S} {3,S} 2 C u0 {1,S} 3 C u0 {1,S} """, - thermo = 'CH2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CH2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3008, - label = "CdJ2_singlet", - group = -""" + index=3008, + label="CdJ2_singlet", + group=""" 1 * C2d u0 p1 {2,D} 2 R!H u0 px {1,D} """, - thermo = 'CCdJ2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CCdJ2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 127, - label = "CCdJ2_singlet", - group = -""" + index=127, + label="CCdJ2_singlet", + group=""" 1 * C2d u0 p1 {2,D} 2 C u0 px {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([0,0,0,0,0,0,0],'cal/(mol*K)'), - H298 = (190.7,'kcal/mol'), - S298 = (0,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([0, 0, 0, 0, 0, 0, 0], "cal/(mol*K)"), + H298=(190.7, "kcal/mol"), + S298=(0, "cal/(mol*K)"), ), - shortDesc = """BDE from ERWIN et al.""", - longDesc = -""" + shortDesc="""BDE from ERWIN et al.""", + longDesc=""" """, ) entry( - index = 128, - label = "CO", - group = -""" + index=128, + label="CO", + group=""" 1 * C2d u0 p1 {2,D} 2 O2d u0 p2 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.5,-2.38,-3.32,-4.24,-5.75,-6.88,-8.59],'cal/(mol*K)'), - H298 = (103.73,'kcal/mol'), - S298 = (-6.47,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.5, -2.38, -3.32, -4.24, -5.75, -6.88, -8.59], "cal/(mol*K)"), + H298=(103.73, "kcal/mol"), + S298=(-6.47, "cal/(mol*K)"), ), - shortDesc = """Value for carbon monoxide calculated in relation to formaldehyde from NIST values""", - longDesc = -""" + shortDesc="""Value for carbon monoxide calculated in relation to formaldehyde from NIST values""", + longDesc=""" """, ) entry( - index = 261, - label = "CdJ2-Sd_singlet", - group = -""" + index=261, + label="CdJ2-Sd_singlet", + group=""" 1 * C2d u0 p1 {2,D} 2 S2d u0 p2 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.97,-2.97,-3.85,-4.6,-5.82,-6.79,-8.44],'cal/(mol*K)'), - H298 = (143.53,'kcal/mol'), - S298 = (-6.23,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.97, -2.97, -3.85, -4.6, -5.82, -6.79, -8.44], "cal/(mol*K)"), + H298=(143.53, "kcal/mol"), + S298=(-6.23, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", - longDesc = -""" + shortDesc="""CBS-QB3 GA 1D-HR Aaron Vandeputte 2009""", + longDesc=""" """, ) entry( - index = 131, - label = "Oa_singlet", - group = -""" + index=131, + label="Oa_singlet", + group=""" 1 * O u0 p3 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-2.8,-3.05,-3.33,-3.62,-4.24,-4.86,-6.28],'cal/(mol*K)'), - H298 = (266.9,'kcal/mol'), - S298 = (-8.02,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-2.8, -3.05, -3.33, -3.62, -4.24, -4.86, -6.28], "cal/(mol*K)"), + H298=(266.9, "kcal/mol"), + S298=(-8.02, "cal/(mol*K)"), ), - shortDesc = """BDE from SCHALLEY et al. S and Cp values taken from Oa_t""", - longDesc = -""" + shortDesc="""BDE from SCHALLEY et al. S and Cp values taken from Oa_t""", + longDesc=""" """, ) entry( - index = 3002, - label = "SiJ2_singlet", - group = -""" + index=3002, + label="SiJ2_singlet", + group=""" 1 * Si u0 p1 """, - thermo = 'CJ2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CJ2_singlet", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 3003, - label = "SJ2_singlet", - group = -""" + index=3003, + label="SJ2_singlet", + group=""" 1 * S u0 p3 """, - thermo = 'SJ2_triplet', - shortDesc = """""", - longDesc = -""" + thermo="SJ2_triplet", + shortDesc="""""", + longDesc=""" This probably should be run as I doubt it's that close to the triplet. -nyee """, ) entry( - index = 3004, - label = "NJ2_singlet", - group = -""" + index=3004, + label="NJ2_singlet", + group=""" 1 * N u0 """, - thermo = 'CH2_singlet', - shortDesc = """""", - longDesc = -""" + thermo="CH2_singlet", + shortDesc="""""", + longDesc=""" This probably should be run as I doubt it's that close to the carbon -nyee """, ) entry( - index = 132, - label = "RJ3", - group = -""" + index=132, + label="RJ3", + group=""" 1 * R!H u3 """, - thermo = 'CJ3', - shortDesc = """""", - longDesc = -""" + thermo="CJ3", + shortDesc="""""", + longDesc=""" """, ) entry( - index = 133, - label = "CJ3", - group = -""" + index=133, + label="CJ3", + group=""" 1 * Cs u3 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([-1.57,-2.73,-4.11,-5.5,-7.92,-9.85,-12.95],'cal/(mol*K)'), - H298 = (316.19,'kcal/mol'), - S298 = (-5.7,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([-1.57, -2.73, -4.11, -5.5, -7.92, -9.85, -12.95], "cal/(mol*K)"), + H298=(316.19, "kcal/mol"), + S298=(-5.7, "cal/(mol*K)"), ), - shortDesc = """Calculated for methylidyene in relation to methane from NIST values""", - longDesc = -""" + shortDesc="""Calculated for methylidyene in relation to methane from NIST values""", + longDesc=""" """, ) entry( - index = 136, - label = "SiJ3", - group = -""" + index=136, + label="SiJ3", + group=""" 1 * Sis u3 """, - thermo = 'CJ3', - shortDesc = """""", - longDesc = -""" + thermo="CJ3", + shortDesc="""""", + longDesc=""" """, ) tree( -""" + """ L1: Radical L2: RJ L3: CJ @@ -8508,4 +7816,3 @@ L3: SiJ3 """ ) - diff --git a/test/rmgpy/test_data/testing_database/thermo/groups/ring.py b/test/rmgpy/test_data/testing_database/thermo/groups/ring.py index dabdff1c82..c54fbf66f3 100644 --- a/test/rmgpy/test_data/testing_database/thermo/groups/ring.py +++ b/test/rmgpy/test_data/testing_database/thermo/groups/ring.py @@ -6,6 +6,3 @@ longDesc = """ """ - - - diff --git a/test/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py b/test/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py index 960a57d74b..71fa7af23d 100644 --- a/test/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py +++ b/test/rmgpy/test_data/testing_database/thermo/libraries/primaryThermoLibrary.py @@ -7,145 +7,135 @@ """ entry( - index = 1, - label = "H2", - molecule = -""" + index=1, + label="H2", + molecule=""" 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.895,6.975,6.994,7.009,7.081,7.219,7.72],'cal/(mol*K)'), - H298 = (0,'kcal/mol'), - S298 = (31.233,'cal/(mol*K)','+|-',0.0007), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.895, 6.975, 6.994, 7.009, 7.081, 7.219, 7.72], "cal/(mol*K)"), + H298=(0, "kcal/mol"), + S298=(31.233, "cal/(mol*K)", "+|-", 0.0007), ), - shortDesc = """library value for H2""", - longDesc = -""" + shortDesc="""library value for H2""", + longDesc=""" """, ) entry( - index = 2, - label = "H", - molecule = -""" + index=2, + label="H", + molecule=""" multiplicity 2 1 H u1 p0 c0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.968,4.968,4.968,4.968,4.968,4.968,4.968],'cal/(mol*K)'), - H298 = (52.103,'kcal/mol','+|-',0.001), - S298 = (27.419,'cal/(mol*K)','+|-',0.0005), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.968, 4.968, 4.968, 4.968, 4.968, 4.968, 4.968], "cal/(mol*K)"), + H298=(52.103, "kcal/mol", "+|-", 0.001), + S298=(27.419, "cal/(mol*K)", "+|-", 0.0005), ), - shortDesc = """library value for H radical""", - longDesc = -""" + shortDesc="""library value for H radical""", + longDesc=""" """, ) entry( - index = 3, - label = "O2", - molecule = -""" + index=3, + label="O2", + molecule=""" multiplicity 3 1 O u1 p2 c0 {2,S} 2 O u1 p2 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.0233,7.1986,7.4285,7.6673,8.0656,8.3363,8.7407],'cal/(mol*K)'), - H298 = (-0.0010244,'kcal/mol'), - S298 = (49.0236,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=( + [7.0233, 7.1986, 7.4285, 7.6673, 8.0656, 8.3363, 8.7407], + "cal/(mol*K)", + ), + H298=(-0.0010244, "kcal/mol"), + S298=(49.0236, "cal/(mol*K)"), ), - shortDesc = """from GRI-Mech 3.0""", - longDesc = -""" + shortDesc="""from GRI-Mech 3.0""", + longDesc=""" """, ) entry( - index = 5, - label = "CO3s1", - molecule = -""" + index=5, + label="CO3s1", + molecule=""" 1 C u0 p0 c0 {2,S} {3,S} {4,D} 2 O u0 p2 c0 {1,S} {3,S} 3 O u0 p2 c0 {1,S} {2,S} 4 O u0 p2 c0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.82,13.53,14.8,15.76,17.05,17.85,18.84],'cal/(mol*K)'), - H298 = (-37.9,'kcal/mol'), - S298 = (61.28,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([11.82, 13.53, 14.8, 15.76, 17.05, 17.85, 18.84], "cal/(mol*K)"), + H298=(-37.9, "kcal/mol"), + S298=(61.28, "cal/(mol*K)"), ), - shortDesc = """Mebel et al (2004) http:""", - longDesc = -""" + shortDesc="""Mebel et al (2004) http:""", + longDesc=""" """, ) entry( - index = 6, - label = "CO3t1", - molecule = -""" + index=6, + label="CO3t1", + molecule=""" multiplicity 3 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 O u0 p2 c0 {1,D} 3 O u1 p2 c0 {1,S} 4 O u1 p2 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([12.43,14.02,15.23,16.16,17.4,18.14,19.01],'cal/(mol*K)'), - H298 = (-11.5,'kcal/mol'), - S298 = (64.53,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([12.43, 14.02, 15.23, 16.16, 17.4, 18.14, 19.01], "cal/(mol*K)"), + H298=(-11.5, "kcal/mol"), + S298=(64.53, "cal/(mol*K)"), ), - shortDesc = """Mebel et al (2004) http:""", - longDesc = -""" + shortDesc="""Mebel et al (2004) http:""", + longDesc=""" """, ) entry( - index = 7, - label = "CO3t2", - molecule = -""" + index=7, + label="CO3t2", + molecule=""" multiplicity 3 1 C u1 p0 c0 {2,S} {3,D} 2 O u0 p2 c0 {1,S} {4,S} 3 O u0 p2 c0 {1,D} 4 O u1 p2 c0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([13.48,14.83,15.83,16.59,17.62,18.26,19.05],'cal/(mol*K)'), - H298 = (28.7,'kcal/mol'), - S298 = (67.06,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([13.48, 14.83, 15.83, 16.59, 17.62, 18.26, 19.05], "cal/(mol*K)"), + H298=(28.7, "kcal/mol"), + S298=(67.06, "cal/(mol*K)"), ), - shortDesc = """Mebel et al (2004) http:""", - longDesc = -""" + shortDesc="""Mebel et al (2004) http:""", + longDesc=""" """, ) entry( - index = 8, - label = "cyclopropene12diyl", - molecule = -""" + index=8, + label="cyclopropene12diyl", + molecule=""" multiplicity 3 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u1 p0 c0 {1,S} {3,D} @@ -153,263 +143,280 @@ 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([11.32,13.42,15.16,16.58,18.74,20.29,22.63],'cal/(mol*K)'), - H298 = (188.13,'kcal/mol'), - S298 = (59.26,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([11.32, 13.42, 15.16, 16.58, 18.74, 20.29, 22.63], "cal/(mol*K)"), + H298=(188.13, "kcal/mol"), + S298=(59.26, "cal/(mol*K)"), ), - shortDesc = """doi:10.1016/j.chemphys.2008.01.057 and doi:10.1021/jp003224c""", - longDesc = -""" + shortDesc="""doi:10.1016/j.chemphys.2008.01.057 and doi:10.1021/jp003224c""", + longDesc=""" """, ) entry( - index = 9, - label = "cyclopropynylidyne", - molecule = -""" + index=9, + label="cyclopropynylidyne", + molecule=""" multiplicity 2 1 C u0 p0 c0 {2,T} {3,S} 2 C u0 p0 c0 {1,T} {3,S} 3 C u1 p0 c0 {1,S} {2,S} {4,S} 4 H u0 p0 c0 {3,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.43,11.93,13.18,14.18,15.61,16.59,17.99],'cal/(mol*K)'), - H298 = (169.8,'kcal/mol'), - S298 = (57.47,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([10.43, 11.93, 13.18, 14.18, 15.61, 16.59, 17.99], "cal/(mol*K)"), + H298=(169.8, "kcal/mol"), + S298=(57.47, "cal/(mol*K)"), ), - shortDesc = """doi:10.1016/j.chemphys.2008.01.057 and doi:10.1021/jp003224c""", - longDesc = -""" + shortDesc="""doi:10.1016/j.chemphys.2008.01.057 and doi:10.1021/jp003224c""", + longDesc=""" """, ) entry( - index = 10, - label = "OCCO(S)", - molecule = -""" + index=10, + label="OCCO(S)", + molecule=""" 1 C u0 p0 c0 {2,D} {3,D} 2 C u0 p0 c0 {1,D} {4,D} 3 O u0 p2 c0 {1,D} 4 O u0 p2 c0 {2,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([13.66,14.78,15.66,16.41,17.57,18.39,19.53],'cal/(mol*K)'), - H298 = (18.31,'kcal/mol'), - S298 = (90.63,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([13.66, 14.78, 15.66, 16.41, 17.57, 18.39, 19.53], "cal/(mol*K)"), + H298=(18.31, "kcal/mol"), + S298=(90.63, "cal/(mol*K)"), ), - shortDesc = """QCI""", - longDesc = -""" + shortDesc="""QCI""", + longDesc=""" """, ) entry( - index = 11, - label = "OCCO", - molecule = -""" + index=11, + label="OCCO", + molecule=""" multiplicity 3 1 C u0 p0 c0 {2,T} {3,S} 2 C u0 p0 c0 {1,T} {4,S} 3 O u1 p2 c0 {1,S} 4 O u1 p2 c0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([14.21,15.2,15.98,16.65,17.72,18.49,19.58],'cal/(mol*K)'), - H298 = (5.6,'kcal/mol'), - S298 = (61.18,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([14.21, 15.2, 15.98, 16.65, 17.72, 18.49, 19.58], "cal/(mol*K)"), + H298=(5.6, "kcal/mol"), + S298=(61.18, "cal/(mol*K)"), ), - shortDesc = """QCI""", - longDesc = -""" + shortDesc="""QCI""", + longDesc=""" """, ) entry( - index = 12, - label = "C3H2", - molecule = -""" + index=12, + label="C3H2", + molecule=""" 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p0 c0 {1,D} {3,S} {5,S} 3 C u0 p1 c0 {1,S} {2,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {2,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([10.61,12.79,14.81,16.48,18.71,20.33,22.59],'cal/(mol*K)'), - H298 = (113.99,'kcal/mol'), - S298 = (56.44,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([10.61, 12.79, 14.81, 16.48, 18.71, 20.33, 22.59], "cal/(mol*K)"), + H298=(113.99, "kcal/mol"), + S298=(56.44, "cal/(mol*K)"), ), - shortDesc = """Burcat's recommended value for 16165-40-5: C3H2 CYCLOPROPENYLIDENE BI-RADICAL SINGLET on 3/25/2011 (MRH converted from NASA-7 to RMG format)""", - longDesc = -""" + shortDesc="""Burcat's recommended value for 16165-40-5: C3H2 CYCLOPROPENYLIDENE BI-RADICAL SINGLET on 3/25/2011 (MRH converted from NASA-7 to RMG format)""", + longDesc=""" """, ) entry( - index = 13, - label = "S2", - molecule = -""" + index=13, + label="S2", + molecule=""" 1 S u0 p2 c0 {2,D} 2 S u0 p2 c0 {1,D} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.81,8.17,8.4,8.54,8.7,8.78,8.87],'cal/(mol*K)'), - H298 = (47.12,'kcal/mol'), - S298 = (53.78,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.81, 8.17, 8.4, 8.54, 8.7, 8.78, 8.87], "cal/(mol*K)"), + H298=(47.12, "kcal/mol"), + S298=(53.78, "cal/(mol*K)"), ), - shortDesc = """CBS-QB3 value A.G. Vandeputte""", - longDesc = -""" + shortDesc="""CBS-QB3 value A.G. Vandeputte""", + longDesc=""" """, ) entry( - index = 14, - label = "S2JJ", - molecule = -""" + index=14, + label="S2JJ", + molecule=""" multiplicity 3 1 S u1 p2 c0 {2,S} 2 S u1 p2 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([7.79,8.14,8.35,8.51,8.75,8.94,9.31],'cal/(mol*K)'), - H298 = (30.74,'kcal/mol'), - S298 = (54.54,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([7.79, 8.14, 8.35, 8.51, 8.75, 8.94, 9.31], "cal/(mol*K)"), + H298=(30.74, "kcal/mol"), + S298=(54.54, "cal/(mol*K)"), ), - shortDesc = """from Chase thermo database""", - longDesc = -""" + shortDesc="""from Chase thermo database""", + longDesc=""" """, ) entry( - index = 15, - label = "HCS", - molecule = -""" + index=15, + label="HCS", + molecule=""" multiplicity 2 1 C u1 p0 c0 {2,D} {3,S} 2 S u0 p2 c0 {1,D} 3 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.77,9.46,10.04,10.51,11.22,11.76,12.62],'cal/(mol*K)'), - H298 = (71.7,'kcal/mol'), - S298 = (56.37,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.77, 9.46, 10.04, 10.51, 11.22, 11.76, 12.62], "cal/(mol*K)"), + H298=(71.7, "kcal/mol"), + S298=(56.37, "cal/(mol*K)"), ), - shortDesc = """NIST value + B3LYP/cbsb7 entropy and heat cap A.G. Vandeputte""", - longDesc = -""" + shortDesc="""NIST value + B3LYP/cbsb7 entropy and heat cap A.G. Vandeputte""", + longDesc=""" """, ) entry( - index = 16, - label = "Ar", - molecule = -""" + index=16, + label="Ar", + molecule=""" 1 Ar u0 p4 c0 """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[2.5,0,0,0,0,-745.375,4.37967], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[2.5,0,0,0,0,-745.375,4.37967], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 4.37967], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" Ar HF298=0. REF=C.E. Moore 'Atomic Energy Levels' NSRDS-NBS 35 (1971) p.211 """, ) entry( - index = 17, - label = "N2", - molecule = -""" + index=17, + label="N2", + molecule=""" 1 N u0 p1 c0 {2,T} 2 N u0 p1 c0 {1,T} """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[3.53101,-0.000123661,-5.02999e-07,2.43531e-09,-1.40881e-12,-1046.98,2.96747], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[2.95258,0.0013969,-4.92632e-07,7.8601e-11,-4.60755e-15,-923.949,5.87189], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.53101, + -0.000123661, + -5.02999e-07, + 2.43531e-09, + -1.40881e-12, + -1046.98, + 2.96747, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.95258, + 0.0013969, + -4.92632e-07, + 7.8601e-11, + -4.60755e-15, + -923.949, + 5.87189, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" N2 HF298= 0.0 KJ REF=TSIV Max Lst Sq Error Cp @ 6000 K 0.29% """, ) entry( - index = 18, - label = "He", - molecule = -""" + index=18, + label="He", + molecule=""" 1 He u0 p1 c0 """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[2.5,0,0,0,0,-745.375,0.928724], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[2.5,0,0,0,0,-745.375,0.928724], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 0.928724], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 0.928724], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" McBride, Heimel, Ehlers & Gordon "Thermodynamic Properties to 6000 K", 1963. """, ) entry( - index = 19, - label = "C(S)", - molecule = -""" + index=19, + label="C(S)", + molecule=""" 1 C u0 p2 c0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.968,4.968,4.968,4.968,4.968,4.968,4.968],'cal/(mol*K)'), - H298 = (200.397,'kcal/mol'), - S298 = (33.393,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.968, 4.968, 4.968, 4.968, 4.968, 4.968, 4.968], "cal/(mol*K)"), + H298=(200.397, "kcal/mol"), + S298=(33.393, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -417,22 +424,20 @@ ) entry( - index = 20, - label = "C(T)", - molecule = -""" + index=20, + label="C(T)", + molecule=""" multiplicity 3 1 C u2 p1 c0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.968,4.968,4.968,4.968,4.968,4.968,4.968],'cal/(mol*K)'), - H298 = (171.336,'kcal/mol'), - S298 = (35.576,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.968, 4.968, 4.968, 4.968, 4.968, 4.968, 4.968], "cal/(mol*K)"), + H298=(171.336, "kcal/mol"), + S298=(35.576, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -440,23 +445,21 @@ ) entry( - index = 21, - label = "CH2(S)", - molecule = -""" + index=21, + label="CH2(S)", + molecule=""" 1 C u0 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.089,8.316,8.622,8.99,9.787,10.502,11.832],'cal/(mol*K)'), - H298 = (102.541,'kcal/mol'), - S298 = (45.197,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.089, 8.316, 8.622, 8.99, 9.787, 10.502, 11.832], "cal/(mol*K)"), + H298=(102.541, "kcal/mol"), + S298=(45.197, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -464,24 +467,22 @@ ) entry( - index = 22, - label = "CH2(T)", - molecule = -""" + index=22, + label="CH2(T)", + molecule=""" multiplicity 3 1 C u2 p0 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.342,8.61,8.914,9.238,9.893,10.5,11.68],'cal/(mol*K)'), - H298 = (93.559,'kcal/mol'), - S298 = (46.636,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.342, 8.61, 8.914, 9.238, 9.893, 10.5, 11.68], "cal/(mol*K)"), + H298=(93.559, "kcal/mol"), + S298=(46.636, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -489,25 +490,23 @@ ) entry( - index = 23, - label = "CH4", - molecule = -""" + index=23, + label="CH4", + molecule=""" 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.621,9.648,10.941,12.344,14.887,16.967,20.535],'cal/(mol*K)'), - H298 = (-17.814,'kcal/mol'), - S298 = (44.473,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.621, 9.648, 10.941, 12.344, 14.887, 16.967, 20.535], "cal/(mol*K)"), + H298=(-17.814, "kcal/mol"), + S298=(44.473, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -515,23 +514,21 @@ ) entry( - index = 24, - label = "NH(T)", - molecule = -""" + index=24, + label="NH(T)", + molecule=""" multiplicity 3 1 N u2 p1 c0 {2,S} 2 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.95,6.945,6.962,7.006,7.173,7.387,7.891],'cal/(mol*K)'), - H298 = (85.753,'kcal/mol'), - S298 = (43.265,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.95, 6.945, 6.962, 7.006, 7.173, 7.387, 7.891], "cal/(mol*K)"), + H298=(85.753, "kcal/mol"), + S298=(43.265, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -539,24 +536,22 @@ ) entry( - index = 25, - label = "NH2(D)", - molecule = -""" + index=25, + label="NH2(D)", + molecule=""" multiplicity 2 1 N u1 p1 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.055,8.227,8.467,8.762,9.435,10.083,11.402],'cal/(mol*K)'), - H298 = (44.467,'kcal/mol'), - S298 = (46.516,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.055, 8.227, 8.467, 8.762, 9.435, 10.083, 11.402], "cal/(mol*K)"), + H298=(44.467, "kcal/mol"), + S298=(46.516, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -564,24 +559,22 @@ ) entry( - index = 26, - label = "NH3", - molecule = -""" + index=26, + label="NH3", + molecule=""" 1 N u0 p1 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.486,9.051,9.737,10.484,11.921,13.163,15.503],'cal/(mol*K)'), - H298 = (-10.889,'kcal/mol'), - S298 = (45.986,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.486, 9.051, 9.737, 10.484, 11.921, 13.163, 15.503], "cal/(mol*K)"), + H298=(-10.889, "kcal/mol"), + S298=(45.986, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -589,21 +582,19 @@ ) entry( - index = 27, - label = "O(S)", - molecule = -""" + index=27, + label="O(S)", + molecule=""" 1 O u0 p3 c0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.968,4.968,4.968,4.968,4.968,4.968,4.968],'cal/(mol*K)'), - H298 = (104.81,'kcal/mol'), - S298 = (34.25,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.968, 4.968, 4.968, 4.968, 4.968, 4.968, 4.968], "cal/(mol*K)"), + H298=(104.81, "kcal/mol"), + S298=(34.25, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -611,22 +602,20 @@ ) entry( - index = 28, - label = "O(T)", - molecule = -""" + index=28, + label="O(T)", + molecule=""" multiplicity 3 1 O u2 p2 c0 """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([4.968,4.968,4.968,4.968,4.968,4.968,4.968],'cal/(mol*K)'), - H298 = (59.567,'kcal/mol'), - S298 = (36.433,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([4.968, 4.968, 4.968, 4.968, 4.968, 4.968, 4.968], "cal/(mol*K)"), + H298=(59.567, "kcal/mol"), + S298=(36.433, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -634,23 +623,21 @@ ) entry( - index = 29, - label = "OH(D)", - molecule = -""" + index=29, + label="OH(D)", + molecule=""" multiplicity 2 1 O u1 p2 c0 {2,S} 2 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([6.954,6.946,6.951,6.973,7.08,7.251,7.719],'cal/(mol*K)'), - H298 = (8.863,'kcal/mol'), - S298 = (43.958,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([6.954, 6.946, 6.951, 6.973, 7.08, 7.251, 7.719], "cal/(mol*K)"), + H298=(8.863, "kcal/mol"), + S298=(43.958, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -658,23 +645,21 @@ ) entry( - index = 30, - label = "H2O", - molecule = -""" + index=30, + label="H2O", + molecule=""" 1 O u0 p2 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} """, - thermo = ThermoData( - Tdata = ([300,400,500,600,800,1000,1500],'K'), - Cpdata = ([8.038,8.18,8.379,8.624,9.195,9.766,11.019],'cal/(mol*K)'), - H298 = (-57.797,'kcal/mol'), - S298 = (45.084,'cal/(mol*K)'), + thermo=ThermoData( + Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), + Cpdata=([8.038, 8.18, 8.379, 8.624, 9.195, 9.766, 11.019], "cal/(mol*K)"), + H298=(-57.797, "kcal/mol"), + S298=(45.084, "cal/(mol*K)"), ), - shortDesc = """""", - longDesc = -""" + shortDesc="""""", + longDesc=""" H298: ATcT version 1.110 level of theory energy: CCSD(T)F12A/cc-pVQZ-F12//CCSD(T)/cc-pVQZ level of theory frequency: B3LYP/6-311++g(d,p)//B3LYP/6-311++g(d,p) @@ -682,24 +667,46 @@ ) entry( - index = 31, - label = "Cl2", - molecule = -""" + index=31, + label="Cl2", + molecule=""" 1 Cl u0 p3 c0 {2,S} 2 Cl u0 p3 c0 {1,S} """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[2.73638,0.00783526,-1.45105e-05,1.25731e-08,-4.13247e-12,-1058.8,9.44557], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[4.74728,-0.000488582,2.68445e-07,-2.43476e-11,-1.03683e-15,-1511.02,-0.344539], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 2.73638, + 0.00783526, + -1.45105e-05, + 1.25731e-08, + -4.13247e-12, + -1058.8, + 9.44557, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 4.74728, + -0.000488582, + 2.68445e-07, + -2.43476e-11, + -1.03683e-15, + -1511.02, + -0.344539, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" Burcat Thermo Data REFERENCE ELEMENT REF=Gurvich 1989 V1 py.1 p.177 HF298=0.00 kcal Max Lst @@ -708,24 +715,46 @@ ) entry( - index = 32, - label = "Cl", - molecule = -""" + index=32, + label="Cl", + molecule=""" multiplicity 2 1 Cl u1 p3 c0 """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[2.26062,0.00154154,-6.80284e-07,-1.59973e-09,1.15417e-12,13855.3,6.57021], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[2.94658,-0.000385985,1.36139e-07,-2.17033e-11,1.28751e-15,13697,3.1133], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 2.26062, + 0.00154154, + -6.80284e-07, + -1.59973e-09, + 1.15417e-12, + 13855.3, + 6.57021, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.94658, + -0.000385985, + 1.36139e-07, + -2.17033e-11, + 1.28751e-15, + 13697, + 3.1133, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" Burcat Thermo Data HF298=121.302+/-0.008 kJ HF0=119.633+/- 0.008 kJ REF=JANAF {HF298=121.302 @@ -734,24 +763,46 @@ ) entry( - index = 33, - label = "HCl", - molecule = -""" + index=33, + label="HCl", + molecule=""" 1 Cl u0 p3 c0 {2,S} 2 H u0 p0 c0 {1,S} """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[3.46376,0.000476484,-2.00301e-06,3.31714e-09,-1.44958e-12,-12144.4,2.66428], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[2.75758,0.00145387,-4.79647e-07,7.77909e-11,-4.79574e-15,-11913.8,6.52197], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 3.46376, + 0.000476484, + -2.00301e-06, + 3.31714e-09, + -1.44958e-12, + -12144.4, + 2.66428, + ], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[ + 2.75758, + 0.00145387, + -4.79647e-07, + 7.77909e-11, + -4.79574e-15, + -11913.8, + 6.52197, + ], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" Burcat Thermo Data HYDROCHLORIC ACID CALCULATED FROM ORIGINAL TABLES REF=Gurvich 1989 @@ -761,24 +812,29 @@ ) entry( - index = 34, - label = "Ne", - molecule = -""" + index=34, + label="Ne", + molecule=""" 1 Ne u0 p4 c0 """, - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[2.5,0,0,0,0,-745.375,3.35532], Tmin=(200,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[2.5,0,0,0,0,-745.375,3.35532], Tmin=(1000,'K'), Tmax=(6000,'K')), + thermo=NASA( + polynomials=[ + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 3.35532], + Tmin=(200, "K"), + Tmax=(1000, "K"), + ), + NASAPolynomial( + coeffs=[2.5, 0, 0, 0, 0, -745.375, 3.35532], + Tmin=(1000, "K"), + Tmax=(6000, "K"), + ), ], - Tmin = (200,'K'), - Tmax = (6000,'K'), + Tmin=(200, "K"), + Tmax=(6000, "K"), ), - shortDesc = """Burcat Thermo Data""", - longDesc = -""" + shortDesc="""Burcat Thermo Data""", + longDesc=""" McBride, Heimel, Ehlers & Gordon, "Thermodynamic Properties to 6000 K", 1963. """, ) - diff --git a/test/rmgpy/test_data/testing_database/transport/groups/ring.py b/test/rmgpy/test_data/testing_database/transport/groups/ring.py index 516010ea6c..504e131115 100644 --- a/test/rmgpy/test_data/testing_database/transport/groups/ring.py +++ b/test/rmgpy/test_data/testing_database/transport/groups/ring.py @@ -5,4 +5,3 @@ shortDesc = "" longDesc = """ """ - diff --git a/test/rmgpy/thermo/convertTest.py b/test/rmgpy/thermo/convertTest.py index 3b797aab62..7cc3266fe6 100644 --- a/test/rmgpy/thermo/convertTest.py +++ b/test/rmgpy/thermo/convertTest.py @@ -63,33 +63,61 @@ def setUp(self): S0=(-118.46 * constants.R, "J/(mol*K)"), Tmin=(10, "K"), Tmax=(3000, "K"), - comment='C2H6', + comment="C2H6", ) self.nasa = NASA( polynomials=[ - NASAPolynomial(coeffs=[4.03055, -0.00214171, 4.90611e-05, -5.99027e-08, 2.38945e-11, -11257.6, 3.5613], - Tmin=(10, "K"), Tmax=(650.73, "K")), - NASAPolynomial(coeffs=[-0.307954, 0.0245269, -1.2413e-05, 3.07724e-09, -3.01467e-13, -10693, 22.628], - Tmin=(650.73, "K"), Tmax=(3000, "K")), + NASAPolynomial( + coeffs=[ + 4.03055, + -0.00214171, + 4.90611e-05, + -5.99027e-08, + 2.38945e-11, + -11257.6, + 3.5613, + ], + Tmin=(10, "K"), + Tmax=(650.73, "K"), + ), + NASAPolynomial( + coeffs=[ + -0.307954, + 0.0245269, + -1.2413e-05, + 3.07724e-09, + -3.01467e-13, + -10693, + 22.628, + ], + Tmin=(650.73, "K"), + Tmax=(3000, "K"), + ), ], Tmin=(10, "K"), Tmax=(3000, "K"), - E0=(-93.6077, 'kJ/mol'), + E0=(-93.6077, "kJ/mol"), Cp0=(4.0 * constants.R, "J/(mol*K)"), CpInf=(21.5 * constants.R, "J/(mol*K)"), - comment='C2H6', + comment="C2H6", ) self.thermodata = ThermoData( Tdata=([300, 400, 500, 600, 800, 1000, 1500], "K"), - Cpdata=(np.array([6.38268, 7.80327, 9.22175, 10.5528, 12.8323, 14.6013, 17.40890]) * constants.R, "J/(mol*K)"), + Cpdata=( + np.array( + [6.38268, 7.80327, 9.22175, 10.5528, 12.8323, 14.6013, 17.40890] + ) + * constants.R, + "J/(mol*K)", + ), H298=(-81.7, "kJ/mol"), S298=(27.5727 * constants.R, "J/(mol*K)"), Cp0=(4.0 * constants.R, "J/(mol*K)"), CpInf=(21.5 * constants.R, "J/(mol*K)"), Tmin=(10, "K"), Tmax=(3000, "K"), - E0=(-93.6077, 'kJ/mol'), - comment='C2H6', + E0=(-93.6077, "kJ/mol"), + comment="C2H6", ) def test_convert_wilhoit_to_nasa(self): @@ -253,5 +281,5 @@ def test_wilhoit_thermo_data_wilhoit(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/thermo/nasaTest.py b/test/rmgpy/thermo/nasaTest.py index 4c494b6254..cefea3f988 100644 --- a/test/rmgpy/thermo/nasaTest.py +++ b/test/rmgpy/thermo/nasaTest.py @@ -53,17 +53,39 @@ def setUp(self): """ A function run before each unit test in this class. """ - self.coeffs_low = [4.03055, -0.00214171, 4.90611e-05, -5.99027e-08, 2.38945e-11, -11257.6, 3.5613] - self.coeffs_high = [-0.307954, 0.0245269, -1.2413e-05, 3.07724e-09, -3.01467e-13, -10693, 22.628] - self.Tmin = 300. - self.Tmax = 3000. + self.coeffs_low = [ + 4.03055, + -0.00214171, + 4.90611e-05, + -5.99027e-08, + 2.38945e-11, + -11257.6, + 3.5613, + ] + self.coeffs_high = [ + -0.307954, + 0.0245269, + -1.2413e-05, + 3.07724e-09, + -3.01467e-13, + -10693, + 22.628, + ] + self.Tmin = 300.0 + self.Tmax = 3000.0 self.Tint = 650.73 - self.E0 = -782292. # J/mol. + self.E0 = -782292.0 # J/mol. self.comment = "C2H6" self.nasa = NASA( polynomials=[ - NASAPolynomial(coeffs=self.coeffs_low, Tmin=(self.Tmin, "K"), Tmax=(self.Tint, "K")), - NASAPolynomial(coeffs=self.coeffs_high, Tmin=(self.Tint, "K"), Tmax=(self.Tmax, "K")), + NASAPolynomial( + coeffs=self.coeffs_low, Tmin=(self.Tmin, "K"), Tmax=(self.Tint, "K") + ), + NASAPolynomial( + coeffs=self.coeffs_high, + Tmin=(self.Tint, "K"), + Tmax=(self.Tmax, "K"), + ), ], Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), @@ -76,6 +98,7 @@ def tearDown(self): Reset the database & liquid parameters for solution """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None def test_poly_low(self): @@ -102,22 +125,34 @@ def test_temperature_min(self): """ Test that the NASA Tmin property was properly set. """ - self.assertAlmostEqual(self.nasa.Tmin.value_si / self.Tmin, 1.0, 6, - '{0} != {1} within 6 places'.format(self.nasa.Tmin, self.Tmin)) + self.assertAlmostEqual( + self.nasa.Tmin.value_si / self.Tmin, + 1.0, + 6, + "{0} != {1} within 6 places".format(self.nasa.Tmin, self.Tmin), + ) def test_temperature_max(self): """ Test that the NASA Tmax property was properly set. """ - self.assertAlmostEqual(self.nasa.Tmax.value_si / self.Tmax, 1.0, 6, - '{0} != {1} within 6 places'.format(self.nasa.Tmax, self.Tmax)) + self.assertAlmostEqual( + self.nasa.Tmax.value_si / self.Tmax, + 1.0, + 6, + "{0} != {1} within 6 places".format(self.nasa.Tmax, self.Tmax), + ) def test_e0(self): """ Test that the NASA E0 property was properly set. """ - self.assertAlmostEqual(self.nasa.E0.value_si / self.E0, 1.0, 6, - '{0} != {1} within 6 places'.format(self.nasa.Tmax, self.Tmax)) + self.assertAlmostEqual( + self.nasa.E0.value_si / self.E0, + 1.0, + 6, + "{0} != {1} within 6 places".format(self.nasa.Tmax, self.Tmax), + ) def test_comment(self): """ @@ -140,33 +175,82 @@ def test_get_heat_capacity(self): Test the NASA.get_heat_capacity() method. """ Tlist = np.array([400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - cp_exp_list = np.array([7.80157, 10.5653, 12.8213, 14.5817, 15.9420, - 16.9861, 17.78645, 18.4041, 18.8883]) * constants.R + cp_exp_list = ( + np.array( + [ + 7.80157, + 10.5653, + 12.8213, + 14.5817, + 15.9420, + 16.9861, + 17.78645, + 18.4041, + 18.8883, + ] + ) + * constants.R + ) for T, cp_exp in zip(Tlist, cp_exp_list): cp_act = self.nasa.get_heat_capacity(T) - self.assertAlmostEqual(cp_exp / cp_act, 1.0, 4, '{0} != {1}'.format(cp_exp, cp_act)) + self.assertAlmostEqual( + cp_exp / cp_act, 1.0, 4, "{0} != {1}".format(cp_exp, cp_act) + ) def test_get_enthalpy(self): """ Test the NASA.get_enthalpy() method. """ Tlist = np.array([400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - h_exp_list = np.array([-22.7613, -12.1027, -6.14236, -2.16615, 0.743456, - 2.99256, 4.79397, 6.27334, 7.51156]) * constants.R * Tlist + h_exp_list = ( + np.array( + [ + -22.7613, + -12.1027, + -6.14236, + -2.16615, + 0.743456, + 2.99256, + 4.79397, + 6.27334, + 7.51156, + ] + ) + * constants.R + * Tlist + ) for T, h_exp in zip(Tlist, h_exp_list): h_act = self.nasa.get_enthalpy(T) - self.assertAlmostEqual(h_exp / h_act, 1.0, 3, '{0} != {1}'.format(h_exp, h_act)) + self.assertAlmostEqual( + h_exp / h_act, 1.0, 3, "{0} != {1}".format(h_exp, h_act) + ) def test_get_entropy(self): """ Test the NASA.get_entropy() method. """ Tlist = np.array([400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - s_exp_list = np.array([29.6534, 33.3516, 36.7131, 39.7715, 42.5557, - 45.0952, 47.4179, 49.5501, 51.5152]) * constants.R + s_exp_list = ( + np.array( + [ + 29.6534, + 33.3516, + 36.7131, + 39.7715, + 42.5557, + 45.0952, + 47.4179, + 49.5501, + 51.5152, + ] + ) + * constants.R + ) for T, s_exp in zip(Tlist, s_exp_list): s_act = self.nasa.get_entropy(T) - self.assertAlmostEqual(s_exp / s_act, 1.0, 4, '{0} != {1}'.format(s_exp, s_act)) + self.assertAlmostEqual( + s_exp / s_act, 1.0, 4, "{0} != {1}".format(s_exp, s_act) + ) def test_get_free_energy(self): """ @@ -176,7 +260,9 @@ def test_get_free_energy(self): for T in Tlist: g_exp = self.nasa.get_enthalpy(T) - T * self.nasa.get_entropy(T) g_act = self.nasa.get_free_energy(T) - self.assertAlmostEqual(g_exp / g_act, 1.0, 4, '{0} != {1}'.format(g_exp, g_act)) + self.assertAlmostEqual( + g_exp / g_act, 1.0, 4, "{0} != {1}".format(g_exp, g_act) + ) def test_pickle(self): """ @@ -184,6 +270,7 @@ def test_pickle(self): information. """ import pickle + nasa = pickle.loads(pickle.dumps(self.nasa)) self.assertEqual(len(self.nasa.poly1.coeffs), len(nasa.poly1.coeffs)) for coeff0, coeff in zip(self.nasa.poly1.coeffs, nasa.poly1.coeffs): @@ -215,9 +302,9 @@ def test_repr(self): with no loss of information. """ namespace = {} - exec('nasa = {0!r}'.format(self.nasa), globals(), namespace) - self.assertIn('nasa', namespace) - nasa = namespace['nasa'] + exec("nasa = {0!r}".format(self.nasa), globals(), namespace) + self.assertIn("nasa", namespace) + nasa = namespace["nasa"] self.assertEqual(len(self.nasa.poly1.coeffs), len(nasa.poly1.coeffs)) for coeff0, coeff in zip(self.nasa.poly1.coeffs, nasa.poly1.coeffs): self.assertAlmostEqual(coeff / coeff0, 1.0, 6) @@ -262,13 +349,18 @@ def test_to_nasa(self): # Load databases database = RMGDatabase() - database.load_thermo(os.path.join(settings['database.directory'], 'thermo'), thermo_libraries=['Narayanaswamy']) - database.load_solvation(os.path.join(settings['database.directory'], 'solvation')) + database.load_thermo( + os.path.join(settings["database.directory"], "thermo"), + thermo_libraries=["Narayanaswamy"], + ) + database.load_solvation( + os.path.join(settings["database.directory"], "solvation") + ) - spc = Species().from_smiles('CC') + spc = Species().from_smiles("CC") spc.get_thermo_data() - T = 1350. # not 298K! + T = 1350.0 # not 298K! # nasa to thermodata nasa = spc.thermo @@ -302,18 +394,30 @@ def test_nasa_as_dict_full(self): Test that NASA.as_dict functions properly with all attributes """ nasa_dict = self.nasa.as_dict() - self.assertEqual(nasa_dict['E0']['value'], self.E0) - self.assertEqual(nasa_dict['Tmin']['value'], self.Tmin) - self.assertEqual(nasa_dict['Tmax']['value'], self.Tmax) - self.assertEqual(nasa_dict['comment'], self.comment) - self.assertTupleEqual(tuple(nasa_dict['polynomials']['polynomial1']['coeffs']['object']), - tuple(self.coeffs_low)) - self.assertTupleEqual(tuple(nasa_dict['polynomials']['polynomial2']['coeffs']['object']), - tuple(self.coeffs_high)) - self.assertEqual(nasa_dict['polynomials']['polynomial1']['Tmin']['value'], self.Tmin) - self.assertEqual(nasa_dict['polynomials']['polynomial1']['Tmax']['value'], self.Tint) - self.assertEqual(nasa_dict['polynomials']['polynomial2']['Tmin']['value'], self.Tint) - self.assertEqual(nasa_dict['polynomials']['polynomial2']['Tmax']['value'], self.Tmax) + self.assertEqual(nasa_dict["E0"]["value"], self.E0) + self.assertEqual(nasa_dict["Tmin"]["value"], self.Tmin) + self.assertEqual(nasa_dict["Tmax"]["value"], self.Tmax) + self.assertEqual(nasa_dict["comment"], self.comment) + self.assertTupleEqual( + tuple(nasa_dict["polynomials"]["polynomial1"]["coeffs"]["object"]), + tuple(self.coeffs_low), + ) + self.assertTupleEqual( + tuple(nasa_dict["polynomials"]["polynomial2"]["coeffs"]["object"]), + tuple(self.coeffs_high), + ) + self.assertEqual( + nasa_dict["polynomials"]["polynomial1"]["Tmin"]["value"], self.Tmin + ) + self.assertEqual( + nasa_dict["polynomials"]["polynomial1"]["Tmax"]["value"], self.Tint + ) + self.assertEqual( + nasa_dict["polynomials"]["polynomial2"]["Tmin"]["value"], self.Tint + ) + self.assertEqual( + nasa_dict["polynomials"]["polynomial2"]["Tmax"]["value"], self.Tmax + ) def test_nasa_as_dict_minimal(self): """ @@ -321,26 +425,39 @@ def test_nasa_as_dict_minimal(self): """ nasa_dict = NASA().as_dict() keys = list(nasa_dict.keys()) - self.assertNotIn('Tmin', keys) - self.assertNotIn('Tmax', keys) - self.assertNotIn('E0', keys) - self.assertNotIn('Cp0', keys) - self.assertNotIn('CpInf', keys) - self.assertNotIn('label', keys) - self.assertNotIn('comment', keys) + self.assertNotIn("Tmin", keys) + self.assertNotIn("Tmax", keys) + self.assertNotIn("E0", keys) + self.assertNotIn("Cp0", keys) + self.assertNotIn("CpInf", keys) + self.assertNotIn("label", keys) + self.assertNotIn("comment", keys) def test_nasa_polynomial_as_dict(self): """ Test that NASAPolynomial.as_dict returns all non-empty, non-redundant attributes properly. """ nasa_poly_dict = self.nasa.polynomials[0].as_dict() - self.assertEqual(nasa_poly_dict, {'coeffs': {'object': [4.03055, -0.00214171, 4.90611e-05, -5.99027e-08, - 2.38945e-11, -11257.6, 3.5613], - 'class': 'np_array'}, - 'Tmax': {'units': 'K', 'class': 'ScalarQuantity', 'value': 650.73}, - 'Tmin': {'units': 'K', 'class': 'ScalarQuantity', 'value': 300.0}, - 'class': 'NASAPolynomial'} - ) + self.assertEqual( + nasa_poly_dict, + { + "coeffs": { + "object": [ + 4.03055, + -0.00214171, + 4.90611e-05, + -5.99027e-08, + 2.38945e-11, + -11257.6, + 3.5613, + ], + "class": "np_array", + }, + "Tmax": {"units": "K", "class": "ScalarQuantity", "value": 650.73}, + "Tmin": {"units": "K", "class": "ScalarQuantity", "value": 300.0}, + "class": "NASAPolynomial", + }, + ) def test_make_nasa(self): """ @@ -348,11 +465,12 @@ def test_make_nasa(self): """ nasa_dict = self.nasa.as_dict() new_nasa = NASA.__new__(NASA) - class_dictionary = {'ScalarQuantity': ScalarQuantity, - 'np_array': np.array, - 'NASA': NASA, - 'NASAPolynomial': NASAPolynomial, - } + class_dictionary = { + "ScalarQuantity": ScalarQuantity, + "np_array": np.array, + "NASA": NASA, + "NASAPolynomial": NASAPolynomial, + } new_nasa.make_object(nasa_dict, class_dictionary) @@ -360,5 +478,5 @@ def test_make_nasa(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/thermo/thermodataTest.py b/test/rmgpy/thermo/thermodataTest.py index f76573446f..63d91e1781 100644 --- a/test/rmgpy/thermo/thermodataTest.py +++ b/test/rmgpy/thermo/thermodataTest.py @@ -54,23 +54,25 @@ def setUp(self): self.H298 = -32.9725 self.S298 = 27.5727 self.Tdata = np.array([300, 400, 500, 600, 800, 1000, 1500]) - self.Cpdata = np.array([6.3827, 7.80327, 9.22175, 10.5528, 12.8323, 14.6013, 17.4089]) + self.Cpdata = np.array( + [6.3827, 7.80327, 9.22175, 10.5528, 12.8323, 14.6013, 17.4089] + ) self.Cp0 = 4.0 self.CpInf = 21.5 - self.Tmin = 100. - self.Tmax = 3000. - self.E0 = -782292. - self.comment = 'C2H6' + self.Tmin = 100.0 + self.Tmax = 3000.0 + self.E0 = -782292.0 + self.comment = "C2H6" self.thermodata = ThermoData( Tdata=(self.Tdata, "K"), Cpdata=(self.Cpdata * constants.R, "J/(mol*K)"), - H298=(self.H298 * 0.001 * constants.R * 298., "kJ/mol"), + H298=(self.H298 * 0.001 * constants.R * 298.0, "kJ/mol"), S298=(self.S298 * constants.R, "J/(mol*K)"), Cp0=(self.Cp0 * constants.R, "J/(mol*K)"), CpInf=(self.CpInf * constants.R, "J/(mol*K)"), Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), - E0=(self.E0, 'J/mol'), + E0=(self.E0, "J/mol"), comment=self.comment, ) @@ -94,13 +96,17 @@ def test_h298(self): """ Test that the ThermoData H298 property was properly set. """ - self.assertAlmostEqual(self.thermodata.H298.value_si / constants.R / 298., self.H298, 4) + self.assertAlmostEqual( + self.thermodata.H298.value_si / constants.R / 298.0, self.H298, 4 + ) def test_s298(self): """ Test that the ThermoData S298 property was properly set. """ - self.assertAlmostEqual(self.thermodata.S298.value_si / constants.R, self.S298, 4) + self.assertAlmostEqual( + self.thermodata.S298.value_si / constants.R, self.S298, 4 + ) def test_cp0(self): """ @@ -112,7 +118,9 @@ def test_cp_inf(self): """ Test that the ThermoData CpInf property was properly set. """ - self.assertAlmostEqual(self.thermodata.CpInf.value_si / constants.R, self.CpInf, 4) + self.assertAlmostEqual( + self.thermodata.CpInf.value_si / constants.R, self.CpInf, 4 + ) def test_temperature_min(self): """ @@ -153,8 +161,23 @@ def test_get_heat_capacity(self): Test the ThermoData.get_heat_capacity() method. """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - cp_exp_list = np.array([4.96208, 7.80327, 10.5528, 12.8323, 14.6013, - 15.7243, 16.8473, 17.9704, 19.0934, 20.2165]) * constants.R + cp_exp_list = ( + np.array( + [ + 4.96208, + 7.80327, + 10.5528, + 12.8323, + 14.6013, + 15.7243, + 16.8473, + 17.9704, + 19.0934, + 20.2165, + ] + ) + * constants.R + ) for T, cp_exp in zip(Tlist, cp_exp_list): cp_act = self.thermodata.get_heat_capacity(T) self.assertAlmostEqual(cp_exp, cp_act, 2) @@ -164,8 +187,24 @@ def test_get_enthalpy(self): Test the ThermoData.get_enthalpy() method. """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - h_exp_list = np.array([-51.9015, -22.7594, -12.1063, -6.15660, -2.18192, - 0.708869, 2.93415, 4.74350, 6.27555, 7.61349]) * constants.R * Tlist + h_exp_list = ( + np.array( + [ + -51.9015, + -22.7594, + -12.1063, + -6.15660, + -2.18192, + 0.708869, + 2.93415, + 4.74350, + 6.27555, + 7.61349, + ] + ) + * constants.R + * Tlist + ) for T, h_exp in zip(Tlist, h_exp_list): h_act = self.thermodata.get_enthalpy(T) self.assertAlmostEqual(h_exp, h_act, delta=1e0) @@ -175,8 +214,23 @@ def test_get_entropy(self): Test the ThermoData.get_entropy() method. """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - s_exp_list = np.array([25.3347, 29.6460, 33.3386, 36.6867, 39.7402, - 42.5016, 45.0098, 47.3328, 49.5142, 51.5841]) * constants.R + s_exp_list = ( + np.array( + [ + 25.3347, + 29.6460, + 33.3386, + 36.6867, + 39.7402, + 42.5016, + 45.0098, + 47.3328, + 49.5142, + 51.5841, + ] + ) + * constants.R + ) for T, s_exp in zip(Tlist, s_exp_list): s_act = self.thermodata.get_entropy(T) self.assertAlmostEqual(s_exp, s_act, 3) @@ -197,12 +251,17 @@ def test_pickle(self): unpickled with no loss of information. """ import pickle + thermodata = pickle.loads(pickle.dumps(self.thermodata)) - self.assertEqual(self.thermodata.Tdata.value.shape, thermodata.Tdata.value.shape) + self.assertEqual( + self.thermodata.Tdata.value.shape, thermodata.Tdata.value.shape + ) for T, T0 in zip(self.thermodata.Tdata.value, thermodata.Tdata.value): self.assertAlmostEqual(T, T0, 4) self.assertEqual(self.thermodata.Tdata.units, thermodata.Tdata.units) - self.assertEqual(self.thermodata.Cpdata.value.shape, thermodata.Cpdata.value.shape) + self.assertEqual( + self.thermodata.Cpdata.value.shape, thermodata.Cpdata.value.shape + ) for Cp, Cp0 in zip(self.thermodata.Cpdata.value, thermodata.Cpdata.value): self.assertAlmostEqual(Cp, Cp0, 3) self.assertEqual(self.thermodata.Cpdata.units, thermodata.Cpdata.units) @@ -229,14 +288,18 @@ def test_repr(self): repr() output with no loss of information. """ namespace = {} - exec('thermodata = {0!r}'.format(self.thermodata), globals(), namespace) - self.assertIn('thermodata', namespace) - thermodata = namespace['thermodata'] - self.assertEqual(self.thermodata.Tdata.value.shape, thermodata.Tdata.value.shape) + exec("thermodata = {0!r}".format(self.thermodata), globals(), namespace) + self.assertIn("thermodata", namespace) + thermodata = namespace["thermodata"] + self.assertEqual( + self.thermodata.Tdata.value.shape, thermodata.Tdata.value.shape + ) for T, T0 in zip(self.thermodata.Tdata.value, thermodata.Tdata.value): self.assertAlmostEqual(T, T0, 4) self.assertEqual(self.thermodata.Tdata.units, thermodata.Tdata.units) - self.assertEqual(self.thermodata.Cpdata.value.shape, thermodata.Cpdata.value.shape) + self.assertEqual( + self.thermodata.Cpdata.value.shape, thermodata.Cpdata.value.shape + ) for Cp, Cp0 in zip(self.thermodata.Cpdata.value, thermodata.Cpdata.value): self.assertAlmostEqual(Cp, Cp0, 3) self.assertEqual(self.thermodata.Cpdata.units, thermodata.Cpdata.units) diff --git a/test/rmgpy/thermo/wilhoitTest.py b/test/rmgpy/thermo/wilhoitTest.py index 6025d9f383..a59fc49c9c 100644 --- a/test/rmgpy/thermo/wilhoitTest.py +++ b/test/rmgpy/thermo/wilhoitTest.py @@ -59,11 +59,11 @@ def setUp(self): self.a2 = 26.2524 self.a3 = -12.6785 self.B = 1068.68 - self.H0 = -94088. # -782.292 kJ/mol / constants.R + self.H0 = -94088.0 # -782.292 kJ/mol / constants.R self.S0 = -118.46 # -984.932 J/mol*K / constants.R - self.Tmin = 300. - self.Tmax = 3000. - self.comment = 'C2H6' + self.Tmin = 300.0 + self.Tmax = 3000.0 + self.comment = "C2H6" self.wilhoit = Wilhoit( Cp0=(self.Cp0 * constants.R, "J/(mol*K)"), CpInf=(self.CpInf * constants.R, "J/(mol*K)"), @@ -84,6 +84,7 @@ def tearDown(self): Reset the database & liquid parameters for solution """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None def test_cp0(self): @@ -156,7 +157,9 @@ def test_e0(self): """ Test that the Wilhoit E0 property is properly calculated from Enthalpy at 0.001 K """ - self.assertAlmostEqual(self.wilhoit.E0.value_si, self.wilhoit.get_enthalpy(0.001), 1) + self.assertAlmostEqual( + self.wilhoit.E0.value_si, self.wilhoit.get_enthalpy(0.001), 1 + ) def test_comment(self): """ @@ -179,33 +182,88 @@ def test_get_heat_capacity(self): Test the Wilhoit.get_heat_capacity() method. """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - cp_exp_list = np.array([5.12003, 7.80327, 10.5528, 12.8323, 14.6013, - 15.9511, 16.9842, 17.7837, 18.4114, 18.9117]) * constants.R + cp_exp_list = ( + np.array( + [ + 5.12003, + 7.80327, + 10.5528, + 12.8323, + 14.6013, + 15.9511, + 16.9842, + 17.7837, + 18.4114, + 18.9117, + ] + ) + * constants.R + ) for T, cp_exp in zip(Tlist, cp_exp_list): cp_act = self.wilhoit.get_heat_capacity(T) - self.assertAlmostEqual(cp_exp / cp_act, 1.0, 3, '{0} != {1} within 3 places'.format(cp_exp, cp_act)) + self.assertAlmostEqual( + cp_exp / cp_act, + 1.0, + 3, + "{0} != {1} within 3 places".format(cp_exp, cp_act), + ) def test_get_enthalpy(self): """ Test the Wilhoit.get_enthalpy() method. """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - h_exp_list = np.array([-51.9303, -22.7609, -12.1050, -6.14444, -2.16433, - 0.747500, 2.99646, 4.79698, 6.27618, 7.51564]) * constants.R * Tlist + h_exp_list = ( + np.array( + [ + -51.9303, + -22.7609, + -12.1050, + -6.14444, + -2.16433, + 0.747500, + 2.99646, + 4.79698, + 6.27618, + 7.51564, + ] + ) + * constants.R + * Tlist + ) for T, h_exp in zip(Tlist, h_exp_list): h_act = self.wilhoit.get_enthalpy(T) - self.assertAlmostEqual(h_exp / h_act, 1.0, 3, '{0} != {1}'.format(h_exp, h_act)) + self.assertAlmostEqual( + h_exp / h_act, 1.0, 3, "{0} != {1}".format(h_exp, h_act) + ) def test_get_entropy(self): """ Test the Wilhoit.get_entropy() method. """ Tlist = np.array([200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000]) - s_exp_list = np.array([25.3095, 29.6445, 33.3398, 36.7006, 39.7629, - 42.5499, 45.0898, 47.4122, 49.5445, 51.5112]) * constants.R + s_exp_list = ( + np.array( + [ + 25.3095, + 29.6445, + 33.3398, + 36.7006, + 39.7629, + 42.5499, + 45.0898, + 47.4122, + 49.5445, + 51.5112, + ] + ) + * constants.R + ) for T, s_exp in zip(Tlist, s_exp_list): s_act = self.wilhoit.get_entropy(T) - self.assertAlmostEqual(s_exp / s_act, 1.0, 4, '{0} != {1}'.format(s_exp, s_act)) + self.assertAlmostEqual( + s_exp / s_act, 1.0, 4, "{0} != {1}".format(s_exp, s_act) + ) def test_get_free_energy(self): """ @@ -215,7 +273,9 @@ def test_get_free_energy(self): for T in Tlist: g_exp = self.wilhoit.get_enthalpy(T) - T * self.wilhoit.get_entropy(T) g_act = self.wilhoit.get_free_energy(T) - self.assertAlmostEqual(g_exp / g_act, 1.0, 4, '{0} != {1}'.format(g_exp, g_act)) + self.assertAlmostEqual( + g_exp / g_act, 1.0, 4, "{0} != {1}".format(g_exp, g_act) + ) def test_pickle(self): """ @@ -223,6 +283,7 @@ def test_pickle(self): of information. """ import pickle + wilhoit = pickle.loads(pickle.dumps(self.wilhoit)) self.assertAlmostEqual(self.wilhoit.Cp0.value, wilhoit.Cp0.value, 4) self.assertEqual(self.wilhoit.Cp0.units, wilhoit.Cp0.units) @@ -252,9 +313,9 @@ def test_repr(self): with no loss of information. """ namespace = {} - exec('wilhoit = {0!r}'.format(self.wilhoit), globals(), namespace) - self.assertIn('wilhoit', namespace) - wilhoit = namespace['wilhoit'] + exec("wilhoit = {0!r}".format(self.wilhoit), globals(), namespace) + self.assertIn("wilhoit", namespace) + wilhoit = namespace["wilhoit"] self.assertAlmostEqual(self.wilhoit.Cp0.value, wilhoit.Cp0.value, 4) self.assertEqual(self.wilhoit.Cp0.units, wilhoit.Cp0.units) self.assertAlmostEqual(self.wilhoit.CpInf.value, wilhoit.CpInf.value, 3) @@ -283,7 +344,7 @@ def test_fit_to_data(self): """ h298 = self.wilhoit.get_enthalpy(298) s298 = self.wilhoit.get_entropy(298) - Tdata = np.array([300., 400., 500., 600., 800., 1000., 1500.]) + Tdata = np.array([300.0, 400.0, 500.0, 600.0, 800.0, 1000.0, 1500.0]) cp_data = np.zeros_like(Tdata) for i in range(Tdata.shape[0]): cp_data[i] = self.wilhoit.get_heat_capacity(Tdata[i]) @@ -305,7 +366,7 @@ def test_fit_to_data(self): s_act = wilhoit.get_entropy(T) self.assertAlmostEqual(s_act, s_exp, 4) - # Check that the fit reproduces the input parameters + # Check that the fit reproduces the input parameters # Since we're fitting to data generated from a Wilhoit (and since the # fitting algorithm is linear least-squares), we should get the same # Wilhoit parameters (with a small allowance for fitting error) @@ -330,13 +391,18 @@ def test_to_wilhoit(self): # Load databases database = RMGDatabase() - database.load_thermo(os.path.join(settings['database.directory'], 'thermo'), thermo_libraries=['Narayanaswamy']) - database.load_solvation(os.path.join(settings['database.directory'], 'solvation')) + database.load_thermo( + os.path.join(settings["database.directory"], "thermo"), + thermo_libraries=["Narayanaswamy"], + ) + database.load_solvation( + os.path.join(settings["database.directory"], "solvation") + ) - spc = Species().from_smiles('CC') + spc = Species().from_smiles("CC") spc.get_thermo_data() - T = 1350. # not 298K! + T = 1350.0 # not 298K! # nasa to wilhoit nasa = spc.thermo @@ -354,7 +420,7 @@ def test_to_wilhoit(self): td = nasa.to_thermo_data() s_td = td.get_entropy(T) - wilhoit = td.to_wilhoit(B=1000.) + wilhoit = td.to_wilhoit(B=1000.0) s_wh = wilhoit.get_entropy(T) self.assertAlmostEqual(s_td, s_wh, -1) @@ -372,21 +438,40 @@ def test_wilhoit_as_dict(self): Test that a Wilhoit object can be converted to a dictionary representation properly """ wilhoit_dict = self.wilhoit.as_dict() - self.assertEqual(wilhoit_dict, {'comment': 'C2H6', - 'B': {'units': 'K', 'class': 'ScalarQuantity', 'value': 1068.68}, - 'Tmin': {'units': 'K', 'class': 'ScalarQuantity', 'value': 300.0}, - 'H0': {'units': 'kJ/mol', 'class': 'ScalarQuantity', 'value': -782.292041536}, - 'Tmax': {'units': 'K', 'class': 'ScalarQuantity', 'value': 3000.0}, - 'S0': {'units': 'J/(mol*K)', 'class': 'ScalarQuantity', 'value': -984.93235312}, - 'a1': -16.3067, - 'a0': 0.0977518, - 'a3': -12.6785, - 'a2': 26.2524, - 'Cp0': {'units': 'J/(mol*K)', 'class': 'ScalarQuantity', 'value': 33.257888}, - 'CpInf': {'units': 'J/(mol*K)', 'class': 'ScalarQuantity', - 'value': 178.76114800000002}, - 'class': 'Wilhoit'} - ) + self.assertEqual( + wilhoit_dict, + { + "comment": "C2H6", + "B": {"units": "K", "class": "ScalarQuantity", "value": 1068.68}, + "Tmin": {"units": "K", "class": "ScalarQuantity", "value": 300.0}, + "H0": { + "units": "kJ/mol", + "class": "ScalarQuantity", + "value": -782.292041536, + }, + "Tmax": {"units": "K", "class": "ScalarQuantity", "value": 3000.0}, + "S0": { + "units": "J/(mol*K)", + "class": "ScalarQuantity", + "value": -984.93235312, + }, + "a1": -16.3067, + "a0": 0.0977518, + "a3": -12.6785, + "a2": 26.2524, + "Cp0": { + "units": "J/(mol*K)", + "class": "ScalarQuantity", + "value": 33.257888, + }, + "CpInf": { + "units": "J/(mol*K)", + "class": "ScalarQuantity", + "value": 178.76114800000002, + }, + "class": "Wilhoit", + }, + ) def test_make_wilhoit(self): """ @@ -394,8 +479,7 @@ def test_make_wilhoit(self): """ wilhoit_dict = self.wilhoit.as_dict() new_wilhoit = Wilhoit.__new__(Wilhoit) - class_dictionary = {'ScalarQuantity': ScalarQuantity, - 'Wilhoit': Wilhoit} + class_dictionary = {"ScalarQuantity": ScalarQuantity, "Wilhoit": Wilhoit} new_wilhoit.make_object(wilhoit_dict, class_dictionary) @@ -403,5 +487,5 @@ def test_make_wilhoit(self): ################################################################################ -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/tools/canteramodelTest.py b/test/rmgpy/tools/canteramodelTest.py index 0ff2f5e467..177711a24a 100644 --- a/test/rmgpy/tools/canteramodelTest.py +++ b/test/rmgpy/tools/canteramodelTest.py @@ -38,7 +38,6 @@ class CanteraTest(unittest.TestCase): - def test_ignition_delay(self): """ Test that find_ignition_delay() works. @@ -52,10 +51,10 @@ def test_ignition_delay(self): t_ign = find_ignition_delay(t, P) self.assertEqual(t_ign, 2.75) - t_ign = find_ignition_delay(t, OH, 'maxHalfConcentration') + t_ign = find_ignition_delay(t, OH, "maxHalfConcentration") self.assertEqual(t_ign, 3) - t_ign = find_ignition_delay(t, [OH, CO], 'maxSpeciesConcentrations') + t_ign = find_ignition_delay(t, [OH, CO], "maxSpeciesConcentrations") self.assertEqual(t_ign, 3.5) def test_repr(self): @@ -63,16 +62,14 @@ def test_repr(self): Test that the repr function for a CanteraCondition object can reconstitute the same object """ - reactor_type = 'IdealGasReactor' - mol_frac = {'CC': 0.05, '[Ar]': 0.95} - P = (3, 'atm') - T = (1500, 'K') - termination_time = (5e-5, 's') - condition = CanteraCondition(reactor_type, - termination_time, - mol_frac, - T0=T, - P0=P) + reactor_type = "IdealGasReactor" + mol_frac = {"CC": 0.05, "[Ar]": 0.95} + P = (3, "atm") + T = (1500, "K") + termination_time = (5e-5, "s") + condition = CanteraCondition( + reactor_type, termination_time, mol_frac, T0=T, P0=P + ) repr_condition = eval(condition.__repr__()) self.assertEqual(repr_condition.T0.value_si, Quantity(T).value_si) self.assertEqual(repr_condition.P0.value_si, Quantity(P).value_si) @@ -90,15 +87,22 @@ def setUp(self): A function run before each unit test in this class. """ from rmgpy.chemkin import load_chemkin_file - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools/data/various_kinetics') - chemkin_path = os.path.join(folder, 'chem_annotated.inp') - dictionary_path = os.path.join(folder, 'species_dictionary.txt') - transport_path = os.path.join(folder, 'tran.dat') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "tools/data/various_kinetics" + ) + + chemkin_path = os.path.join(folder, "chem_annotated.inp") + dictionary_path = os.path.join(folder, "species_dictionary.txt") + transport_path = os.path.join(folder, "tran.dat") - species, reactions = load_chemkin_file(chemkin_path, dictionary_path, transport_path) + species, reactions = load_chemkin_file( + chemkin_path, dictionary_path, transport_path + ) - self.rmg_ctSpecies = [spec.to_cantera(use_chemkin_identifier=True) for spec in species] + self.rmg_ctSpecies = [ + spec.to_cantera(use_chemkin_identifier=True) for spec in species + ] self.rmg_ctReactions = [] for rxn in reactions: converted_reactions = rxn.to_cantera(species, use_chemkin_identifier=True) @@ -116,13 +120,23 @@ def test_species_conversion(self): Test that species objects convert properly """ from rmgpy.tools.canteramodel import check_equivalent_cantera_species + for i in range(len(self.ctSpecies)): - self.assertTrue(check_equivalent_cantera_species(self.ctSpecies[i], self.rmg_ctSpecies[i])) + self.assertTrue( + check_equivalent_cantera_species( + self.ctSpecies[i], self.rmg_ctSpecies[i] + ) + ) def test_reaction_conversion(self): """ Test that species objects convert properly """ from rmgpy.tools.canteramodel import check_equivalent_cantera_reaction + for i in range(len(self.ctReactions)): - self.assertTrue(check_equivalent_cantera_reaction(self.ctReactions[i], self.rmg_ctReactions[i])) + self.assertTrue( + check_equivalent_cantera_reaction( + self.ctReactions[i], self.rmg_ctReactions[i] + ) + ) diff --git a/test/rmgpy/tools/diffmodelsTest.py b/test/rmgpy/tools/diffmodelsTest.py index 7e8b40d1f2..1eeed4994d 100644 --- a/test/rmgpy/tools/diffmodelsTest.py +++ b/test/rmgpy/tools/diffmodelsTest.py @@ -35,46 +35,52 @@ class DiffModelsTest(unittest.TestCase): - def test_identical_models(self): - folder = os.path.join(os.getcwd(), 'rmgpy/tools/data/diffmodels') + folder = os.path.join(os.getcwd(), "rmgpy/tools/data/diffmodels") - chemkin1 = os.path.join(folder, 'chem1.inp') - species_dict1 = os.path.join(folder, 'species_dictionary1.txt') + chemkin1 = os.path.join(folder, "chem1.inp") + species_dict1 = os.path.join(folder, "species_dictionary1.txt") - chemkin2 = os.path.join(folder, 'chem2.inp') - species_dict2 = os.path.join(folder, 'species_dictionary2.txt') + chemkin2 = os.path.join(folder, "chem2.inp") + species_dict2 = os.path.join(folder, "species_dictionary2.txt") kwargs = { - 'wd': folder, + "wd": folder, } execute(chemkin1, species_dict1, None, chemkin2, species_dict2, None, **kwargs) - shutil.rmtree(os.path.join(folder, 'species1')) - shutil.rmtree(os.path.join(folder, 'species2')) - os.remove(os.path.join(folder, 'diff.html')) + shutil.rmtree(os.path.join(folder, "species1")) + shutil.rmtree(os.path.join(folder, "species2")) + os.remove(os.path.join(folder, "diff.html")) def test_surface_models(self): - folder = os.path.join(os.getcwd(), 'rmgpy/tools/data/diffmodels/surf_model') + folder = os.path.join(os.getcwd(), "rmgpy/tools/data/diffmodels/surf_model") - chemkin_gas1 = os.path.join(folder, 'chem_gas1.inp') - chemkin_surf1 = os.path.join(folder, 'chem_surface1.inp') - species_dict1 = os.path.join(folder, 'species_dictionary1.txt') + chemkin_gas1 = os.path.join(folder, "chem_gas1.inp") + chemkin_surf1 = os.path.join(folder, "chem_surface1.inp") + species_dict1 = os.path.join(folder, "species_dictionary1.txt") - chemkin_gas2 = os.path.join(folder, 'chem_gas2.inp') - chemkin_surf2 = os.path.join(folder, 'chem_surface2.inp') - species_dict2 = os.path.join(folder, 'species_dictionary2.txt') + chemkin_gas2 = os.path.join(folder, "chem_gas2.inp") + chemkin_surf2 = os.path.join(folder, "chem_surface2.inp") + species_dict2 = os.path.join(folder, "species_dictionary2.txt") kwargs = { - 'wd': folder, - 'surface_path1': chemkin_surf1, - 'surface_path2': chemkin_surf2, + "wd": folder, + "surface_path1": chemkin_surf1, + "surface_path2": chemkin_surf2, } - execute(chemkin_gas1, species_dict1, None, - chemkin_gas2, species_dict2, None, **kwargs) - - shutil.rmtree(os.path.join(folder, 'species1')) - shutil.rmtree(os.path.join(folder, 'species2')) - os.remove(os.path.join(folder, 'diff.html')) + execute( + chemkin_gas1, + species_dict1, + None, + chemkin_gas2, + species_dict2, + None, + **kwargs + ) + + shutil.rmtree(os.path.join(folder, "species1")) + shutil.rmtree(os.path.join(folder, "species2")) + os.remove(os.path.join(folder, "diff.html")) diff --git a/test/rmgpy/tools/fluxdiagramTest.py b/test/rmgpy/tools/fluxdiagramTest.py index b653ff7261..b109c59972 100644 --- a/test/rmgpy/tools/fluxdiagramTest.py +++ b/test/rmgpy/tools/fluxdiagramTest.py @@ -38,31 +38,38 @@ from rmgpy.tools.fluxdiagram import create_flux_diagram -@attr('functional') +@attr("functional") class FluxDiagramTest(unittest.TestCase): - def test_avi_simple(self): - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools', 'data', 'flux') - - input_file = os.path.join(folder, 'input_simple.py') - chemkin_file = os.path.join(folder, 'chemkin', 'chem.inp') - dict_file = os.path.join(folder, 'chemkin', 'species_dictionary.txt') - settings = {'max_node_count': 50, - 'max_edge_count': 50, - 'concentration_tol': 1e-6, - 'species_rate_tol': 1e-6, - 'max_node_pen_width': 10.0, - 'max_edge_pen_width': 10.0, - 'radius': 2, - 'central_reaction_count': 2, - 'time_step': 10 ** 0.1} - create_flux_diagram(input_file, chemkin_file, dict_file, - central_species_list=[1], superimpose=True, settings=settings) - - outputdir = os.path.join(folder, 'flux') - simfile = os.path.join(outputdir, '1', 'flux_diagram.avi') - - speciesdir = os.path.join(folder, 'species') + folder = os.path.join(os.path.dirname(rmgpy.__file__), "tools", "data", "flux") + + input_file = os.path.join(folder, "input_simple.py") + chemkin_file = os.path.join(folder, "chemkin", "chem.inp") + dict_file = os.path.join(folder, "chemkin", "species_dictionary.txt") + settings = { + "max_node_count": 50, + "max_edge_count": 50, + "concentration_tol": 1e-6, + "species_rate_tol": 1e-6, + "max_node_pen_width": 10.0, + "max_edge_pen_width": 10.0, + "radius": 2, + "central_reaction_count": 2, + "time_step": 10**0.1, + } + create_flux_diagram( + input_file, + chemkin_file, + dict_file, + central_species_list=[1], + superimpose=True, + settings=settings, + ) + + outputdir = os.path.join(folder, "flux") + simfile = os.path.join(outputdir, "1", "flux_diagram.avi") + + speciesdir = os.path.join(folder, "species") self.assertTrue(os.path.isfile(simfile)) @@ -70,17 +77,19 @@ def test_avi_simple(self): shutil.rmtree(speciesdir) def test_avi_liquid(self): - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools', 'data', 'flux') + folder = os.path.join(os.path.dirname(rmgpy.__file__), "tools", "data", "flux") - input_file = os.path.join(folder, 'input_liquid.py') - chemkin_file = os.path.join(folder, 'chemkin', 'chem.inp') - dict_file = os.path.join(folder, 'chemkin', 'species_dictionary.txt') - create_flux_diagram(input_file, chemkin_file, dict_file, diffusion_limited=False) + input_file = os.path.join(folder, "input_liquid.py") + chemkin_file = os.path.join(folder, "chemkin", "chem.inp") + dict_file = os.path.join(folder, "chemkin", "species_dictionary.txt") + create_flux_diagram( + input_file, chemkin_file, dict_file, diffusion_limited=False + ) - outputdir = os.path.join(folder, 'flux') - simfile = os.path.join(outputdir, '1', 'flux_diagram.avi') + outputdir = os.path.join(folder, "flux") + simfile = os.path.join(outputdir, "1", "flux_diagram.avi") - speciesdir = os.path.join(folder, 'species') + speciesdir = os.path.join(folder, "species") self.assertTrue(os.path.isfile(simfile)) @@ -89,4 +98,5 @@ def test_avi_liquid(self): def tearDown(self): import rmgpy.data.rmg + rmgpy.data.rmg.database = None diff --git a/test/rmgpy/tools/generatereactionsTest.py b/test/rmgpy/tools/generatereactionsTest.py index 0a5ddc10b2..7fdee7f8c8 100644 --- a/test/rmgpy/tools/generatereactionsTest.py +++ b/test/rmgpy/tools/generatereactionsTest.py @@ -38,13 +38,12 @@ from rmgpy.tools.generatereactions import execute -@attr('functional') +@attr("functional") class GenerateReactionsTest(unittest.TestCase): - def test(self): - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools/data/generate') + folder = os.path.join(os.path.dirname(rmgpy.__file__), "tools/data/generate") - input_file = os.path.join(folder, 'input.py') + input_file = os.path.join(folder, "input.py") rmg = RMG(input_file=input_file, output_directory=folder) rmg = execute(rmg) @@ -53,8 +52,8 @@ def test(self): self.assertIsNotNone(rmg.reaction_model.output_species_list) self.assertIsNotNone(rmg.reaction_model.output_reaction_list) - shutil.rmtree(os.path.join(folder, 'pdep')) - os.remove(os.path.join(folder, 'restart_from_seed.py')) + shutil.rmtree(os.path.join(folder, "pdep")) + os.remove(os.path.join(folder, "restart_from_seed.py")) def test_duplicate_reaction(self): """ @@ -69,17 +68,22 @@ def test_duplicate_reaction(self): from rmgpy.reaction import Reaction from rmgpy.molecule import Molecule - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools/data/generate/duplicates') - input_file = os.path.join(folder, 'input.py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "tools/data/generate/duplicates" + ) + + input_file = os.path.join(folder, "input.py") rmg = RMG(input_file=input_file, output_directory=folder) rmg = execute(rmg) self.assertIsNotNone(rmg) - rxn_flagged = Reaction(reactants=[Molecule(smiles='[CH]=O'), Molecule(smiles='C=O')], - products=[Molecule(smiles='[CH2]OC=O')]) + rxn_flagged = Reaction( + reactants=[Molecule(smiles="[CH]=O"), Molecule(smiles="C=O")], + products=[Molecule(smiles="[CH2]OC=O")], + ) count = 0 for reaction in rmg.reaction_model.core.reactions: @@ -88,26 +92,29 @@ def test_duplicate_reaction(self): self.assertEquals(count, 1) - shutil.rmtree(os.path.join(folder, 'pdep')) - os.remove(os.path.join(folder, 'restart_from_seed.py')) + shutil.rmtree(os.path.join(folder, "pdep")) + os.remove(os.path.join(folder, "restart_from_seed.py")) def test_library_reaction_enters_core(self): """ Test that a reaction from a Reaction Library enters the core - right after the initialization step if all the input species are + right after the initialization step if all the input species are present in that reaction. - + The following reaction from the Methylformate library - + HCjO + CH2O <=> Fmoml - + should appear in the model if HCjO, CH2O and Fmoml are all used as input species """ from rmgpy.reaction import Reaction from rmgpy.molecule import Molecule - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools/data/generate/libraryReaction') - input_file = os.path.join(folder, 'input.py') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "tools/data/generate/libraryReaction" + ) + + input_file = os.path.join(folder, "input.py") rmg = RMG(input_file=input_file, output_directory=folder) rmg = execute(rmg) @@ -115,8 +122,10 @@ def test_library_reaction_enters_core(self): self.assertIsNotNone(rmg) # Assert that the flagged reaction occurs - rxn_flagged = Reaction(reactants=[Molecule(smiles='[CH]=O'), Molecule(smiles='C=O')], - products=[Molecule(smiles='[CH2]OC=O')]) + rxn_flagged = Reaction( + reactants=[Molecule(smiles="[CH]=O"), Molecule(smiles="C=O")], + products=[Molecule(smiles="[CH2]OC=O")], + ) count = 0 for reaction in rmg.reaction_model.core.reactions: @@ -127,11 +136,12 @@ def test_library_reaction_enters_core(self): # Assert that the core only has 1 reaction self.assertEquals(len(rmg.reaction_model.core.reactions), 1) - shutil.rmtree(os.path.join(folder, 'pdep')) - os.remove(os.path.join(folder, 'restart_from_seed.py')) + shutil.rmtree(os.path.join(folder, "pdep")) + os.remove(os.path.join(folder, "restart_from_seed.py")) def setUp(self): import rmgpy.data.rmg + rmgpy.data.rmg.database = None def tearDown(self): @@ -139,4 +149,5 @@ def tearDown(self): Reset the loaded database """ import rmgpy.data.rmg + rmgpy.data.rmg.database = None diff --git a/test/rmgpy/tools/isotopesTest.py b/test/rmgpy/tools/isotopesTest.py index 806821de15..05c357d9ac 100644 --- a/test/rmgpy/tools/isotopesTest.py +++ b/test/rmgpy/tools/isotopesTest.py @@ -39,10 +39,20 @@ from rmgpy.molecule import Molecule from rmgpy.reaction import Reaction from rmgpy.species import Species -from rmgpy.tools.isotopes import correct_entropy, apply_kinetic_isotope_effect_simple, \ - generate_isotope_reactions, get_reduced_mass, get_labeled_reactants, \ - is_enriched, generate_isotopomers, cluster, remove_isotope, \ - redo_isotope, ensure_reaction_direction, compare_isotopomers +from rmgpy.tools.isotopes import ( + correct_entropy, + apply_kinetic_isotope_effect_simple, + generate_isotope_reactions, + get_reduced_mass, + get_labeled_reactants, + is_enriched, + generate_isotopomers, + cluster, + remove_isotope, + redo_isotope, + ensure_reaction_direction, + compare_isotopomers, +) database = None @@ -52,10 +62,8 @@ def setUpModule(): global database database = RMGDatabase() database.load( - path=os.path.join(settings['test_data.directory'], 'testing_database'), - kinetics_families=[ - 'H_Abstraction', 'intra_H_migration' - ], + path=os.path.join(settings["test_data.directory"], "testing_database"), + kinetics_families=["H_Abstraction", "intra_H_migration"], testing=True, depository=False, solvation=False, @@ -73,23 +81,24 @@ def setUpModule(): def tearDownModule(): """A function that is run ONCE after all unit tests in this module.""" from rmgpy.data import rmg + rmg.database = None class IsotopesTest(unittest.TestCase): - @classmethod def setUpClass(cls): global database cls.database = database - cls.family = database.kinetics.families['H_Abstraction'] + cls.family = database.kinetics.families["H_Abstraction"] def test_cluster_with_species(self): """ Test that isotope partitioning algorithm work with Reaction Objects. """ - eth = Species().from_adjacency_list(""" + eth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -98,9 +107,11 @@ def test_cluster_with_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - ethi = Species().from_adjacency_list(""" + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -109,15 +120,18 @@ def test_cluster_with_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - meth = Species().from_adjacency_list(""" + meth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -""") +""" + ) spc_list = [eth, ethi] @@ -136,7 +150,8 @@ def test_cluster_with_reactions(self): Test that isotope partitioning algorithm works with Reaction objects """ - eth = Species().from_adjacency_list(""" + eth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -145,9 +160,11 @@ def test_cluster_with_reactions(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - ethi = Species().from_adjacency_list(""" + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -156,15 +173,18 @@ def test_cluster_with_reactions(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - meth = Species().from_adjacency_list(""" + meth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -""") +""" + ) rxn0 = Reaction(reactants=[ethi, ethi], products=[ethi, eth]) rxn1 = Reaction(reactants=[eth, ethi], products=[eth, eth]) @@ -196,7 +216,8 @@ def test_remove_isotope_for_reactions(self): Test that remove isotope algorithm works with Reaction objects. """ - eth = Species().from_adjacency_list(""" + eth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -205,9 +226,11 @@ def test_remove_isotope_for_reactions(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - ethi = Species().from_adjacency_list(""" + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -216,7 +239,8 @@ def test_remove_isotope_for_reactions(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) unlabeled_rxn = Reaction(reactants=[eth], products=[eth]) labeled_rxn = Reaction(reactants=[ethi], products=[ethi]) stripped = remove_isotope(labeled_rxn) @@ -228,7 +252,8 @@ def test_remove_isotope_for_species(self): Test that remove isotope algorithm works with Species. """ - eth = Species().from_adjacency_list(""" + eth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -237,9 +262,11 @@ def test_remove_isotope_for_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - ethi = Species().from_adjacency_list(""" + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -248,7 +275,8 @@ def test_remove_isotope_for_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) stripped = remove_isotope(ethi) @@ -259,7 +287,8 @@ def test_inplace_remove_isotope_for_reactions(self): Test that removeIsotope and redoIsotope works with reactions """ - eth = Species().from_adjacency_list(""" + eth = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -268,9 +297,11 @@ def test_inplace_remove_isotope_for_reactions(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) - ethi = Species().from_adjacency_list(""" + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -279,7 +310,8 @@ def test_inplace_remove_isotope_for_reactions(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) unlabeled_rxn = Reaction(reactants=[eth], products=[eth]) labeled_rxn = Reaction(reactants=[ethi], products=[ethi]) stored_labeled_rxn = labeled_rxn.copy() @@ -298,25 +330,30 @@ def test_ensure_reaction_direction(self): # get reactions - methyl = Species().from_smiles('[CH3]') - methyli = Species().from_adjacency_list(""" + methyl = Species().from_smiles("[CH3]") + methyli = Species().from_adjacency_list( + """ multiplicity 2 1 C u1 p0 c0 i13 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -""") - methane = Species().from_smiles('C') - methanei = Species().from_adjacency_list(""" +""" + ) + methane = Species().from_smiles("C") + methanei = Species().from_adjacency_list( + """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -""") +""" + ) - dipropyl = Species().from_smiles('[CH2]C[CH2]') - dipropyli = Species().from_adjacency_list(""" + dipropyl = Species().from_smiles("[CH2]C[CH2]") + dipropyli = Species().from_adjacency_list( + """ multiplicity 3 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} @@ -327,10 +364,12 @@ def test_ensure_reaction_direction(self): 7 H u0 p0 c0 {5,S} 8 H u0 p0 c0 {4,S} 9 H u0 p0 c0 {4,S} -""") +""" + ) - propyl = Species().from_smiles('CC[CH2]') - propyli = Species().from_adjacency_list(""" + propyl = Species().from_smiles("CC[CH2]") + propyli = Species().from_adjacency_list( + """ multiplicity 2 1 C u1 p0 c0 i13 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} @@ -342,44 +381,53 @@ def test_ensure_reaction_direction(self): 8 H u0 p0 c0 {5,S} 9 H u0 p0 c0 {5,S} 10 H u0 p0 c0 {5,S} -""") - propyl.label = 'propyl' - propyli.label = 'propyli' - dipropyl.label = 'dipropyl' - dipropyli.label = 'dipropyli' - methyl.label = 'methyl' - methyli.label = 'methyli' - methane.label = 'methane' - methanei.label = 'methanei' +""" + ) + propyl.label = "propyl" + propyli.label = "propyli" + dipropyl.label = "dipropyl" + dipropyli.label = "dipropyli" + methyl.label = "methyl" + methyli.label = "methyli" + methane.label = "methane" + methanei.label = "methanei" # make reactions - rxn1 = TemplateReaction(reactants=[dipropyl, methane], - products=[methyl, propyl], - kinetics=Arrhenius(A=(1., 'cm^3/(mol*s)'), Ea=(2., 'kJ/mol'), n=0.), - family='H_Abstraction', - template=['a', 'c'], - degeneracy=8, - pairs=[[methane, methyl], [dipropyl, propyl]]) - rxn2 = TemplateReaction(reactants=[methyli, propyl], - products=[methanei, dipropyl], - kinetics=Arrhenius(A=(1e-20, 'cm^3/(mol*s)'), Ea=(2., 'kJ/mol'), n=0.), - family='H_Abstraction', - template=['b', 'd'], - degeneracy=3, - pairs=[[methyli, methanei], [propyl, dipropyl]]) - rxn3 = TemplateReaction(reactants=[methane, dipropyli], - products=[methyl, propyli], - kinetics=Arrhenius(A=(0.5, 'cm^3/(mol*s)'), Ea=(2., 'kJ/mol'), n=0.), - family='H_Abstraction', - template=['a', 'c'], - degeneracy=4, - pairs=[[methane, methyl], [dipropyli, propyli]]) - rxn4 = TemplateReaction(reactants=[methyli, propyli], - products=[methanei, dipropyli], - kinetics=Arrhenius(A=(1e-20, 'cm^3/(mol*s)'), Ea=(2., 'kJ/mol'), n=0.), - family='H_Abstraction', - template=['d', 'b'], - degeneracy=3, - pairs=[[methyli, methanei], [propyli, dipropyli]]) + rxn1 = TemplateReaction( + reactants=[dipropyl, methane], + products=[methyl, propyl], + kinetics=Arrhenius(A=(1.0, "cm^3/(mol*s)"), Ea=(2.0, "kJ/mol"), n=0.0), + family="H_Abstraction", + template=["a", "c"], + degeneracy=8, + pairs=[[methane, methyl], [dipropyl, propyl]], + ) + rxn2 = TemplateReaction( + reactants=[methyli, propyl], + products=[methanei, dipropyl], + kinetics=Arrhenius(A=(1e-20, "cm^3/(mol*s)"), Ea=(2.0, "kJ/mol"), n=0.0), + family="H_Abstraction", + template=["b", "d"], + degeneracy=3, + pairs=[[methyli, methanei], [propyl, dipropyl]], + ) + rxn3 = TemplateReaction( + reactants=[methane, dipropyli], + products=[methyl, propyli], + kinetics=Arrhenius(A=(0.5, "cm^3/(mol*s)"), Ea=(2.0, "kJ/mol"), n=0.0), + family="H_Abstraction", + template=["a", "c"], + degeneracy=4, + pairs=[[methane, methyl], [dipropyli, propyli]], + ) + rxn4 = TemplateReaction( + reactants=[methyli, propyli], + products=[methanei, dipropyli], + kinetics=Arrhenius(A=(1e-20, "cm^3/(mol*s)"), Ea=(2.0, "kJ/mol"), n=0.0), + family="H_Abstraction", + template=["d", "b"], + degeneracy=3, + pairs=[[methyli, methanei], [propyli, dipropyli]], + ) rxns = [rxn1, rxn2, rxn3, rxn4] @@ -388,33 +436,47 @@ def test_ensure_reaction_direction(self): for rxn in rxns: # ensure there is a methane in reactants for each reaction - self.assertTrue(any([compare_isotopomers(methane, reactant) for reactant in rxn.reactants]), - msg='ensureReactionDirection didnt flip the proper reactants and products') + self.assertTrue( + any( + [ + compare_isotopomers(methane, reactant) + for reactant in rxn.reactants + ] + ), + msg="ensureReactionDirection didnt flip the proper reactants and products", + ) # ensure kinetics is correct if any([dipropyli.is_isomorphic(reactant) for reactant in rxn.reactants]): - self.assertAlmostEqual(rxn.kinetics.A.value, 0.5, - msg='The A value returned, {0}, is incorrect. ' - 'Check the reactions degeneracy and how A.value is obtained. ' - 'The reaction is:{1}'.format(rxn.kinetics.A.value, rxn)) + self.assertAlmostEqual( + rxn.kinetics.A.value, + 0.5, + msg="The A value returned, {0}, is incorrect. " + "Check the reactions degeneracy and how A.value is obtained. " + "The reaction is:{1}".format(rxn.kinetics.A.value, rxn), + ) else: - self.assertAlmostEqual(rxn.kinetics.A.value, 1., - msg='The A value returned, {0}, is incorrect. ' - 'Check the reactions degeneracy and how A.value is obtained. ' - 'The reaction is:{1}'.format(rxn.kinetics.A.value, rxn)) + self.assertAlmostEqual( + rxn.kinetics.A.value, + 1.0, + msg="The A value returned, {0}, is incorrect. " + "Check the reactions degeneracy and how A.value is obtained. " + "The reaction is:{1}".format(rxn.kinetics.A.value, rxn), + ) def test_ensure_reaction_direction_with_multiple_ts(self): """Tests that ensure reaction direction can handle multiple transition states""" - family = self.database.kinetics.families['intra_H_migration'] + family = self.database.kinetics.families["intra_H_migration"] r = Molecule().from_smiles("[CH2]CCC") p = Molecule().from_smiles("C[CH]CC") rxn = TemplateReaction(reactants=[r], products=[p]) family.add_atom_labels_for_reaction(reaction=rxn) rxn.template = family.get_reaction_template_labels(reaction=rxn) rxn.degeneracy = family.calculate_degeneracy(rxn) - rxn.family = 'intra_H_migration' - rxn.kinetics = Arrhenius(A=(1, 's^-1')) - ri = Molecule().from_adjacency_list(""" + rxn.family = "intra_H_migration" + rxn.kinetics = Arrhenius(A=(1, "s^-1")) + ri = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} @@ -429,8 +491,10 @@ def test_ensure_reaction_direction_with_multiple_ts(self): 11 H u0 p0 c0 {6,S} 12 H u0 p0 c0 {6,S} 13 H u0 p0 c0 {6,S} -""") - pi = Molecule().from_adjacency_list(""" +""" + ) + pi = Molecule().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 2 C u1 p0 c0 i13 {1,S} {3,S} {4,S} @@ -445,7 +509,8 @@ def test_ensure_reaction_direction_with_multiple_ts(self): 11 H u0 p0 c0 {5,S} 12 H u0 p0 c0 {5,S} 13 H u0 p0 c0 {5,S} -""") +""" + ) rxni = TemplateReaction(reactants=[pi], products=[ri], pairs=[[pi, ri]]) family.add_atom_labels_for_reaction(reaction=rxni) rxni.template = family.get_reaction_template_labels(reaction=rxni) @@ -455,17 +520,20 @@ def test_ensure_reaction_direction_with_multiple_ts(self): self.assertEqual(rxn_cluster[0].degeneracy, 2) self.assertEqual(rxn_cluster[1].degeneracy, 2) - self.assertIn('R2Hall', rxn_cluster[0].template) - self.assertIn('R2Hall', rxn_cluster[1].template) + self.assertIn("R2Hall", rxn_cluster[0].template) + self.assertIn("R2Hall", rxn_cluster[1].template) - self.assertAlmostEqual(rxn_cluster[0].kinetics.get_rate_coefficient(298), - rxn_cluster[1].kinetics.get_rate_coefficient(298)) + self.assertAlmostEqual( + rxn_cluster[0].kinetics.get_rate_coefficient(298), + rxn_cluster[1].kinetics.get_rate_coefficient(298), + ) def test_compare_isotopomers_works_on_species(self): """ Test that compareIsotomers works on species objects """ - ethii = Species().from_adjacency_list(""" + ethii = Species().from_adjacency_list( + """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -474,8 +542,10 @@ def test_compare_isotopomers_works_on_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") - ethi = Species().from_adjacency_list(""" +""" + ) + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -484,14 +554,16 @@ def test_compare_isotopomers_works_on_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) self.assertTrue(compare_isotopomers(ethii, ethi)) def test_compare_isotopomers_does_not_alter_species(self): """ Test that compareIsotomers works on species objects """ - ethii = Species().from_adjacency_list(""" + ethii = Species().from_adjacency_list( + """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -500,8 +572,10 @@ def test_compare_isotopomers_does_not_alter_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") - ethi = Species().from_adjacency_list(""" +""" + ) + ethi = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 i13 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -510,19 +584,25 @@ def test_compare_isotopomers_does_not_alter_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") +""" + ) compare_isotopomers(ethii, ethi) # ensure species still have labels for atom in ethii.molecule[0].atoms: - if atom.element.symbol == 'C': - self.assertEqual(atom.element.isotope, 13, 'compareIsotopomer removed the isotope of a species.') + if atom.element.symbol == "C": + self.assertEqual( + atom.element.isotope, + 13, + "compareIsotopomer removed the isotope of a species.", + ) def test_compare_isotopomers_fails_on_species(self): """ Test that compareIsotomers fails on species objects """ - ethane = Species().from_adjacency_list(""" + ethane = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} 3 H u0 p0 c0 {1,S} @@ -531,30 +611,38 @@ def test_compare_isotopomers_fails_on_species(self): 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -""") - ethenei = Species().from_adjacency_list(""" +""" + ) + ethenei = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p0 c0 i13 {1,D} {6,S} {5,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} -""") +""" + ) self.assertFalse(compare_isotopomers(ethane, ethenei)) def test_compare_isotopomers_works_on_reactions(self): """ Test that compareIsotomers works on different reaction objects """ - h = Species().from_adjacency_list(""" + h = Species().from_adjacency_list( + """ multiplicity 2 1 H u1 p0 c0 -""") - h2 = Species().from_adjacency_list(""" +""" + ) + h2 = Species().from_adjacency_list( + """ 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} -""") - propanei = Species().from_adjacency_list(""" +""" + ) + propanei = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 i13 {2,S} {9,S} {10,S} {11,S} @@ -566,8 +654,10 @@ def test_compare_isotopomers_works_on_reactions(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""") - propane = Species().from_adjacency_list(""" +""" + ) + propane = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 {2,S} {9,S} {10,S} {11,S} @@ -579,8 +669,10 @@ def test_compare_isotopomers_works_on_reactions(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""") - npropyli = Species().from_adjacency_list(""" +""" + ) + npropyli = Species().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 2 C u0 p0 c0 {1,S} {3,S} {9,S} {10,S} @@ -592,8 +684,10 @@ def test_compare_isotopomers_works_on_reactions(self): 8 H u0 p0 c0 {1,S} 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {2,S} -""") - npropyl = Species().from_adjacency_list(""" +""" + ) + npropyl = Species().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 2 C u0 p0 c0 {1,S} {3,S} {9,S} {10,S} @@ -605,29 +699,35 @@ def test_compare_isotopomers_works_on_reactions(self): 8 H u0 p0 c0 {1,S} 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {2,S} -""") - - reaction2 = TemplateReaction(reactants=[propanei, h], - products=[npropyli, h2], - family='H_Abstraction') - reaction3 = TemplateReaction(reactants=[propane, h], - products=[h2, npropyl], - family='H_Abstraction') +""" + ) + + reaction2 = TemplateReaction( + reactants=[propanei, h], products=[npropyli, h2], family="H_Abstraction" + ) + reaction3 = TemplateReaction( + reactants=[propane, h], products=[h2, npropyl], family="H_Abstraction" + ) self.assertTrue(compare_isotopomers(reaction2, reaction3)) def test_compare_isotopomers_fails_on_reactions(self): """ Test that compareIsotomers fails on different reaction objects """ - h = Species().from_adjacency_list(""" + h = Species().from_adjacency_list( + """ multiplicity 2 1 H u1 p0 c0 -""") - h2 = Species().from_adjacency_list(""" +""" + ) + h2 = Species().from_adjacency_list( + """ 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} -""") - propanei = Species().from_adjacency_list(""" +""" + ) + propanei = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 i13 {2,S} {9,S} {10,S} {11,S} @@ -639,8 +739,10 @@ def test_compare_isotopomers_fails_on_reactions(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""") - propane = Species().from_adjacency_list(""" +""" + ) + propane = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 {2,S} {9,S} {10,S} {11,S} @@ -652,8 +754,10 @@ def test_compare_isotopomers_fails_on_reactions(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""") - npropyli = Species().from_adjacency_list(""" +""" + ) + npropyli = Species().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 2 C u0 p0 c0 {1,S} {3,S} {9,S} {10,S} @@ -665,15 +769,16 @@ def test_compare_isotopomers_fails_on_reactions(self): 8 H u0 p0 c0 {1,S} 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {2,S} -""") +""" + ) - reaction2 = TemplateReaction(reactants=[propanei, h], - products=[npropyli, h2], - family='H_Abstraction') + reaction2 = TemplateReaction( + reactants=[propanei, h], products=[npropyli, h2], family="H_Abstraction" + ) - magic_reaction = TemplateReaction(reactants=[propane, h], - products=[propanei, h], - family='H_Abstraction') + magic_reaction = TemplateReaction( + reactants=[propane, h], products=[propanei, h], family="H_Abstraction" + ) self.assertFalse(compare_isotopomers(reaction2, magic_reaction)) def test_correct_entropy(self): @@ -687,7 +792,9 @@ def test_correct_entropy(self): from rmgpy.thermo.nasa import NASA, NASAPolynomial from copy import deepcopy from rmgpy import constants - propanei = Species().from_adjacency_list(""" + + propanei = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 i13 {2,S} {9,S} {10,S} {11,S} @@ -699,8 +806,10 @@ def test_correct_entropy(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""") - propane = Species().from_adjacency_list(""" +""" + ) + propane = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {3,S} {7,S} {8,S} 3 C u0 p0 c0 {2,S} {9,S} {10,S} {11,S} @@ -712,22 +821,53 @@ def test_correct_entropy(self): 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} 11 H u0 p0 c0 {3,S} -""") +""" + ) # get thermo of propane - original_thermo = NASA(polynomials=[NASAPolynomial( - coeffs=[1.10564, 0.0315339, -1.48274e-05, 3.39621e-09, -2.97953e-13, -14351.9, 18.775], - Tmin=(100, 'K'), Tmax=(3370.6, 'K')), NASAPolynomial( - coeffs=[-1.45473, 0.0241202, -6.87667e-06, 9.03634e-10, -4.48389e-14, -6688.59, 43.0459], - Tmin=(3370.6, 'K'), Tmax=(5000, 'K'))], Tmin=(100, 'K'), Tmax=(5000, 'K'), - comment="""Thermo group additivity estimation: group(Cs-CsCsHH) + gauche(Cs(CsCsRR)) + other(R) + group(Cs-CsHHH) + gauche(Cs(Cs(CsRR)RRR)) + other(R) + group(Cs-CsHHH) + gauche(Cs(Cs(CsRR)RRR)) + other(R)""") + original_thermo = NASA( + polynomials=[ + NASAPolynomial( + coeffs=[ + 1.10564, + 0.0315339, + -1.48274e-05, + 3.39621e-09, + -2.97953e-13, + -14351.9, + 18.775, + ], + Tmin=(100, "K"), + Tmax=(3370.6, "K"), + ), + NASAPolynomial( + coeffs=[ + -1.45473, + 0.0241202, + -6.87667e-06, + 9.03634e-10, + -4.48389e-14, + -6688.59, + 43.0459, + ], + Tmin=(3370.6, "K"), + Tmax=(5000, "K"), + ), + ], + Tmin=(100, "K"), + Tmax=(5000, "K"), + comment="""Thermo group additivity estimation: group(Cs-CsCsHH) + gauche(Cs(CsCsRR)) + other(R) + group(Cs-CsHHH) + gauche(Cs(Cs(CsRR)RRR)) + other(R) + group(Cs-CsHHH) + gauche(Cs(Cs(CsRR)RRR)) + other(R)""", + ) propane.thermo = deepcopy(original_thermo) propanei.thermo = deepcopy(original_thermo) correct_entropy(propanei, propane) self.assertAlmostEqual(propane.get_enthalpy(298), propanei.get_enthalpy(298)) - self.assertAlmostEqual(propanei.get_entropy(298) - propane.get_entropy(298), constants.R * np.log(2)) + self.assertAlmostEqual( + propanei.get_entropy(298) - propane.get_entropy(298), + constants.R * np.log(2), + ) def test_generate_isotopomers(self): """ @@ -735,15 +875,23 @@ def test_generate_isotopomers(self): """ from rmgpy.thermo.nasa import NASAPolynomial, NASA - spc = Species().from_smiles('CC') + spc = Species().from_smiles("CC") - polynomial = NASAPolynomial(coeffs=[1., 1., 1., 1., 1., 1., 1.], - Tmin=(200, 'K'), Tmax=(1600, 'K'), E0=(1., 'kJ/mol'), - comment='made up thermo') + polynomial = NASAPolynomial( + coeffs=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], + Tmin=(200, "K"), + Tmax=(1600, "K"), + E0=(1.0, "kJ/mol"), + comment="made up thermo", + ) - spc.thermo = NASA(polynomials=[polynomial], Tmin=(200, 'K'), - Tmax=(1600, 'K'), E0=(1., 'kJ/mol'), - comment='made up thermo') + spc.thermo = NASA( + polynomials=[polynomial], + Tmin=(200, "K"), + Tmax=(1600, "K"), + E0=(1.0, "kJ/mol"), + comment="made up thermo", + ) spcs = generate_isotopomers(spc, 0) self.assertEquals(len(spcs), 0) @@ -761,7 +909,8 @@ def test_is_enriched(self): """ ensures the Enriched method functions """ - npropyl = Species().from_adjacency_list(""" + npropyl = Species().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 2 C u0 p0 c0 {1,S} {3,S} {9,S} {10,S} @@ -773,8 +922,10 @@ def test_is_enriched(self): 8 H u0 p0 c0 {1,S} 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {2,S} -""") - npropyli = Species().from_adjacency_list(""" +""" + ) + npropyli = Species().from_adjacency_list( + """ multiplicity 2 1 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S} 2 C u0 p0 c0 i13 {1,S} {3,S} {9,S} {10,S} @@ -786,19 +937,20 @@ def test_is_enriched(self): 8 H u0 p0 c0 {1,S} 9 H u0 p0 c0 {2,S} 10 H u0 p0 c0 {2,S} -""") +""" + ) self.assertTrue(is_enriched(npropyli)) self.assertFalse(is_enriched(npropyl)) - enriched_reaction = TemplateReaction(reactants=[npropyl], - products=[npropyli], - family='H_Abstraction') + enriched_reaction = TemplateReaction( + reactants=[npropyl], products=[npropyli], family="H_Abstraction" + ) self.assertTrue(is_enriched(enriched_reaction)) - bare_reaction = TemplateReaction(reactants=[npropyl], - products=[npropyl], - family='H_Abstraction') + bare_reaction = TemplateReaction( + reactants=[npropyl], products=[npropyl], family="H_Abstraction" + ) self.assertFalse(is_enriched(bare_reaction)) @@ -808,9 +960,9 @@ def test_get_labeled_reactants(self): """ reactant_pair = [Species().from_smiles("C"), Species().from_smiles("[H]")] product_pair = [Species().from_smiles("[H][H]"), Species().from_smiles("[CH3]")] - rxn = TemplateReaction(reactants=reactant_pair, - products=product_pair, - family='H_Abstraction') + rxn = TemplateReaction( + reactants=reactant_pair, products=product_pair, family="H_Abstraction" + ) labeled_reactants = get_labeled_reactants(rxn, self.family) r1_labels = labeled_reactants[0].get_all_labeled_atoms() self.assertIn("*1", list(r1_labels.keys())) @@ -822,127 +974,169 @@ def test_get_reduced_mass(self): """ tests that get_reduced_mass returns the proper value for H_abstraction """ - labels = ['*1', '*3'] + labels = ["*1", "*3"] reactants = [ - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -"""), - Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list( + """ multiplicity 2 1 *3 H u1 p0 c0 -""")] +""" + ), + ] reduced_mass = get_reduced_mass(reactants, labels, True) - self.assertAlmostEqual(reduced_mass, 1 / (1 / 1.008 + 1 / (1.008 + 12.01)) / 1000, places=6) + self.assertAlmostEqual( + reduced_mass, 1 / (1 / 1.008 + 1 / (1.008 + 12.01)) / 1000, places=6 + ) def test_get_reduced_mass2(self): """ tests that get_reduced_mass returns proper value when isotopes are labeled """ - labels = ['*1', '*3'] + labels = ["*1", "*3"] reactants = [ - Molecule().from_adjacency_list(""" + Molecule().from_adjacency_list( + """ 1 *1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 *2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -"""), - Molecule().from_adjacency_list(""" +""" + ), + Molecule().from_adjacency_list( + """ multiplicity 2 1 *3 H u1 p0 c0 -""")] +""" + ), + ] reduced_mass = get_reduced_mass(reactants, labels, True) - self.assertAlmostEqual(reduced_mass, 1 / (1 / 1.008 + 1 / (1.008 + 13.01)) / 1000, places=6) + self.assertAlmostEqual( + reduced_mass, 1 / (1 / 1.008 + 1 / (1.008 + 13.01)) / 1000, places=6 + ) def test_get_kinetic_isotope_effect_simple(self): reactant_pair = [Species().from_smiles("C"), Species().from_smiles("[H]")] product_pair = [Species().from_smiles("[H][H]"), Species().from_smiles("[CH3]")] - rxn_unlabeled = TemplateReaction(reactants=reactant_pair, - products=product_pair, - family='H_Abstraction', - kinetics=Arrhenius(A=(1e5, 'cm^3/(mol*s)'), Ea=(0, 'J/mol'))) - rxn_labeled = TemplateReaction(reactants=[ - Species().from_adjacency_list(""" + rxn_unlabeled = TemplateReaction( + reactants=reactant_pair, + products=product_pair, + family="H_Abstraction", + kinetics=Arrhenius(A=(1e5, "cm^3/(mol*s)"), Ea=(0, "J/mol")), + ) + rxn_labeled = TemplateReaction( + reactants=[ + Species().from_adjacency_list( + """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -"""), - Species().from_adjacency_list(""" +""" + ), + Species().from_adjacency_list( + """ multiplicity 2 1 H u1 p0 c0 -""")], - products=[ - Species().from_adjacency_list(""" +""" + ), + ], + products=[ + Species().from_adjacency_list( + """ 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} -"""), - Species().from_adjacency_list(""" +""" + ), + Species().from_adjacency_list( + """ multiplicity 2 1 C u1 p0 c0 i13 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -""")], - family='H_Abstraction', - kinetics=Arrhenius(A=(1e5, 'cm^3/(mol*s)'), Ea=(0, 'J/mol'))) +""" + ), + ], + family="H_Abstraction", + kinetics=Arrhenius(A=(1e5, "cm^3/(mol*s)"), Ea=(0, "J/mol")), + ) rxn_cluster = [[rxn_labeled, rxn_unlabeled]] apply_kinetic_isotope_effect_simple(rxn_cluster, self.database.kinetics) - expected_kie = ((1 / 1.008 + 1 / (13.01 + 1.008)) / (1 / 1.008 + 1 / (12.01 + 1.008))) ** 0.5 - self.assertAlmostEqual(rxn_cluster[0][0].kinetics.A.value, 1e5 * expected_kie, places=-1) + expected_kie = ( + (1 / 1.008 + 1 / (13.01 + 1.008)) / (1 / 1.008 + 1 / (12.01 + 1.008)) + ) ** 0.5 + self.assertAlmostEqual( + rxn_cluster[0][0].kinetics.A.value, 1e5 * expected_kie, places=-1 + ) def test_generate_isotope_reactions(self): """ shows that all isotope reactions are created with generateIsotopeReactions """ - methyl = Species().from_smiles('[CH3]') - methyli = Species().from_adjacency_list(""" + methyl = Species().from_smiles("[CH3]") + methyli = Species().from_adjacency_list( + """ multiplicity 2 1 C u1 p0 c0 i13 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -""") - methane = Species().from_adjacency_list(""" +""" + ) + methane = Species().from_adjacency_list( + """ 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -""") - methanei = Species().from_adjacency_list(""" +""" + ) + methanei = Species().from_adjacency_list( + """ 1 C u0 p0 c0 i13 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -""") - craigie = Species().from_adjacency_list(""" +""" + ) + craigie = Species().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} -""") - craigiei = Species().from_adjacency_list(""" +""" + ) + craigiei = Species().from_adjacency_list( + """ multiplicity 3 1 C u2 p0 c0 i13 {2,S} {3,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} -""") - reaction = TemplateReaction(reactants=[methyl, methyl], - products=[methane, craigie], - family='H_Abstraction', - template=['Xrad_H', 'Y_rad'], - degeneracy=3) - reaction.kinetics = Arrhenius(A=(1e5, 'cm^3/(mol*s)'), Ea=(0, 'J/mol')) - isotope_list = [[methyl, methyli], - [methane, methanei], - [craigie, craigiei]] +""" + ) + reaction = TemplateReaction( + reactants=[methyl, methyl], + products=[methane, craigie], + family="H_Abstraction", + template=["Xrad_H", "Y_rad"], + degeneracy=3, + ) + reaction.kinetics = Arrhenius(A=(1e5, "cm^3/(mol*s)"), Ea=(0, "J/mol")) + isotope_list = [[methyl, methyli], [methane, methanei], [craigie, craigiei]] new_reactions = generate_isotope_reactions([reaction], isotope_list) @@ -952,9 +1146,15 @@ def test_generate_isotope_reactions(self): for rxn in new_reactions: self.assertEqual(rxn.template, reaction.template) degeneracies_found.add(rxn.degeneracy) - self.assertIsNotNone(rxn.kinetics, 'kinetics not obtained for reaction {}.'.format(rxn)) - self.assertAlmostEqual(reaction.kinetics.get_rate_coefficient(298), - rxn.kinetics.get_rate_coefficient(298) * reaction.degeneracy / rxn.degeneracy) + self.assertIsNotNone( + rxn.kinetics, "kinetics not obtained for reaction {}.".format(rxn) + ) + self.assertAlmostEqual( + reaction.kinetics.get_rate_coefficient(298), + rxn.kinetics.get_rate_coefficient(298) + * reaction.degeneracy + / rxn.degeneracy, + ) self.assertEqual(degeneracies_found, set([3])) @@ -964,30 +1164,40 @@ def test_generate_isotope_reactions_limited_labeling(self): with limits of two isotopes per molecule """ max_number_labels = 1 - methyl = Species().from_smiles('[CH3]') - methyl_isotopologues = [methyl] + generate_isotopomers(methyl, max_number_labels) - methane = Species().from_smiles('C') - methane_isotopologues = [methane] + generate_isotopomers(methane, max_number_labels) - ethyl = Species().from_smiles('C[CH2]') + methyl = Species().from_smiles("[CH3]") + methyl_isotopologues = [methyl] + generate_isotopomers( + methyl, max_number_labels + ) + methane = Species().from_smiles("C") + methane_isotopologues = [methane] + generate_isotopomers( + methane, max_number_labels + ) + ethyl = Species().from_smiles("C[CH2]") ethyl_isotopologues = [ethyl] + generate_isotopomers(ethyl, max_number_labels) - ethane = Species().from_smiles('CC') - ethane_isotopologues = [ethane] + generate_isotopomers(ethane, max_number_labels) + ethane = Species().from_smiles("CC") + ethane_isotopologues = [ethane] + generate_isotopomers( + ethane, max_number_labels + ) self.assertEqual(len(methyl_isotopologues), 2) self.assertEqual(len(methane_isotopologues), 2) self.assertEqual(len(ethane_isotopologues), 2) self.assertEqual(len(ethyl_isotopologues), 3) - reaction = TemplateReaction(reactants=[ethyl, methane], - products=[ethane, methyl], - family='H_Abstraction', - template=['C/H4', 'Y_rad'], - degeneracy=4) - reaction.kinetics = Arrhenius(A=(1e5, 'cm^3/(mol*s)'), Ea=(0, 'J/mol')) - isotope_list = [methyl_isotopologues, - methane_isotopologues, - ethyl_isotopologues, - ethane_isotopologues] + reaction = TemplateReaction( + reactants=[ethyl, methane], + products=[ethane, methyl], + family="H_Abstraction", + template=["C/H4", "Y_rad"], + degeneracy=4, + ) + reaction.kinetics = Arrhenius(A=(1e5, "cm^3/(mol*s)"), Ea=(0, "J/mol")) + isotope_list = [ + methyl_isotopologues, + methane_isotopologues, + ethyl_isotopologues, + ethane_isotopologues, + ] new_reactions = generate_isotope_reactions([reaction], isotope_list) @@ -997,8 +1207,14 @@ def test_generate_isotope_reactions_limited_labeling(self): for rxn in new_reactions: self.assertEqual(rxn.template, reaction.template) degeneracies_found.add(rxn.degeneracy) - self.assertIsNotNone(rxn.kinetics, 'kinetics not obtained for reaction {}.'.format(rxn)) - self.assertAlmostEqual(reaction.kinetics.get_rate_coefficient(298), - rxn.kinetics.get_rate_coefficient(298) * reaction.degeneracy / rxn.degeneracy) + self.assertIsNotNone( + rxn.kinetics, "kinetics not obtained for reaction {}.".format(rxn) + ) + self.assertAlmostEqual( + reaction.kinetics.get_rate_coefficient(298), + rxn.kinetics.get_rate_coefficient(298) + * reaction.degeneracy + / rxn.degeneracy, + ) self.assertEqual(degeneracies_found, set([4])) diff --git a/test/rmgpy/tools/mergemodelsTest.py b/test/rmgpy/tools/mergemodelsTest.py index 9fd8070176..d744feafe5 100644 --- a/test/rmgpy/tools/mergemodelsTest.py +++ b/test/rmgpy/tools/mergemodelsTest.py @@ -35,17 +35,18 @@ class MergeModelsTest(unittest.TestCase): - def test_merge_different_models(self): - folder = os.path.join(os.getcwd(), 'rmgpy/tools/data/diffmodels') + folder = os.path.join(os.getcwd(), "rmgpy/tools/data/diffmodels") - chemkin3 = os.path.join(folder, 'chem3.inp') - species_dict3 = os.path.join(folder, 'species_dictionary3.txt') + chemkin3 = os.path.join(folder, "chem3.inp") + species_dict3 = os.path.join(folder, "species_dictionary3.txt") - chemkin2 = os.path.join(folder, 'chem2.inp') - species_dict2 = os.path.join(folder, 'species_dictionary2.txt') + chemkin2 = os.path.join(folder, "chem2.inp") + species_dict2 = os.path.join(folder, "species_dictionary2.txt") - models = get_models_to_merge(((chemkin3, species_dict3, None), (chemkin2, species_dict2, None))) + models = get_models_to_merge( + ((chemkin3, species_dict3, None), (chemkin2, species_dict2, None)) + ) final_model = combine_models(models) species = final_model.species reactions = final_model.reactions @@ -56,7 +57,7 @@ def test_merge_different_models(self): # make sure indexes are redone by checking a random species h_index = False for s in species: - if s.label == 'H': + if s.label == "H": if isinstance(h_index, bool): h_index = s.index else: @@ -68,7 +69,14 @@ def test_merge_different_models(self): # make sure reaction rates come from first model for r in reactions: - if len(r.reactants) == 2 and r.reactants[0].label == 'CH3' and\ - r.reactants[1].label == 'CH3': - self.assertAlmostEqual(r.kinetics.A.value_si, 8.260e+9, places=0, - msg="Kinetics did not match from first input model") + if ( + len(r.reactants) == 2 + and r.reactants[0].label == "CH3" + and r.reactants[1].label == "CH3" + ): + self.assertAlmostEqual( + r.kinetics.A.value_si, + 8.260e9, + places=0, + msg="Kinetics did not match from first input model", + ) diff --git a/test/rmgpy/tools/regressionTest.py b/test/rmgpy/tools/regressionTest.py index 1abb2cec6e..f4b5621e08 100644 --- a/test/rmgpy/tools/regressionTest.py +++ b/test/rmgpy/tools/regressionTest.py @@ -37,18 +37,18 @@ from rmgpy.tools.regression import read_input_file, run -@attr('functional') +@attr("functional") class regressionTest(unittest.TestCase): - def test(self): - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools/data/regression') - benchmark = os.path.join(folder, 'benchmark') - tested = os.path.join(folder, 'tested') - input_file = os.path.join(folder, 'input.py') + folder = os.path.join(os.path.dirname(rmgpy.__file__), "tools/data/regression") + benchmark = os.path.join(folder, "benchmark") + tested = os.path.join(folder, "tested") + input_file = os.path.join(folder, "input.py") args = read_input_file(input_file) run(benchmark, tested, *args) def tearDown(self): import rmgpy.data.rmg + rmgpy.data.rmg.database = None diff --git a/test/rmgpy/tools/simulateTest.py b/test/rmgpy/tools/simulateTest.py index 664958d194..46ec0fcb87 100644 --- a/test/rmgpy/tools/simulateTest.py +++ b/test/rmgpy/tools/simulateTest.py @@ -38,7 +38,6 @@ class SimulateTest(unittest.TestCase): - def setUp(self): """This method is run once before each unit test""" # Disable logging @@ -46,61 +45,68 @@ def setUp(self): def test_minimal(self): """Test that we can simlulate a SimpleReactor with sensitivity""" - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools', 'data', 'sim', 'simple') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "tools", "data", "sim", "simple" + ) - input_file = os.path.join(folder, 'input.py') - chemkin_file = os.path.join(folder, 'chem.inp') - dict_file = os.path.join(folder, 'species_dictionary.txt') + input_file = os.path.join(folder, "input.py") + chemkin_file = os.path.join(folder, "chem.inp") + dict_file = os.path.join(folder, "species_dictionary.txt") run_simulation(input_file, chemkin_file, dict_file) - simfile = os.path.join(folder, 'solver', 'simulation_1_13.csv') - sensfile = os.path.join(folder, 'solver', 'sensitivity_1_SPC_1.csv') + simfile = os.path.join(folder, "solver", "simulation_1_13.csv") + sensfile = os.path.join(folder, "solver", "sensitivity_1_SPC_1.csv") self.assertTrue(os.path.isfile(simfile)) self.assertTrue(os.path.isfile(sensfile)) - shutil.rmtree(os.path.join(folder, 'solver')) - os.remove(os.path.join(folder, 'simulate.log')) + shutil.rmtree(os.path.join(folder, "solver")) + os.remove(os.path.join(folder, "simulate.log")) def test_liquid(self): """Test that we can simulate a LiquidReactor with sensitivity""" - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools', 'data', 'sim', 'liquid') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "tools", "data", "sim", "liquid" + ) - input_file = os.path.join(folder, 'input.py') - chemkin_file = os.path.join(folder, 'chem.inp') - dict_file = os.path.join(folder, 'species_dictionary.txt') + input_file = os.path.join(folder, "input.py") + chemkin_file = os.path.join(folder, "chem.inp") + dict_file = os.path.join(folder, "species_dictionary.txt") run_simulation(input_file, chemkin_file, dict_file, diffusion_limited=False) - simfile = os.path.join(folder, 'solver', 'simulation_1_28.csv') - sensfile = os.path.join(folder, 'solver', 'sensitivity_1_SPC_1.csv') + simfile = os.path.join(folder, "solver", "simulation_1_28.csv") + sensfile = os.path.join(folder, "solver", "sensitivity_1_SPC_1.csv") self.assertTrue(os.path.isfile(simfile)) self.assertTrue(os.path.isfile(sensfile)) - shutil.rmtree(os.path.join(folder, 'solver')) - os.remove(os.path.join(folder, 'simulate.log')) + shutil.rmtree(os.path.join(folder, "solver")) + os.remove(os.path.join(folder, "simulate.log")) def test_mb_sampled(self): """Test that we can simulate an MBSampledReactor""" - folder = os.path.join(os.path.dirname(rmgpy.__file__), 'tools', 'data', 'sim', 'mbSampled') + folder = os.path.join( + os.path.dirname(rmgpy.__file__), "tools", "data", "sim", "mbSampled" + ) - input_file = os.path.join(folder, 'input.py') - chemkin_file = os.path.join(folder, 'chem.inp') - dict_file = os.path.join(folder, 'species_dictionary.txt') + input_file = os.path.join(folder, "input.py") + chemkin_file = os.path.join(folder, "chem.inp") + dict_file = os.path.join(folder, "species_dictionary.txt") run_simulation(input_file, chemkin_file, dict_file) - simfile = os.path.join(folder, 'solver', 'simulation_1_30.csv') + simfile = os.path.join(folder, "solver", "simulation_1_30.csv") self.assertTrue(os.path.isfile(simfile)) - shutil.rmtree(os.path.join(folder, 'solver')) - os.remove(os.path.join(folder, 'simulate.log')) + shutil.rmtree(os.path.join(folder, "solver")) + os.remove(os.path.join(folder, "simulate.log")) def tearDown(self): import rmgpy.data.rmg + rmgpy.data.rmg.database = None # Reset logging diff --git a/test/rmgpy/tools/uncertaintyTest.py b/test/rmgpy/tools/uncertaintyTest.py index 770dab0a8e..98ead05f21 100644 --- a/test/rmgpy/tools/uncertaintyTest.py +++ b/test/rmgpy/tools/uncertaintyTest.py @@ -38,36 +38,46 @@ class TestUncertainty(unittest.TestCase): - @classmethod def setUpClass(cls): """This method is run once before all tests in this class.""" - test_dir = rmgpy.settings['test_data.directory'] + test_dir = rmgpy.settings["test_data.directory"] - data_dir = os.path.join(test_dir, 'testing_database') - chem_dir = os.path.join(test_dir, 'parsing_data') - chemkin_file = os.path.join(chem_dir, 'chem_annotated.inp') - spc_dict = os.path.join(chem_dir, 'species_dictionary.txt') + data_dir = os.path.join(test_dir, "testing_database") + chem_dir = os.path.join(test_dir, "parsing_data") + chemkin_file = os.path.join(chem_dir, "chem_annotated.inp") + spc_dict = os.path.join(chem_dir, "species_dictionary.txt") - cls.uncertainty = Uncertainty(output_directory='chemDir') + cls.uncertainty = Uncertainty(output_directory="chemDir") cls.uncertainty.load_model(chemkin_file, spc_dict) # load database properly cls.uncertainty.database = RMGDatabase() cls.uncertainty.database.load( data_dir, - kinetics_families=['1,2_shiftC', '6_membered_central_C-C_shift', 'Disproportionation', 'H_Abstraction', - 'Intra_ene_reaction', 'intra_H_migration', 'Intra_R_Add_Exo_scission', - 'intra_substitutionS_isomerization', 'R_Addition_MultipleBond', 'R_Recombination'], - kinetics_depositories=['training'], - thermo_libraries=['primaryThermoLibrary'], - reaction_libraries=['GRI-Mech3.0'], + kinetics_families=[ + "1,2_shiftC", + "6_membered_central_C-C_shift", + "Disproportionation", + "H_Abstraction", + "Intra_ene_reaction", + "intra_H_migration", + "Intra_R_Add_Exo_scission", + "intra_substitutionS_isomerization", + "R_Addition_MultipleBond", + "R_Recombination", + ], + kinetics_depositories=["training"], + thermo_libraries=["primaryThermoLibrary"], + reaction_libraries=["GRI-Mech3.0"], ) # Prepare the database by loading training reactions and averaging the rate rules verbosely for family in cls.uncertainty.database.kinetics.families.values(): if not family.auto_generated: - family.add_rules_from_training(thermo_database=cls.uncertainty.database.thermo) + family.add_rules_from_training( + thermo_database=cls.uncertainty.database.thermo + ) family.fill_rules_by_averaging_up(verbose=True) @classmethod @@ -75,6 +85,7 @@ def tearDownClass(cls): """This method is run once after all tests in this class.""" # Reset module level database import rmgpy.data.rmg + rmgpy.data.rmg.database = None def test_uncertainty_assignment(self): @@ -83,44 +94,100 @@ def test_uncertainty_assignment(self): """ # Step 1: parse comments for sources self.uncertainty.extract_sources_from_model() - self.assertEqual(len(self.uncertainty.species_sources_dict), len(self.uncertainty.species_list)) - self.assertEqual(len(self.uncertainty.reaction_sources_dict), len(self.uncertainty.reaction_list)) + self.assertEqual( + len(self.uncertainty.species_sources_dict), + len(self.uncertainty.species_list), + ) + self.assertEqual( + len(self.uncertainty.reaction_sources_dict), + len(self.uncertainty.reaction_list), + ) # Step 2: compile sources to obtain overall list self.uncertainty.compile_all_sources() # Check thermo sources grp_expected = { - 'O2s-CsH', 'O2s-OsH', 'O2d-Cd', 'Cds-OdHH', 'Cds-(Cdd-O2d)HH', 'Ct-CtH', 'Cds-CdsHH', 'Cs-OsHHH', - 'Cs-CsHHH', 'Cdd-CdsOd' + "O2s-CsH", + "O2s-OsH", + "O2d-Cd", + "Cds-OdHH", + "Cds-(Cdd-O2d)HH", + "Ct-CtH", + "Cds-CdsHH", + "Cs-OsHHH", + "Cs-CsHHH", + "Cdd-CdsOd", } - rad_expected = {'Acetyl', 'HOOJ', 'Cds_P', 'CCJ', 'CsJOH', 'CJ3'} - other_expected = {'ketene', 'R'} - self.assertEqual(set(self.uncertainty.all_thermo_sources), {'GAV', 'Library', 'QM'}) - self.assertEqual(set(self.uncertainty.all_thermo_sources['GAV']), {'group', 'radical', 'other'}) - grp = set([e.label for e in self.uncertainty.all_thermo_sources['GAV']['group']]) - rad = set([e.label for e in self.uncertainty.all_thermo_sources['GAV']['radical']]) - other = set([e.label for e in self.uncertainty.all_thermo_sources['GAV']['other']]) + rad_expected = {"Acetyl", "HOOJ", "Cds_P", "CCJ", "CsJOH", "CJ3"} + other_expected = {"ketene", "R"} + self.assertEqual( + set(self.uncertainty.all_thermo_sources), {"GAV", "Library", "QM"} + ) + self.assertEqual( + set(self.uncertainty.all_thermo_sources["GAV"]), + {"group", "radical", "other"}, + ) + grp = set( + [e.label for e in self.uncertainty.all_thermo_sources["GAV"]["group"]] + ) + rad = set( + [e.label for e in self.uncertainty.all_thermo_sources["GAV"]["radical"]] + ) + other = set( + [e.label for e in self.uncertainty.all_thermo_sources["GAV"]["other"]] + ) self.assertEqual(grp, grp_expected) self.assertEqual(rad, rad_expected) self.assertEqual(other, other_expected) - self.assertEqual(sorted(self.uncertainty.all_thermo_sources['Library']), [0, 1, 5, 13, 14]) - self.assertFalse(self.uncertainty.all_thermo_sources['QM']) + self.assertEqual( + sorted(self.uncertainty.all_thermo_sources["Library"]), [0, 1, 5, 13, 14] + ) + self.assertFalse(self.uncertainty.all_thermo_sources["QM"]) # Check kinetics sources rr_expected = { - 'O_rad/NonDeO;O_Csrad', 'Ct_rad/Ct;O_Csrad', 'O_atom_triplet;O_Csrad', 'C_rad/H2/Cd;O_Csrad', - 'CH2_triplet;O_Csrad', 'H_rad;O_Csrad', 'O_rad/NonDeC;O_Csrad', 'C_rad/Cs3;O_Csrad', 'Cd_pri_rad;O_Csrad', - 'O2b;O_Csrad', 'O_pri_rad;Cmethyl_Csrad', 'C_rad/H/NonDeC;O_Csrad', 'O_pri_rad;O_Csrad', - 'C_methyl;O_Csrad', 'C_rad/H2/Cs;O_Csrad', 'C_rad/H2/O;O_Csrad', 'CO_pri_rad;O_Csrad' + "O_rad/NonDeO;O_Csrad", + "Ct_rad/Ct;O_Csrad", + "O_atom_triplet;O_Csrad", + "C_rad/H2/Cd;O_Csrad", + "CH2_triplet;O_Csrad", + "H_rad;O_Csrad", + "O_rad/NonDeC;O_Csrad", + "C_rad/Cs3;O_Csrad", + "Cd_pri_rad;O_Csrad", + "O2b;O_Csrad", + "O_pri_rad;Cmethyl_Csrad", + "C_rad/H/NonDeC;O_Csrad", + "O_pri_rad;O_Csrad", + "C_methyl;O_Csrad", + "C_rad/H2/Cs;O_Csrad", + "C_rad/H2/O;O_Csrad", + "CO_pri_rad;O_Csrad", } - self.assertEqual(set(self.uncertainty.all_kinetic_sources), {'Rate Rules', 'Training', 'Library', 'PDep'}) - self.assertEqual(list(self.uncertainty.all_kinetic_sources['Rate Rules'].keys()), ['Disproportionation']) - rr = set([e.label for e in self.uncertainty.all_kinetic_sources['Rate Rules']['Disproportionation']]) + self.assertEqual( + set(self.uncertainty.all_kinetic_sources), + {"Rate Rules", "Training", "Library", "PDep"}, + ) + self.assertEqual( + list(self.uncertainty.all_kinetic_sources["Rate Rules"].keys()), + ["Disproportionation"], + ) + rr = set( + [ + e.label + for e in self.uncertainty.all_kinetic_sources["Rate Rules"][ + "Disproportionation" + ] + ] + ) self.assertEqual(rr, rr_expected) - self.assertEqual(list(self.uncertainty.all_kinetic_sources['Training'].keys()), ['Disproportionation']) - self.assertEqual(self.uncertainty.all_kinetic_sources['Library'], [0]) - self.assertEqual(self.uncertainty.all_kinetic_sources['PDep'], [4]) + self.assertEqual( + list(self.uncertainty.all_kinetic_sources["Training"].keys()), + ["Disproportionation"], + ) + self.assertEqual(self.uncertainty.all_kinetic_sources["Library"], [0]) + self.assertEqual(self.uncertainty.all_kinetic_sources["PDep"], [4]) # Step 3: assign and propagate uncertainties self.uncertainty.assign_parameter_uncertainties() @@ -128,6 +195,11 @@ def test_uncertainty_assignment(self): thermo_unc = self.uncertainty.thermo_input_uncertainties kinetic_unc = self.uncertainty.kinetic_input_uncertainties - np.testing.assert_allclose(thermo_unc, [1.5, 1.5, 2.0, 1.9, 3.1, 1.5, 1.9, 2.0, 2.0, 1.9, 2.2, 1.9, 2.0, 1.5], - rtol=1e-4) - np.testing.assert_allclose(kinetic_unc, [0.5, 1.5, 5.806571, 0.5, 2.0], rtol=1e-4) + np.testing.assert_allclose( + thermo_unc, + [1.5, 1.5, 2.0, 1.9, 3.1, 1.5, 1.9, 2.0, 2.0, 1.9, 2.2, 1.9, 2.0, 1.5], + rtol=1e-4, + ) + np.testing.assert_allclose( + kinetic_unc, [0.5, 1.5, 5.806571, 0.5, 2.0], rtol=1e-4 + ) diff --git a/test/rmgpy/transportDataTest.py b/test/rmgpy/transportDataTest.py index 874e848a40..c8f03711c2 100644 --- a/test/rmgpy/transportDataTest.py +++ b/test/rmgpy/transportDataTest.py @@ -50,12 +50,12 @@ def setUp(self): A function run before each unit test in this class. """ self.shapeIndex = 1 - self.epsilon = Energy(2.104, 'kJ/mol') - self.sigma = Length(3.402, 'angstroms') - self.dipoleMoment = DipoleMoment(1.000, 'C*m') - self.polarizability = Volume(0.134, 'angstroms^3') + self.epsilon = Energy(2.104, "kJ/mol") + self.sigma = Length(3.402, "angstroms") + self.dipoleMoment = DipoleMoment(1.000, "C*m") + self.polarizability = Volume(0.134, "angstroms^3") self.rotrelaxcollnum = 0.000 - self.comment = 'test' + self.comment = "test" self.transport = TransportData( shapeIndex=self.shapeIndex, @@ -77,25 +77,33 @@ def test_epsilon(self): """ Test that the TransportData epsilon property was properly set. """ - self.assertAlmostEqual(self.transport.epsilon.value_si, self.epsilon.value_si, 6) + self.assertAlmostEqual( + self.transport.epsilon.value_si, self.epsilon.value_si, 6 + ) def test_sigma(self): """ Test that the TransportData sigma property was properly set. """ - self.assertAlmostEqual(self.transport.sigma.value_si * 1e10, self.sigma.value_si * 1e10, 6) + self.assertAlmostEqual( + self.transport.sigma.value_si * 1e10, self.sigma.value_si * 1e10, 6 + ) def test_dipole_moment(self): """ Test that the TransportData dipoleMoment property was properly set. """ - self.assertAlmostEqual(self.transport.dipoleMoment.value_si, self.dipoleMoment.value_si, 6) + self.assertAlmostEqual( + self.transport.dipoleMoment.value_si, self.dipoleMoment.value_si, 6 + ) def test_polarizability(self): """ Test that the TransportData polarizability property was properly set. """ - self.assertAlmostEqual(self.transport.polarizability.value_si, self.polarizability.value_si, 6) + self.assertAlmostEqual( + self.transport.polarizability.value_si, self.polarizability.value_si, 6 + ) def test_rotrelaxcollnum(self): """ @@ -125,13 +133,24 @@ def test_pickle(self): Test that a TransportData object can be pickled and unpickled with no loss of information. """ import pickle + transport = pickle.loads(pickle.dumps(self.transport, -1)) self.assertAlmostEqual(self.transport.shapeIndex, transport.shapeIndex, 4) - self.assertAlmostEqual(self.transport.epsilon.value_si, transport.epsilon.value_si, 4) - self.assertAlmostEqual(self.transport.sigma.value_si, transport.sigma.value_si, 4) - self.assertAlmostEqual(self.transport.dipoleMoment.value_si, transport.dipoleMoment.value_si, 4) - self.assertAlmostEqual(self.transport.polarizability.value_si, transport.polarizability.value_si, 4) - self.assertAlmostEqual(self.transport.rotrelaxcollnum, transport.rotrelaxcollnum, 4) + self.assertAlmostEqual( + self.transport.epsilon.value_si, transport.epsilon.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.sigma.value_si, transport.sigma.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.dipoleMoment.value_si, transport.dipoleMoment.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.polarizability.value_si, transport.polarizability.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.rotrelaxcollnum, transport.rotrelaxcollnum, 4 + ) self.assertEqual(self.transport.comment, transport.comment) def test_repr(self): @@ -139,47 +158,72 @@ def test_repr(self): Test that a TransportData object can be reconstructed from its repr() output with no loss of information """ namespace = {} - exec('transport = {0!r}'.format(self.transport), globals(), namespace) - self.assertIn('transport', namespace) - transport = namespace['transport'] + exec("transport = {0!r}".format(self.transport), globals(), namespace) + self.assertIn("transport", namespace) + transport = namespace["transport"] self.assertAlmostEqual(self.transport.shapeIndex, transport.shapeIndex, 4) - self.assertAlmostEqual(self.transport.epsilon.value_si, transport.epsilon.value_si, 4) - self.assertAlmostEqual(self.transport.sigma.value_si, transport.sigma.value_si, 4) - self.assertAlmostEqual(self.transport.dipoleMoment.value_si, transport.dipoleMoment.value_si, 4) - self.assertAlmostEqual(self.transport.polarizability.value_si, transport.polarizability.value_si, 4) - self.assertAlmostEqual(self.transport.rotrelaxcollnum, transport.rotrelaxcollnum, 4) + self.assertAlmostEqual( + self.transport.epsilon.value_si, transport.epsilon.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.sigma.value_si, transport.sigma.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.dipoleMoment.value_si, transport.dipoleMoment.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.polarizability.value_si, transport.polarizability.value_si, 4 + ) + self.assertAlmostEqual( + self.transport.rotrelaxcollnum, transport.rotrelaxcollnum, 4 + ) self.assertEqual(self.transport.comment, transport.comment) def test_to_cantera(self): """ Test that the Cantera GasTransportData creation is successful. """ - transport = TransportData(shapeIndex=0, epsilon=(1134.93, 'J/mol'), sigma=(3.33, 'angstrom'), - dipoleMoment=(2, 'De'), polarizability=(1, 'angstrom^3'), - rotrelaxcollnum=15.0, comment="""GRI-Mech""") + transport = TransportData( + shapeIndex=0, + epsilon=(1134.93, "J/mol"), + sigma=(3.33, "angstrom"), + dipoleMoment=(2, "De"), + polarizability=(1, "angstrom^3"), + rotrelaxcollnum=15.0, + comment="""GRI-Mech""", + ) rmg_ct_transport = transport.to_cantera() import cantera as ct - ct_species = ct.Species.fromCti("""species(name=u'Ar', + + ct_species = ct.Species.fromCti( + """species(name=u'Ar', atoms='Ar:1', transport=gas_transport(geom='atom', diam=3.33, well_depth=136.501, dipole=2.0, polar=1.0, - rot_relax=15.0))""") + rot_relax=15.0))""" + ) ct_transport = ct_species.transport self.assertAlmostEqual(rmg_ct_transport.geometry, ct_transport.geometry) - self.assertAlmostEqual(rmg_ct_transport.acentric_factor, ct_transport.acentric_factor) + self.assertAlmostEqual( + rmg_ct_transport.acentric_factor, ct_transport.acentric_factor + ) self.assertAlmostEqual(rmg_ct_transport.diameter, ct_transport.diameter) self.assertAlmostEqual(rmg_ct_transport.dipole, ct_transport.dipole) - self.assertAlmostEqual(rmg_ct_transport.polarizability, ct_transport.polarizability) - self.assertAlmostEqual(rmg_ct_transport.rotational_relaxation, ct_transport.rotational_relaxation) + self.assertAlmostEqual( + rmg_ct_transport.polarizability, ct_transport.polarizability + ) + self.assertAlmostEqual( + rmg_ct_transport.rotational_relaxation, ct_transport.rotational_relaxation + ) self.assertAlmostEqual(rmg_ct_transport.well_depth, ct_transport.well_depth) ################################################################################# -if __name__ == '__main__': +if __name__ == "__main__": unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) From e1615b9222f7bca471f078459649ce7eaa095ea1 Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 10:57:13 -0400 Subject: [PATCH 08/88] delete unnecessary name main statements --- pytest.ini | 1 + test/arkane/arkaneInputTest.py | 7 ------- test/arkane/arkaneKineticsTest.py | 7 ------- test/arkane/arkaneMainTest.py | 7 ------- test/arkane/arkaneOutputTest.py | 7 ------- test/arkane/arkaneThermoTest.py | 7 ------- test/arkane/commonTest.py | 7 ------- test/arkane/encorr/aeTest.py | 4 ---- test/arkane/encorr/bacTest.py | 4 ---- test/arkane/encorr/corrTest.py | 4 ---- test/arkane/encorr/isodesmicTest.py | 4 ---- test/arkane/encorr/referenceTest.py | 4 ---- test/arkane/ess/arkaneGaussianTest.py | 7 ------- test/arkane/ess/factoryTest.py | 7 ------- test/arkane/ess/molproTest.py | 7 ------- test/arkane/ess/orcaTest.py | 7 ------- test/arkane/ess/psi4Test.py | 7 ------- test/arkane/ess/qchemTest.py | 7 ------- test/arkane/ess/terachemTest.py | 7 ------- test/arkane/explorerTest.py | 7 ------- test/arkane/modelchemTest.py | 4 ---- test/arkane/pdepTest.py | 7 ------- test/arkane/statmechTest.py | 7 ------- test/database/databaseTest.py | 4 ---- test/rmgpy/chemkinTest.py | 2 +- test/rmgpy/constantsTest.py | 3 --- test/rmgpy/data/baseTest.py | 3 --- test/rmgpy/data/kinetics/familyTest.py | 7 ------- test/rmgpy/data/solvationTest.py | 8 -------- test/rmgpy/data/surfaceTest.py | 8 -------- test/rmgpy/data/thermoTest.py | 3 --- test/rmgpy/data/transportTest.py | 3 --- test/rmgpy/kinetics/chebyshevTest.py | 3 --- test/rmgpy/kinetics/diffusionLimitedTest.py | 3 --- test/rmgpy/kinetics/falloffTest.py | 3 --- test/rmgpy/molecule/adjlistTest.py | 4 ---- test/rmgpy/molecule/atomtypeTest.py | 7 ------- test/rmgpy/molecule/drawTest.py | 3 --- test/rmgpy/molecule/elementTest.py | 3 --- test/rmgpy/molecule/graphTest.py | 3 --- test/rmgpy/molecule/groupTest.py | 3 --- test/rmgpy/molecule/inchiTest.py | 4 ---- test/rmgpy/molecule/moleculeTest.py | 3 --- test/rmgpy/molecule/symmetryTest.py | 3 --- test/rmgpy/molecule/vf2Test.py | 3 --- test/rmgpy/pdep/configurationTest.py | 3 --- test/rmgpy/pdep/networkTest.py | 3 --- test/rmgpy/qm/gaussianTest.py | 3 --- test/rmgpy/qm/mainTest.py | 3 --- test/rmgpy/qm/mopacTest.py | 3 --- test/rmgpy/qm/qmMoleculeTest.py | 4 ---- test/rmgpy/quantityTest.py | 7 ------- test/rmgpy/reactionTest.py | 3 --- test/rmgpy/rmg/inputTest.py | 4 ---- test/rmgpy/rmg/modelTest.py | 4 ---- test/rmgpy/rmg/pdepTest.py | 4 ---- test/rmgpy/rmg/reactTest.py | 4 ---- test/rmgpy/rmgobjectTest.py | 7 ------- test/rmgpy/solver/solverBaseTest.py | 4 ---- test/rmgpy/speciesTest.py | 3 --- test/rmgpy/statmech/ndTorsionsTest.py | 4 ---- test/rmgpy/statmech/schrodingerTest.py | 7 ------- test/rmgpy/statmech/torsionTest.py | 7 ------- test/rmgpy/statmech/vibrationTest.py | 7 ------- test/rmgpy/thermo/convertTest.py | 3 --- test/rmgpy/thermo/nasaTest.py | 7 ------- test/rmgpy/thermo/wilhoitTest.py | 7 ------- test/rmgpy/transportDataTest.py | 3 --- 68 files changed, 2 insertions(+), 325 deletions(-) diff --git a/pytest.ini b/pytest.ini index 4febe07d5b..af4166c7ed 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,4 @@ [pytest] +addopts = --ignore test/regression testpaths = test python_files = *Test.py \ No newline at end of file diff --git a/test/arkane/arkaneInputTest.py b/test/arkane/arkaneInputTest.py index 2a22ea7c75..6aecf2c7cb 100644 --- a/test/arkane/arkaneInputTest.py +++ b/test/arkane/arkaneInputTest.py @@ -403,10 +403,3 @@ def test_process_model_chemistry(self): process_model_chemistry( "CCSD(T)-F12a/aug-cc-pVTZ//CCSD(T)-F12a/aug-cc-pVTZ//B3LYP/6-311++G(3df,3pd)" ) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/arkaneKineticsTest.py b/test/arkane/arkaneKineticsTest.py index 71f4a729c7..0f21e40b7d 100644 --- a/test/arkane/arkaneKineticsTest.py +++ b/test/arkane/arkaneKineticsTest.py @@ -99,10 +99,3 @@ def test_get_tlist_for_kineticsjob(self): inverse_tlist[-1] - inverse_tlist[-2], ), ) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/arkaneMainTest.py b/test/arkane/arkaneMainTest.py index bed972c85a..56bdb3b7b4 100644 --- a/test/arkane/arkaneMainTest.py +++ b/test/arkane/arkaneMainTest.py @@ -148,10 +148,3 @@ def tearDownClass(cls): files_to_delete=cls.files_to_delete, file_extensions_to_delete=cls.extensions_to_delete, ) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/arkaneOutputTest.py b/test/arkane/arkaneOutputTest.py index 8eaba16b6f..e3ce30eb5a 100644 --- a/test/arkane/arkaneOutputTest.py +++ b/test/arkane/arkaneOutputTest.py @@ -177,10 +177,3 @@ def test_get_str_xyz(self): H -1.12319800 0.00000000 -1.78740100 H -2.09943900 0.00000000 -0.22075700""" self.assertEqual(xyz_str, expected_xyz_str) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/arkaneThermoTest.py b/test/arkane/arkaneThermoTest.py index e521161aa9..88e0070536 100644 --- a/test/arkane/arkaneThermoTest.py +++ b/test/arkane/arkaneThermoTest.py @@ -65,10 +65,3 @@ def test_element_count_from_conformer(self): """Test Getting an element count dictionary from the species.conformer attribute""" element_count = self.thermo_job.element_count_from_conformer() self.assertEqual(element_count, {"H": 4, "C": 2}) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/commonTest.py b/test/arkane/commonTest.py index 8f61e2201a..a61b300a19 100644 --- a/test/arkane/commonTest.py +++ b/test/arkane/commonTest.py @@ -686,10 +686,3 @@ def test_convert_imaginary_freq_to_negative_float(self): self.assertEqual(convert_imaginary_freq_to_negative_float("5.2"), 5.2) self.assertEqual(convert_imaginary_freq_to_negative_float("5.2i"), -5.2) self.assertEqual(convert_imaginary_freq_to_negative_float("635.8i"), -635.8) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/aeTest.py b/test/arkane/encorr/aeTest.py index dc54f80658..0b2fa2cd95 100644 --- a/test/arkane/encorr/aeTest.py +++ b/test/arkane/encorr/aeTest.py @@ -114,7 +114,3 @@ def test_write_to_database(self): os.close(tmp_datafile_fd) os.remove(tmp_datafile_path) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/bacTest.py b/test/arkane/encorr/bacTest.py index 2c67c0adff..fed6fd3bec 100644 --- a/test/arkane/encorr/bacTest.py +++ b/test/arkane/encorr/bacTest.py @@ -405,7 +405,3 @@ def test_kfold(self): self.assertEqual(len(bac.dataset), 2) for d in bac.dataset: self.assertNotEqual(d.spc.index, train_folds[i]) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/corrTest.py b/test/arkane/encorr/corrTest.py index 0fb602bb01..288ba81b6e 100644 --- a/test/arkane/encorr/corrTest.py +++ b/test/arkane/encorr/corrTest.py @@ -139,7 +139,3 @@ def test_assign_frequency_scale_factor(self): freq_scale_factor = assign_frequency_scale_factor(self.composite_lot) self.assertAlmostEqual(freq_scale_factor, 0.984, places=1) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/isodesmicTest.py b/test/arkane/encorr/isodesmicTest.py index 973bcc602c..5700d981b6 100644 --- a/test/arkane/encorr/isodesmicTest.py +++ b/test/arkane/encorr/isodesmicTest.py @@ -456,7 +456,3 @@ def test_calculate_target_enthalpy(self): n_reactions_max=3, milp_software=["pyomo"] ) self.assertEqual(target_thermo.value_si, 115000.0) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/encorr/referenceTest.py b/test/arkane/encorr/referenceTest.py index 74e8554734..377bae41fb 100644 --- a/test/arkane/encorr/referenceTest.py +++ b/test/arkane/encorr/referenceTest.py @@ -284,7 +284,3 @@ def test_get_species_from_label(self): retrieved_species = self.database.get_species_from_label(test_labels) self.assertEqual(len(retrieved_species), 3) self.assertEqual(retrieved_species[0].label, "1-Butene") - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/arkaneGaussianTest.py b/test/arkane/ess/arkaneGaussianTest.py index 680429268a..b63ca43a14 100644 --- a/test/arkane/ess/arkaneGaussianTest.py +++ b/test/arkane/ess/arkaneGaussianTest.py @@ -380,10 +380,3 @@ def test_load_negative_frequency(self): with self.assertRaises(LogError): log = GaussianLog(os.path.join(self.data_path, "rocbs-qb3_85_methanol.out")) imaginary_freq = log.load_negative_frequency() - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/factoryTest.py b/test/arkane/ess/factoryTest.py index 250dbeadc0..00960a98d5 100644 --- a/test/arkane/ess/factoryTest.py +++ b/test/arkane/ess/factoryTest.py @@ -114,10 +114,3 @@ def test_ess_factory(self): with self.assertRaises(InputError): ess_factory(non_ess_log_path) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/molproTest.py b/test/arkane/ess/molproTest.py index fbcac3d477..848fca86a0 100644 --- a/test/arkane/ess/molproTest.py +++ b/test/arkane/ess/molproTest.py @@ -217,10 +217,3 @@ def test_get_t1_diagnostic(self): log = MolproLog(os.path.join(self.data_path, "ethylene_f12_dz.out")) t1_diagnostic = log.get_T1_diagnostic() self.assertAlmostEqual(t1_diagnostic, 0.01152184) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/orcaTest.py b/test/arkane/ess/orcaTest.py index 5067da711a..80e43fe9fc 100644 --- a/test/arkane/ess/orcaTest.py +++ b/test/arkane/ess/orcaTest.py @@ -182,10 +182,3 @@ def test_spin_multiplicity_from_orca_log(self): log = OrcaLog(os.path.join(self.data_path, "Orca_TS_test.log")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/psi4Test.py b/test/arkane/ess/psi4Test.py index c9058d7e59..3d47050947 100644 --- a/test/arkane/ess/psi4Test.py +++ b/test/arkane/ess/psi4Test.py @@ -690,10 +690,3 @@ def test_spin_multiplicity_from_psi4_log(self): log = Psi4Log(os.path.join(self.data_path, "opt_freq_dft_ts.out")) conformer, unscaled_frequencies = log.load_conformer() self.assertEqual(conformer.spin_multiplicity, 1) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/qchemTest.py b/test/arkane/ess/qchemTest.py index 379914bde2..bc0a51378c 100644 --- a/test/arkane/ess/qchemTest.py +++ b/test/arkane/ess/qchemTest.py @@ -223,10 +223,3 @@ def test_load_negative_frequency(self): with self.assertRaises(LogError): log = QChemLog(os.path.join(self.data_path, "npropyl.out")) imaginary_freq = log.load_negative_frequency() - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/ess/terachemTest.py b/test/arkane/ess/terachemTest.py index a455e0342d..79c128a44c 100644 --- a/test/arkane/ess/terachemTest.py +++ b/test/arkane/ess/terachemTest.py @@ -1384,10 +1384,3 @@ def test_load_scan_energies(self): ] # radians np.testing.assert_almost_equal(v_list, expected_v_list, 4) np.testing.assert_almost_equal(angles, expected_angles) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/explorerTest.py b/test/arkane/explorerTest.py index 57b6562cc4..468d989edc 100644 --- a/test/arkane/explorerTest.py +++ b/test/arkane/explorerTest.py @@ -101,10 +101,3 @@ def test_job_rxns(self): """ for rxn in self.explorer_job.job_rxns: self.assertIn(rxn, self.explorer_job.networks[0].path_reactions) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/modelchemTest.py b/test/arkane/modelchemTest.py index bbd70518f6..300e036968 100644 --- a/test/arkane/modelchemTest.py +++ b/test/arkane/modelchemTest.py @@ -303,7 +303,3 @@ def test_get_software_id(self): with self.assertRaises(ValueError): get_software_id("g") - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/pdepTest.py b/test/arkane/pdepTest.py index 9eb156ef17..64ed67ce93 100644 --- a/test/arkane/pdepTest.py +++ b/test/arkane/pdepTest.py @@ -185,10 +185,3 @@ def tearDown(cls): os.remove( os.path.join(settings["test_data.directory"], "arkane", "tst1", f) ) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/arkane/statmechTest.py b/test/arkane/statmechTest.py index 598caf60a8..7ff3816268 100644 --- a/test/arkane/statmechTest.py +++ b/test/arkane/statmechTest.py @@ -630,10 +630,3 @@ def test_hindered_rotor_from_scan_logs(self): ) ) os.remove(h2o2_path) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/database/databaseTest.py b/test/database/databaseTest.py index d546b40416..b80259961d 100644 --- a/test/database/databaseTest.py +++ b/test/database/databaseTest.py @@ -2568,7 +2568,3 @@ def general_check_sample_descends_to_group(self, group_name, group): if boo: raise ValueError("Error Occurred") - - -if __name__ == "__main__": - nose.run(argv=[__file__, "-v", "--nologcapture"], defaultTest=__name__) diff --git a/test/rmgpy/chemkinTest.py b/test/rmgpy/chemkinTest.py index 8165636702..e1a5a121fe 100644 --- a/test/rmgpy/chemkinTest.py +++ b/test/rmgpy/chemkinTest.py @@ -175,7 +175,7 @@ def test_read_and_write_and_read_template_reaction_family_for_minimal_example(se reaction2 = reactions[1] self.assertEqual(reaction2.family, "H_Abstraction") self.assertEqual( - frozenset("C/H3/Cs\H3;C_methyl".split(";")), frozenset(reaction2.template) + frozenset(r"C/H3/Cs\H3;C_methyl".split(";")), frozenset(reaction2.template) ) # save_chemkin_file chemkin_save_path = os.path.join(folder, "minimal", "chem_new.inp") diff --git a/test/rmgpy/constantsTest.py b/test/rmgpy/constantsTest.py index 53f9b629cb..d7338e959a 100644 --- a/test/rmgpy/constantsTest.py +++ b/test/rmgpy/constantsTest.py @@ -172,6 +172,3 @@ def test_hartree_energy(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/baseTest.py b/test/rmgpy/data/baseTest.py index 34bbe0d0e9..e23dc556f5 100644 --- a/test/rmgpy/data/baseTest.py +++ b/test/rmgpy/data/baseTest.py @@ -241,6 +241,3 @@ def test_forbidden_species(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/kinetics/familyTest.py b/test/rmgpy/data/kinetics/familyTest.py index 70ab8f0fac..cf0dd9e94e 100644 --- a/test/rmgpy/data/kinetics/familyTest.py +++ b/test/rmgpy/data/kinetics/familyTest.py @@ -1326,10 +1326,3 @@ def test_average_kinetics(self): ), 6, ) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/solvationTest.py b/test/rmgpy/data/solvationTest.py index da16b1d6ac..4d60d13fdf 100644 --- a/test/rmgpy/data/solvationTest.py +++ b/test/rmgpy/data/solvationTest.py @@ -611,11 +611,3 @@ def test_solvent_molecule(self): self.assertTrue( any([spc1.is_isomorphic(spc2) for spc2 in solvent_species_list]) ) - - -##################################################### - - -if __name__ == "__main__": - suite = TestLoader().loadTestsFromTestCase(TestSoluteDatabase) - TextTestRunner(verbosity=2).run(suite) diff --git a/test/rmgpy/data/surfaceTest.py b/test/rmgpy/data/surfaceTest.py index f49a421620..68ed63affa 100644 --- a/test/rmgpy/data/surfaceTest.py +++ b/test/rmgpy/data/surfaceTest.py @@ -149,11 +149,3 @@ def test_load_all_entries_on_one_metal(self): self.assertGreaterEqual(len(self.database.get_all_entries_on_metal("Pt")), 2) self.assertGreaterEqual(len(self.database.get_all_entries_on_metal("Ni")), 2) self.assertGreaterEqual(len(self.database.get_all_entries_on_metal("Co")), 2) - - -##################################################### - - -if __name__ == "__main__": - suite = TestLoader().loadTestsFromTestCase(TestMetalDatabase) - TextTestRunner(verbosity=2).run(suite) diff --git a/test/rmgpy/data/thermoTest.py b/test/rmgpy/data/thermoTest.py index ac60d0132a..1b9ebeb78c 100644 --- a/test/rmgpy/data/thermoTest.py +++ b/test/rmgpy/data/thermoTest.py @@ -3031,6 +3031,3 @@ def test_register_in_central_thermo_db3(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/data/transportTest.py b/test/rmgpy/data/transportTest.py index 6fcc186aad..6dc115813e 100644 --- a/test/rmgpy/data/transportTest.py +++ b/test/rmgpy/data/transportTest.py @@ -310,6 +310,3 @@ def test_get_all_transport_properties(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/chebyshevTest.py b/test/rmgpy/kinetics/chebyshevTest.py index 5e3d835d32..ce8e57017e 100644 --- a/test/rmgpy/kinetics/chebyshevTest.py +++ b/test/rmgpy/kinetics/chebyshevTest.py @@ -395,6 +395,3 @@ def test_is_identical_to(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/diffusionLimitedTest.py b/test/rmgpy/kinetics/diffusionLimitedTest.py index c661b7625f..41d69f6ebc 100644 --- a/test/rmgpy/kinetics/diffusionLimitedTest.py +++ b/test/rmgpy/kinetics/diffusionLimitedTest.py @@ -416,6 +416,3 @@ def test_get_effective_rate_3_to_2(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/kinetics/falloffTest.py b/test/rmgpy/kinetics/falloffTest.py index a622f9e155..24e9cf406b 100644 --- a/test/rmgpy/kinetics/falloffTest.py +++ b/test/rmgpy/kinetics/falloffTest.py @@ -925,6 +925,3 @@ def test_change_rate(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/adjlistTest.py b/test/rmgpy/molecule/adjlistTest.py index 3b317ff93e..23a0847ab1 100644 --- a/test/rmgpy/molecule/adjlistTest.py +++ b/test/rmgpy/molecule/adjlistTest.py @@ -962,7 +962,3 @@ def test_check_multiplicity(self): self.fail( "InvalidAdjacencyListError thrown unexpectedly for singlet [N]=C=[N]!" ) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=3)) diff --git a/test/rmgpy/molecule/atomtypeTest.py b/test/rmgpy/molecule/atomtypeTest.py index 6d790f3513..cf37eba7a9 100644 --- a/test/rmgpy/molecule/atomtypeTest.py +++ b/test/rmgpy/molecule/atomtypeTest.py @@ -1046,10 +1046,3 @@ def test_vacant_surface_site_atom_type(self): self.assertEqual(self.atom_type(self.mol77, 1), "H") self.assertEqual(self.atom_type(self.mol77, 3), "Xv") self.assertEqual(self.atom_type(self.mol78, 0), "Xv") - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/drawTest.py b/test/rmgpy/molecule/drawTest.py index 26d429847c..96c0722c78 100644 --- a/test/rmgpy/molecule/drawTest.py +++ b/test/rmgpy/molecule/drawTest.py @@ -165,6 +165,3 @@ def test_draw_hydrogen_bond_adsorbate(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/elementTest.py b/test/rmgpy/molecule/elementTest.py index 493ffadb67..b45872fa3f 100644 --- a/test/rmgpy/molecule/elementTest.py +++ b/test/rmgpy/molecule/elementTest.py @@ -114,6 +114,3 @@ def test_chemkin_name(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/graphTest.py b/test/rmgpy/molecule/graphTest.py index eb4d78862f..be3a191fa0 100644 --- a/test/rmgpy/molecule/graphTest.py +++ b/test/rmgpy/molecule/graphTest.py @@ -1011,6 +1011,3 @@ def test_sort_cyclic_vertices_unconnected(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/groupTest.py b/test/rmgpy/molecule/groupTest.py index bd700a53b7..308f447546 100644 --- a/test/rmgpy/molecule/groupTest.py +++ b/test/rmgpy/molecule/groupTest.py @@ -1757,6 +1757,3 @@ def test_get_element_count(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/inchiTest.py b/test/rmgpy/molecule/inchiTest.py index 248f19dbe9..4b0f800942 100644 --- a/test/rmgpy/molecule/inchiTest.py +++ b/test/rmgpy/molecule/inchiTest.py @@ -345,7 +345,3 @@ def test_singlet_methylene(self): self.assertEquals(at.lone_pairs, 1) else: self.assertEquals(at.lone_pairs, 0) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/rmgpy/molecule/moleculeTest.py b/test/rmgpy/molecule/moleculeTest.py index 88daabfe8c..b9d04e0581 100644 --- a/test/rmgpy/molecule/moleculeTest.py +++ b/test/rmgpy/molecule/moleculeTest.py @@ -3069,6 +3069,3 @@ def test_remove_van_der_waals_bonds(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/symmetryTest.py b/test/rmgpy/molecule/symmetryTest.py index 634c985b69..3ee3061fb9 100644 --- a/test/rmgpy/molecule/symmetryTest.py +++ b/test/rmgpy/molecule/symmetryTest.py @@ -783,6 +783,3 @@ def test_indistinguishable_2(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/molecule/vf2Test.py b/test/rmgpy/molecule/vf2Test.py index edf7429f50..386c1bd4b1 100644 --- a/test/rmgpy/molecule/vf2Test.py +++ b/test/rmgpy/molecule/vf2Test.py @@ -104,6 +104,3 @@ def test_clear_mapping(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/pdep/configurationTest.py b/test/rmgpy/pdep/configurationTest.py index 3a33722b67..c6e70a7f2f 100644 --- a/test/rmgpy/pdep/configurationTest.py +++ b/test/rmgpy/pdep/configurationTest.py @@ -317,6 +317,3 @@ def test_no_nan_in_densStates(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/pdep/networkTest.py b/test/rmgpy/pdep/networkTest.py index 908ee68354..1415bc3fb0 100644 --- a/test/rmgpy/pdep/networkTest.py +++ b/test/rmgpy/pdep/networkTest.py @@ -477,6 +477,3 @@ def test_get_all_species(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/qm/gaussianTest.py b/test/rmgpy/qm/gaussianTest.py index 15504d69c0..22465f4e4f 100644 --- a/test/rmgpy/qm/gaussianTest.py +++ b/test/rmgpy/qm/gaussianTest.py @@ -187,6 +187,3 @@ def test_load_thermo_data(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/qm/mainTest.py b/test/rmgpy/qm/mainTest.py index 45c3c5082f..56177bb177 100644 --- a/test/rmgpy/qm/mainTest.py +++ b/test/rmgpy/qm/mainTest.py @@ -332,6 +332,3 @@ def test_run_jobs(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/qm/mopacTest.py b/test/rmgpy/qm/mopacTest.py index 352fae91da..15ead6a369 100644 --- a/test/rmgpy/qm/mopacTest.py +++ b/test/rmgpy/qm/mopacTest.py @@ -305,6 +305,3 @@ def test_load_thermo_data(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/qm/qmMoleculeTest.py b/test/rmgpy/qm/qmMoleculeTest.py index 7af6fac643..edd19deecb 100644 --- a/test/rmgpy/qm/qmMoleculeTest.py +++ b/test/rmgpy/qm/qmMoleculeTest.py @@ -98,7 +98,3 @@ def test_rd_embed_uncommon_species(self): rdmol, _ = geom.rd_embed(rdmol, num_conf_attempts=20) self.assertEqual(rdmol.GetNumConformers(), 20) shutil.rmtree(scratch_dir) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/quantityTest.py b/test/rmgpy/quantityTest.py index eee4ad46b7..9791869063 100644 --- a/test/rmgpy/quantityTest.py +++ b/test/rmgpy/quantityTest.py @@ -1319,10 +1319,3 @@ def test_array_make_object(self): self.assertEqual(minimal_array.as_dict(), self.minimal_array.as_dict()) self.assertEqual(known_array.as_dict(), self.known_array.as_dict()) self.assertEqual(uncertain_array.as_dict(), self.uncertain_array.as_dict()) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/reactionTest.py b/test/rmgpy/reactionTest.py index 3367461a79..6562628f80 100644 --- a/test/rmgpy/reactionTest.py +++ b/test/rmgpy/reactionTest.py @@ -3099,6 +3099,3 @@ def test_falloff(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/rmg/inputTest.py b/test/rmgpy/rmg/inputTest.py index 740f65faf0..e0d10af2b0 100644 --- a/test/rmgpy/rmg/inputTest.py +++ b/test/rmgpy/rmg/inputTest.py @@ -380,7 +380,3 @@ def test_mb_sampled_reactor_mole_fractions_normalize_1(self, mock_logging): mock_logging.warning.assert_called_with( "Initial mole fractions do not sum to one; normalizing." ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/rmgpy/rmg/modelTest.py b/test/rmgpy/rmg/modelTest.py index 8264ede04c..05dd1dc690 100644 --- a/test/rmgpy/rmg/modelTest.py +++ b/test/rmgpy/rmg/modelTest.py @@ -1165,7 +1165,3 @@ def tearDownClass(cls): import shutil shutil.rmtree(cls.dirname) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/rmgpy/rmg/pdepTest.py b/test/rmgpy/rmg/pdepTest.py index 33c6e87212..1a070a9316 100644 --- a/test/rmgpy/rmg/pdepTest.py +++ b/test/rmgpy/rmg/pdepTest.py @@ -374,7 +374,3 @@ def test_energy_filter(self): def test_flux_filter(self): prods = self.pdepnetwork.get_rate_filtered_products(1000.0, 100000.0, 1.0) self.assertEquals(len(prods), 0) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/rmgpy/rmg/reactTest.py b/test/rmgpy/rmg/reactTest.py index 6dba13f515..26f445993f 100644 --- a/test/rmgpy/rmg/reactTest.py +++ b/test/rmgpy/rmg/reactTest.py @@ -180,7 +180,3 @@ def tearDown(self): import rmgpy.data.rmg rmgpy.data.rmg.database = None - - -if __name__ == "__main__": - unittest.main() diff --git a/test/rmgpy/rmgobjectTest.py b/test/rmgpy/rmgobjectTest.py index 46be83d93a..a9fe2211e7 100644 --- a/test/rmgpy/rmgobjectTest.py +++ b/test/rmgpy/rmgobjectTest.py @@ -522,10 +522,3 @@ class Data: self.assertIsInstance(key, Data) self.assertEqual(key, Data("test")) self.assertEqual(val, "test") - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/solver/solverBaseTest.py b/test/rmgpy/solver/solverBaseTest.py index 5d8b8c30fc..8fc7a7ce74 100644 --- a/test/rmgpy/solver/solverBaseTest.py +++ b/test/rmgpy/solver/solverBaseTest.py @@ -239,7 +239,3 @@ def test_pickle(self): self.assertEqual( rxn_sys.termination[1].time.value_si, rxn_sys1.termination[1].time.value_si ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/rmgpy/speciesTest.py b/test/rmgpy/speciesTest.py index a00c8afdb8..fbf423f2f4 100644 --- a/test/rmgpy/speciesTest.py +++ b/test/rmgpy/speciesTest.py @@ -653,6 +653,3 @@ def test_species_label(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/ndTorsionsTest.py b/test/rmgpy/statmech/ndTorsionsTest.py index 5c96b9da3e..fb7b3ec6d7 100644 --- a/test/rmgpy/statmech/ndTorsionsTest.py +++ b/test/rmgpy/statmech/ndTorsionsTest.py @@ -140,7 +140,3 @@ def test_hindered_rotor_nd(self): self.assertAlmostEqual( self.hdnd.calc_partition_function(300.0), 2.899287634962152, 5 ) - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/schrodingerTest.py b/test/rmgpy/statmech/schrodingerTest.py index 2f43d288b0..91bedfc0b4 100644 --- a/test/rmgpy/statmech/schrodingerTest.py +++ b/test/rmgpy/statmech/schrodingerTest.py @@ -133,10 +133,3 @@ def test_get_density_of_states(self): temperature, self.energy, self.degeneracy, self.n0 ) self.assertAlmostEqual(q_exp / q_act, 1.0, 2) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/torsionTest.py b/test/rmgpy/statmech/torsionTest.py index 376e6576cc..007aa552c2 100644 --- a/test/rmgpy/statmech/torsionTest.py +++ b/test/rmgpy/statmech/torsionTest.py @@ -548,10 +548,3 @@ def test_pickle(self): self.assertEqual(self.mode.barrier.units, mode.barrier.units) self.assertEqual(self.mode.symmetry, mode.symmetry) self.assertEqual(self.mode.quantum, mode.quantum) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/statmech/vibrationTest.py b/test/rmgpy/statmech/vibrationTest.py index 388d712b5d..4b1a6ab41b 100644 --- a/test/rmgpy/statmech/vibrationTest.py +++ b/test/rmgpy/statmech/vibrationTest.py @@ -258,10 +258,3 @@ def test_pickle(self): self.assertAlmostEqual(freq0, freq, 6) self.assertEqual(self.mode.frequencies.units, mode.frequencies.units) self.assertEqual(self.mode.quantum, mode.quantum) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/thermo/convertTest.py b/test/rmgpy/thermo/convertTest.py index 7cc3266fe6..6292748afb 100644 --- a/test/rmgpy/thermo/convertTest.py +++ b/test/rmgpy/thermo/convertTest.py @@ -280,6 +280,3 @@ def test_wilhoit_thermo_data_wilhoit(self): ################################################################################ - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/thermo/nasaTest.py b/test/rmgpy/thermo/nasaTest.py index cefea3f988..71980f885c 100644 --- a/test/rmgpy/thermo/nasaTest.py +++ b/test/rmgpy/thermo/nasaTest.py @@ -473,10 +473,3 @@ def test_make_nasa(self): } new_nasa.make_object(nasa_dict, class_dictionary) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/thermo/wilhoitTest.py b/test/rmgpy/thermo/wilhoitTest.py index a59fc49c9c..4d53fb79d6 100644 --- a/test/rmgpy/thermo/wilhoitTest.py +++ b/test/rmgpy/thermo/wilhoitTest.py @@ -482,10 +482,3 @@ def test_make_wilhoit(self): class_dictionary = {"ScalarQuantity": ScalarQuantity, "Wilhoit": Wilhoit} new_wilhoit.make_object(wilhoit_dict, class_dictionary) - - -################################################################################ - - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) diff --git a/test/rmgpy/transportDataTest.py b/test/rmgpy/transportDataTest.py index c8f03711c2..f86ee18020 100644 --- a/test/rmgpy/transportDataTest.py +++ b/test/rmgpy/transportDataTest.py @@ -224,6 +224,3 @@ def test_to_cantera(self): ################################################################################# - -if __name__ == "__main__": - unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) From 93b583318d959b5929fc43a4d2df7b9926ede578 Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 11:44:08 -0400 Subject: [PATCH 09/88] manually switch testdatabase to assert from yield generator --- test/database/databaseTest.py | 1068 ++++++++------------------------- 1 file changed, 255 insertions(+), 813 deletions(-) diff --git a/test/database/databaseTest.py b/test/database/databaseTest.py index b80259961d..22807fd9c8 100644 --- a/test/database/databaseTest.py +++ b/test/database/databaseTest.py @@ -53,9 +53,7 @@ from rmgpy.quantity import ScalarQuantity -class TestDatabase( - object -): # cannot inherit from unittest.TestCase if we want to use nose test generators +class TestDatabase: """ Contains unit tests for the database for rigorous error checking. """ @@ -69,132 +67,61 @@ def setUpClass(cls): cls.database = RMGDatabase() cls.database.load(database_directory, kinetics_families="all") - # These are generators, that call the methods below. + # calls the methods below def test_kinetics(self): for family_name, family in self.database.kinetics.families.items(): - test = lambda x: self.kinetics_check_correct_number_of_nodes_in_rules( + assert self.kinetics_check_correct_number_of_nodes_in_rules( family_name - ) - test_name = ( - "Kinetics family {0}: rules have correct number of nodes?".format( - family_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, None + ), "Kinetics family {0}: rules have correct number of nodes?".format(family_name) - test = lambda x: self.kinetics_check_nodes_in_rules_found_in_groups( + assert self.kinetics_check_nodes_in_rules_found_in_groups(family_name), "Kinetics family {0}: rules' nodes exist in the groups?".format( family_name ) - test_name = "Kinetics family {0}: rules' nodes exist in the groups?".format( - family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, None - test = lambda x: self.kinetics_check_groups_found_in_tree(family_name) - test_name = "Kinetics family {0}: groups are in the tree with proper parents?".format( + assert self.kinetics_check_groups_found_in_tree(family_name), "Kinetics family {0}: groups are in the tree with proper parents?".format( family_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, None if not family.auto_generated: - test = lambda x: self.kinetics_check_groups_nonidentical(family_name) - test_name = "Kinetics family {0}: groups are not identical?".format( - family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + assert self.kinetics_check_groups_nonidentical(family_name), "Kinetics family {0}: groups are not identical?".format(family_name) - test = lambda x: self.kinetics_check_child_parent_relationships(family_name) - test_name = ( - "Kinetics family {0}: parent-child relationships are correct?".format( - family_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name - - test = lambda x: self.kinetics_check_siblings_for_parents(family_name) - test_name = ( - "Kinetics family {0}: sibling relationships are correct?".format( - family_name - ) + assert self.kinetics_check_child_parent_relationships(family_name), "Kinetics family {0}: parent-child relationships are correct?".format( + family_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name - test = lambda x: self.kinetics_check_cd_atom_type(family_name) - test_name = "Kinetics family {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format( + assert self.kinetics_check_siblings_for_parents(family_name), "Kinetics family {0}: sibling relationships are correct?".format( family_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name - test = lambda x: self.kinetics_check_reactant_and_product_template( + assert self.kinetics_check_cd_atom_type(family_name), "Kinetics family {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format( family_name ) - test_name = "Kinetics family {0}: reactant and product templates correctly defined?".format( + + assert self.kinetics_check_reactant_and_product_template( family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + ), "Kinetics family {0}: reactant and product templates correctly defined?".format(family_name) - test = lambda x: self.kinetics_check_num_reactant_and_product(family_name) - test_name = ( - "Kinetics family {0}: number of reactant and product defined?".format( - family_name - ) + assert self.kinetics_check_num_reactant_and_product(family_name), "Kinetics family {0}: number of reactant and product defined?".format( + family_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name # tests for surface families if "surface" in family_name.lower(): - test = lambda x: self.kinetics_check_surface_training_reactions_can_be_used( + assert self.kinetics_check_surface_training_reactions_can_be_used( family_name - ) - test_name = "Kinetics surface family {0}: entries can be used to generate rate rules?".format( - family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + ), "Kinetics surface family {0}: entries can be used to generate rate rules?".format(family_name) - test = lambda x: self.kinetics_check_training_reactions_have_surface_attributes( - family_name - ) - test_name = "Kinetics surface family {0}: entries have surface attributes?".format( + assert self.kinetics_check_training_reactions_have_surface_attributes( family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + ), "Kinetics surface family {0}: entries have surface attributes?".format(family_name) - test = ( - lambda x: self.kinetics_check_coverage_dependence_units_are_correct( - family_name - ) - ) - test_name = "Kinetics surface family {0}: check coverage dependent units are correct?".format( + assert self.kinetics_check_coverage_dependence_units_are_correct( family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + ), "Kinetics surface family {0}: check coverage dependent units are correct?".format(family_name) # these families have some sort of difficulty which prevents us from testing accessibility right now - # See RMG-Py PR #2232 for reason why adding Bimolec_Hydroperoxide_Decomposition here. Bsically some nodes need to be in a ring, but the sampled molecule is not. + # See RMG-Py PR #2232 for reason why adding Bimolec_Hydroperoxide_Decomposition here. Basically some nodes + # #need to be in a ring, but the sampled molecule is not. difficult_families = [ "Diels_alder_addition", "Intra_R_Add_Exocyclic", @@ -203,374 +130,143 @@ def test_kinetics(self): "Bimolec_Hydroperoxide_Decomposition", ] - if ( - len(family.forward_template.reactants) < len(family.groups.top) - and family_name not in difficult_families - ): - test = lambda x: self.kinetics_check_unimolecular_groups(family_name) - test_name = "Kinetics family {0} check that unimolecular group is formatted correctly?".format( + if len(family.forward_template.reactants) < len(family.groups.top) and family_name not in difficult_families: + assert self.kinetics_check_unimolecular_groups( family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + ), "Kinetics family {0} check that unimolecular group is formatted correctly?".format(family_name) if family_name not in difficult_families and not family.auto_generated: - test = lambda x: self.kinetics_check_sample_descends_to_group( - family_name - ) - test_name = "Kinetics family {0}: Entry is accessible?".format( - family_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name - - test = lambda x: self.kinetics_check_sample_can_react(family_name) - test_name = ( - "Kinetics family {0}: Recipe applies to group entry?".format( - family_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + assert self.kinetics_check_sample_descends_to_group(family_name), "Kinetics family {0}: Entry is accessible?".format(family_name) + + assert self.kinetics_check_sample_can_react(family_name), "Kinetics family {0}: Recipe applies to group entry?".format(family_name) for depository in family.depositories: - test = lambda x: self.kinetics_check_adjlists_nonidentical(depository) - test_name = "Kinetics depository {0}: check adjacency lists are nonidentical?".format( - depository.label - ) - test.description = test_name - self.compat_func_name = test_name - yield test, depository.label + assert self.kinetics_check_adjlists_nonidentical( + depository + ), "Kinetics depository {0}: check adjacency lists are nonidentical?".format(depository.label) - test = lambda x: self.kinetics_check_rate_units_are_correct( + assert self.kinetics_check_rate_units_are_correct( depository, tag="depository" - ) - test_name = ( - "Kinetics depository {0}: check rates have correct units?".format( - depository.label - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, depository.label + ), "Kinetics depository {0}: check rates have correct units?".format(depository.label) for library_name, library in self.database.kinetics.libraries.items(): - test = lambda x: self.kinetics_check_adjlists_nonidentical(library) - test_name = ( - "Kinetics library {0}: check adjacency lists are nonidentical?".format( - library_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, library_name - - test = lambda x: self.kinetics_check_rate_units_are_correct(library) - test_name = "Kinetics library {0}: check rates have correct units?".format( + assert self.kinetics_check_adjlists_nonidentical(library), "Kinetics library {0}: check adjacency lists are nonidentical?".format( library_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, library_name - test = lambda x: self.kinetics_check_library_rates_are_reasonable(library) - test_name = "Kinetics library {0}: check rates are reasonable?".format( - library_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, library_name + assert self.kinetics_check_rate_units_are_correct(library), "Kinetics library {0}: check rates have correct units?".format(library_name) + + assert self.kinetics_check_library_rates_are_reasonable(library), "Kinetics library {0}: check rates are reasonable?".format(library_name) # tests for surface families if "surface" in library_name.lower(): - test = lambda x: self.kinetics_check_surface_library_reactions_have_surface_attributes( + assert self.kinetics_check_surface_library_reactions_have_surface_attributes( library - ) - test_name = "Kinetics surface library {0}: entries have surface attributes?".format( - library_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, family_name + ), "Kinetics surface library {0}: entries have surface attributes?".format(library_name) def test_thermo(self): for group_name, group in self.database.thermo.groups.items(): - test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = ( - "Thermo groups {0}: nodes are in the tree with proper parents?".format( - group_name - ) + assert self.general_check_nodes_found_in_tree(group_name, group), "Thermo groups {0}: nodes are in the tree with proper parents?".format( + group_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Thermo groups {0}: nodes are nonidentical?".format(group_name) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_groups_nonidentical(group_name, group), "Thermo groups {0}: nodes are nonidentical?".format(group_name) - test = lambda x: self.general_check_child_parent_relationships( + assert self.general_check_child_parent_relationships( group_name, group - ) - test_name = ( - "Thermo groups {0}: parent-child relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + ), "Thermo groups {0}: parent-child relationships are correct?".format(group_name) - test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = "Thermo groups {0}: sibling relationships are correct?".format( + assert self.general_check_siblings_for_parents(group_name, group), "Thermo groups {0}: sibling relationships are correct?".format( group_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Thermo groups {0}: Cd atomtype used correctly?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_cd_atom_type(group_name, group), "Thermo groups {0}: Cd atomtype used correctly?".format(group_name) - test = lambda x: self.general_check_sample_descends_to_group( - group_name, group - ) - test_name = "Thermo groups {0}: Entry is accessible?".format(group_name) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_sample_descends_to_group(group_name, group), "Thermo groups {0}: Entry is accessible?".format(group_name) # tests for adsorption groups if "adsorption" in group_name.lower(): - test = ( - lambda x: self.check_surface_thermo_groups_have_surface_attributes( - group_name, group - ) - ) - test_name = ( - "Thermo surface groups {0}: Entry has metal attributes?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.check_surface_thermo_groups_have_surface_attributes( + group_name, group + ), "Thermo surface groups {0}: Entry has metal attributes?".format(group_name) for library_name, library in self.database.thermo.libraries.items(): if "surface" in library_name.lower(): - test = lambda x: self.check_surface_thermo_libraries_have_surface_attributes( + assert self.check_surface_thermo_libraries_have_surface_attributes( library_name, library - ) - test_name = ( - "Thermo surface libraries {0}: Entry has metal attributes?".format( - library_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + ), "Thermo surface libraries {0}: Entry has metal attributes?".format(library_name) def test_solvation(self): for group_name, group in self.database.solvation.groups.items(): - test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Solvation groups {0}: nodes are in the tree with proper parents?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_nodes_found_in_tree( + group_name, group + ), "Solvation groups {0}: nodes are in the tree with proper parents?".format(group_name) - test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Solvation groups {0}: nodes are nonidentical?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_groups_nonidentical(group_name, group), "Solvation groups {0}: nodes are nonidentical?".format(group_name) - test = lambda x: self.general_check_child_parent_relationships( + assert self.general_check_child_parent_relationships( group_name, group - ) - test_name = ( - "Solvation groups {0}: parent-child relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - - test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = ( - "Solvation groups {0}: sibling relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + ), "Solvation groups {0}: parent-child relationships are correct?".format(group_name) - test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Solvation groups {0}: Cd atomtype used correctly?".format( + assert self.general_check_siblings_for_parents(group_name, group), "Solvation groups {0}: sibling relationships are correct?".format( group_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group( - group_name, group - ) - test_name = "Solvation groups {0}: Entry is accessible?".format(group_name) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_cd_atom_type(group_name, group), "Solvation groups {0}: Cd atomtype used correctly?".format(group_name) + + assert self.general_check_sample_descends_to_group(group_name, group), "Solvation groups {0}: Entry is accessible?".format(group_name) def test_statmech(self): for group_name, group in self.database.statmech.groups.items(): - test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Statmech groups {0}: nodes are in the tree with proper parents?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_nodes_found_in_tree( + group_name, group + ), "Statmech groups {0}: nodes are in the tree with proper parents?".format(group_name) - test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Statmech groups {0}: nodes are nonidentical?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_groups_nonidentical(group_name, group), "Statmech groups {0}: nodes are nonidentical?".format(group_name) - test = lambda x: self.general_check_child_parent_relationships( + assert self.general_check_child_parent_relationships( group_name, group - ) - test_name = ( - "Statmech groups {0}: parent-child relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - - test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = ( - "Statmech groups {0}: sibling relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + ), "Statmech groups {0}: parent-child relationships are correct?".format(group_name) - test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Statmech groups {0}: Cd atomtype used correctly?".format( + assert self.general_check_siblings_for_parents(group_name, group), "Statmech groups {0}: sibling relationships are correct?".format( group_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group( - group_name, group - ) - test_name = "Statmech groups {0}: Entry is accessible?".format(group_name) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_cd_atom_type(group_name, group), "Statmech groups {0}: Cd atomtype used correctly?".format(group_name) + + assert self.general_check_sample_descends_to_group(group_name, group), "Statmech groups {0}: Entry is accessible?".format(group_name) def test_transport(self): for group_name, group in self.database.transport.groups.items(): - test = lambda x: self.general_check_nodes_found_in_tree(group_name, group) - test_name = "Transport groups {0}: nodes are in the tree with proper parents?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_nodes_found_in_tree( + group_name, group + ), "Transport groups {0}: nodes are in the tree with proper parents?".format(group_name) - test = lambda x: self.general_check_groups_nonidentical(group_name, group) - test_name = "Transport groups {0}: nodes are nonidentical?".format( - group_name - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + assert self.general_check_groups_nonidentical(group_name, group), "Transport groups {0}: nodes are nonidentical?".format(group_name) - test = lambda x: self.general_check_child_parent_relationships( + assert self.general_check_child_parent_relationships( group_name, group - ) - test_name = ( - "Transport groups {0}: parent-child relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - - test = lambda x: self.general_check_siblings_for_parents(group_name, group) - test_name = ( - "Transport groups {0}: sibling relationships are correct?".format( - group_name - ) - ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + ), "Transport groups {0}: parent-child relationships are correct?".format(group_name) - test = lambda x: self.general_check_cd_atom_type(group_name, group) - test_name = "Transport groups {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format( + assert self.general_check_siblings_for_parents(group_name, group), "Transport groups {0}: sibling relationships are correct?".format( group_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name - test = lambda x: self.general_check_sample_descends_to_group( - group_name, group + assert self.general_check_cd_atom_type(group_name, group), "Transport groups {0}: Cd, CS, CO, and Cdd atomtype used correctly?".format( + group_name ) - test_name = "Transport groups {0}: Entry is accessible?".format(group_name) - test.description = test_name - self.compat_func_name = test_name - yield test, group_name + + assert self.general_check_sample_descends_to_group(group_name, group), "Transport groups {0}: Entry is accessible?".format(group_name) def test_metal_libraries(self): - for library_name, library in self.database.thermo.surface[ - "metal" - ].libraries.items(): - test = lambda x: self.general_check_metal_database_has_catalyst_properties( - library - ) - test_name = "Metal library {0}: Entries have catalyst properties?".format( + for library_name, library in self.database.thermo.surface["metal"].libraries.items(): + assert self.general_check_metal_database_has_catalyst_properties(library), "Metal library {0}: Entries have catalyst properties?".format( library_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, library_name - test = lambda x: self.general_check_metal_database_has_reasonable_labels( - library - ) - test_name = "Metal library {0}: Entries have reasonable labels?".format( + assert self.general_check_metal_database_has_reasonable_labels(library), "Metal library {0}: Entries have reasonable labels?".format( library_name ) - test.description = test_name - self.compat_func_name = test_name - yield test, library_name # These are the actual tests, that don't start with a "test_" name: def kinetics_check_surface_training_reactions_can_be_used(self, family_name): @@ -584,15 +280,11 @@ def general_check_metal_database_has_catalyst_properties(self, library): """Test that each entry has catalyst properties""" for entry in library.entries.values(): if not entry.binding_energies: - raise AttributeError( - "Entry {} has no binding energies".format(entry.label) - ) + raise AttributeError("Entry {} has no binding energies".format(entry.label)) assert isinstance(entry.binding_energies, dict) for element in "CHON": if not entry.binding_energies[element]: - raise KeyError( - "Entry {} has no {} binding energy".format(entry.label, element) - ) + raise KeyError("Entry {} has no {} binding energy".format(entry.label, element)) if not isinstance(entry.binding_energies[element], ScalarQuantity): raise TypeError( "Entry {} binding energy value for {} should be a ScalarQuantity, but is type {}".format( @@ -607,35 +299,19 @@ def general_check_metal_database_has_catalyst_properties(self, library): type(entry.binding_energies[element].value), ) ) - assert ( - entry.binding_energies[element].value < 0.0 - ) # binding energies should all be negative... probably + assert entry.binding_energies[element].value < 0.0 # binding energies should all be negative... probably assert entry.binding_energies[element].units == "eV/molecule" if not entry.surface_site_density: - raise AttributeError( - "Entry {} has no surface site density".format(entry.label) - ) + raise AttributeError("Entry {} has no surface site density".format(entry.label)) assert isinstance(entry.surface_site_density, ScalarQuantity) if not isinstance(entry.surface_site_density.value, float): - raise TypeError( - "Entry {} should be a float, but is type {}".format( - entry.label, type(entry.surface_site_density.value) - ) - ) + raise TypeError("Entry {} should be a float, but is type {}".format(entry.label, type(entry.surface_site_density.value))) if not isinstance(entry.surface_site_density.units, str): - raise TypeError( - "Entry {} should be a str, but is type {}".format( - entry.label, type(entry.surface_site_density.units) - ) - ) - assert ( - 1e-4 > entry.surface_site_density.value_si > 1e-6 - ) # values should be reasonable + raise TypeError("Entry {} should be a str, but is type {}".format(entry.label, type(entry.surface_site_density.units))) + assert 1e-4 > entry.surface_site_density.value_si > 1e-6 # values should be reasonable - assert isinstance( - entry.metal, str - ) # all entries should have a metal attribute, at minimum + assert isinstance(entry.metal, str) # all entries should have a metal attribute, at minimum if entry.facet: assert isinstance(entry.facet, str) if entry.site: @@ -645,21 +321,11 @@ def general_check_metal_database_has_reasonable_labels(self, library): """Test that each entry has a reasonable label corresponding to its metal and facet""" for entry in library.entries.values(): if entry.metal not in entry.label: - raise NameError( - "Entry {} with metal attribute {} does not have metal in its label".format( - entry.label, entry.metal - ) - ) + raise NameError("Entry {} with metal attribute {} does not have metal in its label".format(entry.label, entry.metal)) if entry.facet not in entry.label: - raise NameError( - "Entry {} with facet attribute {} does not have facet in its label".format( - entry.label, entry.facet - ) - ) + raise NameError("Entry {} with facet attribute {} does not have facet in its label".format(entry.label, entry.facet)) if not entry.label[0].isupper(): - raise NameError( - "Entry {} should start with a capital letter".format(entry.label) - ) + raise NameError("Entry {} should start with a capital letter".format(entry.label)) def kinetics_check_coverage_dependence_units_are_correct(self, family_name): """Test that each surface training reaction that has coverage dependent parameters has acceptable units""" @@ -677,21 +343,14 @@ def kinetics_check_coverage_dependence_units_are_correct(self, family_name): if parameters["a"].units: "Should be dimensionless" failed = True - logging.error( - f"Entry {entry.label} has invalid units {parameters['a'].units} for a" - ) + logging.error(f"Entry {entry.label} has invalid units {parameters['a'].units} for a") if parameters["m"].units: "Should be dimensionless" failed = True - logging.error( - f"Entry {entry.label} has invalid units {parameters['m'].units} for m" - ) + logging.error(f"Entry {entry.label} has invalid units {parameters['m'].units} for m") if failed: - raise ValueError( - "Surface coverage dependent parameters have incorrect units." - "Please check log warnings for all error messages." - ) + raise ValueError("Surface coverage dependent parameters have incorrect units." "Please check log warnings for all error messages.") def kinetics_check_training_reactions_have_surface_attributes(self, family_name): """Test that each surface training reaction has surface attributes""" @@ -700,9 +359,7 @@ def kinetics_check_training_reactions_have_surface_attributes(self, family_name) failed = False for entry in training: if not entry.metal: - logging.error( - f"Expected a metal attribute for {entry} in {family} family but found {entry.metal!r}" - ) + logging.error(f"Expected a metal attribute for {entry} in {family} family but found {entry.metal!r}") failed = True else: assert isinstance(entry.metal, str) @@ -713,9 +370,7 @@ def kinetics_check_training_reactions_have_surface_attributes(self, family_name) assert isinstance(entry.site, str) if failed: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") def kinetics_check_surface_library_reactions_have_surface_attributes(self, library): """Test that each surface reaction library has surface attributes""" @@ -724,31 +379,24 @@ def kinetics_check_surface_library_reactions_have_surface_attributes(self, libra if "_Pt" in library.label: for entry in entries: if entry.metal is not "Pt": - logging.error( - f"Expected {entry} metal attribute in {library} library to match Pt, but was {entry.metal}" - ) + logging.error(f"Expected {entry} metal attribute in {library} library to match Pt, but was {entry.metal}") failed = True if "_Ni" in library.label: for entry in entries: if entry.metal is not "Ni": - logging.error( - f"Expected {entry} metal attribute in {library} library to match Ni, but was {entry.metal}" - ) + logging.error(f"Expected {entry} metal attribute in {library} library to match Ni, but was {entry.metal}") failed = True for entry in entries: if isinstance(entry.metal, type(None)): - logging.error( - f"Expected a metal attribute in {library} library for {entry} but found None" - ) + logging.error(f"Expected a metal attribute in {library} library for {entry} but found None") failed = True if failed: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") def kinetics_check_correct_number_of_nodes_in_rules(self, family_name): """ - This test ensures that each rate rule contains the proper number of nodes according to the family it originates. + This test ensures that each rate rule contains the proper number of + nodes according to the family it originates. """ family = self.database.kinetics.families[family_name] expected_number_nodes = len(family.get_root_template()) @@ -775,9 +423,9 @@ def kinetics_check_correct_number_of_nodes_in_rules(self, family_name): boo = True logging.error(item[2]) if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): """ @@ -793,9 +441,7 @@ def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): nodes.extend(family.groups.descendants(topNode)) top_descendants.append(nodes) - top_group_order = ";".join( - topNode.label for topNode in family.get_root_template() - ) + top_group_order = ";".join(topNode.label for topNode in family.get_root_template()) tst1 = [] tst2 = [] for label, entries in family.rules.entries.items(): @@ -806,18 +452,14 @@ def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): ( node in family.groups.entries, "In {family} family, no group definition found for label {label} in rule " - "{entry}".format( - family=family_name, label=node, entry=entry - ), + "{entry}".format(family=family_name, label=node, entry=entry), ) ) tst2.append( ( family.groups.entries[node] in top_descendants[i], "In {family} family, rule {entry} was found with groups out of order. " - "The correct order for a rule should be subgroups of {top}.".format( - family=family_name, entry=entry, top=top_group_order - ), + "The correct order for a rule should be subgroups of {top}.".format(family=family_name, entry=entry, top=top_group_order), ) ) boo = False @@ -830,9 +472,9 @@ def kinetics_check_nodes_in_rules_found_in_groups(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_groups_found_in_tree(self, family_name): """ @@ -854,34 +496,25 @@ def kinetics_check_groups_found_in_tree(self, family_name): ascend_parent = nodeGroup # Check whether the node has proper parents unless it is the top reactant or product node - while ( - ascend_parent not in family.groups.top - and ascend_parent not in family.forward_template.products - ): + while ascend_parent not in family.groups.top and ascend_parent not in family.forward_template.products: child = ascend_parent ascend_parent = ascend_parent.parent tst1.append( ( ascend_parent is not None, - "Group {group} in {family} family was found in the tree without a proper parent.".format( - group=child, family=family_name - ), + "Group {group} in {family} family was found in the tree without a proper parent.".format(group=child, family=family_name), ) ) tst2.append( ( child in ascend_parent.children, - "Group {group} in {family} family was found in the tree without a proper parent.".format( - group=nodeName, family=family_name - ), + "Group {group} in {family} family was found in the tree without a proper parent.".format(group=nodeName, family=family_name), ) ) tst3.append( ( child is ascend_parent, - "Group {group} in {family} family is a parent to itself".format( - group=nodeName, family=family_name - ), + "Group {group} in {family} family is a parent to itself".format(group=nodeName, family=family_name), ) ) @@ -902,9 +535,9 @@ def kinetics_check_groups_found_in_tree(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_groups_nonidentical(self, family_name): """ @@ -936,9 +569,9 @@ def kinetics_check_groups_nonidentical(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_child_parent_relationships(self, family_name): """ @@ -952,10 +585,7 @@ def kinetics_check_child_parent_relationships(self, family_name): tst = [] for nodeName, childNode in family.entries.items(): # top nodes and product nodes don't have parents by definition, so they get an automatic pass: - if ( - childNode in original_family.groups.top - or childNode in original_family.forward_template.products - ): + if childNode in original_family.groups.top or childNode in original_family.forward_template.products: continue parent_node = childNode.parent @@ -972,18 +602,14 @@ def kinetics_check_child_parent_relationships(self, family_name): ( family.match_node_to_child(parent_node, childNode), "In {family} family, group {parent} is not a proper parent of its child " - "{child}.".format( - family=family_name, parent=parent_node, child=nodeName - ), + "{child}.".format(family=family_name, parent=parent_node, child=nodeName), ) ) # check that parentNodes which are LogicOr do not have an ancestor that is a Group # If it does, then the child_node must also be a child of the ancestor if isinstance(parent_node.item, LogicOr): ancestor_node = parent_node - while ancestor_node not in original_family.groups.top and isinstance( - ancestor_node.item, LogicOr - ): + while ancestor_node not in original_family.groups.top and isinstance(ancestor_node.item, LogicOr): ancestor_node = ancestor_node.parent if isinstance(ancestor_node.item, Group): tst.append( @@ -1005,9 +631,9 @@ def kinetics_check_child_parent_relationships(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_siblings_for_parents(self, family_name): """ @@ -1033,9 +659,7 @@ def kinetics_check_siblings_for_parents(self, family_name): tst.append( ( family.match_node_to_child(child1, child2), - "In family {0}, node {1} is a parent of {2}, but they are written as siblings.".format( - family_name, child1, child2 - ), + "In family {0}, node {1} is a parent of {2}, but they are written as siblings.".format(family_name, child1, child2), ) ) boo = False @@ -1045,9 +669,9 @@ def kinetics_check_siblings_for_parents(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_adjlists_nonidentical(self, database): """ @@ -1069,20 +693,14 @@ def kinetics_check_adjlists_nonidentical(self, database): boo = False # Go through all species to make sure they are nonidentical species_list = list(species_dict.values()) - labeled_atoms = [ - species.molecule[0].get_all_labeled_atoms() for species in species_list - ] + labeled_atoms = [species.molecule[0].get_all_labeled_atoms() for species in species_list] for i in range(len(species_list)): for j in range(i + 1, len(species_list)): initial_map = {} try: - atom_labels = set( - list(labeled_atoms[i].keys()) + list(labeled_atoms[j].keys()) - ) + atom_labels = set(list(labeled_atoms[i].keys()) + list(labeled_atoms[j].keys())) for atomLabel in atom_labels: - initial_map[labeled_atoms[i][atomLabel]] = labeled_atoms[j][ - atomLabel - ] + initial_map[labeled_atoms[i][atomLabel]] = labeled_atoms[j][atomLabel] except KeyError: # atom labels did not match, therefore not a match continue @@ -1099,9 +717,9 @@ def kinetics_check_adjlists_nonidentical(self, database): ) boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_rate_units_are_correct(self, database, tag="library"): """ @@ -1119,61 +737,34 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): k = entry.data rxn = entry.item molecularity = len(rxn.reactants) - surface_reactants = sum( - [1 for s in rxn.reactants if s.contains_surface_site()] - ) + surface_reactants = sum([1 for s in rxn.reactants if s.contains_surface_site()]) try: if isinstance(k, rmgpy.kinetics.StickingCoefficient): "Should be dimensionless" a_factor = k.A if a_factor.units: boo = True - logging.error( - "Reaction {0} from {1} {2}, has invalid units {3}".format( - rxn, tag, database.label, a_factor.units - ) - ) + logging.error("Reaction {0} from {1} {2}, has invalid units {3}".format(rxn, tag, database.label, a_factor.units)) elif isinstance(k, rmgpy.kinetics.SurfaceArrhenius): a_factor = k.A expected = copy(dimensionalities[molecularity]) # for each surface reactant but one, switch from (m3/mol) to (m2/mol) for _ in range(surface_reactants - 1): expected[pq.m] -= 1 - if ( - pq.Quantity(1.0, a_factor.units).simplified.dimensionality - != expected - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != expected: boo = True - logging.error( - "Reaction {0} from {1} {2}, has invalid units {3}".format( - rxn, tag, database.label, a_factor.units - ) - ) - elif isinstance( - k, rmgpy.kinetics.Arrhenius - ): # (but not SurfaceArrhenius, which came first) + logging.error("Reaction {0} from {1} {2}, has invalid units {3}".format(rxn, tag, database.label, a_factor.units)) + elif isinstance(k, rmgpy.kinetics.Arrhenius): # (but not SurfaceArrhenius, which came first) a_factor = k.A - if ( - pq.Quantity(1.0, a_factor.units).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True - logging.error( - "Reaction {0} from {1} {2}, has invalid units {3}".format( - rxn, tag, database.label, a_factor.units - ) - ) + logging.error("Reaction {0} from {1} {2}, has invalid units {3}".format(rxn, tag, database.label, a_factor.units)) elif isinstance(k, (rmgpy.kinetics.Lindemann, rmgpy.kinetics.Troe)): a_factor = k.arrheniusHigh.A - if ( - pq.Quantity(1.0, a_factor.units).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True logging.error( - "Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}".format( - rxn, tag, database.label, a_factor.units - ) + "Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}".format(rxn, tag, database.label, a_factor.units) ) elif isinstance( k, @@ -1184,35 +775,22 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): ), ): a_factor = k.arrheniusLow.A - if ( - pq.Quantity(1.0, a_factor.units).simplified.dimensionality - != dimensionalities[molecularity + 1] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity + 1]: boo = True logging.error( - "Reaction {0} from {1} {2}, has invalid low-pressure limit units {3}".format( - rxn, tag, database.label, a_factor.units - ) + "Reaction {0} from {1} {2}, has invalid low-pressure limit units {3}".format(rxn, tag, database.label, a_factor.units) ) elif hasattr(k, "highPlimit") and k.highPlimit is not None: a_factor = k.highPlimit.A - if ( - pq.Quantity(1.0, a_factor.units).simplified.dimensionality - != dimensionalities[molecularity - 1] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity - 1]: boo = True logging.error( - "Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}".format( - rxn, tag, database.label, a_factor.units - ) + "Reaction {0} from {1} {2}, has invalid high-pressure limit units {3}".format(rxn, tag, database.label, a_factor.units) ) elif isinstance(k, rmgpy.kinetics.MultiArrhenius): for num, arrhenius in enumerate(k.arrhenius): a_factor = arrhenius.A - if ( - pq.Quantity(1.0, a_factor.units).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True logging.error( "Reaction {0} from {1} {2}, has invalid units {3} on rate expression {4}".format( @@ -1230,12 +808,7 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): # which is distinct (somehow) from MultiPDepArrhenius for num, arrhenius2 in enumerate(arrhenius.arrhenius): a_factor = arrhenius2.A - if ( - pq.Quantity( - 1.0, a_factor.units - ).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True logging.error( "Reaction {0} from {1} {2}, has invalid units {3} on {4!r} rate expression " @@ -1250,17 +823,10 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): ) else: a_factor = arrhenius.A - if ( - pq.Quantity( - 1.0, a_factor.units - ).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True logging.error( - "Reaction {0} from {1} {2}, has invalid {3!r} units {4}".format( - rxn, tag, database.label, P, a_factor.units - ) + "Reaction {0} from {1} {2}, has invalid {3!r} units {4}".format(rxn, tag, database.label, P, a_factor.units) ) elif isinstance(k, rmgpy.kinetics.MultiPDepArrhenius): @@ -1272,12 +838,7 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): # A MultiPDepArrhenius may have MultiArrhenius within it for arrhenius2 in arrhenius.arrhenius: a_factor = arrhenius2.A - if ( - pq.Quantity( - 1.0, a_factor.units - ).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True logging.error( "Reaction {0} from {1} {2}, has invalid units {3} on {4!r} rate expression " @@ -1292,12 +853,7 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): ) else: a_factor = arrhenius.A - if ( - pq.Quantity( - 1.0, a_factor.units - ).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, a_factor.units).simplified.dimensionality != dimensionalities[molecularity]: boo = True logging.error( "Reaction {0} from {1} {2}, has invalid {3!r} units {4} in rate expression " @@ -1312,35 +868,21 @@ def kinetics_check_rate_units_are_correct(self, database, tag="library"): ) elif isinstance(k, rmgpy.kinetics.Chebyshev): - if ( - pq.Quantity(1.0, k.kunits).simplified.dimensionality - != dimensionalities[molecularity] - ): + if pq.Quantity(1.0, k.kunits).simplified.dimensionality != dimensionalities[molecularity]: boo = True - logging.error( - "Reaction {0} from {1} {2}, has invalid units {3}".format( - rxn, tag, database.label, k.kunits - ) - ) + logging.error("Reaction {0} from {1} {2}, has invalid units {3}".format(rxn, tag, database.label, k.kunits)) else: - logging.warning( - "Reaction {0} from {1} {2}, did not have units checked.".format( - rxn, tag, database.label - ) - ) + logging.warning("Reaction {0} from {1} {2}, did not have units checked.".format(rxn, tag, database.label)) except: logging.error( - "Error when checking units on reaction {0} from {1} {2} with " - "rate expression {3!r}.".format(rxn, tag, database.label, k) + "Error when checking units on reaction {0} from {1} {2} with " "rate expression {3!r}.".format(rxn, tag, database.label, k) ) raise if boo: - raise ValueError( - "{0} {1} has some incorrect units".format( - tag.capitalize(), database.label - ) - ) + raise ValueError("{0} {1} has some incorrect units".format(tag.capitalize(), database.label)) + else: + return True def kinetics_check_library_rates_are_reasonable(self, library): """ @@ -1355,12 +897,7 @@ def kinetics_check_library_rates_are_reasonable(self, library): h = rmgpy.constants.h # m2 kg / s boo = False tst_limit = (kB * T) / h - collision_limit = ( - Na - * np.pi - * h_rad_diam**2 - * np.sqrt(8 * kB * T / (np.pi * h_rad_mass / 2)) - ) + collision_limit = Na * np.pi * h_rad_diam**2 * np.sqrt(8 * kB * T / (np.pi * h_rad_mass / 2)) for entry in library.entries.values(): if entry.item.is_surface_reaction(): # Don't check surface reactions @@ -1369,11 +906,7 @@ def kinetics_check_library_rates_are_reasonable(self, library): rxn = entry.item if k < 0: boo = True - logging.error( - "library reaction {0} from library {1}, had a negative rate at 1000 K, 1 bar".format( - rxn, library.label - ) - ) + logging.error("library reaction {0} from library {1}, had a negative rate at 1000 K, 1 bar".format(rxn, library.label)) if len(rxn.reactants) == 1 and not rxn.allow_max_rate_violation: if k > tst_limit: boo = True @@ -1392,6 +925,8 @@ def kinetics_check_library_rates_are_reasonable(self, library): ) if boo: raise ValueError("library {0} has unreasonable rates".format(library.label)) + else: + return True def kinetics_check_reactant_and_product_template(self, family_name): """ @@ -1402,26 +937,18 @@ def kinetics_check_reactant_and_product_template(self, family_name): """ family = self.database.kinetics.families[family_name] if family.own_reverse: - nose.tools.assert_equal( - family.forward_template.reactants, family.forward_template.products - ) + nose.tools.assert_equal(family.forward_template.reactants, family.forward_template.products) else: tst = [] - reactant_labels = [ - reactant.label for reactant in family.forward_template.reactants - ] - product_labels = [ - product.label for product in family.forward_template.products - ] + reactant_labels = [reactant.label for reactant in family.forward_template.reactants] + product_labels = [product.label for product in family.forward_template.products] for reactant_label in reactant_labels: for product_label in product_labels: tst.append( ( reactant_label == product_label, "Reactant label {0} matches that of product label {1} in a non-reversible family " - "template. Please rename product label.".format( - reactant_label, product_label - ), + "template. Please rename product label.".format(reactant_label, product_label), ) ) @@ -1432,9 +959,9 @@ def kinetics_check_reactant_and_product_template(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_num_reactant_and_product(self, family_name): """ @@ -1444,19 +971,13 @@ def kinetics_check_num_reactant_and_product(self, family_name): family = self.database.kinetics.families[family_name] if family.auto_generated: if not getattr(family, "reactant_num"): - logging.error( - f"The number of reactants is not defined in the family {family_name}" - ) + logging.error(f"The number of reactants is not defined in the family {family_name}") if not getattr(family, "product_num"): - logging.error( - f"The number of products is not defined in the family {family_name}" - ) - if not getattr(family, "reactant_num") or not getattr( - family, "product_num" - ): - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + logging.error(f"The number of products is not defined in the family {family_name}") + if not getattr(family, "reactant_num") or not getattr(family, "product_num"): + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_cd_atom_type(self, family_name): """ @@ -1491,12 +1012,7 @@ def kinetics_check_cd_atom_type(self, family_name): continue # Create list of all the atomTypes that should be present in addition or instead of Cd correct_atom_list = [] - num_of_d_bonds = sum( - [ - 1 if x.order[0] is "D" and len(x.order) == 1 else 0 - for x in atom.bonds.values() - ] - ) + num_of_d_bonds = sum([1 if x.order[0] is "D" and len(x.order) == 1 else 0 for x in atom.bonds.values()]) if num_of_d_bonds == 2: correct_atom_list.append("Cdd") elif num_of_d_bonds == 1: @@ -1504,13 +1020,9 @@ def kinetics_check_cd_atom_type(self, family_name): # Ignore ligands that are not double bonded if any([abs(2 - order) < 1e-7 for order in bond.order]): for ligAtomType in ligand.atomtype: - if ligand.atomtype[0].is_specific_case_of( - ATOMTYPES["O"] - ): + if ligand.atomtype[0].is_specific_case_of(ATOMTYPES["O"]): correct_atom_list.append("CO") - elif ligand.atomtype[0].is_specific_case_of( - ATOMTYPES["S"] - ): + elif ligand.atomtype[0].is_specific_case_of(ATOMTYPES["S"]): correct_atom_list.append("CS") # remove duplicates from correctAtom: @@ -1539,9 +1051,9 @@ def kinetics_check_cd_atom_type(self, family_name): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_unimolecular_groups(self, family_name): """ @@ -1637,9 +1149,7 @@ def get_end_from_backbone(_backbone, _end_labels): if not labels.issubset(present_labels): c.append([end_group, entry]) # check D - mid_atoms = [ - group.get_labeled_atoms(x)[0] for x in family.boundary_atoms - ] + mid_atoms = [group.get_labeled_atoms(x)[0] for x in family.boundary_atoms] path_atoms = find_shortest_path(mid_atoms[0], mid_atoms[1]) for atom in path_atoms: if not atom.label: @@ -1714,9 +1224,9 @@ def get_end_from_backbone(_backbone, _end_labels): boo = True if boo: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def kinetics_check_sample_descends_to_group(self, family_name): """ @@ -1745,21 +1255,14 @@ def kinetics_check_sample_descends_to_group(self, family_name): for backboneRoot in backbone_roots: all_backbone_groups.extend(family.get_top_level_groups(backboneRoot)) # list of numbered of labelled atoms for all_backbone_groups - backbone_sizes = [ - len(backbone.item.get_all_labeled_atoms()) - for backbone in all_backbone_groups - ] + backbone_sizes = [len(backbone.item.get_all_labeled_atoms()) for backbone in all_backbone_groups] # pick a backbone that is two labelled atoms larger than the smallest if min(backbone_sizes) + 2 in backbone_sizes: - backbone_sample = all_backbone_groups[ - backbone_sizes.index(min(backbone_sizes) + 2) - ] + backbone_sample = all_backbone_groups[backbone_sizes.index(min(backbone_sizes) + 2)] # or if it doesn't exist, pick the largest backbone else: - backbone_sample = all_backbone_groups[ - backbone_sizes.index(max(backbone_sizes)) - ] + backbone_sample = all_backbone_groups[backbone_sizes.index(max(backbone_sizes))] merges_necessary = True else: merges_necessary = False @@ -1776,9 +1279,7 @@ def kinetics_check_sample_descends_to_group(self, family_name): else: root = entry try: - if ( - merges_necessary and root not in backbone_roots - ): # we may need to merge + if merges_necessary and root not in backbone_roots: # we may need to merge merged_group = backbone_sample.item.merge_groups(entry.item) sample_molecule = merged_group.make_sample_molecule() else: @@ -1786,24 +1287,16 @@ def kinetics_check_sample_descends_to_group(self, family_name): # test accessibility here atoms = sample_molecule.get_all_labeled_atoms() - match = family.groups.descend_tree( - sample_molecule, atoms, strict=True, root=root - ) + match = family.groups.descend_tree(sample_molecule, atoms, strict=True, root=root) tst1.append( ( match, - "Group {0} does not match its root node, {1}".format( - entryName, root.label - ), + "Group {0} does not match its root node, {1}".format(entryName, root.label), ) ) if tst1[-1][0] is not None: if merges_necessary and root not in backbone_roots: - backbone_msg = ( - "\n\nBackbone Group Adjlist:\n" - + backbone_sample.label - + "\n" - ) + backbone_msg = "\n\nBackbone Group Adjlist:\n" + backbone_sample.label + "\n" backbone_msg += backbone_sample.item.to_adjacency_list() else: backbone_msg = "" @@ -1834,11 +1327,7 @@ def kinetics_check_sample_descends_to_group(self, family_name): except UnexpectedChargeError as e: if merges_necessary and root not in backbone_roots: - backbone_msg = ( - "\n\nBackbone Group Adjlist:\n" - + backbone_sample.label - + "\n" - ) + backbone_msg = "\n\nBackbone Group Adjlist:\n" + backbone_sample.label + "\n" backbone_msg += backbone_sample.item.to_adjacency_list() else: backbone_msg = "" @@ -1886,6 +1375,8 @@ def kinetics_check_sample_descends_to_group(self, family_name): if boo: raise ValueError("Error Occurred") + else: + return True def kinetics_check_sample_can_react(self, family_name): """ @@ -1917,30 +1408,21 @@ def kinetics_check_sample_can_react(self, family_name): for backboneRoot in backbone_roots: all_backbone_groups.extend(family.get_top_level_groups(backboneRoot)) # list of numbered of labelled atoms for all_backbone_groups - backbone_sizes = [ - len(backbone.item.get_all_labeled_atoms()) - for backbone in all_backbone_groups - ] + backbone_sizes = [len(backbone.item.get_all_labeled_atoms()) for backbone in all_backbone_groups] # pick a backbone that is two labelled atoms larger than the smallest if min(backbone_sizes) + 2 in backbone_sizes: - backbone_sample = all_backbone_groups[ - backbone_sizes.index(min(backbone_sizes) + 2) - ] + backbone_sample = all_backbone_groups[backbone_sizes.index(min(backbone_sizes) + 2)] # or if it doesn't exist, pick the largest backbone else: - backbone_sample = all_backbone_groups[ - backbone_sizes.index(max(backbone_sizes)) - ] + backbone_sample = all_backbone_groups[backbone_sizes.index(max(backbone_sizes))] merges_necessary = True else: merges_necessary = False # If atom has too many benzene rings, we currently have trouble making sample atoms skipped = [] - sample_reactants = defaultdict( - list - ) # the keys will be the root nodes, the values a list of samples + sample_reactants = defaultdict(list) # the keys will be the root nodes, the values a list of samples for entryName, entry in family.groups.entries.items(): if entry in ignore: continue @@ -1951,9 +1433,7 @@ def kinetics_check_sample_can_react(self, family_name): else: root = entry try: - if ( - merges_necessary and root not in backbone_roots - ): # we may need to merge + if merges_necessary and root not in backbone_roots: # we may need to merge merged_group = backbone_sample.item.merge_groups(entry.item) sample_molecule = merged_group.make_sample_molecule() # store the sample molecule for later testing @@ -1966,11 +1446,7 @@ def kinetics_check_sample_can_react(self, family_name): sample_reactants[root].append(sample_molecule) except UnexpectedChargeError as e: if merges_necessary and root not in backbone_roots: - backbone_msg = ( - "\n\nBackbone Group Adjlist:\n" - + backbone_sample.label - + "\n" - ) + backbone_msg = "\n\nBackbone Group Adjlist:\n" + backbone_sample.label + "\n" backbone_msg += backbone_sample.item.to_adjacency_list() else: backbone_msg = "" @@ -2097,10 +1573,7 @@ def make_error_message(reactants, message=""): species = rmgpy.species.Species(index=1, molecule=[molecule]) species.generate_resonance_structures() else: - raise ValueError( - f"Family had {len(sample_reactants)} reactants?: " - f"{', '.join(map(str,sample_reactants.keys())) }" - ) + raise ValueError(f"Family had {len(sample_reactants)} reactants?: " f"{', '.join(map(str,sample_reactants.keys())) }") # print out entries skipped from exception we can't currently handle if skipped: @@ -2114,6 +1587,8 @@ def make_error_message(reactants, message=""): boo = True if boo: raise ValueError("Error Occurred. See log for details.") + else: + return True def check_surface_thermo_groups_have_surface_attributes(self, group_name, group): """ @@ -2125,34 +1600,24 @@ def check_surface_thermo_groups_have_surface_attributes(self, group_name, group) if isinstance(entry.data, rmgpy.thermo.thermodata.ThermoData): if "Pt" in group_name: if entry.metal is not "Pt": - logging.error( - f"Expected {entry} metal attribute in {group_name} group to match Pt, but was {entry.metal}" - ) + logging.error(f"Expected {entry} metal attribute in {group_name} group to match Pt, but was {entry.metal}") failed = True if "111" in group_name: if entry.facet is not "111": - logging.error( - f"Expected {entry} facet attribute in {group_name} group to match 111, but was {entry.facet}" - ) + logging.error(f"Expected {entry} facet attribute in {group_name} group to match 111, but was {entry.facet}") failed = True if not entry.metal: - logging.error( - f"Expected a metal attribute for {entry} in {group_name} group but found {entry.metal!r}" - ) + logging.error(f"Expected a metal attribute for {entry} in {group_name} group but found {entry.metal!r}") failed = True if not entry.facet: - logging.error( - f"Expected a facet attribute for {entry} in {group_name} group but found {entry.facet!r}" - ) + logging.error(f"Expected a facet attribute for {entry} in {group_name} group but found {entry.facet!r}") failed = True if failed: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True - def check_surface_thermo_libraries_have_surface_attributes( - self, library_name, library - ): + def check_surface_thermo_libraries_have_surface_attributes(self, library_name, library): """ Test that each entry in the surface thermo database has a 'metal' and 'facet' attribute, describing which metal the data came from. @@ -2161,36 +1626,26 @@ def check_surface_thermo_libraries_have_surface_attributes( for entry in library.entries.values(): if "Pt" in library_name: if entry.metal is not "Pt": - logging.error( - f"Expected {entry} metal attribute in {library_name} library to match Pt, but was {entry.metal}" - ) + logging.error(f"Expected {entry} metal attribute in {library_name} library to match Pt, but was {entry.metal}") failed = True if "Ni" in library_name: if entry.metal is not "Ni": - logging.error( - f"Expected {entry} metal attribute in {library_name} library to match Ni, but was {entry.metal}" - ) + logging.error(f"Expected {entry} metal attribute in {library_name} library to match Ni, but was {entry.metal}") failed = True if "111" in library_name: if entry.facet is not "111": - logging.error( - f"Expected {entry} facet attribute in {library_name} library to match 111, but was {entry.facet}" - ) + logging.error(f"Expected {entry} facet attribute in {library_name} library to match 111, but was {entry.facet}") failed = True if not entry.metal: - logging.error( - f"Expected a metal attribute for {entry} in {library} library but found {entry.metal!r}" - ) + logging.error(f"Expected a metal attribute for {entry} in {library} library but found {entry.metal!r}") failed = True if not entry.facet: - logging.error( - f"Expected a facet attribute for {entry} in {library} library but found {entry.facet!r}" - ) + logging.error(f"Expected a facet attribute for {entry} in {library} library but found {entry.facet!r}") failed = True if failed: - raise ValueError( - "Error occured in databaseTest. Please check log warnings for all error messages." - ) + raise ValueError("Error occured in databaseTest. Please check log warnings for all error messages.") + else: + return True def general_check_nodes_found_in_tree(self, group_name, group): """ @@ -2212,26 +1667,20 @@ def general_check_nodes_found_in_tree(self, group_name, group): tst1.append( ( ascend_parent is not None, - "Node {node} in {group} group was found in the tree without a proper parent.".format( - node=child, group=group_name - ), + "Node {node} in {group} group was found in the tree without a proper parent.".format(node=child, group=group_name), ) ) if tst1[-1] is not None: tst2.append( ( child in ascend_parent.children, - "Node {node} in {group} group was found in the tree without a proper parent.".format( - node=node_name, group=group_name - ), + "Node {node} in {group} group was found in the tree without a proper parent.".format(node=node_name, group=group_name), ) ) tst3.append( ( child is ascend_parent, - "Node {node} in {group} is a parent to itself".format( - node=node_name, group=group_name - ), + "Node {node} in {group} is a parent to itself".format(node=node_name, group=group_name), ) ) @@ -2250,6 +1699,8 @@ def general_check_nodes_found_in_tree(self, group_name, group): if boo: raise ValueError("Error Occurred") + else: + return True def general_check_groups_nonidentical(self, group_name, group): """ @@ -2285,6 +1736,8 @@ def general_check_groups_nonidentical(self, group_name, group): if boo: raise ValueError("Error Occurred") + else: + return True def general_check_child_parent_relationships(self, group_name, group): """ @@ -2316,9 +1769,7 @@ def general_check_child_parent_relationships(self, group_name, group): # If it does, then the child_node must also be a child of the ancestor if isinstance(parent_node.item, LogicOr): ancestor_node = parent_node - while ancestor_node not in group.top and isinstance( - ancestor_node.item, LogicOr - ): + while ancestor_node not in group.top and isinstance(ancestor_node.item, LogicOr): ancestor_node = ancestor_node.parent if isinstance(ancestor_node.item, Group) and tst1[-1][0]: tst2.append( @@ -2345,6 +1796,8 @@ def general_check_child_parent_relationships(self, group_name, group): if boo: raise ValueError("Error Occurred") + else: + return True def general_check_siblings_for_parents(self, group_name, group): """ @@ -2371,9 +1824,7 @@ def general_check_siblings_for_parents(self, group_name, group): tst.append( ( group.match_node_to_child(child1, child2), - "In {0} group, node {1} is a parent of {2}, but they are written as siblings.".format( - group_name, child1, child2 - ), + "In {0} group, node {1} is a parent of {2}, but they are written as siblings.".format(group_name, child1, child2), ) ) @@ -2385,6 +1836,8 @@ def general_check_siblings_for_parents(self, group_name, group): if boo: raise ValueError("Error Occurred") + else: + return True def general_check_cd_atom_type(self, group_name, group): """ @@ -2405,12 +1858,7 @@ def general_check_cd_atom_type(self, group_name, group): continue # figure out what the correct atomtype is correct_atom_list = [] - num_of_d_bonds = sum( - [ - 1 if x.order[0] is "D" and len(x.order) == 1 else 0 - for x in atom.bonds.values() - ] - ) + num_of_d_bonds = sum([1 if x.order[0] is "D" and len(x.order) == 1 else 0 for x in atom.bonds.values()]) if num_of_d_bonds == 2: correct_atom_list.append("Cdd") elif num_of_d_bonds == 1: @@ -2418,13 +1866,9 @@ def general_check_cd_atom_type(self, group_name, group): # Ignore ligands that are not double bonded if any([abs(2 - order) < 1e-7 for order in bond.order]): for lig_atom_type in ligand.atomtype: - if ligand.atomtype[0].is_specific_case_of( - ATOMTYPES["O"] - ): + if ligand.atomtype[0].is_specific_case_of(ATOMTYPES["O"]): correct_atom_list.append("CO") - elif ligand.atomtype[0].is_specific_case_of( - ATOMTYPES["S"] - ): + elif ligand.atomtype[0].is_specific_case_of(ATOMTYPES["S"]): correct_atom_list.append("CS") # remove duplicates from correctAtom: @@ -2454,6 +1898,8 @@ def general_check_cd_atom_type(self, group_name, group): if boo: raise ValueError("Error Occurred") + else: + return True def general_check_sample_descends_to_group(self, group_name, group): """ @@ -2483,11 +1929,7 @@ def general_check_sample_descends_to_group(self, group_name, group): try: sample_molecule = entry.item.make_sample_molecule() except: - logging.error( - "Problem making sample molecule for group {}\n{}".format( - entryName, entry.item.to_adjacency_list() - ) - ) + logging.error("Problem making sample molecule for group {}\n{}".format(entryName, entry.item.to_adjacency_list())) raise atoms = sample_molecule.get_all_labeled_atoms() @@ -2495,9 +1937,7 @@ def general_check_sample_descends_to_group(self, group_name, group): tst1.append( ( match, - "Group {0} does not match its root node, {1}".format( - entryName, group.top[0] - ), + "Group {0} does not match its root node, {1}".format(entryName, group.top[0]), ) ) tst2.append( @@ -2568,3 +2008,5 @@ def general_check_sample_descends_to_group(self, group_name, group): if boo: raise ValueError("Error Occurred") + else: + return True From b47d08c64acc304afdb6b6bc3b62bb239f46571d Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 11:44:22 -0400 Subject: [PATCH 10/88] yet more name conflicts and pytest warnings --- test/arkane/{pdepTest.py => arkanePdepTest.py} | 0 test/rmgpy/chemkinTest.py | 16 ++++++++-------- test/rmgpy/data/solvationTest.py | 2 +- test/rmgpy/data/surfaceTest.py | 2 +- test/rmgpy/qm/{mainTest.py => qmMainTest.py} | 0 5 files changed, 10 insertions(+), 10 deletions(-) rename test/arkane/{pdepTest.py => arkanePdepTest.py} (100%) rename test/rmgpy/qm/{mainTest.py => qmMainTest.py} (100%) diff --git a/test/arkane/pdepTest.py b/test/arkane/arkanePdepTest.py similarity index 100% rename from test/arkane/pdepTest.py rename to test/arkane/arkanePdepTest.py diff --git a/test/rmgpy/chemkinTest.py b/test/rmgpy/chemkinTest.py index e1a5a121fe..b5512309a6 100644 --- a/test/rmgpy/chemkinTest.py +++ b/test/rmgpy/chemkinTest.py @@ -926,21 +926,21 @@ def setUpClass(cls): """ Reaction index: Chemkin #2; RMG #4 Template reaction: H_Abstraction - Estimated using template (C/H3/Cs;C_methyl) for rate rule (C/H3/Cs\H3;C_methyl) + Estimated using template (C/H3/Cs;C_methyl) for rate rule (C/H3/Cs\\H3;C_methyl) Multiplied by reaction path degeneracy 6 """, """ Reaction index: Chemkin #13; RMG #8 Template reaction: H_Abstraction Flux pairs: [CH3], CC; [CH3], CC; - Estimated using an average for rate rule [C/H3/Cs\H3;C_rad/H2/Cs] + Estimated using an average for rate rule [C/H3/Cs\\H3;C_rad/H2/Cs] Multiplied by reaction path degeneracy 6.0 """, """ Reaction index: Chemkin #17; RMG #31 Template reaction: H_Abstraction Flux pairs: [CH3], CC; [CH3], CC; - Estimated using average of templates [C/H3/Cs;H_rad] + [C/H3/Cs\H3;Y_rad] for rate rule [C/H3/Cs\H3;H_rad] + Estimated using average of templates [C/H3/Cs;H_rad] + [C/H3/Cs\\H3;Y_rad] for rate rule [C/H3/Cs\\H3;H_rad] Multiplied by reaction path degeneracy 6.0 """, """ @@ -971,7 +971,7 @@ def setUpClass(cls): Reaction index: Chemkin #51; RMG #136 Template reaction: H_Abstraction Flux pairs: [CH3], CC; [CH3], CC; - Estimated using an average for rate rule [C/H3/Cd\H_Cd\H2;C_rad/H2/Cs] + Estimated using an average for rate rule [C/H3/Cd\\H_Cd\\H2;C_rad/H2/Cs] Euclidian distance = 0 Multiplied by reaction path degeneracy 3.0 """, @@ -993,13 +993,13 @@ def setUpClass(cls): ] cls.template_list = [ ["C_methyl", "C_methyl"], - ["C/H3/Cs\H3", "C_methyl"], - ["C/H3/Cs\H3", "C_rad/H2/Cs"], - ["C/H3/Cs\H3", "H_rad"], + [r"C/H3/Cs\H3", "C_methyl"], + [r"C/H3/Cs\H3", "C_rad/H2/Cs"], + [r"C/H3/Cs\H3", "H_rad"], ["R3H_SS_Cs", "O_rad_out", "Cs_H_out_2H"], ["CH_quartet", "O_Csrad"], None, - ["C/H3/Cd\H_Cd\H2", "C_rad/H2/Cs"], + [r"C/H3/Cd\H_Cd\H2", "C_rad/H2/Cs"], ["C_methyl", "C_methyl"], ["C_rad/H2/Cs", "C_methyl"], ] diff --git a/test/rmgpy/data/solvationTest.py b/test/rmgpy/data/solvationTest.py index 4d60d13fdf..1be872e214 100644 --- a/test/rmgpy/data/solvationTest.py +++ b/test/rmgpy/data/solvationTest.py @@ -28,7 +28,7 @@ ############################################################################### import os -from unittest import TestCase, TestLoader, TextTestRunner +from unittest import TestCase from rmgpy import settings from rmgpy.data.solvation import ( diff --git a/test/rmgpy/data/surfaceTest.py b/test/rmgpy/data/surfaceTest.py index 68ed63affa..3a9054cdde 100644 --- a/test/rmgpy/data/surfaceTest.py +++ b/test/rmgpy/data/surfaceTest.py @@ -28,7 +28,7 @@ ############################################################################### import os -from unittest import TestCase, TestLoader, TextTestRunner +from unittest import TestCase from rmgpy import settings from rmgpy.data.surface import MetalDatabase diff --git a/test/rmgpy/qm/mainTest.py b/test/rmgpy/qm/qmMainTest.py similarity index 100% rename from test/rmgpy/qm/mainTest.py rename to test/rmgpy/qm/qmMainTest.py From cbd0f48d2a01dfe4593ae8d58d5fdae7d6a127be Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 11:57:09 -0400 Subject: [PATCH 11/88] remove nosetest asserts with nose2pytest --- test/rmgpy/molecule/isomorphismTest.py | 70 +++++++++++++------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/test/rmgpy/molecule/isomorphismTest.py b/test/rmgpy/molecule/isomorphismTest.py index 9c4419fbd5..a9a79220aa 100644 --- a/test/rmgpy/molecule/isomorphismTest.py +++ b/test/rmgpy/molecule/isomorphismTest.py @@ -212,7 +212,7 @@ def exception(exc): raise exc def success(): - assert_equal(True, True) + assert True == True def is_isomorphic_mol_atom_types(e1, e2, u1, u2, c1, c2): """ @@ -229,7 +229,7 @@ def is_isomorphic_mol_atom_types(e1, e2, u1, u2, c1, c2): if mol1 is not None and mol2 is not None: calc = mol1.is_isomorphic(mol2) - assert_equal(calc, exp, err) + assert calc == exp, err def find_isomorphisms_mol_atom_types(e1, e2, u1, u2, c1, c2): """ @@ -247,7 +247,7 @@ def find_isomorphisms_mol_atom_types(e1, e2, u1, u2, c1, c2): if mol1 is not None and mol2 is not None: calc = len(mol1.find_isomorphism(mol2)) > 0 - assert_equal(calc, exp, err) + assert calc == exp, err def is_subgraph_isomorphic_mol_atom_types(e1, e2, u1, u2, c1, c2): mol1, adjlist1 = create_molecule(e1, u1, c1) @@ -263,7 +263,7 @@ def is_subgraph_isomorphic_mol_atom_types(e1, e2, u1, u2, c1, c2): if mol1 is not None and group1 is not None: calc = mol1.is_subgraph_isomorphic(group1) - assert_equal(calc, exp, err) + assert calc == exp, err def find_subgraph_isomorphisms_mol_atom_types(e1, e2, u1, u2, c1, c2): mol1, adjlist1 = create_molecule(e1, u1, c1) @@ -279,7 +279,7 @@ def find_subgraph_isomorphisms_mol_atom_types(e1, e2, u1, u2, c1, c2): if mol1 is not None and group1 is not None: calc = len(mol1.find_subgraph_isomorphisms(group1)) > 0 - assert_equal(calc, exp, err) + assert calc == exp, err output = load_cases_molecule_atom_types() for args in output: @@ -312,7 +312,7 @@ def is_isomorphic_mol_group_atom_types(e1, e2, u1, u2, c1, c2): ) calc = mol1.is_subgraph_isomorphic(group1) - assert_equal(calc, exp, err) + assert calc == exp, err def find_subgraph_isomorphisms_mol_group_atom_types(e1, e2, u1, u2, c1, c2): mol1, adjlist1 = create_molecule(e1, u1, c1) @@ -326,7 +326,7 @@ def find_subgraph_isomorphisms_mol_group_atom_types(e1, e2, u1, u2, c1, c2): ) calc = len(mol1.find_subgraph_isomorphisms(group1)) > 0 - assert_equal(calc, exp, err) + assert calc == exp, err output = load_cases_group_atom_types() for args in output: @@ -366,8 +366,8 @@ def test_multiplicity_mol_mol_distinct_multiplicity(): saturate_h=True, ) - assert_false(mol.is_isomorphic(mol2)) - assert_false(len(mol.find_isomorphism(mol2)) > 0) + assert not mol.is_isomorphic(mol2) + assert not len(mol.find_isomorphism(mol2)) > 0 def test_multiplicity_mol_mol_identical_multiplicity(): @@ -390,8 +390,8 @@ def test_multiplicity_mol_mol_identical_multiplicity(): saturate_h=True, ) - assert_true(mol.is_isomorphic(mol2)) - assert_true(len(mol.find_isomorphism(mol2)) > 0) + assert mol.is_isomorphic(mol2) + assert len(mol.find_isomorphism(mol2)) > 0 def test_multiplicity_mol_not_specified_mol_specified(): @@ -413,8 +413,8 @@ def test_multiplicity_mol_not_specified_mol_specified(): saturate_h=True, ) - assert_true(mol.is_isomorphic(mol2)) - assert_true(len(mol.find_isomorphism(mol2)) > 0) + assert mol.is_isomorphic(mol2) + assert len(mol.find_isomorphism(mol2)) > 0 def test_multiplicity_mol_not_specified_mol_not_specified(): @@ -435,8 +435,8 @@ def test_multiplicity_mol_not_specified_mol_not_specified(): saturate_h=True, ) - assert_true(mol.is_isomorphic(mol2)) - assert_true(len(mol.find_isomorphism(mol2)) > 0) + assert mol.is_isomorphic(mol2) + assert len(mol.find_isomorphism(mol2)) > 0 def test_isomorphism__r(): @@ -453,7 +453,7 @@ def test_isomorphism__r(): """ ) - assert_true(len(mol.find_subgraph_isomorphisms(gp)) > 0) + assert len(mol.find_subgraph_isomorphisms(gp)) > 0 def test_isomorphism_mol_group_not_identical(): @@ -473,8 +473,8 @@ def test_isomorphism_mol_group_not_identical(): 1 R u0 p0 c0 """ ) - assert_false(mol.is_subgraph_isomorphic(gp)) - assert_false(len(mol.find_subgraph_isomorphisms(gp)) > 0) + assert not mol.is_subgraph_isomorphic(gp) + assert not len(mol.find_subgraph_isomorphisms(gp)) > 0 def test_isomorphism_group_group(): @@ -500,18 +500,18 @@ def test_isomorphism_group_group(): """ ) - assert_false(gp1.is_subgraph_isomorphic(gp2)) - assert_false(len(gp1.find_subgraph_isomorphisms(gp2)) > 0) + assert not gp1.is_subgraph_isomorphic(gp2) + assert not len(gp1.find_subgraph_isomorphisms(gp2)) > 0 - assert_true(gp2.is_subgraph_isomorphic(gp1)) - assert_true(len(gp2.find_subgraph_isomorphisms(gp1)) > 0) + assert gp2.is_subgraph_isomorphic(gp1) + assert len(gp2.find_subgraph_isomorphisms(gp1)) > 0 - assert_false(gp2.is_identical(gp1)) + assert not gp2.is_identical(gp1) - assert_true(gp3.is_subgraph_isomorphic(gp1)) - assert_true(len(gp3.find_subgraph_isomorphisms(gp1)) > 0) - assert_false(gp3.is_subgraph_isomorphic(gp2)) - assert_false(len(gp3.find_subgraph_isomorphisms(gp2)) > 0) + assert gp3.is_subgraph_isomorphic(gp1) + assert len(gp3.find_subgraph_isomorphisms(gp1)) > 0 + assert not gp3.is_subgraph_isomorphic(gp2) + assert not len(gp3.find_subgraph_isomorphisms(gp2)) > 0 def test_isomorphism_sulfur_group_sulfur_molecule(): @@ -545,9 +545,9 @@ def test_isomorphism_sulfur_group_sulfur_molecule(): 5 H 0 {3,S} """ ) - assert_true(mol.is_subgraph_isomorphic(gp1)) + assert mol.is_subgraph_isomorphic(gp1) - assert_true(mol.is_subgraph_isomorphic(gp2)) + assert mol.is_subgraph_isomorphic(gp2) def test_isotope_subgraph_isomorphism_molecule_and_group(): @@ -581,9 +581,9 @@ def test_isotope_subgraph_isomorphism_molecule_and_group(): 5 H u0 {1,S} """ ) - assert_true(methanei.is_subgraph_isomorphic(group_methane)) - assert_true(methane.is_subgraph_isomorphic(group_methane)) - assert_false(methanei.is_isomorphic(methane)) + assert methanei.is_subgraph_isomorphic(group_methane) + assert methane.is_subgraph_isomorphic(group_methane) + assert not methanei.is_isomorphic(methane) def test_isomorphism_wrong_mapping(): @@ -628,12 +628,12 @@ def test_isomorphism_wrong_mapping(): 14 H u0 p0 c0 {11,S} """ ) - assert_false(n1butane.is_isomorphic(n2butane)) - assert_false(n1butane.is_isomorphic(n2butane, generate_initial_map=True)) + assert not n1butane.is_isomorphic(n2butane) + assert not n1butane.is_isomorphic(n2butane, generate_initial_map=True) mapping = {} for label in ["*1", "*2", "*3", "*4"]: mapping[n1butane.get_labeled_atoms(label)[0]] = n2butane.get_labeled_atoms( label )[0] - assert_false(n1butane.is_isomorphic(n2butane, initial_map=mapping)) + assert not n1butane.is_isomorphic(n2butane, initial_map=mapping) From 9d40dbcf5d1278ab214284dd724efed15bf888c9 Mon Sep 17 00:00:00 2001 From: Jackson Burns Date: Sat, 22 Jul 2023 12:51:07 -0400 Subject: [PATCH 12/88] remove external software folder - no longer relevant bc of conda --- external/README | 48 ------------- external/__init__.py | 0 external/jquery.min.js | 152 ----------------------------------------- external/wip.py | 26 ------- 4 files changed, 226 deletions(-) delete mode 100644 external/README delete mode 100644 external/__init__.py delete mode 100644 external/jquery.min.js delete mode 100644 external/wip.py diff --git a/external/README b/external/README deleted file mode 100644 index 00c7aba3fb..0000000000 --- a/external/README +++ /dev/null @@ -1,48 +0,0 @@ -This folder ('external') is for external programs that RMG depends on but are -not part of the RMG code itself. In most cases you can get them elsewhere. -Nevertheless, they are stored here because - (1) they may be hard to find elsewhere - (2) we know that that these versions work (but ones from elsewhere may not) - -ctml_writer.py -comes from Cantera 1.7 (https://sourceforge.net/projects/cantera/) -which we think uses the New BSD License -http://www.opensource.org/licenses/bsd-license.php - -pydot.py -comes from Pydot (http://www.dkbza.org/pydot.html) -which uses the MIT license -http://opensource.org/licenses/mit-license.html -the version here is based on 1.0.2 but contains a bug fix patch - - -cinfony/webel.py -from http://cinfony.googlecode.com/svn/trunk/cinfony/webel.py - -jquery.min.js -from http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js -Used by the HTML output of RMG. Useful to have it locally if you do not have -internet access when you want to look at your results. - - -symmetry -Brute force symmetry determination program and the associated test set. -(C) 1996, 2003 S. Patchkovskii, Serguei.Patchkovskii@sympatico.ca -Published under GNU General Public License -http://www.cobalt.chem.ucalgary.ca/ps/symmetry/ -(now mirrored at https://github.com/nquesada/symmetry) -This is based on Revision 1.16 2003/04/04 -This program is no longer stored in the external programs folder but is instead found on the anaconda platform. - - -cclib -An open source library, written in Python, for parsing and interpreting -the results of computational chemistry packages. -N. M. O'Boyle, A. L. Tenderholt, K. M. Langner, -"cclib: a library for package-independent computational chemistry algorithms", -J. Comp. Chem. 29 (5), pp. 839-845, 2008 -cclib is licensed under the LGPL -http://cclib.sourceforge.net -This is based on version 1.0 but with some modifications, -probably made in the RMG-Java project. -We should endeavor to get the modifications merged upstream and use the main cclib. \ No newline at end of file diff --git a/external/__init__.py b/external/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/external/jquery.min.js b/external/jquery.min.js deleted file mode 100644 index 0c7294c90a..0000000000 --- a/external/jquery.min.js +++ /dev/null @@ -1,152 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.1 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Jan 25 19:43:33 2010 -0500 - */ -(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f, -a.currentTarget);m=0;for(s=i.length;m)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent, -va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]], -[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a, -this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this, -a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice}; -c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support= -{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null}; -b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="";a=r.createDocumentFragment();a.appendChild(d.firstChild); -c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props= -{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true, -{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this, -a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d); -return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]|| -a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m= -c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value|| -{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d); -f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText= -""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j= -function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a, -d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+ -s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a, -"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d, -b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b, -d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), -fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b= -0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true}; -c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b= -a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!== -"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this, -"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"|| -d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a= -a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this, -f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a, -b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g|| -typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u= -l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&& -y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&& -"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true); -return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"=== -g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2=== -0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return hk[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k= -0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="? -k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g}; -try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id"); -return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href", -2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length=== -0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[], -l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var i=d;i0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e --1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(), -a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")}, -nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e): -e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!== -b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"], -col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)}, -wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length? -d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments, -false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&& -!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/