├── .gitignore ├── CODEOWNERS ├── LICENSE.md ├── MANIFEST.in ├── PKG-INFO ├── README.rst ├── conda-pieces ├── bld.bat ├── build.sh └── meta.yaml ├── docs ├── Makefile ├── VGA_qr-code.png ├── make.bat ├── pGrAdd RGB 2.png ├── pGrAdd RGB 3.png ├── pGrAdd_RGB_github.png ├── pgrad logos.pptx ├── source │ ├── WorkshopJupyterNotebooks │ │ ├── OpenMKM_demo │ │ │ ├── CSTR │ │ │ │ ├── .ipynb_checkpoints │ │ │ │ │ └── cstr-checkpoint.ipynb │ │ │ │ ├── AbyV-1000 │ │ │ │ │ ├── Grxn.out │ │ │ │ │ ├── Hform.out │ │ │ │ │ ├── Hrxn.out │ │ │ │ │ ├── NH3_input.xml │ │ │ │ │ ├── Sform.out │ │ │ │ │ ├── Srxn.out │ │ │ │ │ ├── cstr.yaml │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── general_info.out │ │ │ │ │ ├── kc.out │ │ │ │ │ ├── kf.out │ │ │ │ │ ├── kr.out │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── reactions.out │ │ │ │ │ ├── species.out │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ ├── AbyV-1500 │ │ │ │ │ ├── Grxn.out │ │ │ │ │ ├── Hform.out │ │ │ │ │ ├── Hrxn.out │ │ │ │ │ ├── NH3_input.xml │ │ │ │ │ ├── Sform.out │ │ │ │ │ ├── Srxn.out │ │ │ │ │ ├── cstr.yaml │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── general_info.out │ │ │ │ │ ├── kc.out │ │ │ │ │ ├── kf.out │ │ │ │ │ ├── kr.out │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── reactions.out │ │ │ │ │ ├── species.out │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ ├── T-900K │ │ │ │ │ ├── Grxn.out │ │ │ │ │ ├── Hform.out │ │ │ │ │ ├── Hrxn.out │ │ │ │ │ ├── NH3_input.xml │ │ │ │ │ ├── Sform.out │ │ │ │ │ ├── Srxn.out │ │ │ │ │ ├── cstr.yaml │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── general_info.out │ │ │ │ │ ├── kc.out │ │ │ │ │ ├── kf.out │ │ │ │ │ ├── kr.out │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── reactions.out │ │ │ │ │ ├── species.out │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ ├── T-950K │ │ │ │ │ ├── Grxn.out │ │ │ │ │ ├── Hform.out │ │ │ │ │ ├── Hrxn.out │ │ │ │ │ ├── NH3_input.xml │ │ │ │ │ ├── Sform.out │ │ │ │ │ ├── Srxn.out │ │ │ │ │ ├── cstr.yaml │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── general_info.out │ │ │ │ │ ├── kc.out │ │ │ │ │ ├── kf.out │ │ │ │ │ ├── kr.out │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── reactions.out │ │ │ │ │ ├── species.out │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ ├── cstr.ipynb │ │ │ │ └── parametric │ │ │ │ │ ├── Grxn.out │ │ │ │ │ ├── Hform.out │ │ │ │ │ ├── Hrxn.out │ │ │ │ │ ├── NH3_input.xml │ │ │ │ │ ├── Sform.out │ │ │ │ │ ├── Srxn.out │ │ │ │ │ ├── T-900.000000,P-101325.000000,fr-0.000001 │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ │ ├── T-900.000000,P-91192.500000,fr-0.000001 │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ │ ├── T-925.000000,P-101325.000000,fr-0.000001 │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ │ ├── T-925.000000,P-91192.500000,fr-0.000001 │ │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ │ ├── rates_ss.out │ │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ │ └── surf_cov_tr.csv │ │ │ │ │ ├── cstr.yaml │ │ │ │ │ ├── general_info.out │ │ │ │ │ ├── kc.out │ │ │ │ │ ├── kf.out │ │ │ │ │ ├── kr.out │ │ │ │ │ ├── reactions.out │ │ │ │ │ └── species.out │ │ │ └── batch │ │ │ │ ├── .ipynb_checkpoints │ │ │ │ └── batch-checkpoint.ipynb │ │ │ │ ├── adiab │ │ │ │ ├── Grxn.out │ │ │ │ ├── Hform.out │ │ │ │ ├── Hrxn.out │ │ │ │ ├── Sform.out │ │ │ │ ├── Srxn.out │ │ │ │ ├── batch.yaml │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ ├── general_info.out │ │ │ │ ├── grimech30.xml │ │ │ │ ├── kc.out │ │ │ │ ├── kf.out │ │ │ │ ├── kr.out │ │ │ │ ├── rates_ss.out │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ ├── reactions.out │ │ │ │ ├── species.out │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ └── surf_cov_tr.csv │ │ │ │ ├── batch.ipynb │ │ │ │ └── isother │ │ │ │ ├── Grxn.out │ │ │ │ ├── Hform.out │ │ │ │ ├── Hrxn.out │ │ │ │ ├── Sform.out │ │ │ │ ├── Srxn.out │ │ │ │ ├── batch.yaml │ │ │ │ ├── gas_mass_ss.csv │ │ │ │ ├── gas_mass_tr.csv │ │ │ │ ├── gas_mole_ss.csv │ │ │ │ ├── gas_mole_tr.csv │ │ │ │ ├── gas_msdot_ss.csv │ │ │ │ ├── gas_msdot_tr.csv │ │ │ │ ├── general_info.out │ │ │ │ ├── grimech30.xml │ │ │ │ ├── kc.out │ │ │ │ ├── kf.out │ │ │ │ ├── kr.out │ │ │ │ ├── rates_ss.out │ │ │ │ ├── rctr_state_ss.csv │ │ │ │ ├── rctr_state_tr.csv │ │ │ │ ├── reactions.out │ │ │ │ ├── species.out │ │ │ │ ├── surf_cov_ss.csv │ │ │ │ └── surf_cov_tr.csv │ │ ├── pgradd_demo │ │ │ ├── .ipynb_checkpoints │ │ │ │ └── pgradd_demo-checkpoint.ipynb │ │ │ ├── images │ │ │ │ ├── CCH2C(S).png │ │ │ │ ├── CH3CHOH(S).png │ │ │ │ └── pGrAdd_RGB_github.png │ │ │ └── pgradd_demo.ipynb │ │ ├── pmutt_demo │ │ │ ├── .ipynb_checkpoints │ │ │ │ ├── pgradd_demo-checkpoint.ipynb │ │ │ │ └── pmutt_aiche2019-checkpoint.ipynb │ │ │ ├── images │ │ │ │ ├── Cu.png │ │ │ │ ├── H2O.png │ │ │ │ ├── H2_1.jpg │ │ │ │ ├── Heatmap_1d.svg │ │ │ │ ├── Heatmap_2d.png │ │ │ │ ├── SoftwareEcosystem1.svg │ │ │ │ ├── StatMech2.svg │ │ │ │ ├── StatMech_obj.png │ │ │ │ ├── StatMech_smartart.png │ │ │ │ ├── VirtualKineticLab.png │ │ │ │ ├── configurations.png │ │ │ │ ├── configurations.svg │ │ │ │ ├── configurations1.svg │ │ │ │ ├── configurations2.svg │ │ │ │ ├── example_statmech.png │ │ │ │ ├── nasa_func1.png │ │ │ │ ├── pmutt_doc.png │ │ │ │ ├── pmutt_examples.png │ │ │ │ ├── pmutt_issues.png │ │ │ │ ├── pmutt_logo.png │ │ │ │ ├── reaction.png │ │ │ │ ├── reaction_capabilities2.svg │ │ │ │ ├── reaction_capabilities3.svg │ │ │ │ ├── reaction_func1.png │ │ │ │ ├── reaction_smartart.png │ │ │ │ ├── reaction_string.svg │ │ │ │ ├── rxn_coordinate_diagram.png │ │ │ │ ├── rxn_coordinate_diagram.svg │ │ │ │ ├── rxn_coordinate_diagram2.svg │ │ │ │ ├── statmech_modes.png │ │ │ │ └── workflow.png │ │ │ ├── input │ │ │ │ ├── H2 │ │ │ │ │ └── CONTCAR │ │ │ │ ├── N2 │ │ │ │ │ └── CONTCAR │ │ │ │ ├── NH3 │ │ │ │ │ └── CONTCAR │ │ │ │ └── NH3_Input_Data.xlsx │ │ │ ├── output │ │ │ │ └── thermdat │ │ │ ├── pmutt_aiche2019.html │ │ │ └── pmutt_aiche2019.ipynb │ │ └── pmutt_to_omkm │ │ │ ├── .ipynb_checkpoints │ │ │ └── OpenMKM_IO-checkpoint.ipynb │ │ │ ├── OpenMKM_IO.html │ │ │ ├── OpenMKM_IO.ipynb │ │ │ ├── OpenMKM_IO.py │ │ │ ├── inputs │ │ │ ├── H2 │ │ │ │ └── CONTCAR │ │ │ ├── N2 │ │ │ │ └── CONTCAR │ │ │ ├── NH3 │ │ │ │ └── CONTCAR │ │ │ ├── NH3_Input_Data.xlsx │ │ │ └── tube_COV.inp │ │ │ └── outputs │ │ │ ├── input.cti │ │ │ └── input.xml │ ├── _templates │ │ └── layout.html │ ├── conf.py │ ├── examplepage.rst │ ├── includeme.rst │ ├── index.rst │ └── logos │ │ ├── Print │ │ ├── pMuTT Logo 431 3265.pdf │ │ ├── pMuTT Logo 431 White.pdf │ │ ├── pMuTT Logo Black.pdf │ │ └── pMuTT Logo White.pdf │ │ └── Screen │ │ ├── p_icon.ico │ │ ├── pgradd_icon.ico │ │ ├── pgradd_icon.png │ │ ├── pgradd_inverse_web.png │ │ └── pgradd_logo.png └── sphinx-quickstart ├── example └── GA.py ├── pgradd ├── Consts.py ├── DrawMol.py ├── Error.py ├── GroupAdd │ ├── DataDir.py │ ├── FindResStruc.py.old │ ├── Group.py │ ├── Library.py │ ├── Scheme.py │ └── __init__.py ├── RDkitWrapper │ ├── GenRxnNet.py │ ├── MolQuery.py │ ├── ReactionQuery.py │ └── __init__.py ├── RINGParser │ ├── Grammar.py │ ├── MolQueryRead.py │ ├── Parser.py │ ├── ReactionQueryRead.py │ ├── Reader.py │ └── __init__.py ├── ThermoChem │ ├── __init__.py │ ├── base.py │ ├── group_data.py │ ├── incomplete.py │ └── raw_data.py ├── Units │ ├── __init__.py │ ├── builtin.py │ ├── db.py │ ├── helpers.py │ ├── parser.py │ ├── qty.py │ └── utils.py ├── __init__.py ├── data │ ├── BensonGA │ │ ├── gas_benson │ │ │ ├── corrections.yaml │ │ │ ├── extra.yaml │ │ │ ├── hydrocarbons.yaml │ │ │ ├── hydrocarbons_original.yaml │ │ │ ├── index.yaml │ │ │ ├── nitrogenates.yaml │ │ │ ├── original.yaml │ │ │ ├── oxygenates.yaml │ │ │ ├── radicals.yaml │ │ │ └── strain.yaml │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ └── surface_benson.lib.yaml │ ├── GRWAqueous2018 │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.yaml │ │ └── uq.yaml │ ├── GRWSurface2018 │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.yaml │ │ └── uq.yaml │ ├── GuSolventGA2017Aq │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.yaml │ │ └── uq.yaml │ ├── GuSolventGA2017Vac │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.yaml │ │ └── uq.yaml │ ├── PPY │ │ ├── gas_benson │ │ │ ├── corrections.yaml │ │ │ ├── extra.yaml │ │ │ ├── hydrocarbons.yaml │ │ │ ├── hydrocarbons_original.yaml │ │ │ ├── index.yaml │ │ │ ├── nitrogenates.yaml │ │ │ ├── original.yaml │ │ │ ├── oxygenates.yaml │ │ │ ├── radicals.yaml │ │ │ └── strain.yaml │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ └── surface_benson.lib.yaml │ ├── PtSurface2023 │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.test.yaml │ │ ├── surface.yaml │ │ └── uq.yaml │ ├── Roel_Ru │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.yaml │ │ └── surface_old.yaml │ ├── SalciccioliGA2012 │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ ├── surface.yaml │ │ └── surface_benson.yaml │ └── XieGA2022 │ │ ├── library.yaml │ │ ├── scheme.yaml │ │ └── surface.yaml ├── tests │ ├── __init__.py │ ├── test_RINGparser_RDkitwrapper_test.py │ └── test_SMILES_to_thermo_examples.py └── yaml_io │ ├── __init__.py │ ├── builtins.py │ ├── common.py │ ├── lib_interface.py │ ├── schema.py │ └── yaml_io.py └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | *.publishproj 131 | 132 | # NuGet Packages Directory 133 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 134 | #packages/ 135 | 136 | # Windows Azure Build Output 137 | csx 138 | *.build.csdef 139 | 140 | # Windows Store app package directory 141 | AppPackages/ 142 | 143 | # Others 144 | sql/ 145 | *.Cache 146 | ClientBin/ 147 | [Ss]tyle[Cc]op.* 148 | ~$* 149 | *~ 150 | *.dbmdl 151 | *.[Pp]ublish.xml 152 | *.pfx 153 | *.publishsettings 154 | 155 | # RIA/Silverlight projects 156 | Generated_Code/ 157 | 158 | # Backup & report files from converting an old project file to a newer 159 | # Visual Studio version. Backup files are not needed, because we have git ;-) 160 | _UpgradeReport_Files/ 161 | Backup*/ 162 | UpgradeLog*.XML 163 | UpgradeLog*.htm 164 | 165 | # SQL Server files 166 | App_Data/*.mdf 167 | App_Data/*.ldf 168 | 169 | ############# 170 | ## Windows detritus 171 | ############# 172 | 173 | # Windows image file caches 174 | Thumbs.db 175 | ehthumbs.db 176 | 177 | # Folder config file 178 | Desktop.ini 179 | 180 | # Recycle Bin used on file shares 181 | $RECYCLE.BIN/ 182 | 183 | # Mac crap 184 | .DS_Store 185 | 186 | 187 | ############# 188 | ## Python 189 | ############# 190 | 191 | *.py[cod] 192 | *.pyc 193 | # Packages 194 | *.egg 195 | *.egg-info 196 | dist/ 197 | build/ 198 | eggs/ 199 | parts/ 200 | var/ 201 | sdist/ 202 | develop-eggs/ 203 | .installed.cfg 204 | 205 | # Installer logs 206 | pip-log.txt 207 | 208 | # Unit test / coverage reports 209 | .coverage 210 | .tox 211 | 212 | #Translations 213 | *.mo 214 | 215 | #Mr Developer 216 | .mr.developer.cfg 217 | 218 | ############# 219 | ## Matlab 220 | ############# 221 | *.fig 222 | *.mat 223 | *.asv 224 | *.txt 225 | *.emf 226 | *.gif 227 | *.eps 228 | *.gif -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @jonlym @wittregr 2 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Vlachos Research Group 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include pgradd/data/*/* 2 | include pgradd/data/*/*/* 3 | -------------------------------------------------------------------------------- /PKG-INFO: -------------------------------------------------------------------------------- 1 | Name: python-acp 2 | Version: 0.1 3 | Summary: Group Additivity Code 4 | Home-page: https://github.com/VlachosGroup 5 | Author: Gerhard R Wittreich 6 | Author-email: wittregr@udel.edu 7 | License: MIT 8 | Description: See README.md 9 | -------------------------------------------------------------------------------- /conda-pieces/bld.bat: -------------------------------------------------------------------------------- 1 | "%PYTHON%" setup.py install --single-version-externally-managed --record=record.txt 2 | if errorlevel 1 exit 1 3 | -------------------------------------------------------------------------------- /conda-pieces/build.sh: -------------------------------------------------------------------------------- 1 | $PYTHON setup.py install --single-version-externally-managed --record=record.txt # Python 2 | -------------------------------------------------------------------------------- /conda-pieces/meta.yaml: -------------------------------------------------------------------------------- 1 | package: 2 | name: vlachos-group-additivity 3 | version: "1.0.0" 4 | 5 | source: 6 | git_rev: "development" 7 | git_url: "https://github.com/jtfrey/VlachosGroupAdditivity.git" 8 | 9 | requirements: 10 | host: 11 | - python =3.6 12 | - setuptools 13 | run: 14 | - python =3.6 15 | - rdkit >=2008 16 | - scipy >=1.1.0 17 | - numpy >=1.15.1 18 | - ipython >=7.0.0 19 | - pyyaml >=3.0 20 | 21 | about: 22 | home: "https://github.com/VlachosGroup/VlachosGroupAdditivity" 23 | license: MIT 24 | license_file: LICENSE.md 25 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = source 9 | BUILDDIR = ../../pGrAdd_docs 10 | PDFBUILDDIR = /tmp 11 | PDF = ../manual.pdf 12 | 13 | # Put it first so that "make" without argument is like "make help". 14 | help: 15 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 16 | 17 | # Builds in a separate directory to make it easier to manage git branches, 18 | # namely the gh-pages branch for deployment 19 | build: FORCE 20 | sphinx-build -b html source ../../pGrAdd_docs 21 | # FORCE is necessary because Make only runs when a dependency changes; 22 | # it doesn't always run build even if something has changed 23 | FORCE: ; 24 | 25 | .PHONY: help Makefile 26 | 27 | # Catch-all target: route all unknown targets to Sphinx using the new 28 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 29 | %: Makefile 30 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 31 | -------------------------------------------------------------------------------- /docs/VGA_qr-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/VGA_qr-code.png -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=../../pGrAdd_docs 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/pGrAdd RGB 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/pGrAdd RGB 2.png -------------------------------------------------------------------------------- /docs/pGrAdd RGB 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/pGrAdd RGB 3.png -------------------------------------------------------------------------------- /docs/pGrAdd_RGB_github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/pGrAdd_RGB_github.png -------------------------------------------------------------------------------- /docs/pgrad logos.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/pgrad logos.pptx -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/Grxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless Gibbs Energies of reactions (G/RT) 2 | 3 | -1.200782e+00H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 6.366543e+00N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 8.525182e+00NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | -2.254966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -1.056638e+01NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -6.363024e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -1.161833e+01N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.54075 4 | N2 3.67659 5 | NH3 -0.543083 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) -5.71758 9 | N(S1) -6.08062 10 | H(S1) -5.38681 11 | NH3(S1) -10.4197 12 | NH2(S1) -3.61964 13 | NH(S1) -7.23755 14 | N2(S2) -12.1648 15 | N(S2) -8.24706 16 | H(S2) -5.75472 17 | NH3(S2) -16.2222 18 | NH2(S2) -13.7116 19 | NH(S2) -12.4485 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/Hrxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless enthalpies of reactions (H/RT) 2 | 3 | -13.3144 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -9.39417 N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -9.87661 NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.41325 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -9.00472 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -4.22988 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -6.44366 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 18.559 4 | N2 27.1891 5 | NH3 29.0085 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) 11.4284 9 | N(S1) 8.30155 10 | H(S1) 3.22272 11 | NH3(S1) 10.6067 12 | NH2(S1) 11.0522 13 | NH(S1) 9.39112 14 | N2(S2) 11.4284 15 | N(S2) 8.30155 16 | H(S2) 3.22272 17 | NH3(S2) 10.6067 18 | NH2(S2) 11.0522 19 | NH(S2) 9.39112 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/Srxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless entropies of reactions (S/R) 2 | 3 | -1.211359e+01H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -1.576072e+01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -1.840179e+01NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 3.668212e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 1.561667e+00NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.133142e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 5.174668e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/cstr.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: cstr 3 | mode: "isothermal" 4 | volume: "1 cm3" 5 | temperature: 900 6 | pressure: "1 atm" 7 | cat_abyv: "1000 /cm" 8 | 9 | inlet_gas: 10 | flow_rate: "1 cm3/s" 11 | 12 | simulation: 13 | end_time: 50 14 | transient: true 15 | stepping: "logarithmic" 16 | init_step: 1e-15 17 | solver: 18 | atol: 1e-15 19 | rtol: 1e-10 20 | output_format: csv 21 | 22 | phases: 23 | gas: 24 | name: gas 25 | initial_state: "NH3:1.0" 26 | bulk: 27 | name: bulk 28 | surfaces: 29 | - name: terrace 30 | initial_state: "RU(S1):1" 31 | - name: step 32 | initial_state: "RU(S2):1" 33 | 34 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,1.795583e-02,8.317383e-02,8.988703e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,1.377626e-01,4.592087e-02,8.163165e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | 5.000000e+01,2.054045e-09,6.846812e-10,-1.369366e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.230605 13 | Reactor Temperature mode: isothermal 14 | Program ran for 1501 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/kc.out: -------------------------------------------------------------------------------- 1 | #Equilibrium constants of reactions 2 | 3 | 2.453878e+02H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 1.268836e-01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 1.465280e-02NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 9.534966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 3.880803e+04NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 5.799975e+02NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 1.111157e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/kf.out: -------------------------------------------------------------------------------- 1 | #Forward rate constants of reactions 2 | 3 | 5.637531e+17H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.948538e+09N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 5.064136e+09NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.699657e+13NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 8.415966e+15NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 1.351483e+15NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.654642e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/kr.out: -------------------------------------------------------------------------------- 1 | #Reverse rate constants of reactions 2 | 3 | 2.297397e+15H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.111938e+10N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 3.456087e+11NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.928865e+12NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 2.168615e+11NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.330154e+12NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.289042e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 2.127292e-01 2.127292e-01 -2.054044e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 3.491964e-02 3.491965e-02 -6.846814e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 7.961362e-01 7.961362e-01 1.369363e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.409903e-08 4.053995e-10 1.369363e-08 9.720499e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 2.325018e-06 2.311324e-06 1.369363e-08 5.014768e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 1.144128e-04 1.143991e-04 1.369363e-08 5.000299e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 5.832667e-15 6.846819e-09 -6.846814e-09 8.518790e-07 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.000000e+02,1.013250e+05,2.306051e-01,-6.780116e+05 3 | 5.000000e+01,9.000000e+02,1.013250e+05,2.094259e-01,-4.472819e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/reactions.out: -------------------------------------------------------------------------------- 1 | H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 2 | N2 + RU(S1) <=> N2(S1) + RU(B) 3 | NH3 + RU(S1) <=> NH3(S1) + RU(B) 4 | NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 5 | NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 6 | NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 7 | N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 8 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov H N Ru He 2 | H2 Gas 0 2 0 0 0 3 | N2 Gas 0 0 2 0 0 4 | NH3 Gas 0 3 1 0 0 5 | RU(B) Bulk 0 0 0 1 0 6 | RU(S1) Surface 0.656303 0 0 1 0 7 | N2(S1) Surface 5.17798e-05 0 2 0 0 8 | N(S1) Surface 0.327178 0 1 0 0 9 | H(S1) Surface 0.0161907 1 0 0 0 10 | NH3(S1) Surface 9.73331e-07 3 1 0 0 11 | NH2(S1) Surface 8.96313e-07 2 1 0 0 12 | NH(S1) Surface 0.000274664 1 1 0 0 13 | N2(S2) Surface 0 0 2 0 0 14 | N(S2) Surface 0 0 1 0 0 15 | H(S2) Surface 0 1 0 0 0 16 | NH3(S2) Surface 0 3 1 0 0 17 | NH2(S2) Surface 0 2 1 0 0 18 | NH(S2) Surface 0 1 1 0 0 19 | RU(S2) Surface 1 0 0 1 0 20 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1000/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,1.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.563032e-01,5.177975e-05,3.271778e-01,1.619070e-02,9.733311e-07,8.963133e-07,2.746640e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/Grxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless Gibbs Energies of reactions (G/RT) 2 | 3 | -1.200782e+00H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 6.366543e+00N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 8.525182e+00NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | -2.254966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -1.056638e+01NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -6.363024e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -1.161833e+01N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.54075 4 | N2 3.67659 5 | NH3 -0.543083 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) -5.71758 9 | N(S1) -6.08062 10 | H(S1) -5.38681 11 | NH3(S1) -10.4197 12 | NH2(S1) -3.61964 13 | NH(S1) -7.23755 14 | N2(S2) -12.1648 15 | N(S2) -8.24706 16 | H(S2) -5.75472 17 | NH3(S2) -16.2222 18 | NH2(S2) -13.7116 19 | NH(S2) -12.4485 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/Hrxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless enthalpies of reactions (H/RT) 2 | 3 | -13.3144 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -9.39417 N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -9.87661 NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.41325 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -9.00472 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -4.22988 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -6.44366 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 18.559 4 | N2 27.1891 5 | NH3 29.0085 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) 11.4284 9 | N(S1) 8.30155 10 | H(S1) 3.22272 11 | NH3(S1) 10.6067 12 | NH2(S1) 11.0522 13 | NH(S1) 9.39112 14 | N2(S2) 11.4284 15 | N(S2) 8.30155 16 | H(S2) 3.22272 17 | NH3(S2) 10.6067 18 | NH2(S2) 11.0522 19 | NH(S2) 9.39112 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/Srxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless entropies of reactions (S/R) 2 | 3 | -1.211359e+01H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -1.576072e+01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -1.840179e+01NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 3.668212e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 1.561667e+00NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.133142e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 5.174668e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/cstr.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: cstr 3 | mode: "isothermal" 4 | volume: "1 cm3" 5 | temperature: 900 6 | pressure: "1 atm" 7 | cat_abyv: "1500 /cm" 8 | 9 | inlet_gas: 10 | flow_rate: "1 cm3/s" 11 | 12 | simulation: 13 | end_time: 50 14 | transient: true 15 | stepping: "logarithmic" 16 | init_step: 1e-15 17 | solver: 18 | atol: 1e-15 19 | rtol: 1e-10 20 | output_format: csv 21 | 22 | phases: 23 | gas: 24 | name: gas 25 | initial_state: "NH3:1.0" 26 | bulk: 27 | name: bulk 28 | surfaces: 29 | - name: terrace 30 | initial_state: "RU(S1):1" 31 | - name: step 32 | initial_state: "RU(S2):1" 33 | 34 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,2.484879e-02,1.151029e-01,8.600483e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,1.841548e-01,6.138494e-02,7.544603e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | 5.000000e+01,2.842560e-09,9.475199e-10,-1.895031e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.230605 13 | Reactor Temperature mode: isothermal 14 | Program ran for 1748 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/kc.out: -------------------------------------------------------------------------------- 1 | #Equilibrium constants of reactions 2 | 3 | 2.453878e+02H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 1.268836e-01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 1.465280e-02NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 9.534966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 3.880803e+04NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 5.799975e+02NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 1.111157e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/kf.out: -------------------------------------------------------------------------------- 1 | #Forward rate constants of reactions 2 | 3 | 5.637531e+17H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.948538e+09N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 5.064136e+09NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.699657e+13NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 8.415966e+15NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 1.351483e+15NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.654642e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/kr.out: -------------------------------------------------------------------------------- 1 | #Reverse rate constants of reactions 2 | 3 | 2.297397e+15H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.111938e+10N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 3.456087e+11NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.928865e+12NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 2.168615e+11NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.330154e+12NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.289042e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 2.839608e-01 2.839608e-01 -1.895039e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 4.664567e-02 4.664567e-02 -6.316798e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 7.352837e-01 7.352837e-01 1.263359e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.324467e-08 6.110733e-10 1.263359e-08 9.558975e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 3.021793e-06 3.009159e-06 1.263359e-08 5.010474e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 1.314019e-04 1.313893e-04 1.263359e-08 5.000240e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 7.785713e-15 6.316805e-09 -6.316797e-09 1.232538e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.000000e+02,1.013250e+05,2.306051e-01,-6.780116e+05 3 | 5.000000e+01,9.000000e+02,1.013250e+05,2.022937e-01,-3.587085e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/reactions.out: -------------------------------------------------------------------------------- 1 | H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 2 | N2 + RU(S1) <=> N2(S1) + RU(B) 3 | NH3 + RU(S1) <=> NH3(S1) + RU(B) 4 | NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 5 | NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 6 | NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 7 | N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 8 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov H N Ru He 2 | H2 Gas 0 2 0 0 0 3 | N2 Gas 0 0 2 0 0 4 | NH3 Gas 0 3 1 0 0 5 | RU(B) Bulk 0 0 0 1 0 6 | RU(S1) Surface 0.655835 0 0 1 0 7 | N2(S1) Surface 6.91674e-05 0 2 0 0 8 | N(S1) Surface 0.324837 0 1 0 0 9 | H(S1) Surface 0.0189413 1 0 0 0 10 | NH3(S1) Surface 9.15004e-07 3 1 0 0 11 | NH2(S1) Surface 1.16576e-06 2 1 0 0 12 | NH(S1) Surface 0.000315674 1 1 0 0 13 | N2(S2) Surface 0 0 2 0 0 14 | N(S2) Surface 0 0 1 0 0 15 | H(S2) Surface 0 1 0 0 0 16 | NH3(S2) Surface 0 3 1 0 0 17 | NH2(S2) Surface 0 2 1 0 0 18 | NH(S2) Surface 0 1 1 0 0 19 | RU(S2) Surface 1 0 0 1 0 20 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/AbyV-1500/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,1.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.558345e-01,6.916740e-05,3.248372e-01,1.894132e-02,9.150036e-07,1.165758e-06,3.156740e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/Grxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless Gibbs Energies of reactions (G/RT) 2 | 3 | -1.200782e+00H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 6.366543e+00N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 8.525182e+00NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | -2.254966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -1.056638e+01NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -6.363024e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -1.161833e+01N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.54075 4 | N2 3.67659 5 | NH3 -0.543083 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) -5.71758 9 | N(S1) -6.08062 10 | H(S1) -5.38681 11 | NH3(S1) -10.4197 12 | NH2(S1) -3.61964 13 | NH(S1) -7.23755 14 | N2(S2) -12.1648 15 | N(S2) -8.24706 16 | H(S2) -5.75472 17 | NH3(S2) -16.2222 18 | NH2(S2) -13.7116 19 | NH(S2) -12.4485 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/Hrxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless enthalpies of reactions (H/RT) 2 | 3 | -13.3144 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -9.39417 N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -9.87661 NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.41325 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -9.00472 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -4.22988 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -6.44366 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 18.559 4 | N2 27.1891 5 | NH3 29.0085 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) 11.4284 9 | N(S1) 8.30155 10 | H(S1) 3.22272 11 | NH3(S1) 10.6067 12 | NH2(S1) 11.0522 13 | NH(S1) 9.39112 14 | N2(S2) 11.4284 15 | N(S2) 8.30155 16 | H(S2) 3.22272 17 | NH3(S2) 10.6067 18 | NH2(S2) 11.0522 19 | NH(S2) 9.39112 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/Srxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless entropies of reactions (S/R) 2 | 3 | -1.211359e+01H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -1.576072e+01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -1.840179e+01NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 3.668212e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 1.561667e+00NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.133142e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 5.174668e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/cstr.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: cstr 3 | mode: "isothermal" 4 | volume: "1 cm3" 5 | temperature: 900 6 | pressure: "1 atm" 7 | cat_abyv: "1500 /cm" 8 | 9 | inlet_gas: 10 | flow_rate: "1 cm3/s" 11 | 12 | simulation: 13 | end_time: 50 14 | transient: true 15 | stepping: "logarithmic" 16 | init_step: 1e-15 17 | solver: 18 | atol: 1e-15 19 | rtol: 1e-10 20 | output_format: csv 21 | 22 | phases: 23 | gas: 24 | name: gas 25 | initial_state: "NH3:1.0" 26 | bulk: 27 | name: bulk 28 | surfaces: 29 | - name: terrace 30 | initial_state: "RU(S1):1" 31 | - name: step 32 | initial_state: "RU(S2):1" 33 | 34 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,2.484879e-02,1.151029e-01,8.600483e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,1.841548e-01,6.138494e-02,7.544603e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | 5.000000e+01,2.842560e-09,9.475199e-10,-1.895031e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.230605 13 | Reactor Temperature mode: isothermal 14 | Program ran for 1771 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/kc.out: -------------------------------------------------------------------------------- 1 | #Equilibrium constants of reactions 2 | 3 | 2.453878e+02H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 1.268836e-01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 1.465280e-02NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 9.534966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 3.880803e+04NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 5.799975e+02NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 1.111157e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/kf.out: -------------------------------------------------------------------------------- 1 | #Forward rate constants of reactions 2 | 3 | 5.637531e+17H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.948538e+09N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 5.064136e+09NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.699657e+13NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 8.415966e+15NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 1.351483e+15NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.654642e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/kr.out: -------------------------------------------------------------------------------- 1 | #Reverse rate constants of reactions 2 | 3 | 2.297397e+15H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.111938e+10N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 3.456087e+11NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.928865e+12NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 2.168615e+11NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.330154e+12NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.289042e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 2.839608e-01 2.839608e-01 -1.895039e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 4.664567e-02 4.664567e-02 -6.316798e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 7.352837e-01 7.352837e-01 1.263359e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.324467e-08 6.110733e-10 1.263359e-08 9.558975e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 3.021793e-06 3.009159e-06 1.263359e-08 5.010474e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 1.314019e-04 1.313893e-04 1.263359e-08 5.000240e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 7.785713e-15 6.316805e-09 -6.316797e-09 1.232538e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.000000e+02,1.013250e+05,2.306051e-01,-6.780116e+05 3 | 5.000000e+01,9.000000e+02,1.013250e+05,2.022937e-01,-3.587085e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/reactions.out: -------------------------------------------------------------------------------- 1 | H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 2 | N2 + RU(S1) <=> N2(S1) + RU(B) 3 | NH3 + RU(S1) <=> NH3(S1) + RU(B) 4 | NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 5 | NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 6 | NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 7 | N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 8 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov H N Ru He 2 | H2 Gas 0 2 0 0 0 3 | N2 Gas 0 0 2 0 0 4 | NH3 Gas 0 3 1 0 0 5 | RU(B) Bulk 0 0 0 1 0 6 | RU(S1) Surface 0.655835 0 0 1 0 7 | N2(S1) Surface 6.91674e-05 0 2 0 0 8 | N(S1) Surface 0.324837 0 1 0 0 9 | H(S1) Surface 0.0189413 1 0 0 0 10 | NH3(S1) Surface 9.15004e-07 3 1 0 0 11 | NH2(S1) Surface 1.16576e-06 2 1 0 0 12 | NH(S1) Surface 0.000315674 1 1 0 0 13 | N2(S2) Surface 0 0 2 0 0 14 | N(S2) Surface 0 0 1 0 0 15 | H(S2) Surface 0 1 0 0 0 16 | NH3(S2) Surface 0 3 1 0 0 17 | NH2(S2) Surface 0 2 1 0 0 18 | NH(S2) Surface 0 1 1 0 0 19 | RU(S2) Surface 1 0 0 1 0 20 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-900K/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,1.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.558345e-01,6.916740e-05,3.248372e-01,1.894132e-02,9.150036e-07,1.165758e-06,3.156740e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/Grxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless Gibbs Energies of reactions (G/RT) 2 | 3 | -5.307398e-01H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 6.863297e+00N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 9.054515e+00NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | -2.388350e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -1.011018e+01NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -6.154350e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -1.138801e+01N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.09654 4 | N2 3.72787 5 | NH3 -0.147436 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) -5.27114 9 | N(S1) -3.56812 10 | H(S1) -4.65972 11 | NH3(S1) -9.8833 12 | NH2(S1) -1.58364 13 | NH(S1) -4.76196 14 | N2(S2) -11.379 15 | N(S2) -5.62054 16 | H(S2) -5.00826 17 | NH3(S2) -15.3804 18 | NH2(S2) -11.1444 19 | NH(S2) -9.69862 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/Hrxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless enthalpies of reactions (H/RT) 2 | 3 | -11.416 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -8.99902 N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -9.73587 NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 3.63995 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -7.83804 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -3.46587 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -1.8651 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 18.2408 4 | N2 27.4405 5 | NH3 29.3855 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) 11.5782 9 | N(S1) 10.5506 10 | H(S1) 3.67781 11 | NH3(S1) 10.5951 12 | NH2(S1) 12.9456 13 | NH(S1) 11.5399 14 | N2(S2) 11.5782 15 | N(S2) 10.5506 16 | H(S2) 3.67781 17 | NH3(S2) 10.5951 18 | NH2(S2) 12.9456 19 | NH(S2) 11.5399 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/Srxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless entropies of reactions (S/R) 2 | 3 | -1.088523e+01H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -1.586231e+01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -1.879038e+01NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 6.028299e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 2.272135e+00NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.688476e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 9.522915e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/cstr.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: cstr 3 | mode: "isothermal" 4 | volume: "1 cm3" 5 | temperature: 950 6 | pressure: "1 atm" 7 | cat_abyv: "1500 /cm" 8 | 9 | inlet_gas: 10 | flow_rate: "1 cm3/s" 11 | 12 | simulation: 13 | end_time: 50 14 | transient: true 15 | stepping: "logarithmic" 16 | init_step: 1e-15 17 | solver: 18 | atol: 1e-15 19 | rtol: 1e-10 20 | output_format: csv 21 | 22 | phases: 23 | gas: 24 | name: gas 25 | initial_state: "NH3:1.0" 26 | bulk: 27 | name: bulk 28 | surfaces: 29 | - name: terrace 30 | initial_state: "RU(S1):1" 31 | - name: step 32 | initial_state: "RU(S2):1" 33 | 34 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,4.861014e-02,2.251687e-01,7.262212e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,3.224015e-01,1.074672e-01,5.701313e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | 5.000000e+01,5.268057e-09,1.756016e-09,-3.512036e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.218468 13 | Reactor Temperature mode: isothermal 14 | Program ran for 1659 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/kc.out: -------------------------------------------------------------------------------- 1 | #Equilibrium constants of reactions 2 | 3 | 1.325374e+02H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 8.149841e-02N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 9.109937e-03NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.089550e+01NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 2.459199e+04NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 4.707610e+02NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 8.825735e+04N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/kf.out: -------------------------------------------------------------------------------- 1 | #Forward rate constants of reactions 2 | 3 | 5.792013e+17H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 4.056737e+09N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 5.202905e+09NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.256904e+14NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 1.584829e+16NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.791521e+15NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 2.960692e+06N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/kr.out: -------------------------------------------------------------------------------- 1 | #Reverse rate constants of reactions 2 | 3 | 4.370096e+15H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 4.977689e+10N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 5.711242e+11NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.153599e+13NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 6.444494e+11NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 5.929807e+12NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.354612e+01N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 4.990360e-01 4.990360e-01 -3.512034e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 8.072067e-02 8.072068e-02 -1.170678e-08 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 5.492282e-01 5.492282e-01 2.341356e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 2.498098e-08 1.567421e-09 2.341356e-08 9.409599e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 6.112267e-06 6.088853e-06 2.341356e-08 5.009595e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 3.149643e-04 3.149409e-04 2.341356e-08 5.000186e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 6.929845e-14 1.170685e-08 -1.170678e-08 5.919444e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.500000e+02,1.013250e+05,2.184680e-01,-5.321786e+05 3 | 5.000000e+01,9.500000e+02,1.013250e+05,1.715117e-01,-4.434874e+03 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/reactions.out: -------------------------------------------------------------------------------- 1 | H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 2 | N2 + RU(S1) <=> N2(S1) + RU(B) 3 | NH3 + RU(S1) <=> NH3(S1) + RU(B) 4 | NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 5 | NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 6 | NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 7 | N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 8 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov H N Ru He 2 | H2 Gas 0 2 0 0 0 3 | N2 Gas 0 0 2 0 0 4 | NH3 Gas 0 3 1 0 0 5 | RU(B) Bulk 0 0 0 1 0 6 | RU(S1) Surface 0.666031 0 0 1 0 7 | N2(S1) Surface 7.48304e-05 0 2 0 0 8 | N(S1) Surface 0.308883 0 1 0 0 9 | H(S1) Surface 0.0246488 1 0 0 0 10 | NH3(S1) Surface 6.35412e-07 3 1 0 0 11 | NH2(S1) Surface 1.23301e-06 2 1 0 0 12 | NH(S1) Surface 0.000360718 1 1 0 0 13 | N2(S2) Surface 0 0 2 0 0 14 | N(S2) Surface 0 0 1 0 0 15 | H(S2) Surface 0 1 0 0 0 16 | NH3(S2) Surface 0 3 1 0 0 17 | NH2(S2) Surface 0 2 1 0 0 18 | NH(S2) Surface 0 1 1 0 0 19 | RU(S2) Surface 1 0 0 1 0 20 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/T-950K/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,1.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.660307e-01,7.483041e-05,3.088831e-01,2.464880e-02,6.354118e-07,1.233013e-06,3.607183e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/Grxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless Gibbs Energies of reactions (G/RT) 2 | 3 | -1.200782e+00H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 6.366543e+00N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 8.525182e+00NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | -2.254966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -1.056638e+01NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -6.363024e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -1.161833e+01N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.54075 4 | N2 3.67659 5 | NH3 -0.543083 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) -5.71758 9 | N(S1) -6.08062 10 | H(S1) -5.38681 11 | NH3(S1) -10.4197 12 | NH2(S1) -3.61964 13 | NH(S1) -7.23755 14 | N2(S2) -12.1648 15 | N(S2) -8.24706 16 | H(S2) -5.75472 17 | NH3(S2) -16.2222 18 | NH2(S2) -13.7116 19 | NH(S2) -12.4485 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/Hrxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless enthalpies of reactions (H/RT) 2 | 3 | -13.3144 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -9.39417 N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -9.87661 NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 1.41325 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | -9.00472 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | -4.22988 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | -6.44366 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 18.559 4 | N2 27.1891 5 | NH3 29.0085 6 | RU(B) 0 7 | RU(S1) 0 8 | N2(S1) 11.4284 9 | N(S1) 8.30155 10 | H(S1) 3.22272 11 | NH3(S1) 10.6067 12 | NH2(S1) 11.0522 13 | NH(S1) 9.39112 14 | N2(S2) 11.4284 15 | N(S2) 8.30155 16 | H(S2) 3.22272 17 | NH3(S2) 10.6067 18 | NH2(S2) 11.0522 19 | NH(S2) 9.39112 20 | RU(S2) 0 21 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/Srxn.out: -------------------------------------------------------------------------------- 1 | #Dimensionless entropies of reactions (S/R) 2 | 3 | -1.211359e+01H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | -1.576072e+01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | -1.840179e+01NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 3.668212e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 1.561667e+00NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.133142e+00NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 5.174668e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-101325.000000,fr-0.000001/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,2.484879e-02,1.151029e-01,8.600483e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-101325.000000,fr-0.000001/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,1.841548e-01,6.138494e-02,7.544603e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-101325.000000,fr-0.000001/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | 5.000000e+01,2.842560e-09,9.475199e-10,-1.895031e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-101325.000000,fr-0.000001/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 2.839608e-01 2.839608e-01 -1.895039e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 4.664567e-02 4.664567e-02 -6.316798e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 7.352837e-01 7.352837e-01 1.263359e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.324467e-08 6.110733e-10 1.263359e-08 9.558975e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 3.021793e-06 3.009159e-06 1.263359e-08 5.010474e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 1.314019e-04 1.313893e-04 1.263359e-08 5.000240e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 7.785713e-15 6.316805e-09 -6.316797e-09 1.232538e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-101325.000000,fr-0.000001/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.000000e+02,1.013250e+05,2.306051e-01,-6.780116e+05 3 | 5.000000e+01,9.000000e+02,1.013250e+05,2.022937e-01,-3.587085e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-101325.000000,fr-0.000001/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,1.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.558345e-01,6.916740e-05,3.248372e-01,1.894132e-02,9.150036e-07,1.165758e-06,3.156740e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-91192.500000,fr-0.000001/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,2.540329e-02,1.176715e-01,8.569253e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-91192.500000,fr-0.000001/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,1.877499e-01,6.258329e-02,7.496669e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-91192.500000,fr-0.000001/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,2.842560e-09,9.475199e-10,-1.895031e-09 3 | 5.000000e+01,2.615392e-09,8.717969e-10,-1.743598e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-91192.500000,fr-0.000001/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 2.619439e-01 2.619439e-01 -1.743594e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 4.291467e-02 4.291468e-02 -5.811981e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 6.593026e-01 6.593026e-01 1.162396e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.215114e-08 5.271763e-10 1.162396e-08 9.584191e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 2.711879e-06 2.700255e-06 1.162396e-08 5.010739e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 1.259013e-04 1.258897e-04 1.162396e-08 5.000231e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 7.182048e-15 5.811988e-09 -5.811981e-09 1.235728e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-91192.500000,fr-0.000001/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.000000e+02,9.119250e+04,2.075446e-01,-6.780116e+05 3 | 5.000000e+01,9.000000e+02,9.119250e+04,1.815669e-01,-3.515833e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-900.000000,P-91192.500000,fr-0.000001/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,6.558345e-01,6.916740e-05,3.248372e-01,1.894132e-02,9.150036e-07,1.165758e-06,3.156740e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.575817e-01,6.363498e-05,3.235973e-01,1.845388e-02,8.372271e-07,1.043419e-06,3.016561e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-101325.000000,fr-0.000001/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,3.579159e-02,1.657914e-01,7.984170e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-101325.000000,fr-0.000001/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,2.516468e-01,8.388227e-02,6.644709e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-101325.000000,fr-0.000001/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,2.615392e-09,8.717969e-10,-1.743598e-09 3 | 5.000000e+01,3.983696e-09,1.327898e-09,-2.655795e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-101325.000000,fr-0.000001/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 3.888520e-01 3.888520e-01 -2.655796e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 6.337291e-02 6.337292e-02 -8.852653e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 6.438408e-01 6.438408e-01 1.770530e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.874410e-08 1.038798e-09 1.770531e-08 9.474901e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 4.436865e-06 4.419160e-06 1.770531e-08 5.009996e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 2.083478e-04 2.083301e-04 1.770531e-08 5.000212e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 2.452901e-14 8.852677e-09 -8.852653e-09 2.770794e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-101325.000000,fr-0.000001/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.250000e+02,1.013250e+05,2.243725e-01,-6.062028e+05 3 | 5.000000e+01,9.250000e+02,1.013250e+05,1.867308e-01,-1.788621e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-101325.000000,fr-0.000001/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,6.575817e-01,6.363498e-05,3.235973e-01,1.845388e-02,8.372271e-07,1.043419e-06,3.016561e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.610402e-01,7.386798e-05,3.166424e-01,2.189929e-02,7.754968e-07,1.227415e-06,3.422779e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-91192.500000,fr-0.000001/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,3.654478e-02,1.692803e-01,7.941749e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-91192.500000,fr-0.000001/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,2.560385e-01,8.534618e-02,6.586153e-01 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-91192.500000,fr-0.000001/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,N2,NH3 2 | 0.000000e+00,3.983696e-09,1.327898e-09,-2.655795e-09 3 | 5.000000e+01,3.660773e-09,1.220258e-09,-2.440520e-09 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-91192.500000,fr-0.000001/rates_ss.out: -------------------------------------------------------------------------------- 1 | Fwd Rate Rev Rate Net Rate Partial Equil. Reaction String 2 | 3.580830e-01 3.580831e-01 -2.440516e-08 5.000000e-01 H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 3 | 5.819445e-02 5.819445e-02 -8.135053e-09 5.000000e-01 N2 + RU(S1) <=> N2(S1) + RU(B) 4 | 5.759680e-01 5.759680e-01 1.627011e-08 5.000000e-01 NH3 + RU(S1) <=> NH3(S1) + RU(B) 5 | 1.716335e-08 8.932464e-10 1.627011e-08 9.505307e-01 NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 6 | 3.972666e-06 3.956396e-06 1.627011e-08 5.010260e-01 NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 7 | 1.994238e-04 1.994075e-04 1.627011e-08 5.000204e-01 NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 8 | 2.258809e-14 8.135075e-09 -8.135053e-09 2.776621e-06 N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 9 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-91192.500000,fr-0.000001/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 0.000000e+00,9.250000e+02,9.119250e+04,2.019353e-01,-6.062028e+05 3 | 5.000000e+01,9.250000e+02,9.119250e+04,1.674665e-01,-1.698691e+05 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/T-925.000000,P-91192.500000,fr-0.000001/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),RU(S1),N2(S1),N(S1),H(S1),NH3(S1),NH2(S1),NH(S1),N2(S2),N(S2),H(S2),NH3(S2),NH2(S2),NH(S2),RU(S2) 2 | 0.000000e+00,6.610402e-01,7.386798e-05,3.166424e-01,2.189929e-02,7.754968e-07,1.227415e-06,3.422779e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 3 | 5.000000e+01,6.629021e-01,6.783192e-05,3.153807e-01,2.132095e-02,7.081021e-07,1.095912e-06,3.266972e-04,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.000000e+00 4 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/cstr.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: cstr 3 | mode: "isothermal" 4 | volume: "1 cm3" 5 | temperature: 900 6 | pressure: "1 atm" 7 | cat_abyv: "1500 /cm" 8 | 9 | inlet_gas: 10 | flow_rate: "1 cm3/s" 11 | 12 | simulation: 13 | end_time: 50 14 | transient: true 15 | stepping: "logarithmic" 16 | init_step: 1e-15 17 | solver: 18 | atol: 1e-15 19 | rtol: 1e-10 20 | output_format: csv 21 | multi_input: 22 | temperature: 23 | - 900 24 | - 925 25 | pressure: 26 | - "1 atm" 27 | - "0.9 atm" 28 | 29 | phases: 30 | gas: 31 | name: gas 32 | initial_state: "NH3:1.0" 33 | bulk: 34 | name: bulk 35 | surfaces: 36 | - name: terrace 37 | initial_state: "RU(S1):1" 38 | - name: step 39 | initial_state: "RU(S2):1" 40 | 41 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.230605 13 | Reactor Temperature mode: isothermal 14 | Program ran for 5736 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/kc.out: -------------------------------------------------------------------------------- 1 | #Equilibrium constants of reactions 2 | 3 | 2.453878e+02H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 1.268836e-01N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 1.465280e-02NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 9.534966e+00NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 3.880803e+04NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 5.799975e+02NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 1.111157e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/kf.out: -------------------------------------------------------------------------------- 1 | #Forward rate constants of reactions 2 | 3 | 5.637531e+17H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.948538e+09N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 5.064136e+09NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.699657e+13NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 8.415966e+15NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 1.351483e+15NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.654642e+05N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/kr.out: -------------------------------------------------------------------------------- 1 | #Reverse rate constants of reactions 2 | 3 | 2.297397e+15H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 4 | 3.111938e+10N2 + RU(S1) <=> N2(S1) + RU(B) 5 | 3.456087e+11NH3 + RU(S1) <=> NH3(S1) + RU(B) 6 | 4.928865e+12NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 7 | 2.168615e+11NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 8 | 2.330154e+12NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 9 | 3.289042e+00N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/reactions.out: -------------------------------------------------------------------------------- 1 | H2 + 2 RU(S1) <=> 2 H(S1) + 2 RU(B) 2 | N2 + RU(S1) <=> N2(S1) + RU(B) 3 | NH3 + RU(S1) <=> NH3(S1) + RU(B) 4 | NH3(S1) + RU(S1) <=> H(S1) + NH2(S1) + RU(B) 5 | NH2(S1) + RU(S1) <=> H(S1) + NH(S1) + RU(B) 6 | NH(S1) + RU(S1) <=> H(S1) + N(S1) + RU(B) 7 | N2(S1) + RU(S1) <=> 2 N(S1) + RU(B) 8 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/CSTR/parametric/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov H N Ru He 2 | H2 Gas 0 2 0 0 0 3 | N2 Gas 0 0 2 0 0 4 | NH3 Gas 0 3 1 0 0 5 | RU(B) Bulk 0 0 0 1 0 6 | RU(S1) Surface 0.662902 0 0 1 0 7 | N2(S1) Surface 6.78319e-05 0 2 0 0 8 | N(S1) Surface 0.315381 0 1 0 0 9 | H(S1) Surface 0.021321 1 0 0 0 10 | NH3(S1) Surface 7.08102e-07 3 1 0 0 11 | NH2(S1) Surface 1.09591e-06 2 1 0 0 12 | NH(S1) Surface 0.000326697 1 1 0 0 13 | N2(S2) Surface 0 0 2 0 0 14 | N(S2) Surface 0 0 1 0 0 15 | H(S2) Surface 0 1 0 0 0 16 | NH3(S2) Surface 0 3 1 0 0 17 | NH2(S2) Surface 0 2 1 0 0 18 | NH(S2) Surface 0 1 1 0 0 19 | RU(S2) Surface 1 0 0 1 0 20 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.48916 4 | H 27.9482 5 | O 31.7265 6 | O2 2.73246 7 | OH 7.24474 8 | H2O -25.9265 9 | HO2 5.06482 10 | H2O2 -11.7701 11 | C 87.8668 12 | CH 74.3249 13 | CH2 50.5124 14 | CH2(S) 54.9234 15 | CH3 21.8104 16 | CH4 -4.31044 17 | CO -10.6703 18 | CO2 -43.2616 19 | HCO 8.56825 20 | CH2O -8.8591 21 | CH2OH 3.71214 22 | CH3O 7.04562 23 | CH3OH -18.3088 24 | C2H 72.0592 25 | C2H2 32.3589 26 | C2H3 41.4398 27 | C2H4 12.4036 28 | C2H5 21.25 29 | C2H6 -2.32114 30 | HCCO 26.5165 31 | CH2CO 0.297078 32 | HCCOH 15.8306 33 | N 58.5486 34 | NH 45.4047 35 | NH2 26.3107 36 | NH3 -1.58753 37 | NNH 33.5283 38 | NO 13.6411 39 | NO2 8.04702 40 | N2O 13.9213 41 | HNO 16.2191 42 | CN 55.3353 43 | HCN 19.4545 44 | H2CN 34.215 45 | HCNN 60.8265 46 | HCNO 25.7633 47 | HOCN 3.46699 48 | HNCO -9.14053 49 | NCO 20.0373 50 | N2 2.58359 51 | AR 1.75537 52 | C3H7 22.4417 53 | C3H8 -1.3464 54 | CH2CHO 9.71619 55 | CH3CHO -12.5474 56 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 19.9972 4 | H 16.8252 5 | O 22.4678 6 | O2 29.3009 7 | OH 26.4306 8 | H2O 27.9966 9 | HO2 33.4991 10 | H2O2 35.7686 11 | C 22.0458 12 | CH 26.3766 13 | CH2 29.0641 14 | CH2(S) 28.2454 15 | CH3 30.2095 16 | CH4 29.8699 17 | CO 28.2132 18 | CO2 32.3942 19 | HCO 32.8514 20 | CH2O 33.1283 21 | CH2OH 38.3442 22 | CH3O 35.6562 23 | CH3OH 38.2186 24 | C2H 32.4549 25 | C2H2 32.3502 26 | C2H3 36.9432 27 | C2H4 36.131 28 | C2H5 40.9306 29 | C2H6 39.8977 30 | HCCO 38.3356 31 | CH2CO 39.0122 32 | HCCOH 38.9811 33 | N 21.4658 34 | NH 26.1158 35 | NH2 28.8914 36 | NH3 29.65 37 | NNH 32.9204 38 | NO 29.8955 39 | NO2 35.4399 40 | N2O 33.3202 41 | HNO 32.3128 42 | CN 28.8373 43 | HCN 30.5142 44 | H2CN 34.3302 45 | HCNN 38.9072 46 | HCNO 37.8215 47 | HOCN 37.2486 48 | HNCO 37.3174 49 | NCO 34.9645 50 | N2 27.4367 51 | AR 21.6379 52 | C3H7 51.3944 53 | C3H8 50.2019 54 | CH2CHO 43.134 55 | CH3CHO 43.6906 56 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/batch.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: batch 3 | mode: "adiabatic" 4 | volume: "1 cm3" 5 | temperature: 1001 6 | pressure: "1 atm" 7 | 8 | simulation: 9 | end_time: 0.001 10 | stepping: regular 11 | init_step: 1e-6 12 | solver: 13 | atol: 1e-10 14 | rtol: 1e-8 15 | output_format: csv 16 | transient: true 17 | 18 | phases: 19 | gas: 20 | name: gas 21 | initial_state: "H2:2,O2:1,N2:4" 22 | 23 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,H,O,O2,OH,H2O,HO2,H2O2,C,CH,CH2,CH2(S),CH3,CH4,CO,CO2,HCO,CH2O,CH2OH,CH3O,CH3OH,C2H,C2H2,C2H3,C2H4,C2H5,C2H6,HCCO,CH2CO,HCCOH,N,NH,NH2,NH3,NNH,NO,NO2,N2O,HNO,CN,HCN,H2CN,HCNN,HCNO,HOCN,HNCO,NCO,N2,AR,C3H7,C3H8,CH2CHO,CH3CHO 2 | 1.000000e-03,3.562803e-03,5.664247e-04,3.283939e-03,1.623651e-02,1.764479e-02,1.970597e-01,1.101272e-05,9.274497e-07,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,1.539911e-06,3.260806e-07,9.641885e-08,8.554750e-08,9.294234e-08,9.266960e-03,3.480121e-06,1.240191e-06,1.168532e-06,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,7.523589e-01,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,H,O,O2,OH,H2O,HO2,H2O2,C,CH,CH2,CH2(S),CH3,CH4,CO,CO2,HCO,CH2O,CH2OH,CH3O,CH3OH,C2H,C2H2,C2H3,C2H4,C2H5,C2H6,HCCO,CH2CO,HCCOH,N,NH,NH2,NH3,NNH,NO,NO2,N2O,HNO,CN,HCN,H2CN,HCNN,HCNO,HOCN,HNCO,NCO,N2,AR,C3H7,C3H8,CH2CHO,CH3CHO 2 | 1.000000e-03,4.189620e-02,1.332156e-02,4.865628e-03,1.202836e-02,2.459391e-02,2.593010e-01,7.909324e-06,6.463555e-07,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,2.606189e-06,5.148211e-07,1.426513e-07,1.190764e-07,7.591759e-08,7.321071e-03,1.793212e-06,6.679689e-07,8.931594e-07,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,6.366569e-01,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,H,O,O2,OH,H2O,HO2,H2O2,C,CH,CH2,CH2(S),CH3,CH4,CO,CO2,HCO,CH2O,CH2OH,CH3O,CH3OH,C2H,C2H2,C2H3,C2H4,C2H5,C2H6,HCCO,CH2CO,HCCOH,N,NH,NH2,NH3,NNH,NO,NO2,N2O,HNO,CN,HCN,H2CN,HCNN,HCNO,HOCN,HNCO,NCO,N2,AR,C3H7,C3H8,CH2CHO,CH3CHO 2 | 1.000000e-03,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.257549 13 | Reactor Temperature mode: adiabatic 14 | Program ran for 699 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 1.000000e-03,2.869843e+03,2.592416e+05,2.575490e-01,6.207683e+05 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov O H C N Ar 2 | H2 Gas 0 0 2 0 0 0 3 | H Gas 0 0 1 0 0 0 4 | O Gas 0 1 0 0 0 0 5 | O2 Gas 0 2 0 0 0 0 6 | OH Gas 0 1 1 0 0 0 7 | H2O Gas 0 1 2 0 0 0 8 | HO2 Gas 0 2 1 0 0 0 9 | H2O2 Gas 0 2 2 0 0 0 10 | C Gas 0 0 0 1 0 0 11 | CH Gas 0 0 1 1 0 0 12 | CH2 Gas 0 0 2 1 0 0 13 | CH2(S) Gas 0 0 2 1 0 0 14 | CH3 Gas 0 0 3 1 0 0 15 | CH4 Gas 0 0 4 1 0 0 16 | CO Gas 0 1 0 1 0 0 17 | CO2 Gas 0 2 0 1 0 0 18 | HCO Gas 0 1 1 1 0 0 19 | CH2O Gas 0 1 2 1 0 0 20 | CH2OH Gas 0 1 3 1 0 0 21 | CH3O Gas 0 1 3 1 0 0 22 | CH3OH Gas 0 1 4 1 0 0 23 | C2H Gas 0 0 1 2 0 0 24 | C2H2 Gas 0 0 2 2 0 0 25 | C2H3 Gas 0 0 3 2 0 0 26 | C2H4 Gas 0 0 4 2 0 0 27 | C2H5 Gas 0 0 5 2 0 0 28 | C2H6 Gas 0 0 6 2 0 0 29 | HCCO Gas 0 1 1 2 0 0 30 | CH2CO Gas 0 1 2 2 0 0 31 | HCCOH Gas 0 1 2 2 0 0 32 | N Gas 0 0 0 0 1 0 33 | NH Gas 0 0 1 0 1 0 34 | NH2 Gas 0 0 2 0 1 0 35 | NH3 Gas 0 0 3 0 1 0 36 | NNH Gas 0 0 1 0 2 0 37 | NO Gas 0 1 0 0 1 0 38 | NO2 Gas 0 2 0 0 1 0 39 | N2O Gas 0 1 0 0 2 0 40 | HNO Gas 0 1 1 0 1 0 41 | CN Gas 0 0 0 1 1 0 42 | HCN Gas 0 0 1 1 1 0 43 | H2CN Gas 0 0 2 1 1 0 44 | HCNN Gas 0 0 1 1 2 0 45 | HCNO Gas 0 1 1 1 1 0 46 | HOCN Gas 0 1 1 1 1 0 47 | HNCO Gas 0 1 1 1 1 0 48 | NCO Gas 0 1 0 1 1 0 49 | N2 Gas 0 0 0 0 2 0 50 | AR Gas 0 0 0 0 0 1 51 | C3H7 Gas 0 0 7 3 0 0 52 | C3H8 Gas 0 0 8 3 0 0 53 | CH2CHO Gas 0 1 3 2 0 0 54 | CH3CHO Gas 0 1 4 2 0 0 55 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/adiab/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s) 2 | 1.000000e-03 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/Hform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation enthalpies of species (H/RT) 2 | 3 | H2 2.48916 4 | H 27.9482 5 | O 31.7265 6 | O2 2.73246 7 | OH 7.24474 8 | H2O -25.9265 9 | HO2 5.06482 10 | H2O2 -11.7701 11 | C 87.8668 12 | CH 74.3249 13 | CH2 50.5124 14 | CH2(S) 54.9234 15 | CH3 21.8104 16 | CH4 -4.31044 17 | CO -10.6703 18 | CO2 -43.2616 19 | HCO 8.56825 20 | CH2O -8.8591 21 | CH2OH 3.71214 22 | CH3O 7.04562 23 | CH3OH -18.3088 24 | C2H 72.0592 25 | C2H2 32.3589 26 | C2H3 41.4398 27 | C2H4 12.4036 28 | C2H5 21.25 29 | C2H6 -2.32114 30 | HCCO 26.5165 31 | CH2CO 0.297078 32 | HCCOH 15.8306 33 | N 58.5486 34 | NH 45.4047 35 | NH2 26.3107 36 | NH3 -1.58753 37 | NNH 33.5283 38 | NO 13.6411 39 | NO2 8.04702 40 | N2O 13.9213 41 | HNO 16.2191 42 | CN 55.3353 43 | HCN 19.4545 44 | H2CN 34.215 45 | HCNN 60.8265 46 | HCNO 25.7633 47 | HOCN 3.46699 48 | HNCO -9.14053 49 | NCO 20.0373 50 | N2 2.58359 51 | AR 1.75537 52 | C3H7 22.4417 53 | C3H8 -1.3464 54 | CH2CHO 9.71619 55 | CH3CHO -12.5474 56 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/Sform.out: -------------------------------------------------------------------------------- 1 | #Dimensionless formation entropies of species (S/R) 2 | 3 | H2 19.9972 4 | H 16.8252 5 | O 22.4678 6 | O2 29.3009 7 | OH 26.4306 8 | H2O 27.9966 9 | HO2 33.4991 10 | H2O2 35.7686 11 | C 22.0458 12 | CH 26.3766 13 | CH2 29.0641 14 | CH2(S) 28.2454 15 | CH3 30.2095 16 | CH4 29.8699 17 | CO 28.2132 18 | CO2 32.3942 19 | HCO 32.8514 20 | CH2O 33.1283 21 | CH2OH 38.3442 22 | CH3O 35.6562 23 | CH3OH 38.2186 24 | C2H 32.4549 25 | C2H2 32.3502 26 | C2H3 36.9432 27 | C2H4 36.131 28 | C2H5 40.9306 29 | C2H6 39.8977 30 | HCCO 38.3356 31 | CH2CO 39.0122 32 | HCCOH 38.9811 33 | N 21.4658 34 | NH 26.1158 35 | NH2 28.8914 36 | NH3 29.65 37 | NNH 32.9204 38 | NO 29.8955 39 | NO2 35.4399 40 | N2O 33.3202 41 | HNO 32.3128 42 | CN 28.8373 43 | HCN 30.5142 44 | H2CN 34.3302 45 | HCNN 38.9072 46 | HCNO 37.8215 47 | HOCN 37.2486 48 | HNCO 37.3174 49 | NCO 34.9645 50 | N2 27.4367 51 | AR 21.6379 52 | C3H7 51.3944 53 | C3H8 50.2019 54 | CH2CHO 43.134 55 | CH3CHO 43.6906 56 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/batch.yaml: -------------------------------------------------------------------------------- 1 | reactor: 2 | type: batch 3 | mode: "isothermal" 4 | volume: "1 cm3" 5 | temperature: 1001 6 | pressure: "1 atm" 7 | 8 | simulation: 9 | end_time: 0.001 10 | transient: true 11 | stepping: regular 12 | init_step: 1e-5 13 | solver: 14 | atol: 1e-10 15 | rtol: 1e-8 16 | output_format: CSV 17 | 18 | phases: 19 | gas: 20 | name: gas 21 | initial_state: "H2:2,O2:1,N2:4" 22 | 23 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/gas_mass_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,H,O,O2,OH,H2O,HO2,H2O2,C,CH,CH2,CH2(S),CH3,CH4,CO,CO2,HCO,CH2O,CH2OH,CH3O,CH3OH,C2H,C2H2,C2H3,C2H4,C2H5,C2H6,HCCO,CH2CO,HCCOH,N,NH,NH2,NH3,NNH,NO,NO2,N2O,HNO,CN,HCN,H2CN,HCNN,HCNO,HOCN,HNCO,NCO,N2,AR,C3H7,C3H8,CH2CHO,CH3CHO 2 | 1.000000e-03,7.704447e-03,1.199359e-07,2.268150e-07,6.104985e-02,2.508226e-07,1.744004e-01,9.836295e-05,5.694164e-05,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,-1.065136e-12,2.673966e-11,2.268204e-12,1.774464e-10,1.163926e-12,2.417989e-07,9.879488e-08,1.996884e-08,8.616427e-11,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,7.566890e-01,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/gas_mole_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,H,O,O2,OH,H2O,HO2,H2O2,C,CH,CH2,CH2(S),CH3,CH4,CO,CO2,HCO,CH2O,CH2OH,CH3O,CH3OH,C2H,C2H2,C2H3,C2H4,C2H5,C2H6,HCCO,CH2CO,HCCOH,N,NH,NH2,NH3,NNH,NO,NO2,N2O,HNO,CN,HCN,H2CN,HCNN,HCNO,HOCN,HNCO,NCO,N2,AR,C3H7,C3H8,CH2CHO,CH3CHO 2 | 1.000000e-03,9.008154e-02,2.804618e-06,3.341389e-07,4.496866e-02,3.476076e-07,2.281737e-01,7.024056e-05,3.945687e-05,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,-1.792367e-12,4.197579e-11,3.336626e-12,2.455825e-10,9.452912e-13,1.899342e-07,5.061548e-08,1.069380e-08,6.548282e-11,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,6.366627e-01,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/gas_msdot_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),H2,H,O,O2,OH,H2O,HO2,H2O2,C,CH,CH2,CH2(S),CH3,CH4,CO,CO2,HCO,CH2O,CH2OH,CH3O,CH3OH,C2H,C2H2,C2H3,C2H4,C2H5,C2H6,HCCO,CH2CO,HCCOH,N,NH,NH2,NH3,NNH,NO,NO2,N2O,HNO,CN,HCN,H2CN,HCNN,HCNO,HOCN,HNCO,NCO,N2,AR,C3H7,C3H8,CH2CHO,CH3CHO 2 | 1.000000e-03,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/general_info.out: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | OpenMKM: version 0.3.0 3 | ----------------------------------------------------------- 4 | 5 | OpenMKM is a multiphysics, multiscale, and open source software 6 | aimed at modelng chemical kinetics. It can run pure gas phase 7 | as well as surface mechanisms for heterogeneous catalysis. 8 | OpenMKM is developed at Delaware Energy Institute, University 9 | of Delaware. The development of OpenMKM is funded by RAPID. 10 | 11 | 12 | Reactor density 0.257549 13 | Reactor Temperature mode: isothermal 14 | Program ran for 324 milliseconds 15 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/rctr_state_ss.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 1.000000e-03,1.001000e+03,9.094296e+04,2.575490e-01,-1.738637e+06 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/rctr_state_tr.csv: -------------------------------------------------------------------------------- 1 | t(s),Temperature(K),Pressure(Pa),Density(kg/m3),U(J/kg) 2 | 1.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207683e+05 3 | 2.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207683e+05 4 | 3.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207683e+05 5 | 4.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207682e+05 6 | 5.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207682e+05 7 | 6.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207681e+05 8 | 7.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207679e+05 9 | 8.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207677e+05 10 | 9.000000e-05,1.001000e+03,1.013250e+05,2.575490e-01,6.207674e+05 11 | 1.000000e-04,1.001000e+03,1.013250e+05,2.575490e-01,6.207668e+05 12 | 1.100000e-04,1.001000e+03,1.013250e+05,2.575490e-01,6.207659e+05 13 | 1.200000e-04,1.001000e+03,1.013250e+05,2.575490e-01,6.207646e+05 14 | 1.300000e-04,1.001000e+03,1.013249e+05,2.575490e-01,6.207625e+05 15 | 1.400000e-04,1.001000e+03,1.013249e+05,2.575490e-01,6.207592e+05 16 | 1.500000e-04,1.001000e+03,1.013249e+05,2.575490e-01,6.207541e+05 17 | 1.600000e-04,1.001000e+03,1.013248e+05,2.575490e-01,6.207462e+05 18 | 1.700000e-04,1.001000e+03,1.013247e+05,2.575490e-01,6.207337e+05 19 | 1.800000e-04,1.001000e+03,1.013245e+05,2.575490e-01,6.207138e+05 20 | 1.900000e-04,1.001000e+03,1.013243e+05,2.575490e-01,6.206821e+05 21 | 2.000000e-04,1.001000e+03,1.013238e+05,2.575490e-01,6.206301e+05 22 | 2.100000e-04,1.001000e+03,1.013232e+05,2.575490e-01,6.205431e+05 23 | 2.200000e-04,1.001000e+03,1.013220e+05,2.575490e-01,6.203915e+05 24 | 2.300000e-04,1.001000e+03,1.013202e+05,2.575490e-01,6.201139e+05 25 | 2.400000e-04,1.001000e+03,1.013170e+05,2.575490e-01,6.195727e+05 26 | 2.500000e-04,1.001000e+03,1.013110e+05,2.575490e-01,6.184467e+05 27 | 2.600000e-04,1.001000e+03,1.012995e+05,2.575490e-01,6.159919e+05 28 | 2.700000e-04,1.001000e+03,1.012760e+05,2.575490e-01,6.106250e+05 29 | 2.800000e-04,1.001000e+03,1.012271e+05,2.575490e-01,5.992276e+05 30 | 2.900000e-04,1.001000e+03,1.011259e+05,2.575490e-01,5.756189e+05 31 | 3.000000e-04,1.001000e+03,1.009220e+05,2.575490e-01,5.281545e+05 32 | 3.100000e-04,1.001000e+03,1.005334e+05,2.575490e-01,4.380406e+05 33 | 3.200000e-04,1.001000e+03,9.986479e+04,2.575490e-01,2.839674e+05 34 | 3.300000e-04,1.001000e+03,9.888751e+04,2.575490e-01,6.025117e+04 35 | 3.400000e-04,1.001000e+03,9.771922e+04,2.575490e-01,-2.056914e+05 36 | 3.500000e-04,1.001000e+03,9.655923e+04,2.575490e-01,-4.687502e+05 37 | 3.600000e-04,1.001000e+03,9.554672e+04,2.575490e-01,-6.978807e+05 38 | 3.700000e-04,1.001000e+03,9.472174e+04,2.575490e-01,-8.843923e+05 39 | 3.800000e-04,1.001000e+03,9.406759e+04,2.575490e-01,-1.032229e+06 40 | 3.900000e-04,1.001000e+03,9.355113e+04,2.575490e-01,-1.148942e+06 41 | 4.000000e-04,1.001000e+03,9.314075e+04,2.575490e-01,-1.241696e+06 42 | 4.100000e-04,1.001000e+03,9.281110e+04,2.575490e-01,-1.316213e+06 43 | 4.200000e-04,1.001000e+03,9.254314e+04,2.575490e-01,-1.376799e+06 44 | 4.300000e-04,1.001000e+03,9.232276e+04,2.575490e-01,-1.426636e+06 45 | 4.400000e-04,1.001000e+03,9.213956e+04,2.575490e-01,-1.468072e+06 46 | 4.500000e-04,1.001000e+03,9.198579e+04,2.575490e-01,-1.502859e+06 47 | 4.600000e-04,1.001000e+03,9.185560e+04,2.575490e-01,-1.532313e+06 48 | 4.700000e-04,1.001000e+03,9.174454e+04,2.575490e-01,-1.557441e+06 49 | 4.800000e-04,1.001000e+03,9.164918e+04,2.575490e-01,-1.579022e+06 50 | 4.900000e-04,1.001000e+03,9.156681e+04,2.575490e-01,-1.597663e+06 51 | 5.000000e-04,1.001000e+03,9.149530e+04,2.575490e-01,-1.613848e+06 52 | 5.100000e-04,1.001000e+03,9.143293e+04,2.575490e-01,-1.627962e+06 53 | 5.200000e-04,1.001000e+03,9.137833e+04,2.575490e-01,-1.640320e+06 54 | 5.300000e-04,1.001000e+03,9.133036e+04,2.575490e-01,-1.651178e+06 55 | 5.400000e-04,1.001000e+03,9.128809e+04,2.575490e-01,-1.660745e+06 56 | 5.500000e-04,1.001000e+03,9.125073e+04,2.575490e-01,-1.669199e+06 57 | 5.600000e-04,1.001000e+03,9.121764e+04,2.575490e-01,-1.676686e+06 58 | 5.700000e-04,1.001000e+03,9.118828e+04,2.575490e-01,-1.683330e+06 59 | 5.800000e-04,1.001000e+03,9.116217e+04,2.575490e-01,-1.689237e+06 60 | 5.900000e-04,1.001000e+03,9.113891e+04,2.575490e-01,-1.694497e+06 61 | 6.000000e-04,1.001000e+03,9.111818e+04,2.575490e-01,-1.699187e+06 62 | 6.100000e-04,1.001000e+03,9.109966e+04,2.575490e-01,-1.703374e+06 63 | 6.200000e-04,1.001000e+03,9.108311e+04,2.575490e-01,-1.707115e+06 64 | 6.300000e-04,1.001000e+03,9.106831e+04,2.575490e-01,-1.710460e+06 65 | 6.400000e-04,1.001000e+03,9.105505e+04,2.575490e-01,-1.713454e+06 66 | 6.500000e-04,1.001000e+03,9.104318e+04,2.575490e-01,-1.716136e+06 67 | 6.600000e-04,1.001000e+03,9.103254e+04,2.575490e-01,-1.718538e+06 68 | 6.700000e-04,1.001000e+03,9.102300e+04,2.575490e-01,-1.720690e+06 69 | 6.800000e-04,1.001000e+03,9.101444e+04,2.575490e-01,-1.722620e+06 70 | 6.900000e-04,1.001000e+03,9.100676e+04,2.575490e-01,-1.724350e+06 71 | 7.000000e-04,1.001000e+03,9.099988e+04,2.575490e-01,-1.725902e+06 72 | 7.100000e-04,1.001000e+03,9.099370e+04,2.575490e-01,-1.727292e+06 73 | 7.200000e-04,1.001000e+03,9.098816e+04,2.575490e-01,-1.728539e+06 74 | 7.300000e-04,1.001000e+03,9.098318e+04,2.575490e-01,-1.729657e+06 75 | 7.400000e-04,1.001000e+03,9.097872e+04,2.575490e-01,-1.730658e+06 76 | 7.500000e-04,1.001000e+03,9.097473e+04,2.575490e-01,-1.731556e+06 77 | 7.600000e-04,1.001000e+03,9.097114e+04,2.575490e-01,-1.732359e+06 78 | 7.700000e-04,1.001000e+03,9.096793e+04,2.575490e-01,-1.733078e+06 79 | 7.800000e-04,1.001000e+03,9.096505e+04,2.575490e-01,-1.733722e+06 80 | 7.900000e-04,1.001000e+03,9.096248e+04,2.575490e-01,-1.734297e+06 81 | 8.000000e-04,1.001000e+03,9.096017e+04,2.575490e-01,-1.734812e+06 82 | 8.100000e-04,1.001000e+03,9.095811e+04,2.575490e-01,-1.735271e+06 83 | 8.200000e-04,1.001000e+03,9.095627e+04,2.575490e-01,-1.735682e+06 84 | 8.300000e-04,1.001000e+03,9.095462e+04,2.575490e-01,-1.736048e+06 85 | 8.400000e-04,1.001000e+03,9.095315e+04,2.575490e-01,-1.736375e+06 86 | 8.500000e-04,1.001000e+03,9.095184e+04,2.575490e-01,-1.736666e+06 87 | 8.600000e-04,1.001000e+03,9.095067e+04,2.575490e-01,-1.736925e+06 88 | 8.700000e-04,1.001000e+03,9.094963e+04,2.575490e-01,-1.737157e+06 89 | 8.800000e-04,1.001000e+03,9.094870e+04,2.575490e-01,-1.737363e+06 90 | 8.900000e-04,1.001000e+03,9.094787e+04,2.575490e-01,-1.737546e+06 91 | 9.000000e-04,1.001000e+03,9.094713e+04,2.575490e-01,-1.737710e+06 92 | 9.100000e-04,1.001000e+03,9.094647e+04,2.575490e-01,-1.737855e+06 93 | 9.200000e-04,1.001000e+03,9.094589e+04,2.575490e-01,-1.737985e+06 94 | 9.300000e-04,1.001000e+03,9.094536e+04,2.575490e-01,-1.738101e+06 95 | 9.400000e-04,1.001000e+03,9.094490e+04,2.575490e-01,-1.738205e+06 96 | 9.500000e-04,1.001000e+03,9.094448e+04,2.575490e-01,-1.738297e+06 97 | 9.600000e-04,1.001000e+03,9.094411e+04,2.575490e-01,-1.738380e+06 98 | 9.700000e-04,1.001000e+03,9.094377e+04,2.575490e-01,-1.738455e+06 99 | 9.800000e-04,1.001000e+03,9.094347e+04,2.575490e-01,-1.738522e+06 100 | 9.900000e-04,1.001000e+03,9.094321e+04,2.575490e-01,-1.738582e+06 101 | 1.000000e-03,1.001000e+03,9.094296e+04,2.575490e-01,-1.738637e+06 102 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/species.out: -------------------------------------------------------------------------------- 1 | Species_name Phase Surf_cov O H C N Ar 2 | H2 Gas 0 0 2 0 0 0 3 | H Gas 0 0 1 0 0 0 4 | O Gas 0 1 0 0 0 0 5 | O2 Gas 0 2 0 0 0 0 6 | OH Gas 0 1 1 0 0 0 7 | H2O Gas 0 1 2 0 0 0 8 | HO2 Gas 0 2 1 0 0 0 9 | H2O2 Gas 0 2 2 0 0 0 10 | C Gas 0 0 0 1 0 0 11 | CH Gas 0 0 1 1 0 0 12 | CH2 Gas 0 0 2 1 0 0 13 | CH2(S) Gas 0 0 2 1 0 0 14 | CH3 Gas 0 0 3 1 0 0 15 | CH4 Gas 0 0 4 1 0 0 16 | CO Gas 0 1 0 1 0 0 17 | CO2 Gas 0 2 0 1 0 0 18 | HCO Gas 0 1 1 1 0 0 19 | CH2O Gas 0 1 2 1 0 0 20 | CH2OH Gas 0 1 3 1 0 0 21 | CH3O Gas 0 1 3 1 0 0 22 | CH3OH Gas 0 1 4 1 0 0 23 | C2H Gas 0 0 1 2 0 0 24 | C2H2 Gas 0 0 2 2 0 0 25 | C2H3 Gas 0 0 3 2 0 0 26 | C2H4 Gas 0 0 4 2 0 0 27 | C2H5 Gas 0 0 5 2 0 0 28 | C2H6 Gas 0 0 6 2 0 0 29 | HCCO Gas 0 1 1 2 0 0 30 | CH2CO Gas 0 1 2 2 0 0 31 | HCCOH Gas 0 1 2 2 0 0 32 | N Gas 0 0 0 0 1 0 33 | NH Gas 0 0 1 0 1 0 34 | NH2 Gas 0 0 2 0 1 0 35 | NH3 Gas 0 0 3 0 1 0 36 | NNH Gas 0 0 1 0 2 0 37 | NO Gas 0 1 0 0 1 0 38 | NO2 Gas 0 2 0 0 1 0 39 | N2O Gas 0 1 0 0 2 0 40 | HNO Gas 0 1 1 0 1 0 41 | CN Gas 0 0 0 1 1 0 42 | HCN Gas 0 0 1 1 1 0 43 | H2CN Gas 0 0 2 1 1 0 44 | HCNN Gas 0 0 1 1 2 0 45 | HCNO Gas 0 1 1 1 1 0 46 | HOCN Gas 0 1 1 1 1 0 47 | HNCO Gas 0 1 1 1 1 0 48 | NCO Gas 0 1 0 1 1 0 49 | N2 Gas 0 0 0 0 2 0 50 | AR Gas 0 0 0 0 0 1 51 | C3H7 Gas 0 0 7 3 0 0 52 | C3H8 Gas 0 0 8 3 0 0 53 | CH2CHO Gas 0 1 3 2 0 0 54 | CH3CHO Gas 0 1 4 2 0 0 55 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/surf_cov_ss.csv: -------------------------------------------------------------------------------- 1 | t(s) 2 | 1.000000e-03 3 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/OpenMKM_demo/batch/isother/surf_cov_tr.csv: -------------------------------------------------------------------------------- 1 | t(s) 2 | 1.000000e-05 3 | 2.000000e-05 4 | 3.000000e-05 5 | 4.000000e-05 6 | 5.000000e-05 7 | 6.000000e-05 8 | 7.000000e-05 9 | 8.000000e-05 10 | 9.000000e-05 11 | 1.000000e-04 12 | 1.100000e-04 13 | 1.200000e-04 14 | 1.300000e-04 15 | 1.400000e-04 16 | 1.500000e-04 17 | 1.600000e-04 18 | 1.700000e-04 19 | 1.800000e-04 20 | 1.900000e-04 21 | 2.000000e-04 22 | 2.100000e-04 23 | 2.200000e-04 24 | 2.300000e-04 25 | 2.400000e-04 26 | 2.500000e-04 27 | 2.600000e-04 28 | 2.700000e-04 29 | 2.800000e-04 30 | 2.900000e-04 31 | 3.000000e-04 32 | 3.100000e-04 33 | 3.200000e-04 34 | 3.300000e-04 35 | 3.400000e-04 36 | 3.500000e-04 37 | 3.600000e-04 38 | 3.700000e-04 39 | 3.800000e-04 40 | 3.900000e-04 41 | 4.000000e-04 42 | 4.100000e-04 43 | 4.200000e-04 44 | 4.300000e-04 45 | 4.400000e-04 46 | 4.500000e-04 47 | 4.600000e-04 48 | 4.700000e-04 49 | 4.800000e-04 50 | 4.900000e-04 51 | 5.000000e-04 52 | 5.100000e-04 53 | 5.200000e-04 54 | 5.300000e-04 55 | 5.400000e-04 56 | 5.500000e-04 57 | 5.600000e-04 58 | 5.700000e-04 59 | 5.800000e-04 60 | 5.900000e-04 61 | 6.000000e-04 62 | 6.100000e-04 63 | 6.200000e-04 64 | 6.300000e-04 65 | 6.400000e-04 66 | 6.500000e-04 67 | 6.600000e-04 68 | 6.700000e-04 69 | 6.800000e-04 70 | 6.900000e-04 71 | 7.000000e-04 72 | 7.100000e-04 73 | 7.200000e-04 74 | 7.300000e-04 75 | 7.400000e-04 76 | 7.500000e-04 77 | 7.600000e-04 78 | 7.700000e-04 79 | 7.800000e-04 80 | 7.900000e-04 81 | 8.000000e-04 82 | 8.100000e-04 83 | 8.200000e-04 84 | 8.300000e-04 85 | 8.400000e-04 86 | 8.500000e-04 87 | 8.600000e-04 88 | 8.700000e-04 89 | 8.800000e-04 90 | 8.900000e-04 91 | 9.000000e-04 92 | 9.100000e-04 93 | 9.200000e-04 94 | 9.300000e-04 95 | 9.400000e-04 96 | 9.500000e-04 97 | 9.600000e-04 98 | 9.700000e-04 99 | 9.800000e-04 100 | 9.900000e-04 101 | 1.000000e-03 102 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pgradd_demo/images/CCH2C(S).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pgradd_demo/images/CCH2C(S).png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pgradd_demo/images/CH3CHOH(S).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pgradd_demo/images/CH3CHOH(S).png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pgradd_demo/images/pGrAdd_RGB_github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pgradd_demo/images/pGrAdd_RGB_github.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/.ipynb_checkpoints/pgradd_demo-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# AIChE 2019 pGrAdd Demonstration\n", 8 | "\n", 9 | "# 1. Introduction\n", 10 | "\n", 11 | "" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": null, 17 | "metadata": {}, 18 | "outputs": [], 19 | "source": [] 20 | } 21 | ], 22 | "metadata": { 23 | "kernelspec": { 24 | "display_name": "Python 3", 25 | "language": "python", 26 | "name": "python3" 27 | }, 28 | "language_info": { 29 | "codemirror_mode": { 30 | "name": "ipython", 31 | "version": 3 32 | }, 33 | "file_extension": ".py", 34 | "mimetype": "text/x-python", 35 | "name": "python", 36 | "nbconvert_exporter": "python", 37 | "pygments_lexer": "ipython3", 38 | "version": "3.7.4" 39 | } 40 | }, 41 | "nbformat": 4, 42 | "nbformat_minor": 2 43 | } 44 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/Cu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/Cu.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/H2O.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/H2O.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/H2_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/H2_1.jpg -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/Heatmap_2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/Heatmap_2d.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/StatMech_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/StatMech_obj.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/StatMech_smartart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/StatMech_smartart.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/VirtualKineticLab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/VirtualKineticLab.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/configurations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/configurations.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/example_statmech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/example_statmech.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/nasa_func1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/nasa_func1.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_doc.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_examples.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_issues.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/pmutt_logo.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction_func1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction_func1.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction_smartart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction_smartart.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/reaction_string.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 22 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 61 | 65 | 70 | Page-1 72 | 73 | 79 | 80 | 85 | Sheet.1 87 | 88 | Reactant1 + Reactant2 = TS1 + TS2 = Product1 + Product2 90 | 91 | 93 | 94 | 99 | 100 | 108 | 109 | 117 | 118 | Reactant1 + 122 | Reactant2 = 126 | TS1 + 130 | TS2 = 134 | Product1 + 138 | Product2 139 | 140 | 141 | 146 | Sheet.2 148 | 149 | + Species Delimiter = Reaction Delimiter 151 | 152 | 154 | 155 | 160 | 161 | 169 | 170 | 178 | 179 | + Species Delimiter 180 | = Reaction Delimiter 186 | 187 | 188 | 189 | 190 | 191 | 192 | 204 | 205 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/rxn_coordinate_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/rxn_coordinate_diagram.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/statmech_modes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/statmech_modes.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/images/workflow.png -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/input/H2/CONTCAR: -------------------------------------------------------------------------------- 1 | H 2 | 1.0000000000000000 3 | 20.0000000000000000 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 20.0000000000000000 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 20.7371659999999984 6 | 2 7 | Cartesian 8 | 10.0000000000000000 10.0000000000000000 10.7371659999999984 9 | 10.0000000000000000 10.0000000000000000 10.0000000000000000 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/input/N2/CONTCAR: -------------------------------------------------------------------------------- 1 | N 2 | 1.0000000000000000 3 | 20.0000000000000000 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 20.0000000000000000 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 21.1299799999999998 6 | 2 7 | Cartesian 8 | 10.0000000000000000 10.0000000000000000 11.1299799999999998 9 | 10.0000000000000000 10.0000000000000000 10.0000000000000000 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/input/NH3/CONTCAR: -------------------------------------------------------------------------------- 1 | N H 2 | 1.0000000000000000 3 | 21.6276620000000008 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 21.4095960000000005 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 20.3882970000000014 6 | 1 3 7 | Cartesian 8 | 10.8138310000000004 10.4698650000000004 10.3882969999999997 9 | 10.8138310000000004 11.4095960000000005 10.0000000000000000 10 | 11.6276620000000008 10.0000000000000000 10.0000000000000000 11 | 10.0000000000000000 10.0000000000000000 10.0000000000000000 12 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/input/NH3_Input_Data.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_demo/input/NH3_Input_Data.xlsx -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_demo/output/thermdat: -------------------------------------------------------------------------------- 1 | THERMO ALL 2 | 100 500 1500 3 | N2 20191025N 2 G100.0 1500.0 471.4 1 4 | 3.90707437E+00-2.28536070E-03 4.13241401E-06-2.44830984E-09 5.06724318E-13 2 5 | -1.91076337E+05 1.33148243E+00 3.50154664E+00-4.14212213E-05 3.93934337E-07 3 6 | -1.57972141E-09 2.27100408E-12-1.91022890E+05 3.13326831E+00 4 7 | NH3 20191025N 1H 3 G100.0 1500.0 442.9 1 8 | 3.08595685E+00 2.82506553E-03 2.00029877E-06-1.75769642E-09 3.68746696E-13 2 9 | -2.15458157E+05 5.00372266E+00 3.96055186E+00 1.28120671E-03-1.37484459E-05 3 10 | 5.45179087E-08-5.12600413E-11-2.15603394E+05 7.69853700E-01 4 11 | H2 20191025H 2 G100.0 1500.0 757.1 1 12 | 3.83497007E+00-1.15954587E-03 1.24040123E-06-3.62792776E-10 2.28723836E-14 2 13 | -7.55094623E+04-5.92203142E+00 3.50109022E+00-2.10430425E-05 1.37600731E-07 3 14 | -3.67490635E-10 3.44829459E-13-7.54390811E+04-4.28024003E+00 4 15 | N2(S) 20191025N 2 S100.0 1500.0 385.7 1 16 | 3.77159298E+00 2.74962092E-03-1.44271927E-06 3.54691296E-10-3.47935180E-14 2 17 | -1.98765311E+05-1.64676962E+01-2.23618825E-01 3.45725381E-02-8.92262497E-05 3 18 | 8.60037992E-08-6.53726457E-12-1.98375228E+05-2.26952342E-02 4 19 | N(S) 20191025N 1 S100.0 1500.0 385.7 1 20 | 9.42579563E-01 1.55427751E-02-1.95357824E-05 1.12489616E-08-2.44679700E-12 2 21 | -1.13569415E+05-1.69143919E+01 7.68034123E-02-2.06218730E-02 3.11609035E-04 3 22 | -9.42303846E-07 9.11471822E-10-1.13163484E+05-9.25988774E+00 4 23 | H(S) 20191025H 1 S100.0 1500.0 442.9 1 24 | -9.54605025E-01 1.06494217E-02-1.21265274E-05 6.47236197E-09-1.32631811E-12 2 25 | -4.55696940E+04 2.11941297E+00 6.00188322E-01-1.52172577E-02 1.18495390E-04 3 26 | -2.63992977E-07 2.00505107E-10-4.55902218E+04-2.81848775E+00 4 27 | NH3(S) 20191025N 1H 3 S100.0 1500.0 585.7 1 28 | 2.92482015E+00 9.21050500E-03-5.23104911E-06 1.99340227E-09-3.75165361E-13 2 29 | -2.25583513E+05-1.25216586E+01 9.27446503E-01 2.25301169E-02-4.19455056E-05 3 30 | 5.04559773E-08-2.54564539E-11-2.25319376E+05-3.80456135E+00 4 31 | NH2(S) 20191025N 1H 2 S100.0 1500.0 442.9 1 32 | 1.31522303E+00 1.29611955E-02-1.31510208E-05 7.22361033E-09-1.57194148E-12 2 33 | -1.85904952E+05-9.45655813E+00-3.05713533E-01 8.04578997E-03 7.24766731E-05 3 34 | -2.38544585E-07 2.15002367E-10-1.85558660E+05-7.66968791E-01 4 35 | NH(S) 20191025N 1H 1 S100.0 1500.0 414.3 1 36 | 4.43423232E-01 1.28364482E-02-1.52486944E-05 8.82394386E-09-1.94780095E-12 2 37 | -1.51741245E+05-7.94737886E+00-1.61261379E-02-1.10011958E-02 1.78572648E-04 3 38 | -4.98783571E-07 4.43893135E-10-1.51449044E+05-3.18755207E+00 4 39 | TS1_NH3(S) 20191025N 1H 3 S100.0 1500.0 414.3 1 40 | 9.41444673E-01 1.60866304E-02-1.43968713E-05 7.09208234E-09-1.43560532E-12 2 41 | -2.12816821E+05-4.08408450E+00-1.11907246E+00 3.81330833E-02-1.13833700E-04 3 42 | 2.17641286E-07-1.70977780E-10-2.12635068E+05 3.99172954E+00 4 43 | TS2_NH2(S) 20191025N 1H 2 S100.0 1500.0 442.9 1 44 | 2.60292373E-01 1.68938488E-02-1.83465243E-05 9.85527198E-09-2.05879051E-12 2 45 | -1.79624754E+05-4.86613663E+00-1.13849349E+00 1.36828057E-02 4.79689009E-05 3 46 | -1.84369146E-07 1.71237911E-10-1.79333065E+05 2.53272186E+00 4 47 | TS3_NH(S) 20191025N 1H 1 S100.0 1500.0 385.7 1 48 | 7.04603088E-01 1.15660380E-02-1.33191973E-05 7.22151610E-09-1.50485467E-12 2 49 | -1.38731741E+05-7.78283574E+00-1.22171676E+00 1.73198908E-02 2.40738722E-05 3 50 | -1.78486515E-07 2.14670186E-10-1.38473508E+05 1.04371828E+00 4 51 | TS4_N2(S) 20191025N 2 S100.0 1500.0 414.3 1 52 | 2.70451931E+00 6.99384423E-03-8.69705103E-06 4.95478534E-09-1.06717499E-12 2 53 | -1.70138693E+05-1.47855247E+01-2.11874938E+00 4.18100230E-02-9.39705072E-05 3 54 | 7.17968413E-08 7.97694575E-12-1.69621486E+05 5.52531073E+00 4 55 | RU(S) 20191025 S100.0 1500.0 814.3 1 56 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2 57 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3 58 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 4 59 | RU(B) 20191025 S100.0 1500.0 814.3 1 60 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2 61 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3 62 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 4 63 | END -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_to_omkm/inputs/H2/CONTCAR: -------------------------------------------------------------------------------- 1 | H 2 | 1.0000000000000000 3 | 20.0000000000000000 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 20.0000000000000000 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 20.7371659999999984 6 | 2 7 | Cartesian 8 | 10.0000000000000000 10.0000000000000000 10.7371659999999984 9 | 10.0000000000000000 10.0000000000000000 10.0000000000000000 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_to_omkm/inputs/N2/CONTCAR: -------------------------------------------------------------------------------- 1 | N 2 | 1.0000000000000000 3 | 20.0000000000000000 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 20.0000000000000000 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 21.1299799999999998 6 | 2 7 | Cartesian 8 | 10.0000000000000000 10.0000000000000000 11.1299799999999998 9 | 10.0000000000000000 10.0000000000000000 10.0000000000000000 10 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_to_omkm/inputs/NH3/CONTCAR: -------------------------------------------------------------------------------- 1 | N H 2 | 1.0000000000000000 3 | 21.6276620000000008 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 21.4095960000000005 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 20.3882970000000014 6 | 1 3 7 | Cartesian 8 | 10.8138310000000004 10.4698650000000004 10.3882969999999997 9 | 10.8138310000000004 11.4095960000000005 10.0000000000000000 10 | 11.6276620000000008 10.0000000000000000 10.0000000000000000 11 | 10.0000000000000000 10.0000000000000000 10.0000000000000000 12 | -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_to_omkm/inputs/NH3_Input_Data.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/WorkshopJupyterNotebooks/pmutt_to_omkm/inputs/NH3_Input_Data.xlsx -------------------------------------------------------------------------------- /docs/source/WorkshopJupyterNotebooks/pmutt_to_omkm/inputs/tube_COV.inp: -------------------------------------------------------------------------------- 1 | !NUMSPEC -- If /NO/ coverage effects are desired, set lcov=F in tube.inp 2 | 3 3 | !Should coverage parameters be adjusted for atomic binding energies (T) or not (F) 4 | T 5 | !Specify species with binding energy affected 6 | !Specify species that cov affects it and value 7 | !------------------------------------------------------------ 8 | N(S)/SURFACE/2 9 | N(S)/SURFACE/-52.6 10 | H(S)/SURFACE/-17.7 11 | !-- 12 | H(S)/SURFACE/2 13 | N(S)/SURFACE/-17.7 14 | H(S)/SURFACE/-3. 15 | !-- 16 | NH2(S)/SURFACE/1 17 | N(S)/SURFACE/-20.7 18 | EOF 19 | -------------------------------------------------------------------------------- /docs/source/_templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | {% block footer %} {{ super() }} 3 | 4 | 10 | {% endblock %} -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # Configuration file for the Sphinx documentation builder. 2 | # 3 | # This file only contains a selection of the most common options. For a full 4 | # list see the documentation: 5 | # http://www.sphinx-doc.org/en/master/config 6 | 7 | # -- Path setup -------------------------------------------------------------- 8 | 9 | # If extensions (or modules to document with autodoc) are in another directory, 10 | # add these directories to sys.path here. If the directory is relative to the 11 | # documentation root, use os.path.abspath to make it absolute, like shown here. 12 | # 13 | # import os 14 | # import sys 15 | # sys.path.insert(0, os.path.abspath('.')) 16 | 17 | 18 | # -- Project information ----------------------------------------------------- 19 | 20 | project = 'pgradd' 21 | copyright = '2019, Gerhard Wittreich' 22 | author = 'Gerhard Wittreich' 23 | 24 | # The full version, including alpha/beta/rc tags 25 | release = '1.0.0' 26 | 27 | 28 | # -- General configuration --------------------------------------------------- 29 | 30 | # Add any Sphinx extension module names here, as strings. They can be 31 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 32 | # ones. 33 | extensions = [ 34 | ] 35 | 36 | # Add any paths that contain templates here, relative to this directory. 37 | templates_path = ['_templates'] 38 | 39 | # List of patterns, relative to source directory, that match files and 40 | # directories to ignore when looking for source files. 41 | # This pattern also affects html_static_path and html_extra_path. 42 | exclude_patterns = [] 43 | 44 | 45 | # -- Options for HTML output ------------------------------------------------- 46 | 47 | # The theme to use for HTML and HTML Help pages. See the documentation for 48 | # a list of builtin themes. 49 | # 50 | html_theme = 'alabaster' 51 | 52 | # Add any paths that contain custom static files (such as style sheets) here, 53 | # relative to this directory. They are copied after the builtin static files, 54 | # so a file named "default.css" will overwrite the builtin "default.css". 55 | html_static_path = ['_static'] 56 | 57 | # Logo 58 | html_logo = './logos/Screen/pgradd_inverse_web.png' 59 | html_favicon = './logos/Screen/pgradd_icon.ico' 60 | -------------------------------------------------------------------------------- /docs/source/examplepage.rst: -------------------------------------------------------------------------------- 1 | .. _examplepage: 2 | 3 | Example set of Python Scripts 4 | ***************************** 5 | 6 | Documentation for classes, methods, etc for examplypythonscript.py 7 | TODO: Delete me (examplepage.rst) and my reference in index.rst before deploying! 8 | 9 | Objects 10 | ------- 11 | 12 | .. function:: enumerate(sequence[, start=0]) 13 | 14 | Return an iterator that yields tuples of an index and an item of the *sequence* 15 | 16 | .. class:: Dog 17 | 18 | It's a kitty 19 | 20 | .. autoclass:: pgradd.RINGParser.Reader 21 | :members: 22 | 23 | .. autoclass:: pmutt.chemkin.CatSite 24 | :members: 25 | 26 | .. autoclass:: pmutt.reaction.ChemkinReaction 27 | :members: 28 | 29 | Input and Output 30 | ---------------- 31 | 32 | .. automodule:: pmutt.io.chemkin 33 | :members: 34 | 35 | -------------------------------------------------------------------------------- /docs/source/includeme.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../README.rst -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. pgradd documentation master file, created by 2 | sphinx-quickstart on Wed Jun 12 14:51:10 2019. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to pgradd's documentation! 7 | ================================== 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | :caption: Contents: 12 | 13 | 14 | 15 | Indices and tables 16 | ================== 17 | 18 | * :ref:`genindex` 19 | * :ref:`modindex` 20 | * :ref:`search` 21 | -------------------------------------------------------------------------------- /docs/source/logos/Print/pMuTT Logo 431 3265.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Print/pMuTT Logo 431 3265.pdf -------------------------------------------------------------------------------- /docs/source/logos/Print/pMuTT Logo 431 White.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Print/pMuTT Logo 431 White.pdf -------------------------------------------------------------------------------- /docs/source/logos/Print/pMuTT Logo Black.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Print/pMuTT Logo Black.pdf -------------------------------------------------------------------------------- /docs/source/logos/Print/pMuTT Logo White.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Print/pMuTT Logo White.pdf -------------------------------------------------------------------------------- /docs/source/logos/Screen/p_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Screen/p_icon.ico -------------------------------------------------------------------------------- /docs/source/logos/Screen/pgradd_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Screen/pgradd_icon.ico -------------------------------------------------------------------------------- /docs/source/logos/Screen/pgradd_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Screen/pgradd_icon.png -------------------------------------------------------------------------------- /docs/source/logos/Screen/pgradd_inverse_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Screen/pgradd_inverse_web.png -------------------------------------------------------------------------------- /docs/source/logos/Screen/pgradd_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/docs/source/logos/Screen/pgradd_logo.png -------------------------------------------------------------------------------- /docs/sphinx-quickstart: -------------------------------------------------------------------------------- 1 | foo bar 2 | -------------------------------------------------------------------------------- /example/GA.py: -------------------------------------------------------------------------------- 1 | from pgradd.GroupAdd.Library import GroupLibrary 2 | import pgradd.ThermoChem 3 | lib = GroupLibrary.Load('GuSolventGA2017Aq') 4 | descriptors = lib.GetDescriptors('C(=O)([Pt])O') 5 | #descriptors = lib.GetDescriptors('C=C') 6 | print(descriptors) 7 | thermochem = lib.Estimate(descriptors,'thermochem') 8 | print((thermochem.get_HoRT(500))) -------------------------------------------------------------------------------- /pgradd/Consts.py: -------------------------------------------------------------------------------- 1 | """ 2 | ================== 3 | Physical constants 4 | ================== 5 | 6 | Values of common physical constants are defined here as instances of 7 | :class:`pgradd.Units.Quantity`. 8 | 9 | """ 10 | 11 | from . Units import eval_qty 12 | 13 | 14 | #: Planck's constant 15 | PLANCK_CONSTANT = eval_qty('6.626068*10^-34 J s') 16 | 17 | #: Boltzman's constant 18 | BOLTZMANN_CONSTANT = eval_qty('1.3806503*10^-23 J/K') 19 | 20 | #: Boltzman's constant 21 | GAS_CONSTANT = eval_qty('8.314472 J/(mol K)') 22 | 23 | #: Avogadro's number 24 | AVOGADRO_NUMBER = eval_qty('6.02214179*10^23 mol^-1') 25 | -------------------------------------------------------------------------------- /pgradd/DrawMol.py: -------------------------------------------------------------------------------- 1 | """ 2 | ========================================= 3 | Defenition to draw RDKIT mol object (:mod:`pgradd.DrawMol`) 4 | ========================================= 5 | 6 | Coverts a rdkit mol object to a svg image and display. 7 | 8 | """ 9 | 10 | from rdkit import Chem 11 | from rdkit.Chem import rdDepictor 12 | from rdkit.Chem.Draw import rdMolDraw2D 13 | from IPython.display import SVG, display 14 | 15 | 16 | # http://rdkit.blogspot.com/2015/02/new-drawing-code.html 17 | def moltosvg(mol, highlight=[], molSize=(400, 400), kekulize=True): 18 | mc = Chem.Mol(mol.ToBinary()) 19 | if kekulize: 20 | try: 21 | Chem.Kekulize(mc) 22 | except Exception: 23 | mc = Chem.Mol(mol.ToBinary()) 24 | if not mc.GetNumConformers(): 25 | rdDepictor.Compute2DCoords(mc) 26 | 27 | drawer = rdMolDraw2D.MolDraw2DSVG(molSize[0], molSize[1]) 28 | 29 | # Atom Label 30 | opts = drawer.drawOptions() 31 | # Atom name and index 32 | for i in range(mol.GetNumAtoms()): 33 | opts.atomLabels[i] = mol.GetAtomWithIdx(i).GetSymbol()+str(i) 34 | # radicals and charges 35 | for atom in mol.GetAtoms(): 36 | nr = atom.GetNumRadicalElectrons() 37 | nc = atom.GetFormalCharge() 38 | if nr > 0: 39 | string = atom.GetSymbol() + ':'*divmod(nr, 2)[0] +\ 40 | '.'*divmod(nr, 2)[1] 41 | opts.atomLabels[atom.GetIdx()] += string 42 | elif nc == 1: 43 | string = atom.GetSymbol() + '+' 44 | opts.atomLabels[atom.GetIdx()] += string 45 | elif nc > 1: 46 | string = atom.GetSymbol() + '+' + str(nc) 47 | opts.atomLabels[atom.GetIdx()] += string 48 | elif nc == -1: 49 | string = atom.GetSymbol() + '-' 50 | opts.atomLabels[atom.GetIdx()] += string 51 | elif nc < -1: 52 | string = atom.GetSymbol() + '-' + str(nc) 53 | opts.atomLabels[atom.GetIdx()] += string 54 | 55 | # highlight 56 | if highlight: 57 | drawer.DrawMolecule(mc, highlightAtoms=highlight) 58 | else: 59 | drawer.DrawMolecule(mc) 60 | 61 | drawer.FinishDrawing() 62 | svg = drawer.GetDrawingText() 63 | # It seems that the svg renderer used doesn't quite hit the spec. 64 | # Here are some fixes to make it work in the notebook, although I think 65 | # the underlying issue needs to be resolved at the generation step 66 | svg.replace('svg:', '') 67 | display(SVG(svg)) 68 | -------------------------------------------------------------------------------- /pgradd/GroupAdd/DataDir.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | # What environment variable is used to override use of the bundled 5 | # data directory? 6 | _data_dir_envvar = 'pgradd_DATA_DIR' 7 | 8 | # We'll cache the located data directory root in this variable: 9 | _data_dir_cached = False 10 | 11 | 12 | def get_data_dir(): 13 | """Returns the directory containing the pgradd data library. 14 | 15 | Return the cached directory path if it has been set. Otherwise: 16 | 17 | 1. If the _data_dir_envvar is set in the runtime environment, 18 | cache and use it as the data dir 19 | 20 | 2. This Python file exists somewhere under the 'pgradd' module 21 | directory; step back until we get a path that ends with '/pgradd' 22 | and tack '/data' onto the end of it. Voila, our bundled data 23 | directory. 24 | 25 | The caveat to 2. is when this script is run from the GroupAdd 26 | directory for testing purposes; the __file__ will be just 27 | "DataDir.py" so it needs to be made absolute. 28 | """ 29 | global _data_dir_cached, _data_dir_cached 30 | 31 | if not _data_dir_cached: 32 | base_path = os.getenv(_data_dir_envvar, False) 33 | if not base_path: 34 | base_path = os.path.abspath(os.path.dirname(__file__)) 35 | while base_path != os.sep and not base_path.endswith(os.sep + 36 | 'pgradd'): 37 | base_path = os.path.dirname(base_path) 38 | if base_path == os.sep: 39 | raise RuntimeError('DataDir.get_data_dir: unable to locate', 40 | 'bundled data directory') 41 | base_path = os.path.join(base_path, 'data') 42 | if not os.path.isdir(base_path): 43 | raise RuntimeError('DataDir.get_data_dir: directory does not', 44 | 'exist: ' + base_path) 45 | _data_dir_cached = base_path 46 | return _data_dir_cached 47 | 48 | # 49 | # This code can be tested very simply by 50 | # 51 | # python DataDir.py 52 | # 53 | 54 | 55 | if __name__ == '__main__': 56 | sys.stdout.write('pgradd data directory = {0:s}'.format(get_data_dir())) 57 | -------------------------------------------------------------------------------- /pgradd/GroupAdd/FindResStruc.py.old: -------------------------------------------------------------------------------- 1 | from rdkit import Chem 2 | from ..RDkitWrapper.GenRxnNet import GenerateRxnNet 3 | from ..RINGParser.Reader import Read 4 | 5 | 6 | def enumerate_res_struc(mol): 7 | """ 8 | Generates resonance structures. Structure with minimum number of radical 9 | electrons is outputted 10 | 11 | Arguments: 12 | - mol: Input. It can be smiles or mol 13 | 14 | Return: 15 | - list of resonance structures 16 | 17 | Example: 18 | from rdkit import Chem 19 | from msr.GroupAdd.FindResStruc import enumerate_res_struc 20 | A = enumerate_res_struc('[CH][C][C][O]') 21 | for product in A: 22 | NRE = 0 23 | for atoms in product.GetAtoms(): 24 | NRE += atoms.GetNumRadicalElectrons() 25 | print(NRE, Chem.MolToSmiles(product)) 26 | 27 | """ 28 | # Initialize 29 | # Does not accept list 30 | if isinstance(mol, list): 31 | raise ValueError('Only single molecule accepted') 32 | # Convert to rdkit mol 33 | if isinstance(mol, str): 34 | mol = Chem.MolFromSmiles(mol) 35 | 36 | # Delete all double/triple bonds 37 | for bond in mol.GetBonds(): 38 | if bond.GetBondType() == Chem.rdchem.BondType.TRIPLE: 39 | bond.SetBondType(Chem.rdchem.BondType.SINGLE) 40 | atom = bond.GetBeginAtom() 41 | atom.SetNumRadicalElectrons(atom.GetNumRadicalElectrons()+2) 42 | atom = bond.GetEndAtom() 43 | atom.SetNumRadicalElectrons(atom.GetNumRadicalElectrons()+2) 44 | elif bond.GetBondType() == Chem.rdchem.BondType.DOUBLE: 45 | bond.SetBondType(Chem.rdchem.BondType.SINGLE) 46 | atom = bond.GetBeginAtom() 47 | atom.SetNumRadicalElectrons(atom.GetNumRadicalElectrons()+1) 48 | atom = bond.GetEndAtom() 49 | atom.SetNumRadicalElectrons(atom.GetNumRadicalElectrons()+1) 50 | elif bond.GetBondType() == Chem.rdchem.BondType.QUADRUPLE: 51 | bond.SetBondType(Chem.rdchem.BondType.SINGLE) 52 | atom = bond.GetBeginAtom() 53 | atom.SetNumRadicalElectrons(atom.GetNumRadicalElectrons()+3) 54 | atom = bond.GetEndAtom() 55 | atom.SetNumRadicalElectrons(atom.GetNumRadicalElectrons()+3) 56 | 57 | # Chem.AssignRadicals(mol) # This is broken. I don't know how it works. 58 | # Frustrating 59 | print('Resonance Structure') 60 | # Get all possible resonance structures 61 | # set up reactions 62 | reaction_rules = list() 63 | # Conjugated bond formation 64 | temp = """ 65 | rule increaseBO{ 66 | reactant r1{ 67 | $? labeled a1 {has >0 radical electrons} 68 | $? labeled a2 any bond to a1 {has >0 radical electrons} 69 | } 70 | increase bond order (a1,a2) 71 | decrease number of radical (a1) 72 | decrease number of radical (a2) 73 | } 74 | """ 75 | reaction_rules.append(Read(temp)) 76 | temp = """ 77 | rule increaseBO{ 78 | reactant r1{ 79 | $+ labeled a1 80 | $ labeled a2 any bond to a1 {has >0 radical electrons} 81 | } 82 | increase number of radical (a1) 83 | decrease number of radical (a2) 84 | decrease formal charge (a1) 85 | increase formal charge (a2) 86 | } 87 | """ 88 | reaction_rules.append(Read(temp)) 89 | 90 | # run 91 | resonance_structures = GenerateRxnNet(mol, reaction_rules) 92 | """ 93 | Structure must: 94 | obey as much as possible the octet rule (8 valence electrons around each 95 | atom rather than having deficiencies or surplus) have a maximum number 96 | of covalent bonds carry a minimum of charged atoms. If unlike charges 97 | are present their separation must be least while for like charges the 98 | separation must be maximum. 99 | """ 100 | # Octet rule 101 | # here this is achieved by finding the minimum number of radical electron. 102 | # Find the minimum number of radicals 103 | TotalNumRadicalElectron = list() 104 | for resonance_structure in resonance_structures: 105 | NTRE = 0 # Number of Total Radical Electorn 106 | for atoms in resonance_structure.GetAtoms(): 107 | NTRE += atoms.GetNumRadicalElectrons() 108 | TotalNumRadicalElectron.append(NTRE) 109 | MinTotalNumRadicalElectron = min(TotalNumRadicalElectron) 110 | # Remove resonance structure with number of radical 111 | # electron more than the min 112 | for i in range(len(TotalNumRadicalElectron)-1, -1, -1): 113 | if TotalNumRadicalElectron[i] > MinTotalNumRadicalElectron: 114 | del resonance_structures[i] 115 | 116 | return resonance_structures 117 | -------------------------------------------------------------------------------- /pgradd/GroupAdd/Group.py: -------------------------------------------------------------------------------- 1 | import re 2 | from collections import defaultdict 3 | 4 | from .. Error import GroupSyntaxError 5 | 6 | 7 | # Note: This class is not currently documented explicitly and is only used to 8 | # inherit Group() from. 9 | class Descriptor(object): 10 | """ 11 | Represent a chemical descriptor upon which properties may 12 | linearly depend on. 13 | """ 14 | def __init__(self, scheme, name): 15 | """Initialize a chemical descriptor with given string name. 16 | 17 | Parameters 18 | ---------- 19 | scheme : instance of :class:`GroupScheme` 20 | Specify group-additivity scheme for which the group belongs to. 21 | name : str 22 | Specify name of descriptor 23 | """ 24 | self.scheme = scheme 25 | self.name = name 26 | 27 | def __hash__(self): 28 | return hash(self.name) 29 | 30 | def __eq__(self, other): 31 | if isinstance(other, type(self)): 32 | return self.name == other.name 33 | else: 34 | return self.name == other 35 | 36 | def __neq__(self, other): 37 | return not (self == other) 38 | 39 | def __str__(self): 40 | return self.name 41 | 42 | def __repr__(self): 43 | return '<%s: %s>' % (type(self).__name__, str(self)) 44 | 45 | 46 | class Group(Descriptor): 47 | """Represent a chemical functional group. 48 | 49 | This object is hashable (meaning that it may be used as a dictionary key) 50 | and can be compared for equality against others of its kind, regardless of 51 | the order in which each the peripheral subgroups were specified at 52 | initialization. 53 | 54 | In addition to the default constructor (:meth:`Group.__init__()`), one can 55 | instantiate :class:`Group` objects using the alternative constructor 56 | :meth:`Group.parse()` which accepts a string name for the group that is 57 | parsed to determine the contained `csg` and `psgs`. 58 | """ 59 | _parser_re = re.compile('[()]') 60 | 61 | @classmethod 62 | def parse(cls, scheme, text): 63 | """Initialize a chemical functional group given a string name. 64 | 65 | The syntax consists of the center-subgroup name followed by one or more 66 | peripheral subgroup names enclosed in parantheses, each of which is 67 | optionally followed by a numerical repeat count. 68 | 69 | Parameters 70 | ---------- 71 | text : str 72 | Name of the group 73 | 74 | Examples 75 | -------- 76 | Using the (builtin) ``'benson'`` scheme:: 77 | 78 | >>> from chemtk.groupadd import Group, GroupScheme 79 | >>> scheme = GroupScheme.load('benson') 80 | >>> Group.parse(scheme, 'C(C)(H)3') 81 | Group('C', ['C', 'H', 'H', 'H']) 82 | >>> Group.parse(scheme, 'C(C[d])(C)2(H)') 83 | Group('C', ['C[d]', 'C', 'C', 'H']) 84 | >>> Group.parse(scheme, 'O(C)(H)') 85 | Group('O', ['C', 'H']) 86 | """ 87 | def append_to_psgs(count, psg): 88 | for i in range(count): 89 | psgs.append(psg) 90 | parts = cls._parser_re.split(text) 91 | csg = parts[0] 92 | next_psg = None # next nearest neighbor to be appended to nns 93 | psgs = [] # list of nearest neighbors 94 | for part in parts[1:]: 95 | if not part: 96 | continue 97 | if part.isdigit(): 98 | if next_psg is None: 99 | raise GroupSyntaxError('Expected base atom for Benson', 100 | 'group got number instead.') 101 | append_to_psgs(int(part), next_psg) 102 | next_psg = None 103 | else: 104 | if next_psg is not None: 105 | append_to_psgs(1, next_psg) 106 | next_psg = None 107 | next_psg = part 108 | if next_psg is not None: 109 | append_to_psgs(1, next_psg) 110 | return cls(scheme, csg, psgs) 111 | 112 | def __init__(self, scheme, csg, psgs): 113 | """Initialize a chemical functional group. 114 | 115 | Parameters 116 | ---------- 117 | scheme : instance of :class:`GroupScheme` 118 | Specify group-additivity scheme for which the group belongs to. 119 | csg : str 120 | Name of center-subgroup 121 | psgs : iterable of strs 122 | Names of peripheral-subgroups 123 | """ 124 | self.csg = csg 125 | self.psgs = psgs 126 | canon_name = self._canonical_name() 127 | Descriptor.__init__(self, scheme, canon_name) 128 | 129 | def _canonical_name(self): 130 | """Return canonical name of group. 131 | 132 | Parameters 133 | ---------- 134 | scheme : :class:`GroupScheme` 135 | Specify group-additivity scheme for which the group belongs to. 136 | 137 | Returns 138 | ------- 139 | name : str 140 | Canonical name of group 141 | """ 142 | canon_name = self.csg 143 | psg_counts = defaultdict(int) 144 | for psg in self.psgs: 145 | psg_counts[psg] += 1 146 | for name in sorted(psg_counts): 147 | if psg_counts[name] == 1: 148 | canon_name += '(' + name + ')' 149 | else: 150 | canon_name += '(' + name + ')' + '%d' % psg_counts[name] 151 | return canon_name 152 | 153 | def __repr__(self): 154 | return '%s(%r, %r)' % (type(self).__name__, self.csg, self.psgs) 155 | -------------------------------------------------------------------------------- /pgradd/GroupAdd/__init__.py: -------------------------------------------------------------------------------- 1 | # 2016. Vlachos Group Geun Ho Gu. University of Delaware. 2 | """ 3 | ============================= 4 | Group-additivity computations 5 | ============================= 6 | 7 | This module is used for using Group additivity method to compute energies 8 | 9 | -------- 10 | Examples 11 | -------- 12 | 13 | >>> from pgradd.GroupAdd.Library import GroupLibrary 14 | >>> import pgradd.ThermoChem 15 | >>> lib = GroupLibrary.Load('benson') 16 | >>> groups = lib.GetDescriptors('CC') 17 | >>> print groups 18 | >>> thermochem = lib.Estimate(groups,'thermochem') 19 | >>> print thermochem.get_HoRT(298.15) 20 | defaultdict(, {'C(C)(H)3': 2}) 21 | -34.4280812417 22 | 23 | """ 24 | 25 | from . Library import GroupLibrary 26 | from . Scheme import GroupAdditivityScheme 27 | 28 | __all__ = ['GroupLibrary', 'GroupAdditivityScheme'] 29 | -------------------------------------------------------------------------------- /pgradd/RDkitWrapper/__init__.py: -------------------------------------------------------------------------------- 1 | # 2016. Vlachos Group Geun Ho Gu. University of Delaware. 2 | -------------------------------------------------------------------------------- /pgradd/RINGParser/Reader.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from .. Error import RINGError 3 | 4 | 5 | class Reader(object): 6 | """ 7 | Reader reads the parsed RING input, and returns the RDkit wrapper objects 8 | in pgradd.RDkitWrapper. 9 | 10 | Attributes 11 | ---------- 12 | ast : abstract syntax tree obtrained from parser 13 | """ 14 | def __init__(self, ast): 15 | # ast = Abstract Syntax Tree 16 | self.ast = ast 17 | 18 | def ReadRINGInput(self, tree): 19 | # Check the type of input 20 | assert tree[0][0].name in ('Fragment', 21 | 'ReactionRule', 22 | 'EnumerationQuery') 23 | # if fragment, molquery is returned 24 | if tree[0][0].name == 'Fragment': 25 | from . MolQueryRead import MolQueryReader 26 | self.type = 'MolQuery' 27 | return MolQueryReader(tree[0][1:]).Read() 28 | # if reaction rule, reacitonquery is returned 29 | elif tree[0][0].name == 'ReactionRule': 30 | from . ReactionQueryRead import ReactionQueryReader 31 | self.type = 'ReactionQuery' 32 | return ReactionQueryReader(tree[0][1:]).Read() 33 | # TODO enumeration query 34 | elif tree[0][0].name == 'EnumerationQuery': 35 | raise NotImplementedError('Coming soon') 36 | 37 | def Read(self): 38 | # Root tree reading. Check if the input is RINGinput 39 | assert self.ast[0].name == "RINGInput" 40 | return self.ReadRINGInput(self.ast[1:]) 41 | 42 | 43 | def Read(text, strict=False): 44 | """ 45 | Return MolQuery, ReactionQuery, or ReactionNetworkEnumerationQuery by 46 | interpretting RING input string. 47 | 48 | Parameters 49 | ---------- 50 | text : string 51 | Specify string describing chemical structure, elementary reaction, or 52 | reaction network enumeration rules in RING notation. 53 | strict : boolean, optional 54 | If True, then disable use of syntactic extensions such as support for 55 | "radical electrons". 56 | 57 | Returns 58 | ------- 59 | Returns RDkit wrapped queries that extends RDkit's functionality: 60 | * MolQuery if fragment is given in string 61 | * ReactionQuery if reaction rule is given in string 62 | * ReactionNetworkEnumerationQuery if enumeration query is given in string 63 | 64 | Raises 65 | ------ 66 | msr.error.RINGSyntaxError 67 | If `text` does not conform to RING syntax. 68 | msr.error.RINGReaderError 69 | If `text` is invalid RING for non-syntactic reasons. 70 | """ 71 | from . import Parser 72 | try: 73 | return Reader(Parser.parse(text)).Read() 74 | except RINGError as exc: 75 | raise exc 76 | -------------------------------------------------------------------------------- /pgradd/RINGParser/__init__.py: -------------------------------------------------------------------------------- 1 | r""" 2 | ===================================== 3 | RING notation for chemical structures 4 | ===================================== 5 | This is a custom written abstract syntax tree parser for RING. Implementation 6 | is based on the ''. 7 | Rangarajan, S., Kaminski, T., Van Wyk, E., Bhan A., and Daoutidis, P., 8 | "Language-oriented rule-based reaction network generation and analysis: 9 | Algorithms of RING", Computers and Chemical Engineering 64 (2014) 124, 10 | 10.1016/j.compchemeng.2014.02.007 11 | Rangarajan, S., Bhan, A., and Daoutidis, P., 12 | "Language-oriented rule-based reaction network generation and analysis: 13 | Descrpition of RING", Computers and Chemical Engineering 45 (2012) 114, 14 | 10.1016/j.compchemeng.2012.06.008 15 | """ 16 | 17 | from .Reader import Read 18 | 19 | __all__ = ['Read'] 20 | -------------------------------------------------------------------------------- /pgradd/ThermoChem/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | ==================================== 3 | Thermochemical property correlations 4 | ==================================== 5 | 6 | This module provides a variety of different correlations used to represent 7 | thermochemical properties (in non-dimensional form), i.e. heat capacity 8 | |eq_ND_Cp_T|, enthalpy of formation |eq_ND_H_T|, and absolute |eq_ND_S_T| all 9 | as functions of temperature |eq_T|. 10 | 11 | This module provides a group-additivity *property set* for estimation of 12 | thermochemical properties. Upon importing this module, the ``thermochem`` 13 | property set is registered for use within 14 | :class:`chemtk.groupadd.GroupLibrary` instances. Group contributions may also 15 | be computed by fitting to thermochemical data via 16 | :class:`ThermochemGroupFittingSet()`.objects. 17 | 18 | --------- 19 | Reference 20 | --------- 21 | 22 | .. autodoc puts stuff extracted from docstrings here. 23 | """ 24 | 25 | # TODO: Test ThermochemQuartic code and add to correlations. 26 | from .base import * 27 | from .raw_data import * 28 | from .incomplete import * 29 | from .group_data import * 30 | 31 | __all__ = sum((getattr(globals()[module], '__all__') for module in [ 32 | 'base', 'raw_data', 'incomplete', 'group_data']), []) 33 | 34 | del base, raw_data, incomplete, group_data 35 | -------------------------------------------------------------------------------- /pgradd/ThermoChem/base.py: -------------------------------------------------------------------------------- 1 | import abc 2 | 3 | import numpy as np 4 | from pmutt import constants as c 5 | 6 | from ..Units import eval_qty 7 | from ..Error import OutsideCorrelationError 8 | from .. import yaml_io 9 | 10 | 11 | class ThermochemBase(object): 12 | metaclass = abc.ABCMeta 13 | """Manage thermochemical properties correlation (abstract base class). 14 | 15 | This class cannot be instantiated directly; rather, it serves as a 16 | common base for the rest of the correlations. 17 | """ 18 | # Abstract base class 19 | 20 | def init_params(self, range=None, units=None): 21 | if range is not None: 22 | self.range = ( 23 | eval_qty(range[0], 'K').in_units('K'), 24 | eval_qty(range[1], 'K').in_units('K')) 25 | else: 26 | self.range = None 27 | 28 | def __init__(self, range=None, units=None): 29 | """ 30 | Initialize generic thermochemical property correlation. 31 | 32 | Parameters 33 | ---------- 34 | range : tuple(float, float), optional 35 | ``(lb, ub) = range`` where lb and ub are respectively the lower and 36 | uppers bounds of temperatures [K] for which the correlation is 37 | valid. 38 | """ 39 | if range is not None: 40 | range = tuple(range) 41 | assert len(range) == 2 42 | assert range[1] >= range[0] 43 | self.range = range 44 | 45 | def check_range(self, T): 46 | """ 47 | Verify that one or more temperatures is within the valid range for this 48 | correlation. 49 | 50 | Parameters 51 | ---------- 52 | T : float or float array 53 | Specify temperature(s) to test. 54 | 55 | Returns 56 | ------- 57 | None 58 | 59 | Raises 60 | ------ 61 | chemtk.error.OutsideCorrelationError 62 | If `T` (or any temperature in array `T`) is outside the valid range 63 | of this correlation. 64 | """ 65 | if self.range is None: 66 | return 67 | if np.any(T < self.range[0]) or np.any(T > self.range[1]): 68 | raise OutsideCorrelationError( 69 | "In %s().check_range: one or more of the following " 70 | "temperatures is outside the valid interval [%r,%r]: %r" 71 | % (type(self).__name__, self.range[0], self.range[1], T)) 72 | 73 | def get_range(self): 74 | """ 75 | Return range of validity for this thermochemical properties 76 | correlation. 77 | 78 | Returns 79 | ------- 80 | lower_bound : float 81 | Lower bound of range. 82 | upper_bound : float 83 | Upper bound of range. 84 | """ 85 | return self.range 86 | 87 | def set_range(self, range=None): 88 | """ 89 | Set range of validity for this thermochemical properties correlation. 90 | 91 | Parameters 92 | ---------- 93 | range : tuple(float, float), optional 94 | ``(lb, ub) = range`` where lb and ub are respectively the lower and 95 | uppers bounds of temperatures [K] for which the correlation is 96 | valid. 97 | """ 98 | self.range = range 99 | 100 | @abc.abstractmethod 101 | def get_CpoR(self, T): 102 | """Return non-dimensional standard state heat capacity |eq_ND_Cp_T|.""" 103 | 104 | @abc.abstractmethod 105 | def get_SoR(self, T, S_elements=None): 106 | """Return non-dimensional standard state entropy |eq_ND_S_T|.""" 107 | 108 | @abc.abstractmethod 109 | def get_HoRT(self, T): 110 | """Return non-dimensional standard heat of formation |eq_ND_H_T|.""" 111 | 112 | def get_GoRT(self, T, S_elements=None): 113 | """ 114 | Return non-dimensional standard Gibbs energy of formation |eq_ND_G_T|. 115 | """ 116 | return self.get_HoRT(T) - self.get_SoR(T, S_elements=S_elements) 117 | 118 | def get_H(self, T, units): 119 | """ 120 | Return dimensional enthalpy at T with units specified by 'units' 121 | """ 122 | return self.get_HoRT(T)*T*c.R('{}/K'.format(units)) 123 | 124 | def get_G(self, T, units, S_elements=None): 125 | """ 126 | Return dimensional Gibbs free energy at T with units 127 | specified by 'units' 128 | """ 129 | return self.get_GoRT(T, S_elements=S_elements)*T*c.R('{}/K'.format(units)) 130 | 131 | def get_S(self, T, units, S_elements=None): 132 | """ 133 | Return dimensional entropy with units specified by 'units' 134 | """ 135 | return self.get_SoR(T, S_elements=S_elements)*c.R(units) 136 | 137 | def get_Cp(self, T, units): 138 | """ 139 | Return dimensional heat capacity with units specified by 'units' 140 | """ 141 | return self.get_CpoR(T)*c.R(units) 142 | 143 | _yaml_schema = """ 144 | range: 145 | type: tuple 146 | item_types: [{type: qty, kind: temperature}, 147 | {type: qty, kind: temperature}] 148 | optional: True 149 | desc: range of valid temperatures 150 | """ 151 | 152 | 153 | yaml_io.register_class('ThermochemBase', 154 | yaml_io.parse(ThermochemBase._yaml_schema), 155 | ThermochemBase) 156 | 157 | 158 | __all__ = ['ThermochemBase'] 159 | -------------------------------------------------------------------------------- /pgradd/ThermoChem/group_data.py: -------------------------------------------------------------------------------- 1 | from .. ThermoChem import ThermochemBase, ThermochemIncomplete 2 | from .. import yaml_io 3 | import numpy as np 4 | from ..GroupAdd.Library import GroupLibrary 5 | from rdkit import Chem 6 | from pmutt import constants as c 7 | 8 | __all__ = ['ThermochemGroup', 'ThermochemGroupAdditive'] 9 | 10 | 11 | class ThermochemGroup(ThermochemIncomplete): 12 | """ 13 | Implement thermochemical property correlation for 14 | one group's contributions. 15 | 16 | See base class :class:`ThermochemIncomplete` for additional documentation. 17 | """ 18 | 19 | 20 | yaml_io.register_class('ThermochemGroup', 21 | yaml_io.parse(ThermochemGroup._yaml_schema), 22 | ThermochemGroup) 23 | 24 | 25 | class ThermochemGroupAdditive(ThermochemBase): 26 | """ 27 | Implement thermochemical property correlation using group-additivity. 28 | 29 | Properties are evaluated by taking a linear combination of contributing 30 | properties of the constituent groups. 31 | 32 | Normally this class is not instantiated directly; rather, instances are 33 | created and returned by :meth:`GroupLibrary.estimate()`. 34 | """ 35 | 36 | def __init__(self, lib, groups): 37 | """ 38 | Initialize thermochemical property correlation using group-additivity. 39 | 40 | Parameters 41 | ---------- 42 | lib : :class:`GroupLibrary` 43 | Specify library from which to access group data. 44 | groups : mapping 45 | Map from :class:`Group` to int specifying counts of each group in 46 | the chemical structure. 47 | """ 48 | self.name = lib.name 49 | self.correlations = [] 50 | common_min = None 51 | common_max = None 52 | 53 | for group in groups: 54 | count = groups[group] 55 | correlation = lib[group]['thermochem'] 56 | self.correlations.append((correlation, count)) 57 | data_range = correlation.get_range() 58 | if data_range is not None: 59 | if common_min is None: 60 | (common_min, common_max) = data_range 61 | else: 62 | common_min = max(common_min, data_range[0]) 63 | common_max = min(common_max, data_range[1]) 64 | if lib.uq_contents: 65 | self.RMSE = lib.uq_contents['RMSE'].thermochem 66 | xp = np.zeros((len(lib.uq_contents['descriptors']), 1)) 67 | for group in groups: 68 | count = groups[group] 69 | i = lib.uq_contents['descriptors'].index(group) 70 | xp[i] = count 71 | self.Xp_invXX_Xp = np.dot(np.dot(np.transpose(xp), 72 | lib.uq_contents['mat']), xp) 73 | self.dof = lib.uq_contents['dof'] 74 | if common_min is not None: 75 | ThermochemBase.__init__(self, range=(common_min, common_max)) 76 | else: 77 | ThermochemBase.__init__(self, range=None) 78 | 79 | def get_CpoR(self, T): 80 | return sum((count*correlation.get_CpoR(T) 81 | for (correlation, count) in self.correlations)) 82 | get_CpoR.__doc__ = ThermochemBase.get_CpoR.__doc__ 83 | 84 | def get_HoRT(self, T): 85 | return sum((count*correlation.get_HoRT(T) 86 | for (correlation, count) in self.correlations)) 87 | get_HoRT.__doc__ = ThermochemBase.get_HoRT.__doc__ 88 | 89 | def get_Selements(self): 90 | mol = Chem.rdmolops.AddHs(Chem.MolFromSmiles(self.name)) 91 | atoms = mol.GetAtoms() 92 | S_ele = 0 93 | for atom in atoms: 94 | S_ele += c.S_elements[atom.GetAtomicNum()] 95 | return S_ele 96 | 97 | def get_SoR(self, T, S_elements=None): 98 | if not S_elements: 99 | S_ele = 0 100 | else: 101 | S_ele = self.get_Selements() 102 | return sum((count*correlation.get_SoR(T) 103 | for (correlation, count) in self.correlations)) - S_ele 104 | get_SoR.__doc__ = ThermochemBase.get_SoR.__doc__ 105 | 106 | def get_CpoR_SE(self, T): 107 | return float(np.sqrt(np.square(self.RMSE.get_CpoR(T)) * 108 | self.Xp_invXX_Xp)) 109 | 110 | def get_HoRT_SE(self, T): 111 | return float(np.sqrt(np.square(self.RMSE.get_HoRT(T)) * 112 | self.Xp_invXX_Xp)) 113 | 114 | def get_SoR_SE(self, T): 115 | return float(np.sqrt(np.square(self.RMSE.get_SoR(T)) * 116 | self.Xp_invXX_Xp)) 117 | 118 | 119 | GroupLibrary.register_property_set_type( 120 | 'thermochem', 'ThermochemGroup', ThermochemGroupAdditive) 121 | -------------------------------------------------------------------------------- /pgradd/Units/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | ======================================= 3 | Physical quantities and unit conversion 4 | ======================================= 5 | 6 | This module provides routines for representing and manipulating physical 7 | quantities with units. A physical quantity is represented internally by its 8 | numerical value in SI units combined with a :class:`FundamentalUnits` that 9 | specifies the exponents of meters, kilograms, seconds, ampere, kelvin, 10 | gram-moles, and candela represented in the quantity. 11 | 12 | All standard prefixes (*e.g.* k for kilo, u for micro, etc.) are supported as 13 | are most derived units in the metric and standard systems. Notable absences 14 | include celsius and fahrenheit as these do not represent temperatures in the 15 | absolute sense. Proper handling of these units in arithmetic is complex and 16 | beyond the intended scope of this library. 17 | 18 | 19 | ------- 20 | Summary 21 | ------- 22 | 23 | .. autosummary:: 24 | 25 | eval_quantity 26 | eval_qty 27 | Quantity 28 | FundamentalUnits 29 | with_units 30 | in_units 31 | has_units 32 | from_SI_to 33 | to_SI_from 34 | 35 | 36 | -------- 37 | Examples 38 | -------- 39 | 40 | >>> from chemtk.units import with_units, in_units, has_units 41 | >>> g = with_units(9.81, 'm/s^2') 42 | >>> m = with_units(10.0, 'lb') 43 | >>> print m*g 44 | 44.497411497 m*kg/s^(-2) 45 | >>> print in_units(m, 'g') 46 | 4535.9237 47 | >>> print (m*g).fmt_in_units('N') 48 | 44.4974 N 49 | >>> print (m*g).fmt_in_units('lbf') 50 | 10.0034 lbf 51 | >>> print m.has_units('ug') 52 | True 53 | >>> print m.has_units('J s') 54 | False 55 | >>> 56 | 57 | 58 | --------- 59 | Reference 60 | --------- 61 | 62 | .. autodoc puts stuff extracted from docstrings here. 63 | """ 64 | 65 | from .qty import * 66 | from .helpers import * 67 | from . import builtin 68 | 69 | __all__ = qty.__all__[:] + helpers.__all__[:] 70 | 71 | del qty, helpers, builtin 72 | -------------------------------------------------------------------------------- /pgradd/Units/builtin.py: -------------------------------------------------------------------------------- 1 | from .db import units_db 2 | from .qty import Quantity, FundamentalUnits, eval_qty 3 | 4 | 5 | # Define base SI units. 6 | base_SI_units = [ 7 | # (, , ) 8 | ('m', 1.0, 'm'), 9 | ('g', 0.001, 'kg'), 10 | ('s', 1.0, 's'), 11 | ('A', 1.0, 'A'), 12 | ('K', 1.0, 'K'), 13 | ('mol', 1.0, 'mol'), 14 | ('cd', 1.0, 'cd') 15 | ] 16 | for base, mult, prim in base_SI_units: 17 | units_db.add(base, Quantity(mult, FundamentalUnits.new(prim))) 18 | 19 | derived_SI_units = [ 20 | ('N', 'kg m/s^2'), ('Pa', 'N/m^2'), ('J', 'N m'), ('W', 'J/s'), 21 | ('C', 'A s'), ('V', 'J/C'), ('F', 'C/V'), ('Ohm', 'V/A'), 22 | # etc. (may define others later) 23 | ] 24 | for name, val in derived_SI_units: 25 | units_db.add(name, eval_qty(val)) 26 | 27 | other_units = [ 28 | # Includes non-SI metric units and English units. 29 | # Count: 30 | ('molecule', '1/(6.02214179*10^23) mol'), 31 | # Length: 32 | ('in', '2.54 cm'), 33 | ('ft', '12 in'), 34 | # Volume: 35 | ('L', '100 cm^3'), 36 | # Time: 37 | ('min', '60 s'), 38 | ('h', '60 min'), 39 | # Mass: 40 | ('u', '1.660538921*10^-27 kg'), 41 | ('lb', '0.45359237 kg'), 42 | ('t', '1000 kg'), 43 | # Force: 44 | ('dyn', '10^-5 N'), 45 | ('lbf', '4.44822162 N'), 46 | # Pressure: 47 | ('bar', '100.0 kPa'), 48 | ('atm', '101.325 kPa'), 49 | ('torr', '1.0/760 atm'), 50 | ('psi', 'lbf/in^2'), 51 | # Energy: 52 | ('cal', '4.184 J'), 53 | ('erg', 'dyn cm'), 54 | ('BTU', '1.05435026444 kJ'), 55 | ('eV', '1.602176487*10^-19 C V'), 56 | # Power: 57 | ('hp', '33000 ft lbf/min'), 58 | # Viscosity: 59 | ('P', 'g/(cm s)'), 60 | ('St', 'cm^2/s'), 61 | ] 62 | for name, val in other_units: 63 | units_db.add(name, eval_qty(val)) 64 | -------------------------------------------------------------------------------- /pgradd/Units/db.py: -------------------------------------------------------------------------------- 1 | from .. Error import UnitsParseError 2 | 3 | 4 | __all__ = ['units_db'] 5 | 6 | 7 | class UnitsDB(object): 8 | prefixes = { 9 | 'Y': 1e24, 10 | 'Z': 1e21, 11 | 'E': 1e18, 12 | 'P': 1e15, 13 | 'T': 1e12, 14 | 'G': 1e9, 15 | 'M': 1e6, 16 | 'k': 1e3, 17 | 'h': 1e2, 18 | 'da': 1e1, 19 | 'd': 1e-1, 20 | 'c': 1e-2, 21 | 'm': 1e-3, 22 | 'u': 1e-6, 23 | 'n': 1e-9, 24 | 'p': 1e-12, 25 | 'f': 1e-15, 26 | 'a': 1e-18, 27 | 'z': 1e-21, 28 | 'y': 1e-24, 29 | } 30 | 31 | def __init__(self): 32 | self.db = {} 33 | 34 | def lookup(self, name): 35 | # Try without prefix first 36 | if name in self.db: 37 | return self.db[name] 38 | # Try with single letter prefix: 39 | if name[1:] in self.db and name[:1] in self.prefixes: 40 | return self.prefixes[name[:1]]*self.db[name[1:]] 41 | # Try with double letter prefix (just 'da'): 42 | if name[2:] in self.db and name[:2] in self.prefixes: 43 | return self.prefixes[name[1:]]*self.db[name[2:]] 44 | # Raise error. 45 | raise UnitsParseError('Unknown units: %r' % name) 46 | 47 | def add(self, name, val): 48 | self.db[name] = val 49 | 50 | # Define global units database. 51 | 52 | 53 | units_db = UnitsDB() 54 | -------------------------------------------------------------------------------- /pgradd/Units/helpers.py: -------------------------------------------------------------------------------- 1 | from .utils import is_zero 2 | from .qty import eval_qty 3 | 4 | 5 | __all__ = ['with_units', 'in_units', 'has_units', 'to_SI_from', 'from_SI_to'] 6 | 7 | 8 | def with_units(number, units): 9 | """ 10 | Construct a physical quantity from the given `number` and `units`. 11 | 12 | If `number` is `None`, then return `None`, regardless of `units`. 13 | 14 | .. note:: 15 | If `number` is not `None`, then the following two expressions are 16 | equivalent: 17 | 18 | 1. ``chemtk.units.with_units(number, units)`` 19 | 2. ``number*chemtk.units.eval_qty(units)`` 20 | 21 | Parameters 22 | ---------- 23 | number : int, float, or NoneType 24 | Specify the numerical part of the new quantity 25 | units : str or :class:`Quantity` 26 | Describe the units of the new quantity 27 | 28 | Returns 29 | ------- 30 | qty : :class:`Quantity` or NoneType 31 | The new quantity if `number` is not None; otherwise `None` 32 | """ 33 | if number is None: 34 | return None 35 | if is_zero(number): 36 | return number 37 | return number*eval_qty(units) 38 | 39 | 40 | def in_units(qty, units): 41 | """ 42 | Convert quantity to specified `units` and return numerical value. 43 | 44 | If `qty` is `None`, then return `None`, regardless of `units`. 45 | 46 | .. note:: 47 | If `qty` is not `None`, then the following two expressions are 48 | equivalent: 49 | 50 | 1. ``chemtk.units.in_units(qty, units)`` 51 | 2. ``qty.in_units(units)`` 52 | 53 | Parameters 54 | ---------- 55 | qty : :class:`Quantity` or NoneType 56 | Specify the quantity to convert 57 | units : str or :class:`Quantity` 58 | Describe the units to convert `qty` to 59 | 60 | Returns 61 | ------- 62 | number : int, float, or NoneType 63 | The numerical value of the converted quantity, if `qty` is not None; 64 | otherwise `None` 65 | """ 66 | if qty is None: 67 | return None 68 | return qty.in_units(units) 69 | 70 | 71 | def has_units(qty, units): 72 | """ 73 | Test quantity (`qty`) for compatibility with given `units`. 74 | 75 | .. note:: 76 | The following two expressions are equivalent: 77 | 78 | 1. ``chemtk.units.has_units(qty, units)`` 79 | 2. ``qty.has_units(units)`` 80 | 81 | Parameters 82 | ---------- 83 | qty : :class:`Quantity` or NoneType 84 | Specify the quantity to test 85 | units : str or :class:`Quantity` 86 | Describe the units `qty` must be convertible to 87 | 88 | Returns 89 | ------- 90 | is_compatible : bool 91 | True if and only if the units of `qty` can be converted to `units`. 92 | """ 93 | return qty.has_units(units) 94 | 95 | 96 | def to_SI_from(value, units): 97 | """ 98 | Convert `value` having specified `units` to the equivalent SI units. 99 | 100 | Parameters 101 | ---------- 102 | value : int or float 103 | Specify value of quantity to convert to SI units 104 | units : str or :class:`Quantity` 105 | Describe the units associated with `value` 106 | 107 | Returns 108 | ------- 109 | new_value : int or float 110 | Numerical value of SI units quantity 111 | """ 112 | return value*eval_qty(units).value 113 | 114 | 115 | def from_SI_to(value, units): 116 | """ 117 | Convert `value` in SI units to specified compatible `units`. 118 | 119 | Parameters 120 | ---------- 121 | value : int or float 122 | Specify value of SI units quantity to convert 123 | units : str or :class:`Quantity` 124 | Describe the units to convert SI quantity to 125 | 126 | Returns 127 | ------- 128 | new_value : int or float 129 | Numerical value of converted quantity. 130 | """ 131 | return value/eval_qty(units).value 132 | -------------------------------------------------------------------------------- /pgradd/Units/utils.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def is_zero(val): 5 | # Compare scalar or array quantity to zero. 6 | if isinstance(val, np.ndarray): 7 | return (val == 0).all() 8 | else: 9 | return val == 0 10 | -------------------------------------------------------------------------------- /pgradd/__init__.py: -------------------------------------------------------------------------------- 1 | # 2016. Vlachos Group Geun Ho Gu. University of Delaware. 2 | 3 | 4 | #### 5 | # 6 | # setuptools likes to see a name for the package, 7 | # and it's best-practices to have the __version__ 8 | # present, too: 9 | # 10 | name = 'pgradd' 11 | __version__ = '2.9.13' 12 | # 13 | #### 14 | -------------------------------------------------------------------------------- /pgradd/data/BensonGA/gas_benson/corrections.yaml: -------------------------------------------------------------------------------- 1 | units: 2 | molar enthalpy: kcal/mol 3 | molar entropy: cal/(mol*K) 4 | molar heat capacity: cal/(mol*K) 5 | temperature: K 6 | 7 | # The groups below are entered directly from _Thermochemical Kinetics_ 2nd ed.; 8 | # S.W. Benson; New York: John Wiley & Sons, 1976 pp. 272-273. 9 | 10 | groups: 11 | AlkaneGauche: 12 | thermochem: 13 | T_ref: 298.0 14 | H_ref: 0.80 15 | S_ref: null 16 | Cp_data: [] 17 | range: [298, 1500] 18 | AlkeneGauche: 19 | thermochem: 20 | T_ref: 298.0 21 | H_ref: 0.50 22 | S_ref: null 23 | Cp_data: [] 24 | range: [298, 1500] 25 | Cis: 26 | thermochem: 27 | T_ref: 298.0 28 | H_ref: 1.00 29 | S_ref: 1.2 30 | Cp_data: 31 | - [300, -1.34] 32 | - [400, -1.09] 33 | - [500, -0.81] 34 | - [600, -0.61] 35 | - [800, -0.39] 36 | - [1000, -0.26] 37 | - [1500, 0.0] 38 | range: [298, 1500] 39 | Double Cis: 40 | thermochem: 41 | T_ref: 298.0 42 | H_ref: 2.00 43 | S_ref: null 44 | Cp_data: 45 | - [300, 1.34] 46 | - [400, 1.09] 47 | - [500, 0.81] 48 | - [600, 0.61] 49 | - [800, 0.39] 50 | - [1000, 0.26] 51 | - [1500, 0.0] 52 | range: [298, 1500] 53 | tbCis: 54 | thermochem: 55 | T_ref: 298.0 56 | H_ref: 3.00 57 | S_ref: null 58 | Cp_data: [] 59 | range: [298, 1500] 60 | Double tbCis: 61 | thermochem: 62 | T_ref: 298.0 63 | H_ref: 2.00 64 | S_ref: null 65 | Cp_data: [] 66 | range: [298, 1500] 67 | Ortho: 68 | thermochem: 69 | T_ref: 298.0 70 | H_ref: 0.57 71 | S_ref: -1.61 72 | Cp_data: 73 | - [300, 1.12] 74 | - [400, 1.35] 75 | - [500, 1.30] 76 | - [600, 1.17] 77 | - [800, 0.88] 78 | - [1000, 0.66] 79 | - [1500, -0.05] 80 | range: [298, 1500] 81 | Ether oxygen gauche: 82 | thermochem: 83 | T_ref: 298.0 84 | H_ref: 0.30 85 | S_ref: null 86 | Cp_data: [] 87 | range: [298, 1500] 88 | Ditertiary ether: 89 | thermochem: 90 | T_ref: 298.0 91 | H_ref: 8.4 92 | S_ref: null 93 | Cp_data: [] 94 | range: [298, 1500] -------------------------------------------------------------------------------- /pgradd/data/BensonGA/gas_benson/extra.yaml: -------------------------------------------------------------------------------- 1 | 2 | groups: 3 | 'O(C)(CO)': 4 | 'thermochem': 5 | T_ref: 298.15 K 6 | ND_Cp_data: 7 | - [300 K, 1.325981974561945] 8 | - [400 K, 1.7826531859148724] 9 | - [500 K, 2.0254563368545795] 10 | - [600 K, 2.1947895188052811] 11 | - [700 K, 2.3347070446415898] 12 | - [800 K, 2.4416184214704226] 13 | - [900 K, 2.5209531212293683] 14 | - [1000 K, 2.5954776202265162] 15 | range: [298 K, 1500 K] 16 | -------------------------------------------------------------------------------- /pgradd/data/BensonGA/gas_benson/index.yaml: -------------------------------------------------------------------------------- 1 | # =============== 2 | # gas_benson.yaml 3 | # =============== 4 | # 5 | # This file contains Benson group data for gas phase compounds. 6 | # Unlike ``surface_benson.yaml``, this file is *not* automatically generated 7 | # and is maintained by hand. 8 | 9 | 10 | units: 11 | molar enthalpy: kcal/mol 12 | molar entropy: cal/(mol*K) 13 | molar heat capacity: cal/(mol*K) 14 | temperature: K 15 | 16 | include: 17 | - hydrocarbons.yaml 18 | - oxygenates.yaml 19 | - nitrogenates.yaml 20 | - radicals.yaml 21 | 22 | -------------------------------------------------------------------------------- /pgradd/data/BensonGA/gas_benson/original.yaml: -------------------------------------------------------------------------------- 1 | include: 2 | - hydrocarbons.yaml 3 | - oxygenates.yaml 4 | - nitrogenates.yaml 5 | - radicals.yaml 6 | - strain.yaml 7 | - corrections.yaml 8 | -------------------------------------------------------------------------------- /pgradd/data/BensonGA/gas_benson/radicals.yaml: -------------------------------------------------------------------------------- 1 | units: 2 | molar enthalpy: kcal/mol 3 | molar entropy: cal/(mol*K) 4 | molar heat capacity: cal/(mol*K) 5 | temperature: K 6 | 7 | # The groups below are entered directly (excepting changes as noted) from 8 | # _Thermochemical Kinetics_ 2nd ed.; S.W. Benson; New York: John Wiley & Sons, 9 | # 1976 pp. 73. 10 | 11 | groups: 12 | C[.](C)(H)2: 13 | thermochem: 14 | T_ref: 298.0 15 | H_ref: 39.1 #35.82 16 | S_ref: 30.7 17 | Cp_data: 18 | - [300, 5.99] 19 | - [400, 7.24] 20 | - [500, 8.29] 21 | - [600, 9.13] 22 | - [800, 10.44] 23 | - [1000, 11.47] 24 | - [1500, 13.14] 25 | range: [298, 1500] 26 | 27 | C[.](C)2(H): 28 | thermochem: 29 | T_ref: 298.0 30 | H_ref: 37.45 31 | S_ref: 10.74 32 | Cp_data: 33 | - [300, 5.16] 34 | - [400, 6.11] 35 | - [500, 6.82] 36 | - [600, 7.37] 37 | - [800, 8.26] 38 | - [1000, 8.84] 39 | - [1500, 9.71] 40 | range: [298, 1500] 41 | 42 | C[.](C)3: 43 | thermochem: 44 | T_ref: 298.0 45 | H_ref: 38.00 46 | S_ref: -10.77 47 | Cp_data: 48 | - [300, 4.06] 49 | - [400, 4.92] 50 | - [500, 5.42] 51 | - [600, 5.75] 52 | - [800, 6.27] 53 | - [1000, 6.35] 54 | - [1500, 6.53] 55 | range: [298, 1500] 56 | 57 | # This group is remapped to C(C)(H)3 according to Benson (1976): 58 | # 59 | #C(C[.])(H)3: 60 | # thermochem: 61 | # T_ref: 298.0 62 | # H_ref: -10.08 63 | # S_ref: 30.41 64 | # Cp_data: 65 | # - [300, 6.19] 66 | # - [400, 7.84] 67 | # - [500, 9.40] 68 | # - [600, 10.79] 69 | # - [800, 13.02] 70 | # - [1000, 14.77] 71 | # - [1500, 17.58] 72 | # range: [298, 1500] 73 | 74 | C(C[.])(C)(H)2: 75 | thermochem: 76 | T_ref: 298.0 77 | H_ref: -4.95 78 | S_ref: 9.42 79 | Cp_data: 80 | - [300, 5.50] 81 | - [400, 6.95] 82 | - [500, 8.25] 83 | - [600, 9.35] 84 | - [800, 11.07] 85 | - [1000, 12.34] 86 | - [1500, 14.25] 87 | range: [298, 1500] 88 | 89 | C(C[.])(C)2(H): 90 | thermochem: 91 | T_ref: 298.0 92 | H_ref: -1.90 93 | S_ref: -12.07 94 | Cp_data: 95 | - [300, 4.54] 96 | - [400, 6.00] 97 | - [500, 7.17] 98 | - [600, 8.05] 99 | - [800, 9.31] 100 | - [1000, 10.05] 101 | - [1500, 11.17] 102 | range: [298, 1500] 103 | 104 | C(C[.])(C)3: 105 | thermochem: 106 | T_ref: 298.0 107 | H_ref: 1.50 108 | S_ref: -35.10 109 | Cp_data: 110 | - [300, 4.37] 111 | - [400, 6.13] 112 | - [500, 7.36] 113 | - [600, 8.12] 114 | - [800, 8.77] 115 | - [1000, 8.76] 116 | - [1500, 8.12] 117 | range: [298, 1500] 118 | -------------------------------------------------------------------------------- /pgradd/data/BensonGA/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - gas_benson/original.yaml 4 | - gas_benson/extra.yaml 5 | -------------------------------------------------------------------------------- /pgradd/data/GRWAqueous2018/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml 4 | - uq.yaml -------------------------------------------------------------------------------- /pgradd/data/GRWSurface2018/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml 4 | - uq.yaml -------------------------------------------------------------------------------- /pgradd/data/GuSolventGA2017Aq/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml 4 | 5 | -------------------------------------------------------------------------------- /pgradd/data/GuSolventGA2017Vac/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml 4 | - uq.yaml -------------------------------------------------------------------------------- /pgradd/data/PPY/gas_benson/corrections.yaml: -------------------------------------------------------------------------------- 1 | units: 2 | molar enthalpy: kcal/mol 3 | molar entropy: cal/(mol*K) 4 | molar heat capacity: cal/(mol*K) 5 | temperature: K 6 | 7 | # The groups below are entered directly from _Thermochemical Kinetics_ 2nd ed.; 8 | # S.W. Benson; New York: John Wiley & Sons, 1976 pp. 272-273. 9 | 10 | groups: 11 | AlkaneGauche: 12 | thermochem: 13 | T_ref: 298.0 14 | H_ref: 0.80 15 | S_ref: null 16 | Cp_data: [] 17 | range: [298, 1500] 18 | AlkeneGauche: 19 | thermochem: 20 | T_ref: 298.0 21 | H_ref: 0.50 22 | S_ref: null 23 | Cp_data: [] 24 | range: [298, 1500] 25 | Cis: 26 | thermochem: 27 | T_ref: 298.0 28 | H_ref: 1.00 29 | S_ref: 1.2 30 | Cp_data: 31 | - [300, -1.34] 32 | - [400, -1.09] 33 | - [500, -0.81] 34 | - [600, -0.61] 35 | - [800, -0.39] 36 | - [1000, -0.26] 37 | - [1500, 0.0] 38 | range: [298, 1500] 39 | Double Cis: 40 | thermochem: 41 | T_ref: 298.0 42 | H_ref: 2.00 43 | S_ref: null 44 | Cp_data: 45 | - [300, 1.34] 46 | - [400, 1.09] 47 | - [500, 0.81] 48 | - [600, 0.61] 49 | - [800, 0.39] 50 | - [1000, 0.26] 51 | - [1500, 0.0] 52 | range: [298, 1500] 53 | tbCis: 54 | thermochem: 55 | T_ref: 298.0 56 | H_ref: 3.00 57 | S_ref: null 58 | Cp_data: [] 59 | range: [298, 1500] 60 | Double tbCis: 61 | thermochem: 62 | T_ref: 298.0 63 | H_ref: 2.00 64 | S_ref: null 65 | Cp_data: [] 66 | range: [298, 1500] 67 | Ortho: 68 | thermochem: 69 | T_ref: 298.0 70 | H_ref: 0.57 71 | S_ref: -1.61 72 | Cp_data: 73 | - [300, 1.12] 74 | - [400, 1.35] 75 | - [500, 1.30] 76 | - [600, 1.17] 77 | - [800, 0.88] 78 | - [1000, 0.66] 79 | - [1500, -0.05] 80 | range: [298, 1500] 81 | Ether oxygen gauche: 82 | thermochem: 83 | T_ref: 298.0 84 | H_ref: 0.30 85 | S_ref: null 86 | Cp_data: [] 87 | range: [298, 1500] 88 | Ditertiary ether: 89 | thermochem: 90 | T_ref: 298.0 91 | H_ref: 8.4 92 | S_ref: null 93 | Cp_data: [] 94 | range: [298, 1500] -------------------------------------------------------------------------------- /pgradd/data/PPY/gas_benson/extra.yaml: -------------------------------------------------------------------------------- 1 | 2 | groups: 3 | 'O(C)(CO)': 4 | 'thermochem': 5 | T_ref: 298.15 K 6 | ND_Cp_data: 7 | - [300 K, 1.325981974561945] 8 | - [400 K, 1.7826531859148724] 9 | - [500 K, 2.0254563368545795] 10 | - [600 K, 2.1947895188052811] 11 | - [700 K, 2.3347070446415898] 12 | - [800 K, 2.4416184214704226] 13 | - [900 K, 2.5209531212293683] 14 | - [1000 K, 2.5954776202265162] 15 | range: [298 K, 1500 K] 16 | -------------------------------------------------------------------------------- /pgradd/data/PPY/gas_benson/index.yaml: -------------------------------------------------------------------------------- 1 | # =============== 2 | # gas_benson.yaml 3 | # =============== 4 | # 5 | # This file contains Benson group data for gas phase compounds. 6 | # Unlike ``surface_benson.yaml``, this file is *not* automatically generated 7 | # and is maintained by hand. 8 | 9 | 10 | units: 11 | molar enthalpy: kcal/mol 12 | molar entropy: cal/(mol*K) 13 | molar heat capacity: cal/(mol*K) 14 | temperature: K 15 | 16 | include: 17 | - hydrocarbons.yaml 18 | - oxygenates.yaml 19 | - nitrogenates.yaml 20 | - radicals.yaml 21 | 22 | -------------------------------------------------------------------------------- /pgradd/data/PPY/gas_benson/original.yaml: -------------------------------------------------------------------------------- 1 | include: 2 | - hydrocarbons.yaml 3 | - oxygenates.yaml 4 | - nitrogenates.yaml 5 | - radicals.yaml 6 | - strain.yaml 7 | - corrections.yaml 8 | -------------------------------------------------------------------------------- /pgradd/data/PPY/gas_benson/radicals.yaml: -------------------------------------------------------------------------------- 1 | units: 2 | molar enthalpy: kcal/mol 3 | molar entropy: cal/(mol*K) 4 | molar heat capacity: cal/(mol*K) 5 | temperature: K 6 | 7 | # The groups below are entered directly (excepting changes as noted) from 8 | # _Thermochemical Kinetics_ 2nd ed.; S.W. Benson; New York: John Wiley & Sons, 9 | # 1976 pp. 73. 10 | 11 | groups: 12 | C[.](C)(H)2: 13 | thermochem: 14 | T_ref: 298.0 15 | H_ref: 39.1 #35.82 16 | S_ref: 30.7 17 | Cp_data: 18 | - [300, 5.99] 19 | - [400, 7.24] 20 | - [500, 8.29] 21 | - [600, 9.13] 22 | - [800, 10.44] 23 | - [1000, 11.47] 24 | - [1500, 13.14] 25 | range: [298, 1500] 26 | 27 | C[.](C)2(H): 28 | thermochem: 29 | T_ref: 298.0 30 | H_ref: 37.45 31 | S_ref: 10.74 32 | Cp_data: 33 | - [300, 5.16] 34 | - [400, 6.11] 35 | - [500, 6.82] 36 | - [600, 7.37] 37 | - [800, 8.26] 38 | - [1000, 8.84] 39 | - [1500, 9.71] 40 | range: [298, 1500] 41 | 42 | C[.](C)3: 43 | thermochem: 44 | T_ref: 298.0 45 | H_ref: 38.00 46 | S_ref: -10.77 47 | Cp_data: 48 | - [300, 4.06] 49 | - [400, 4.92] 50 | - [500, 5.42] 51 | - [600, 5.75] 52 | - [800, 6.27] 53 | - [1000, 6.35] 54 | - [1500, 6.53] 55 | range: [298, 1500] 56 | 57 | # This group is remapped to C(C)(H)3 according to Benson (1976): 58 | # 59 | #C(C[.])(H)3: 60 | # thermochem: 61 | # T_ref: 298.0 62 | # H_ref: -10.08 63 | # S_ref: 30.41 64 | # Cp_data: 65 | # - [300, 6.19] 66 | # - [400, 7.84] 67 | # - [500, 9.40] 68 | # - [600, 10.79] 69 | # - [800, 13.02] 70 | # - [1000, 14.77] 71 | # - [1500, 17.58] 72 | # range: [298, 1500] 73 | 74 | C(C[.])(C)(H)2: 75 | thermochem: 76 | T_ref: 298.0 77 | H_ref: -4.95 78 | S_ref: 9.42 79 | Cp_data: 80 | - [300, 5.50] 81 | - [400, 6.95] 82 | - [500, 8.25] 83 | - [600, 9.35] 84 | - [800, 11.07] 85 | - [1000, 12.34] 86 | - [1500, 14.25] 87 | range: [298, 1500] 88 | 89 | C(C[.])(C)2(H): 90 | thermochem: 91 | T_ref: 298.0 92 | H_ref: -1.90 93 | S_ref: -12.07 94 | Cp_data: 95 | - [300, 4.54] 96 | - [400, 6.00] 97 | - [500, 7.17] 98 | - [600, 8.05] 99 | - [800, 9.31] 100 | - [1000, 10.05] 101 | - [1500, 11.17] 102 | range: [298, 1500] 103 | 104 | C(C[.])(C)3: 105 | thermochem: 106 | T_ref: 298.0 107 | H_ref: 1.50 108 | S_ref: -35.10 109 | Cp_data: 110 | - [300, 4.37] 111 | - [400, 6.13] 112 | - [500, 7.36] 113 | - [600, 8.12] 114 | - [800, 8.77] 115 | - [1000, 8.76] 116 | - [1500, 8.12] 117 | range: [298, 1500] 118 | -------------------------------------------------------------------------------- /pgradd/data/PPY/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - gas_benson/original.yaml 4 | - gas_benson/extra.yaml 5 | -------------------------------------------------------------------------------- /pgradd/data/PtSurface2023/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml -------------------------------------------------------------------------------- /pgradd/data/PtSurface2023/uq.yaml: -------------------------------------------------------------------------------- 1 | UQ: 2 | RMSE: 3 | 'thermochem': 4 | T_ref: 298.15 K 5 | H_ref: 3.4958 kcal/mol 6 | S_ref: 1.6683 cal/(mol*K) 7 | Cp_data: 8 | - [100 K, 0.6589 cal/(mol*K)] 9 | - [200 K, 0.5180 cal/(mol*K)] 10 | - [300 K, 0.4344 cal/(mol*K)] 11 | - [400 K, 0.4030 cal/(mol*K)] 12 | - [500 K, 0.3902 cal/(mol*K)] 13 | - [600 K, 0.3840 cal/(mol*K)] 14 | - [700 K, 0.3806 cal/(mol*K)] 15 | - [800 K, 0.3781 cal/(mol*K)] 16 | - [900 K, 0.3756 cal/(mol*K)] 17 | - [1000 K, 0.3728 cal/(mol*K)] 18 | - [1100 K, 0.3697 cal/(mol*K)] 19 | - [1200 K, 0.3666 cal/(mol*K)] 20 | - [1300 K, 0.3635 cal/(mol*K)] 21 | - [1400 K, 0.3605 cal/(mol*K)] 22 | - [1500 K, 0.3579 cal/(mol*K)] 23 | DOF: 24 | 100 25 | 26 | InvCovMat: 27 | 'groups': 28 | - 'C(Pt)4' 29 | - 'C(C)(Pt)3' 30 | - 'surface-ring strain' 31 | - 'C(C)(H)2(O)' 32 | - 'O(C)(Pt)' 33 | - 'CCPt3' 34 | - 'O(C)(H)' 35 | - 'CO(C)(H)' 36 | - 'C(CO)(Pt)3' 37 | - 'C(C)(H)(O)(Pt)' 38 | - 'CPt3CPt1' 39 | - 'CO(C)(Pt)' 40 | - 'C(C)(O)(Pt)2' 41 | - 'CCOH' 42 | - 'CPt3CPt2' 43 | - 'C(H)(Pt)3' 44 | - 'C(H)2(Pt)2' 45 | - 'C(C)(H)2(Pt)' 46 | - 'C(C)(H)(Pt)2' 47 | - 'CPt2CPt1' 48 | - 'CPt1CPt1' 49 | - 'CCPt1' 50 | - 'C(CO)(H)2(Pt)' 51 | - 'C(H)2(O)(Pt)' 52 | - 'CPt1OPt1' 53 | - 'C(H)3(Pt)' 54 | - 'C(C)(H)3' 55 | - 'CCPt2' 56 | - 'CC' 57 | - 'CPt2OPt1' 58 | - 'CPt2CPt2' 59 | - 'C(CO)(H)(Pt)2' 60 | - 'CO(H)(Pt)' 61 | - 'C(H)(O)(Pt)2' 62 | - 'CO(Pt)2' 63 | - 'C(O)(Pt)3' 64 | - 'H' 65 | - 'O(H)2' 66 | - 'O(Pt)2' 67 | - 'O(H)(Pt)' 68 | - 'C(H)(O)2(Pt)' 69 | - 'O(CO)(Pt)' 70 | - 'CO2s(Pt)' 71 | - 'CO(O)(Pt)+O(CO)(H)' 72 | - 'C(H)4s' 73 | - 'C(C)2(H)(O)' 74 | - 'C(C)2(O)(Pt)' 75 | - 'C(C)(CO)(H)(O)' 76 | - 'CO(C)2' 77 | - 'C(CO)(H)(O)(Pt)' 78 | - 'C(C)(CO)(O)(Pt)' 79 | - 'C(CO)2(O)(Pt)' 80 | - 'C(CO)2(H)2' 81 | - 'CO(CO)(H)' 82 | - 'CO(C)(CO)' 83 | - 'C(CO)(O)(Pt)2' 84 | - 'C(C)(CO)(H)2' 85 | - 'C(C)(CO)(Pt)2' 86 | - 'C(CO)2(H)(Pt)' 87 | - 'C(C)(CO)(H)(Pt)' 88 | - 'C(C)2(H)(Pt)' 89 | - 'C(CO)2(Pt)2' 90 | - 'CO(CO)(Pt)' 91 | - 'C(C)2(Pt)2' 92 | - 'C(C)2(H)2' 93 | - 'CO(CO)2' 94 | - 'C(CO)2(H)(O)' 95 | -------------------------------------------------------------------------------- /pgradd/data/Roel_Ru/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml -------------------------------------------------------------------------------- /pgradd/data/SalciccioliGA2012/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml 4 | 5 | -------------------------------------------------------------------------------- /pgradd/data/XieGA2022/library.yaml: -------------------------------------------------------------------------------- 1 | 2 | include: 3 | - surface.yaml 4 | 5 | -------------------------------------------------------------------------------- /pgradd/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VlachosGroup/PythonGroupAdditivity/c7a77ef3489931f16edeb525882af64702fd5746/pgradd/tests/__init__.py -------------------------------------------------------------------------------- /pgradd/tests/test_SMILES_to_thermo_examples.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | pmutt.test_constants 4 | Tests for SMILES_to_thermo_examples file 5 | Created on Tues Oct 23 2018 6 | """ 7 | import unittest 8 | from pgradd.GroupAdd.Library import GroupLibrary 9 | import pgradd.ThermoChem 10 | 11 | 12 | class TestExamples(unittest.TestCase): 13 | 14 | def test_BensonGA(self): 15 | lib = GroupLibrary.Load('BensonGA') 16 | descriptors = lib.GetDescriptors('C1CO1') 17 | thermochem = lib.Estimate(descriptors, 'thermochem') 18 | GroupDict = {'C(C)(H)2(O)': 2, 'O(C)2': 1, 'Oxirane': 1} 19 | HoRT = thermochem.get_HoRT(298.15) 20 | self.assertAlmostEqual(HoRT, -21.09467743150278) 21 | self.assertEqual(descriptors, GroupDict) 22 | 23 | def test_Salciccioli(self): 24 | lib = GroupLibrary.Load('SalciccioliGA2012') 25 | descriptors = lib.GetDescriptors('C([Pt])C[Pt]') 26 | thermochem = lib.Estimate(descriptors, 'thermochem') 27 | GroupDict = {'C(C)(H)2(Pt)': 2, 'surface-ring strain': 0.217} 28 | H = thermochem.get_H(298.15, units='kcal/mol') 29 | self.assertAlmostEqual(H, -11.307743997749277) 30 | self.assertEqual(descriptors, GroupDict) 31 | 32 | def test_GU_Aq(self): 33 | lib = GroupLibrary.Load('GuSolventGA2017Aq') 34 | descriptors = lib.GetDescriptors('C(=O)([Pt])O') 35 | thermochem = lib.Estimate(descriptors, 'thermochem') 36 | GroupDict = {'CO(O)(Pt)+O(CO)(H)': 1.0} 37 | HoRT = thermochem.get_HoRT(500) 38 | self.assertAlmostEqual(HoRT, -109.86212002776878) 39 | self.assertEqual(descriptors, GroupDict) 40 | 41 | def test_Wittreich_Surface_ND(self): 42 | lib = GroupLibrary.Load('GRWSurface2018') 43 | descriptors = lib.GetDescriptors('[Pt]C([Pt])C([Pt])([Pt])C=O') 44 | thermochem = lib.Estimate(descriptors, 'thermochem') 45 | GroupDict = {'C(C)(H)(Pt)2': 1, 'C(C)(CO)(Pt)2': 1, 'CO(C)(H)': 1, 46 | 'CPt2CPt2': 1, 'CCPt2': 1, 'surface-ring strain': 0.392} 47 | HoRT = thermochem.get_HoRT(750) 48 | self.assertAlmostEqual(HoRT, -13.423119203382337) 49 | self.assertEqual(descriptors, GroupDict) 50 | 51 | def test_Wittreich_Surface_Dim(self): 52 | lib = GroupLibrary.Load('GRWSurface2018') 53 | descriptors = lib.GetDescriptors('[Pt]C([Pt])C([Pt])([Pt])C=O') 54 | thermochem = lib.Estimate(descriptors, 'thermochem') 55 | GroupDict = {'C(C)(H)(Pt)2': 1, 'C(C)(CO)(Pt)2': 1, 'CO(C)(H)': 1, 56 | 'CPt2CPt2': 1, 'CCPt2': 1, 'surface-ring strain': 0.392} 57 | H = thermochem.get_H(750, 'kcal/mol') 58 | self.assertAlmostEqual(H, -20.005853103142883) 59 | self.assertEqual(descriptors, GroupDict) 60 | 61 | def test_Wittreich_Aqueous_ND(self): 62 | lib = GroupLibrary.Load('GRWAqueous2018') 63 | descriptors = lib.GetDescriptors('C(=O)([Pt])O') 64 | thermochem = lib.Estimate(descriptors, 'thermochem') 65 | GroupDict = {'CO(O)(Pt)+O(CO)(H)': 1.0} 66 | HoRT = thermochem.get_HoRT(500) 67 | self.assertAlmostEqual(HoRT, -107.57909464133714) 68 | self.assertEqual(descriptors, GroupDict) 69 | 70 | def test_Wittreich_Aqueous_Dim(self): 71 | lib = GroupLibrary.Load('GRWAqueous2018') 72 | descriptors = lib.GetDescriptors('C(=O)([Pt])O') 73 | thermochem = lib.Estimate(descriptors, 'thermochem') 74 | GroupDict = {'CO(O)(Pt)+O(CO)(H)': 1.0} 75 | H = thermochem.get_H(500, 'kJ/mol') 76 | self.assertAlmostEqual(H, -447.23102885789655) 77 | self.assertEqual(descriptors, GroupDict) 78 | 79 | def test_Xie_Ru0001_Example1_ND(self): 80 | lib = GroupLibrary.Load('XieGA2022') 81 | descriptors = lib.GetDescriptors('[Ru]C([Ru])C([Ru])([Ru])C') 82 | thermochem = lib.Estimate(descriptors, 'thermochem') 83 | GroupDict = {'C(C)(H)(Ru)2': 1, 'C(C)2(Ru)2': 1, 'C(C)(H)3': 1, 84 | 'CRu2CRu2': 1} 85 | HoRT = thermochem.get_HoRT(500) 86 | self.assertAlmostEqual(HoRT, -35.040312149773726) 87 | self.assertEqual(descriptors, GroupDict) 88 | 89 | def test_Xie_Ru0001_Example1_Dim(self): 90 | lib = GroupLibrary.Load('XieGA2022') 91 | descriptors = lib.GetDescriptors('[Ru]C([Ru])C([Ru])([Ru])C') 92 | thermochem = lib.Estimate(descriptors, 'thermochem') 93 | GroupDict = {'C(C)(H)(Ru)2': 1, 'C(C)2(Ru)2': 1, 'C(C)(H)3': 1, 94 | 'CRu2CRu2': 1} 95 | H = thermochem.get_H(500, 'kJ/mol') 96 | self.assertAlmostEqual(H, -145.6706333743726) 97 | self.assertEqual(descriptors, GroupDict) 98 | 99 | def test_Xie_Ru0001_Example2_ND(self): 100 | lib = GroupLibrary.Load('XieGA2022') 101 | descriptors = lib.GetDescriptors('CCC') 102 | thermochem = lib.Estimate(descriptors, 'thermochem') 103 | GroupDict = {'C(C)(H)3': 2, 'C(C)2(H)2': 1} 104 | HoRT = thermochem.get_HoRT(500) 105 | self.assertAlmostEqual(HoRT, -41.49969417868688) 106 | self.assertEqual(descriptors, GroupDict) 107 | 108 | def test_Xie_Ru0001_Example2_Dim(self): 109 | lib = GroupLibrary.Load('XieGA2022') 110 | descriptors = lib.GetDescriptors('CCC') 111 | thermochem = lib.Estimate(descriptors, 'thermochem') 112 | GroupDict = {'C(C)(H)3': 2, 'C(C)2(H)2': 1} 113 | H = thermochem.get_H(500, 'kJ/mol') 114 | self.assertAlmostEqual(H, -172.52376948049303) 115 | self.assertEqual(descriptors, GroupDict) 116 | 117 | def test_Selements_Example_Dim(self): 118 | lib = GroupLibrary.Load('BensonGA') 119 | descriptors = lib.GetDescriptors('CCCCCC') 120 | thermochem = lib.Estimate(descriptors, 'thermochem') 121 | GroupDict = {'C(C)(H)3': 2, 'C(C)2(H)2': 4} 122 | G = thermochem.get_G(T=298.15, units='kJ/mol', S_elements=True) 123 | self.assertAlmostEqual(G, -7.732446702038452) 124 | self.assertEqual(descriptors, GroupDict) 125 | 126 | 127 | if __name__ == '__main__': 128 | unittest.main() 129 | -------------------------------------------------------------------------------- /pgradd/yaml_io/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | ======================= 3 | YAML-formatted data I/O 4 | ======================= 5 | 6 | This module handles input from YAML formatted data. Because this code is in 7 | bad need of cleanup and because in the long run, I (Stephen Edie) hope to 8 | replace the input mechanism with something cleaner and faster (not involving 9 | YAML), the documentation for this module is limited at this time. 10 | 11 | 12 | --------- 13 | Reference 14 | --------- 15 | 16 | .. autodoc puts stuff extracted from docstrings here. 17 | """ 18 | 19 | 20 | from .yaml_io import * 21 | 22 | __all__ = yaml_io.__all__[:] 23 | 24 | del yaml_io 25 | -------------------------------------------------------------------------------- /pgradd/yaml_io/common.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | 4 | __all__ = [ 5 | 'string', 'SchemaDefinitionError', 'InputDataError', 'InputDataWarning'] 6 | 7 | 8 | if sys.version_info[0] >= 3: 9 | string = str 10 | else: 11 | string = str 12 | # string = unicode 13 | 14 | 15 | class SchemaDefinitionError(Exception): 16 | pass 17 | 18 | 19 | class InputDataError(Exception): 20 | pass 21 | 22 | 23 | class InputDataWarning(Warning): 24 | pass 25 | -------------------------------------------------------------------------------- /pgradd/yaml_io/lib_interface.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | 3 | from .common import string 4 | 5 | 6 | __all__ = ['parse', 'YAMLTaggedValue'] 7 | 8 | 9 | class YAMLTaggedValue(object): 10 | def __init__(self, tag, value): 11 | self.tag = tag 12 | self.value = value 13 | 14 | def __str__(self): 15 | return '<%s>: %s' % (self.tag, self.value) 16 | 17 | def __repr__(self): 18 | return 'YAMLTaggedValue(%r, %r)' % (self.tag, self.value) 19 | 20 | 21 | def _construct_str(loader, node): 22 | return string(loader.construct_scalar(node)) 23 | 24 | 25 | def _construct_seq(loader, node): 26 | result = loader.construct_sequence(node) 27 | return result 28 | 29 | 30 | def _construct_map(loader, node): 31 | result = dict([(tuple(key), value) if isinstance(key, list) 32 | else (key, value) 33 | for (key, value) in loader.construct_pairs(node, deep=True)]) 34 | return result 35 | 36 | 37 | def _construct_tagged(loader, tag, node): 38 | if isinstance(node, yaml.MappingNode): 39 | value = _construct_map(loader, node) 40 | elif isinstance(node, yaml.SequenceNode): 41 | value = _construct_seq(loader, node) 42 | elif isinstance(node, yaml.ScalarNode): 43 | value = loader.construct_scalar(node) 44 | else: 45 | raise TypeError('Unknown node type: %s' % type(node)) 46 | return YAMLTaggedValue(tag, value) 47 | 48 | 49 | try: 50 | # Use the class that's atop libyaml for speed... 51 | class Loader(yaml.CSafeLoader): 52 | pass 53 | except AttributeError: 54 | # ...and fall back on the Python implementation otherwise: 55 | class Loader(yaml.SafeLoader): 56 | pass 57 | 58 | # Note: other possible tags: 59 | # 'tag:yaml.org,2002:int', 'tag:yaml.org,2002:float', 60 | # 'tag:yaml.org,2002:bool', tag:yaml.org,2002:null', 61 | # and 'tag:yaml.org,2002:seq' 62 | Loader.add_constructor('tag:yaml.org,2002:str', _construct_str) 63 | Loader.add_constructor('tag:yaml.org,2002:map', _construct_map) 64 | 65 | # Captures all things with an explicit tag. 66 | Loader.add_multi_constructor('', _construct_tagged) 67 | 68 | # Might look into these later? 69 | # VGToolsLoader.add_multi_constructor('!', VGToolsLoader.constructor) 70 | # VGToolsLoader.add_constructor('!!seq', VGToolsLoader.seq_constructor) 71 | 72 | 73 | # We want YAML 1.2 support but the Python YAML library only supports YAML 1.1. 74 | # YAML 1.1 has lots of implicit resolvers that try to automatically convert 75 | # too many things. We address this by replacing the implicit_resolvers with 76 | # only those that are explicitly in the YAML 1.2 core set). 77 | YAML12_core_implicit_tags = [ 78 | 'tag:yaml.org,2002:' + tag for tag in 79 | ['str', 'seq', 'map', 'null', 'bool', 'int', 'float']] 80 | for first in Loader.yaml_implicit_resolvers: 81 | Loader.yaml_implicit_resolvers[first] = [ 82 | (tag, regexp) 83 | for (tag, regexp) in Loader.yaml_implicit_resolvers[first] 84 | if tag in YAML12_core_implicit_tags] 85 | 86 | 87 | def parse(yaml_input): 88 | """Parse data in YAML format to an abstract tree.""" 89 | return yaml.load(yaml_input, Loader=Loader) 90 | -------------------------------------------------------------------------------- /pgradd/yaml_io/yaml_io.py: -------------------------------------------------------------------------------- 1 | from .lib_interface import YAMLTaggedValue, parse 2 | from .schema import SchemaRepository 3 | # from .common import * 4 | 5 | 6 | __all__ = ['Error', 'load', 'make_loader', 'make_object_loader', 7 | 'register_class', 'register_list_type', 'register_type', 'parse'] 8 | 9 | 10 | class Error(Exception): 11 | """Exception raised upon YAML input/output related error.""" 12 | 13 | 14 | def load(data, context=None, name=None, tag=None, loader=None): 15 | """Construct object from abstract tree obtained using `parse()`.""" 16 | if context is None: 17 | context = {} 18 | context['repo'] = _repository 19 | 20 | if tag is not None: 21 | if loader is not None: 22 | raise Error("Specification of keyword argument 'tag' conflicts " 23 | "with specification of 'loader' in yaml_io.load()") 24 | return _repository.load_tagged(name, data, context, tag) 25 | elif loader is not None: 26 | if isinstance(data, YAMLTaggedValue): 27 | raise Error("Object %r with tag %r cannot be loaded with " 28 | "loader %r in yaml_io.load().", loader) 29 | return loader(name, data, context) 30 | elif not isinstance(data, YAMLTaggedValue): 31 | raise Error("Cannot load untagged object %r; no tag or loader " 32 | "specified to yaml_io.load()." % data) 33 | else: 34 | return _repository.load_tagged(name, data.value, context, data.tag) 35 | 36 | 37 | _repository = SchemaRepository() 38 | 39 | make_loader = _repository.make_loader 40 | make_object_loader = _repository.make_object_loader 41 | register_class = _repository.register_class 42 | register_list_type = _repository.register_list_type 43 | register_type = _repository.register_type 44 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # setup.py 4 | # 5 | # Installation script to get setuptools to install pgradd into 6 | # a Python environment. 7 | # 8 | 9 | import sys 10 | import setuptools 11 | 12 | # Import the lengthy rich-text README as the package's long 13 | # description: 14 | with open('README.rst', 'r') as fh: 15 | long_description = fh.read() 16 | 17 | setuptools_info = { 18 | 'name': 'pgradd', 19 | 'version': '2.9.13', 20 | 'author': 'Vlachos Research Group', 21 | 'author_email': 'vlachos@udel.edu', 22 | 'description': 'Python package implements the Group Additivity (GA) method for estimating thermodynamic properties', 23 | 'long_description': long_description, 24 | 'zip_safe': True, 25 | 'url': 'https://github.com/VlachosGroup/PythonGroupAdditivity', 26 | 'packages': setuptools.find_packages(), 27 | 'include_package_data': True, 28 | 'exclude_package_data': { 29 | '': [ 'README.rst', 'docs', 'example', 'tests', 'PKG-INFO', 'LICENSE.md' ] 30 | }, 31 | 'install_requires': [ 32 | 'pmutt>=1.3.2', 33 | 'scipy>=1.7.0', 34 | 'numpy>=1.21.0', 35 | 'IPython>=7.31.0', 36 | 'PyYAML>=6.0', 37 | 'rdkit>=2023.3.2' 38 | ], 39 | 'classifiers': [ 40 | "Programming Language :: Python :: 3", 41 | "License :: OSI Approved :: MIT License", 42 | "Operating System :: OS Independent", 43 | "Intended Audience :: Science/Research", 44 | "Topic :: Scientific/Engineering :: Chemistry", 45 | ], 46 | } 47 | 48 | if sys.version_info[0] >= 3: 49 | # 50 | # Augment for Python 3 setuptools: 51 | # 52 | setuptools_info['long_description_content_type'] = 'text/x-rst' 53 | 54 | setuptools.setup(**setuptools_info) 55 | --------------------------------------------------------------------------------